@lit-roa/base 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,30 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
1
+ # @lit-roa/base
2
+
3
+ Tokens de diseño, estilos y utilidades que comparten todos los componentes.
4
+ Normalmente no se instala directo: llega como dependencia de cada componente.
5
+
6
+ ## Personalizar el diseño en un sitio
7
+
8
+ Define las variables en el CSS global del sitio:
9
+
10
+ ```css
11
+ :root {
12
+ --lr-color-primario: #0f766e;
13
+ --lr-color-sobre-primario: #ffffff;
14
+ --lr-radio: 0.25rem;
15
+ --lr-fuente: 'Inter', sans-serif;
16
+ }
17
+ ```
18
+
19
+ | Variable | Uso |
20
+ | --- | --- |
21
+ | `--lr-color-primario` | Botones y acentos |
22
+ | `--lr-color-sobre-primario` | Texto sobre el color primario |
23
+ | `--lr-color-texto` | Texto principal |
24
+ | `--lr-color-texto-suave` | Texto secundario |
25
+ | `--lr-color-fondo` | Fondo de tarjetas |
26
+ | `--lr-color-borde` | Bordes |
27
+ | `--lr-radio` | Redondeo de esquinas |
28
+ | `--lr-espacio` | Espaciado base |
29
+ | `--lr-fuente` | Tipografía |
30
+ | `--lr-sombra` | Sombra de tarjetas |
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tokens de diseño. Cada sitio los cambia definiendo las variables
3
+ * `--lr-*` en su CSS global (por ejemplo en `:root`), sin tocar los
4
+ * componentes. Los valores de aquí son solo el respaldo.
5
+ */
6
+ export declare const tokens: import("lit").CSSResult;
7
+ /** Reinicio mínimo que comparten todos los componentes. */
8
+ export declare const estilosBase: import("lit").CSSResult;
9
+ //# sourceMappingURL=estilos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estilos.d.ts","sourceRoot":"","sources":["../src/estilos.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,MAAM,yBAalB,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,WAAW,yBAcvB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { css } from 'lit';
2
+ /**
3
+ * Tokens de diseño. Cada sitio los cambia definiendo las variables
4
+ * `--lr-*` en su CSS global (por ejemplo en `:root`), sin tocar los
5
+ * componentes. Los valores de aquí son solo el respaldo.
6
+ */
7
+ export const tokens = css `
8
+ :host {
9
+ --_color-primario: var(--lr-color-primario, #1d4ed8);
10
+ --_color-sobre-primario: var(--lr-color-sobre-primario, #ffffff);
11
+ --_color-texto: var(--lr-color-texto, #111827);
12
+ --_color-texto-suave: var(--lr-color-texto-suave, #6b7280);
13
+ --_color-fondo: var(--lr-color-fondo, #ffffff);
14
+ --_color-borde: var(--lr-color-borde, #e5e7eb);
15
+ --_radio: var(--lr-radio, 0.75rem);
16
+ --_espacio: var(--lr-espacio, 1rem);
17
+ --_fuente: var(--lr-fuente, system-ui, sans-serif);
18
+ --_sombra: var(--lr-sombra, 0 1px 3px rgb(0 0 0 / 0.1));
19
+ }
20
+ `;
21
+ /** Reinicio mínimo que comparten todos los componentes. */
22
+ export const estilosBase = css `
23
+ :host {
24
+ box-sizing: border-box;
25
+ font-family: var(--_fuente);
26
+ color: var(--_color-texto);
27
+ }
28
+ :host([hidden]) {
29
+ display: none;
30
+ }
31
+ *,
32
+ *::before,
33
+ *::after {
34
+ box-sizing: inherit;
35
+ }
36
+ `;
37
+ //# sourceMappingURL=estilos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estilos.js","sourceRoot":"","sources":["../src/estilos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;CAaxB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAA;;;;;;;;;;;;;;CAc7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Lanza un evento propio que atraviesa el shadow DOM, para que el sitio
3
+ * (Angular, WordPress, etc.) lo escuche con `addEventListener` o
4
+ * `(nombre-evento)="..."` en Angular.
5
+ */
6
+ export declare function emitir<T>(origen: HTMLElement, nombre: string, detalle?: T): boolean;
7
+ //# sourceMappingURL=eventos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventos.d.ts","sourceRoot":"","sources":["../src/eventos.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAInF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Lanza un evento propio que atraviesa el shadow DOM, para que el sitio
3
+ * (Angular, WordPress, etc.) lo escuche con `addEventListener` o
4
+ * `(nombre-evento)="..."` en Angular.
5
+ */
6
+ export function emitir(origen, nombre, detalle) {
7
+ return origen.dispatchEvent(new CustomEvent(nombre, { detail: detalle, bubbles: true, composed: true, cancelable: true }));
8
+ }
9
+ //# sourceMappingURL=eventos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventos.js","sourceRoot":"","sources":["../src/eventos.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAI,MAAmB,EAAE,MAAc,EAAE,OAAW;IACxE,OAAO,MAAM,CAAC,aAAa,CACzB,IAAI,WAAW,CAAI,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CACjG,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Formatea una cantidad como precio, por omisión en pesos mexicanos. */
2
+ export declare function formatearPrecio(cantidad: number, moneda?: string, idioma?: string): string;
3
+ //# sourceMappingURL=formato.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formato.d.ts","sourceRoot":"","sources":["../src/formato.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAQ,EAAE,MAAM,SAAU,GAAG,MAAM,CAE1F"}
@@ -0,0 +1,5 @@
1
+ /** Formatea una cantidad como precio, por omisión en pesos mexicanos. */
2
+ export function formatearPrecio(cantidad, moneda = 'MXN', idioma = 'es-MX') {
3
+ return new Intl.NumberFormat(idioma, { style: 'currency', currency: moneda }).format(cantidad);
4
+ }
5
+ //# sourceMappingURL=formato.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formato.js","sourceRoot":"","sources":["../src/formato.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,OAAO;IAChF,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjG,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { tokens, estilosBase } from './estilos.js';
2
+ export { formatearPrecio } from './formato.js';
3
+ export { emitir } from './eventos.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { tokens, estilosBase } from './estilos.js';
2
+ export { formatearPrecio } from './formato.js';
3
+ export { emitir } from './eventos.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,26 @@
1
- {
2
- "name": "@lit-roa/base",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
1
+ {
2
+ "name": "@lit-roa/base",
3
+ "version": "0.1.0",
4
+ "description": "Tokens de diseño, estilos y utilidades compartidas por los componentes.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "src"
17
+ ],
18
+ "sideEffects": false,
19
+ "scripts": {
20
+ "build": "tsc -b"
21
+ },
22
+ "dependencies": {
23
+ "lit": "^3.3.3"
24
+ },
25
+ "license": "MIT"
26
+ }
package/src/estilos.ts ADDED
@@ -0,0 +1,38 @@
1
+ import { css } from 'lit';
2
+
3
+ /**
4
+ * Tokens de diseño. Cada sitio los cambia definiendo las variables
5
+ * `--lr-*` en su CSS global (por ejemplo en `:root`), sin tocar los
6
+ * componentes. Los valores de aquí son solo el respaldo.
7
+ */
8
+ export const tokens = css`
9
+ :host {
10
+ --_color-primario: var(--lr-color-primario, #1d4ed8);
11
+ --_color-sobre-primario: var(--lr-color-sobre-primario, #ffffff);
12
+ --_color-texto: var(--lr-color-texto, #111827);
13
+ --_color-texto-suave: var(--lr-color-texto-suave, #6b7280);
14
+ --_color-fondo: var(--lr-color-fondo, #ffffff);
15
+ --_color-borde: var(--lr-color-borde, #e5e7eb);
16
+ --_radio: var(--lr-radio, 0.75rem);
17
+ --_espacio: var(--lr-espacio, 1rem);
18
+ --_fuente: var(--lr-fuente, system-ui, sans-serif);
19
+ --_sombra: var(--lr-sombra, 0 1px 3px rgb(0 0 0 / 0.1));
20
+ }
21
+ `;
22
+
23
+ /** Reinicio mínimo que comparten todos los componentes. */
24
+ export const estilosBase = css`
25
+ :host {
26
+ box-sizing: border-box;
27
+ font-family: var(--_fuente);
28
+ color: var(--_color-texto);
29
+ }
30
+ :host([hidden]) {
31
+ display: none;
32
+ }
33
+ *,
34
+ *::before,
35
+ *::after {
36
+ box-sizing: inherit;
37
+ }
38
+ `;
package/src/eventos.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Lanza un evento propio que atraviesa el shadow DOM, para que el sitio
3
+ * (Angular, WordPress, etc.) lo escuche con `addEventListener` o
4
+ * `(nombre-evento)="..."` en Angular.
5
+ */
6
+ export function emitir<T>(origen: HTMLElement, nombre: string, detalle?: T): boolean {
7
+ return origen.dispatchEvent(
8
+ new CustomEvent<T>(nombre, { detail: detalle, bubbles: true, composed: true, cancelable: true }),
9
+ );
10
+ }
package/src/formato.ts ADDED
@@ -0,0 +1,4 @@
1
+ /** Formatea una cantidad como precio, por omisión en pesos mexicanos. */
2
+ export function formatearPrecio(cantidad: number, moneda = 'MXN', idioma = 'es-MX'): string {
3
+ return new Intl.NumberFormat(idioma, { style: 'currency', currency: moneda }).format(cantidad);
4
+ }
package/src/index.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { tokens, estilosBase } from './estilos.js';
2
+ export { formatearPrecio } from './formato.js';
3
+ export { emitir } from './eventos.js';