# Soulver X Series

## ¿Qué es la Serie Soulver X?

En 2024, nos embarcamos en un proyecto de I+D de varios años cuya misión es:

* Explorar ideas nuevas e interesantes para Soulver
* Buscar nuevas formas y nuevos flujos de trabajo
* Ir audazmente donde ningún calculadora de notas ha ido antes 🖖

Tenemos la intención de lanzar una nueva versión importante de la serie X cada año.

### Patrocinio de la Serie Soulver X

Si eres un usuario de mucho tiempo (o megafan de Soulver) y te entusiasma este trabajo, podrías considerar [patrocinar nuestra misión en GitHub](https://soulver.app/sponsor).

Además, como patrocinador, obtendrás acceso al prototipo más reciente de la serie X (X3, X4, etc.) con más funciones nunca antes vistas en el dominio de las calculadoras de notas.

Nuestro equipo (muy) pequeño agradecería el apoyo, y podremos dedicar más recursos a este tipo de I+D avanzado de calculadoras de notas.

## Soulver X2 (2025)

### Subhojas

* Una subhoja es una hoja separada que vive dentro de un único token.
  * Crea una subhoja desde el botón + en la barra de pestañas.
  * Haz doble clic en el token morado para abrir el editor de subhojas.
* Las subhojas pueden hacer referencia a variables de la hoja principal (siempre que las variables estén declaradas por encima de la línea de la subhoja).

### Tokens Deslizadores con Rangos

* Un token deslizador te permite especificar el rango para un deslizador desplazable
  * Crea un deslizador desde el botón + en la barra de pestañas.
  * Haz doble clic en el token verde para abrir la ventana emergente del deslizador.

### Líneas Divisorias

* Escribe guion (-) tres veces para insertar una línea divisoria.
* Usa líneas divisorias para crear una separación visual más grande entre diferentes partes de tu hoja.

## Soulver X1 (2024)

X1 incluye implementaciones de las principales solicitudes de características de Soulver, incluyendo:

* [Soporte para funciones personalizadas](https://soulver.app/feedback) (*incluyendo* *funciones de lenguaje natural*)
* [Compartir variables entre hojas](https://soulver.app/feedback) (*a través de la nueva hoja "encabezado"*)
* [Conexión a APIs Web](https://soulver.app/feedback) (*solo con pegar y un par de clics*)

### Pestañas

<figure><img src="/files/4aQ26qtgqsOvY3yTHRcS" alt=""><figcaption><p>Múltiples pestañas en Soulver X1</p></figcaption></figure>

Los documentos en Soulver X1 comienzan con una única pestaña, y puedes añadir más haciendo clic en el botón + a la derecha de la barra de pestañas.

**Cambiar el nombre de las pestañas**

Haz doble clic en el título de una pestaña para darle un nombre alternativo. Alternativamente, haz clic con el botón derecho del ratón en la pestaña y elige "Cambiar nombre".

**Eliminar pestañas**

Cuando pasas el ratón sobre una pestaña, haz clic en el botón x para eliminar. Alternativamente, haz clic con el botón derecho del ratón en la pestaña y elige "Eliminar"

{% hint style="warning" %}
Las pestañas son una característica en desarrollo.

No puedes reorganizar las pestañas (todavía), y añadir demasiadas pestañas en un solo documento no funciona correctamente.
{% endhint %}

### La hoja de encabezado

El encabezado es una hoja dedicada a definir variables, unidades, funciones y valores web que se pueden usar en todas las pestañas de tu documento.

<figure><img src="/files/16w86AdNvz98cLF6XTth" alt="" width="375"><figcaption></figcaption></figure>

### **Variables entre pestañas**

Declara variables para tu documento en el encabezado de la misma manera que declararías variables locales.

Por ejemplo:

```
mi variable = 123
```

`mi variable` estará disponible en todas tus hojas

{% hint style="info" %}
Tus pestañas solo pueden hacer referencia a variables, pero no pueden modificar su definición de tal manera que se aplique a otras hojas del documento.
{% endhint %}

### **Unidades de equivalencia**

Una unidad de equivalencia se define en términos de una unidad existente.

Define una nueva unidad de equivalencia en el encabezado usando (por ejemplo):

```
1 sandía = 10 lb
```

<figure><img src="/files/L3WBzDdSnWqpTRh5QvhJ" alt=""><figcaption><p>Declarar una nueva unidad de masa en Soulver X1</p></figcaption></figure>

Ahora se puede usar `sandía` como unidad de masa en todas tus pestañas.

<figure><img src="/files/bf7EwBFrgGxVbmF9CVjA" alt=""><figcaption><p>Usar una unidad de equivalencia personalizada en Soulver X1</p></figcaption></figure>

{% hint style="info" %}
Soulver X1 pluraliza automáticamente tu nueva unidad (en inglés).

Así que en este ejemplo, tanto "watermelons" serán reconocidos como un nombre de unidad válido, aunque la definición fuera "watermelon".
{% endhint %}

### **Unidades genéricas**

Una unidad de equivalencia es un tipo de unidad completamente nuevo, no definido en términos de una unidad existente.

Define una nueva unidad genérica en el encabezado usando (por ejemplo):

```
operación = nueva unidad
```

<figure><img src="/files/6P6YuTJ42pn0SAl0xlbO" alt=""><figcaption><p>Declarar un tipo de unidad genérica en Soulver X1</p></figcaption></figure>

La unidad `operación` ahora se puede usar en todas tus pestañas (incluyendo en tasas):

<figure><img src="/files/2d1AC1zWbz0qiDQeGVdk" alt=""><figcaption><p>Usar una unidad genérica en Soulver X1</p></figcaption></figure>

### **Funciones personalizadas**

**Introducción**

Una función es una frase útil que toma una entrada y devuelve una salida. En Soulver X1, puedes usar (casi) cualquier sintaxis para una función, incluyendo:

C-style: `doSomething(123)`

Swift-style: `doSomething(with: 123)`

Lenguaje natural: `hacer algo con 123`

**Para crear una nueva función personalizada (en el encabezado)**

* Haz clic en `Define New` > `Function`

**Elegir un nombre de función:**

<figure><img src="/files/sowjw2e2W7B8VIosNn2r" alt=""><figcaption><p>Declarar una nueva función en Soulver X1</p></figcaption></figure>

* Define tu función usando un ejemplo de cómo podrías usar la función en la práctica.
* Elige cualquier parámetro (siempre que coincida con el "tipo" de parámetro que esperas para tu implementación, como dinero, tiempo, números decimales simples, etc).

**Implementar su función:**

<figure><img src="/files/WzZmZE9DpDLybHNMzTyT" alt=""><figcaption><p>Escribir una función para calcular cuánto impuesto sobre las ventas hay en una cantidad determinada</p></figcaption></figure>

* Implementa la función en una hoja dedicada de Soulver. Cualquier parámetro se inyectará como tokens amarillos.
* Pasa el ratón sobre un token de parámetro para ver a qué parámetro se refiere en la declaración.
* La última línea de la hoja de implementación se devolverá como el valor final de la función.

**Usar su función**

<figure><img src="/files/QG1qmfETiRtupUKvYA2L" alt=""><figcaption></figcaption></figure>

Usa tu función con otros valores de entrada en todas tus hojas

### **Valores web (conexión a APIs JSON)**

#### **Para crear un nuevo valor web (en el encabezado)**

* Haz clic en `Define New` > `Web Value`

#### **Para conectarse a un punto de datos específico en un feed de datos JSON**

<figure><img src="/files/3gUnsn9TBWNC0zc5Rjhy" alt=""><figcaption><p>Conectarse a un feed de datos remoto en Soulver X1</p></figcaption></figure>

* Pega una URL a un feed de datos JSON, y luego simplemente haz clic en el punto de datos al que deseas conectarte

#### **Usar un valor web**

* A tu valor web se le asignará un nombre de variable (por defecto, coincidiendo con su descripción en el feed JSON)
* Estás libre de cambiar el nombre de la variable por otro.

#### **Actualizar un valor web**

* Tu valor web se actualizará automáticamente en segundo plano con la frecuencia que especificaste durante la configuración.

#### **Editar un valor web**

* Haz doble clic en el token de valor web amarillo en el encabezado para especificar un punto de datos diferente, o cambiar la frecuencia de actualización.

## Tipo de archivo de la Serie Soulver X

{% hint style="warning" %}
Las aplicaciones de la serie Soulver X utilizan un tipo de documento diferente (.slvrx) al de Soulver.

Esto es para soportar las nuevas características que estamos construyendo y experimentando.

Los archivos Soulver X (.slvrx) no pueden ser editados por Soulver 3 para Mac, iOS & iPad.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.soulver.app/es/experimental/x.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
