@erplora/outfitkit 0.1.1

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.
Files changed (210) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +457 -0
  3. package/dist/base/anchor.d.ts +13 -0
  4. package/dist/base/define.d.ts +1 -0
  5. package/dist/base/relay.d.ts +1 -0
  6. package/dist/cdn.d.ts +96 -0
  7. package/dist/components/ok-app-launcher/ok-app-launcher.d.ts +57 -0
  8. package/dist/components/ok-audio/ok-audio.d.ts +45 -0
  9. package/dist/components/ok-avatar/ok-avatar.d.ts +36 -0
  10. package/dist/components/ok-avatar-group/ok-avatar-group.d.ts +38 -0
  11. package/dist/components/ok-bar-list/ok-bar-list.d.ts +36 -0
  12. package/dist/components/ok-bento/ok-bento.d.ts +17 -0
  13. package/dist/components/ok-bento-item/ok-bento-item.d.ts +34 -0
  14. package/dist/components/ok-calculator/ok-calculator.d.ts +46 -0
  15. package/dist/components/ok-calendar/ok-calendar.d.ts +63 -0
  16. package/dist/components/ok-carousel/ok-carousel.d.ts +48 -0
  17. package/dist/components/ok-chart/ok-chart.d.ts +55 -0
  18. package/dist/components/ok-chat/ok-chat.d.ts +54 -0
  19. package/dist/components/ok-coachmark/ok-coachmark.d.ts +69 -0
  20. package/dist/components/ok-code/ok-code.d.ts +28 -0
  21. package/dist/components/ok-color-picker/ok-color-picker.d.ts +63 -0
  22. package/dist/components/ok-combo/ok-combo.d.ts +46 -0
  23. package/dist/components/ok-command-palette/ok-command-palette.d.ts +72 -0
  24. package/dist/components/ok-contact-form/ok-contact-form.d.ts +54 -0
  25. package/dist/components/ok-cropper/ok-cropper.d.ts +60 -0
  26. package/dist/components/ok-cta-band/ok-cta-band.d.ts +18 -0
  27. package/dist/components/ok-currency/ok-currency.d.ts +31 -0
  28. package/dist/components/ok-data-table/ok-data-table.d.ts +312 -0
  29. package/dist/components/ok-date-picker/ok-date-picker.d.ts +81 -0
  30. package/dist/components/ok-detail-list/ok-detail-list.d.ts +30 -0
  31. package/dist/components/ok-diff/ok-diff.d.ts +38 -0
  32. package/dist/components/ok-donut/ok-donut.d.ts +38 -0
  33. package/dist/components/ok-drawer/ok-drawer.d.ts +56 -0
  34. package/dist/components/ok-dropzone/ok-dropzone.d.ts +48 -0
  35. package/dist/components/ok-empty-state/ok-empty-state.d.ts +16 -0
  36. package/dist/components/ok-error-page/ok-error-page.d.ts +77 -0
  37. package/dist/components/ok-event-card/ok-event-card.d.ts +56 -0
  38. package/dist/components/ok-feature-card/ok-feature-card.d.ts +23 -0
  39. package/dist/components/ok-file-item/ok-file-item.d.ts +31 -0
  40. package/dist/components/ok-file-manager/ok-file-manager.d.ts +145 -0
  41. package/dist/components/ok-footer/ok-footer.d.ts +10 -0
  42. package/dist/components/ok-funnel/ok-funnel.d.ts +31 -0
  43. package/dist/components/ok-gallery/ok-gallery.d.ts +34 -0
  44. package/dist/components/ok-gauge/ok-gauge.d.ts +49 -0
  45. package/dist/components/ok-heatmap/ok-heatmap.d.ts +45 -0
  46. package/dist/components/ok-hero/ok-hero.d.ts +10 -0
  47. package/dist/components/ok-hover-card/ok-hover-card.d.ts +76 -0
  48. package/dist/components/ok-icon-tile/ok-icon-tile.d.ts +24 -0
  49. package/dist/components/ok-image/ok-image.d.ts +56 -0
  50. package/dist/components/ok-inline-feedback/ok-inline-feedback.d.ts +33 -0
  51. package/dist/components/ok-invoice/ok-invoice.d.ts +137 -0
  52. package/dist/components/ok-json-viewer/ok-json-viewer.d.ts +31 -0
  53. package/dist/components/ok-kanban/ok-kanban.d.ts +56 -0
  54. package/dist/components/ok-kbd/ok-kbd.d.ts +21 -0
  55. package/dist/components/ok-keyboard/ok-keyboard.d.ts +35 -0
  56. package/dist/components/ok-kpi/ok-kpi.d.ts +24 -0
  57. package/dist/components/ok-language-select/ok-language-select.d.ts +31 -0
  58. package/dist/components/ok-lightbox/ok-lightbox.d.ts +59 -0
  59. package/dist/components/ok-logo-cloud/ok-logo-cloud.d.ts +14 -0
  60. package/dist/components/ok-loyalty-card/ok-loyalty-card.d.ts +35 -0
  61. package/dist/components/ok-mail/ok-mail.d.ts +117 -0
  62. package/dist/components/ok-menu/ok-menu.d.ts +75 -0
  63. package/dist/components/ok-menubar/ok-menubar.d.ts +75 -0
  64. package/dist/components/ok-navbar/ok-navbar.d.ts +42 -0
  65. package/dist/components/ok-notification-center/ok-notification-center.d.ts +79 -0
  66. package/dist/components/ok-org-chart/ok-org-chart.d.ts +67 -0
  67. package/dist/components/ok-otp/ok-otp.d.ts +31 -0
  68. package/dist/components/ok-page-header/ok-page-header.d.ts +23 -0
  69. package/dist/components/ok-pagination/ok-pagination.d.ts +44 -0
  70. package/dist/components/ok-pdf/ok-pdf.d.ts +32 -0
  71. package/dist/components/ok-phone/ok-phone.d.ts +48 -0
  72. package/dist/components/ok-pinpad/ok-pinpad.d.ts +29 -0
  73. package/dist/components/ok-pricing-card/ok-pricing-card.d.ts +31 -0
  74. package/dist/components/ok-product-card/ok-product-card.d.ts +25 -0
  75. package/dist/components/ok-qr/ok-qr.d.ts +24 -0
  76. package/dist/components/ok-qty-stepper/ok-qty-stepper.d.ts +35 -0
  77. package/dist/components/ok-range-dual/ok-range-dual.d.ts +38 -0
  78. package/dist/components/ok-rating/ok-rating.d.ts +33 -0
  79. package/dist/components/ok-receipt/ok-receipt.d.ts +103 -0
  80. package/dist/components/ok-reveal/ok-reveal.d.ts +21 -0
  81. package/dist/components/ok-rich-text/ok-rich-text.d.ts +46 -0
  82. package/dist/components/ok-scheduler/ok-scheduler.d.ts +74 -0
  83. package/dist/components/ok-select-card/ok-select-card.d.ts +37 -0
  84. package/dist/components/ok-signature/ok-signature.d.ts +55 -0
  85. package/dist/components/ok-skeleton/ok-skeleton.d.ts +40 -0
  86. package/dist/components/ok-sparkline/ok-sparkline.d.ts +27 -0
  87. package/dist/components/ok-split-button/ok-split-button.d.ts +49 -0
  88. package/dist/components/ok-splitter/ok-splitter.d.ts +36 -0
  89. package/dist/components/ok-stat/ok-stat.d.ts +16 -0
  90. package/dist/components/ok-status-dot/ok-status-dot.d.ts +24 -0
  91. package/dist/components/ok-status-pill/ok-status-pill.d.ts +22 -0
  92. package/dist/components/ok-stepper/ok-stepper.d.ts +33 -0
  93. package/dist/components/ok-store/ok-store.d.ts +33 -0
  94. package/dist/components/ok-tag-input/ok-tag-input.d.ts +39 -0
  95. package/dist/components/ok-testimonial/ok-testimonial.d.ts +21 -0
  96. package/dist/components/ok-time-picker/ok-time-picker.d.ts +50 -0
  97. package/dist/components/ok-timeline/ok-timeline.d.ts +33 -0
  98. package/dist/components/ok-tree/ok-tree.d.ts +46 -0
  99. package/dist/components/ok-video/ok-video.d.ts +49 -0
  100. package/dist/components/ok-widget-board/ok-widget-board.d.ts +71 -0
  101. package/dist/components/ok-wizard/ok-wizard.d.ts +30 -0
  102. package/dist/define.js +8 -0
  103. package/dist/erplora.css +112 -0
  104. package/dist/index.d.ts +158 -0
  105. package/dist/index.js +197 -0
  106. package/dist/layout.css +338 -0
  107. package/dist/ok-app-launcher.js +396 -0
  108. package/dist/ok-audio.js +308 -0
  109. package/dist/ok-avatar-group.js +158 -0
  110. package/dist/ok-avatar.js +179 -0
  111. package/dist/ok-bar-list.js +189 -0
  112. package/dist/ok-bento-item.js +168 -0
  113. package/dist/ok-bento.js +63 -0
  114. package/dist/ok-calculator.js +406 -0
  115. package/dist/ok-calendar.js +541 -0
  116. package/dist/ok-carousel.js +352 -0
  117. package/dist/ok-chart.js +325 -0
  118. package/dist/ok-chat.js +320 -0
  119. package/dist/ok-coachmark.js +500 -0
  120. package/dist/ok-code.js +190 -0
  121. package/dist/ok-color-picker.js +569 -0
  122. package/dist/ok-combo.js +294 -0
  123. package/dist/ok-command-palette.js +448 -0
  124. package/dist/ok-contact-form.js +288 -0
  125. package/dist/ok-cropper.js +404 -0
  126. package/dist/ok-cta-band.js +134 -0
  127. package/dist/ok-currency.js +172 -0
  128. package/dist/ok-data-table.js +1281 -0
  129. package/dist/ok-date-picker.js +736 -0
  130. package/dist/ok-detail-list.js +156 -0
  131. package/dist/ok-diff.js +200 -0
  132. package/dist/ok-donut.js +280 -0
  133. package/dist/ok-drawer.js +357 -0
  134. package/dist/ok-dropzone.js +376 -0
  135. package/dist/ok-empty-state.js +104 -0
  136. package/dist/ok-error-page.js +547 -0
  137. package/dist/ok-event-card.js +384 -0
  138. package/dist/ok-feature-card.js +152 -0
  139. package/dist/ok-file-item.js +259 -0
  140. package/dist/ok-file-manager.js +1116 -0
  141. package/dist/ok-footer.js +67 -0
  142. package/dist/ok-funnel.js +181 -0
  143. package/dist/ok-gallery.js +293 -0
  144. package/dist/ok-gauge.js +385 -0
  145. package/dist/ok-heatmap.js +268 -0
  146. package/dist/ok-hero.js +43 -0
  147. package/dist/ok-hover-card.js +480 -0
  148. package/dist/ok-icon-tile.js +123 -0
  149. package/dist/ok-image.js +471 -0
  150. package/dist/ok-inline-feedback.js +221 -0
  151. package/dist/ok-invoice.js +229 -0
  152. package/dist/ok-json-viewer.js +330 -0
  153. package/dist/ok-kanban.js +427 -0
  154. package/dist/ok-kbd.js +159 -0
  155. package/dist/ok-keyboard.js +402 -0
  156. package/dist/ok-kpi.js +147 -0
  157. package/dist/ok-language-select.js +188 -0
  158. package/dist/ok-lightbox.js +490 -0
  159. package/dist/ok-logo-cloud.js +92 -0
  160. package/dist/ok-loyalty-card.js +353 -0
  161. package/dist/ok-mail.js +562 -0
  162. package/dist/ok-menu.js +529 -0
  163. package/dist/ok-menubar.js +628 -0
  164. package/dist/ok-navbar.js +306 -0
  165. package/dist/ok-notification-center.js +545 -0
  166. package/dist/ok-org-chart.js +619 -0
  167. package/dist/ok-otp.js +199 -0
  168. package/dist/ok-page-header.js +202 -0
  169. package/dist/ok-pagination.js +366 -0
  170. package/dist/ok-pdf.js +160 -0
  171. package/dist/ok-phone.js +225 -0
  172. package/dist/ok-pinpad.js +171 -0
  173. package/dist/ok-pricing-card.js +184 -0
  174. package/dist/ok-product-card.js +178 -0
  175. package/dist/ok-qr.js +652 -0
  176. package/dist/ok-qty-stepper.js +212 -0
  177. package/dist/ok-range-dual.js +280 -0
  178. package/dist/ok-rating.js +199 -0
  179. package/dist/ok-receipt.js +183 -0
  180. package/dist/ok-reveal.js +94 -0
  181. package/dist/ok-rich-text.js +538 -0
  182. package/dist/ok-scheduler.js +518 -0
  183. package/dist/ok-select-card.js +231 -0
  184. package/dist/ok-signature.js +267 -0
  185. package/dist/ok-skeleton.js +345 -0
  186. package/dist/ok-sparkline.js +150 -0
  187. package/dist/ok-split-button.js +251 -0
  188. package/dist/ok-splitter.js +289 -0
  189. package/dist/ok-stat.js +77 -0
  190. package/dist/ok-status-dot.js +163 -0
  191. package/dist/ok-status-pill.js +123 -0
  192. package/dist/ok-stepper.js +299 -0
  193. package/dist/ok-store.js +83 -0
  194. package/dist/ok-tag-input.js +358 -0
  195. package/dist/ok-testimonial.js +136 -0
  196. package/dist/ok-time-picker.js +472 -0
  197. package/dist/ok-timeline.js +251 -0
  198. package/dist/ok-tree.js +266 -0
  199. package/dist/ok-video.js +362 -0
  200. package/dist/ok-widget-board.js +265 -0
  201. package/dist/ok-wizard.js +153 -0
  202. package/dist/outfitkit.js +96 -0
  203. package/dist/shared/anchor.js +14 -0
  204. package/dist/store/controller.d.ts +17 -0
  205. package/dist/store/idb.d.ts +16 -0
  206. package/dist/store/store.d.ts +39 -0
  207. package/dist/store-controller.js +31 -0
  208. package/dist/store.js +182 -0
  209. package/dist/theme.example.css +70 -0
  210. package/package.json +147 -0
@@ -0,0 +1,49 @@
1
+ import { LitElement } from 'lit';
2
+ /** Una zona/umbral cualitativo del gauge. Se aplica hasta el valor `to`. */
3
+ export interface OkGaugeThreshold {
4
+ /** Límite superior de la zona (en la escala min..max). */
5
+ to: number;
6
+ /** Color de la zona (cualquier color CSS válido). */
7
+ color: string;
8
+ }
9
+ /** Tipo de gauge a renderizar. */
10
+ export type OkGaugeType = 'arc' | 'ring' | 'bullet';
11
+ export declare class OkGauge extends LitElement {
12
+ static styles: import("lit").CSSResult;
13
+ /** Tipo de gauge: semicírculo, anillo o barra bullet. */
14
+ type: OkGaugeType;
15
+ /** Valor actual a representar. */
16
+ value: number;
17
+ /** Mínimo de la escala. */
18
+ min: number;
19
+ /** Máximo de la escala. */
20
+ max: number;
21
+ /** Zonas cualitativas (cada una se pinta hasta `to`); también fijan el color del relleno. */
22
+ thresholds: OkGaugeThreshold[];
23
+ /** Marcador de objetivo (bullet); si no se da, no se dibuja. */
24
+ target?: number;
25
+ /** Etiqueta principal (mayúsculas, muted). */
26
+ label?: string;
27
+ /** Texto secundario bajo el valor / a la derecha del valor en bullet. */
28
+ sublabel?: string;
29
+ /** Color explícito del relleno; tiene prioridad sobre los thresholds. */
30
+ color: string;
31
+ /** Tamaño en px del diámetro (arc/ring); el alto del arc es la mitad. */
32
+ size: number;
33
+ /** Sufijo del valor (ej. '%'); por defecto '%'. */
34
+ unit: string;
35
+ private get fraction();
36
+ private get fillColor();
37
+ private renderValueText;
38
+ private renderArc;
39
+ private renderRing;
40
+ private renderBullet;
41
+ private zoneTint;
42
+ private ariaText;
43
+ render(): unknown;
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'ok-gauge': OkGauge;
48
+ }
49
+ }
@@ -0,0 +1,45 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkHeatmapCell {
3
+ /** Fecha ISO (YYYY-MM-DD) o cualquier cosa parseable por Date; ubica la celda en el calendario. */
4
+ date?: string;
5
+ /** Valor crudo; se convierte a tier de intensidad por cuantiles. */
6
+ value?: number;
7
+ /** Clave libre para identificar la celda (modo sin fecha). */
8
+ key?: string;
9
+ /** Nivel/tier explícito 0..(levels-1); tiene prioridad sobre value. */
10
+ level?: number;
11
+ /** Tooltip opcional; si no, se autogenera (fecha · valor). */
12
+ label?: string;
13
+ }
14
+ export type OkHeatmapLayout = 'weeks' | 'year';
15
+ export declare class OkHeatmap extends LitElement {
16
+ static styles: import("lit").CSSResult;
17
+ /** Datos a pintar: array de {date,value} o {key,level}. */
18
+ data: OkHeatmapCell[];
19
+ /** Número de niveles de intensidad (incluye el nivel 0 = vacío). Por defecto 5 (tiers 0..4). */
20
+ levels: number;
21
+ /** Color base de la escala (sobrescribe el token --brand si se da). */
22
+ scale: string;
23
+ /** Layout: 'weeks' (flujo por columnas) o 'year' (12 meses). */
24
+ layout: OkHeatmapLayout;
25
+ /** Tamaño de celda en px (solo aplica al layout 'weeks'). */
26
+ cellSize: number;
27
+ /** Muestra la leyenda Menos → Más. */
28
+ legend: boolean;
29
+ private get maxTier();
30
+ private hostStyle;
31
+ private thresholds;
32
+ private tierOf;
33
+ private titleOf;
34
+ private resolve;
35
+ private renderCell;
36
+ private renderWeeks;
37
+ private renderYear;
38
+ private renderLegend;
39
+ render(): unknown;
40
+ }
41
+ declare global {
42
+ interface HTMLElementTagNameMap {
43
+ 'ok-heatmap': OkHeatmap;
44
+ }
45
+ }
@@ -0,0 +1,10 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class OkHero extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ render(): unknown;
5
+ }
6
+ declare global {
7
+ interface HTMLElementTagNameMap {
8
+ 'ok-hero': OkHero;
9
+ }
10
+ }
@@ -0,0 +1,76 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkHoverCardStat {
3
+ /** Cifra destacada (negrita, tabular). */
4
+ value: string;
5
+ /** Etiqueta muted bajo la cifra. */
6
+ label: string;
7
+ }
8
+ export interface OkHoverCardAction {
9
+ /** Identificador del botón (se emite en `ok-action`). */
10
+ id: string;
11
+ /** Texto del botón. */
12
+ label: string;
13
+ /** Si está, al hacer click navega a esta URL en lugar de emitir evento. */
14
+ href?: string;
15
+ /** Realce de marca (botón primario). */
16
+ brand?: boolean;
17
+ }
18
+ export type OkHoverCardPlacement = 'bottom' | 'top';
19
+ export interface OkHoverCardLabels {
20
+ /** aria-label de la tarjeta (cuando no hay título). */
21
+ card: string;
22
+ }
23
+ export declare class OkHoverCard extends LitElement {
24
+ static styles: import("lit").CSSResult;
25
+ /** Nombre mostrado (título de la tarjeta). */
26
+ name?: string;
27
+ /** Badge opcional junto al título (p. ej. rol). */
28
+ badge?: string;
29
+ /** @handle / línea secundaria (mono, muted). */
30
+ handle?: string;
31
+ /** Iniciales o texto del avatar (si no hay `avatarSrc`). */
32
+ avatar?: string;
33
+ /** URL de imagen del avatar (sobrescribe `avatar`). */
34
+ avatarSrc?: string;
35
+ /** Texto del cuerpo (si no se usa `slot="content"`). */
36
+ body?: string;
37
+ /** Fila de cifras tabulares (hasta 3). */
38
+ stats: OkHoverCardStat[];
39
+ /** Botones del pie (hasta 2). */
40
+ actions: OkHoverCardAction[];
41
+ /** Colocación preferida (se voltea si no cabe). */
42
+ placement: OkHoverCardPlacement;
43
+ /** Retardo (ms) antes de abrir al entrar el hover. */
44
+ openDelay: number;
45
+ /** Retardo (ms) antes de cerrar al salir el hover. */
46
+ closeDelay: number;
47
+ /** Textos traducibles (merge sobre los defaults en inglés). */
48
+ labels: Partial<OkHoverCardLabels>;
49
+ private open;
50
+ private shown;
51
+ private end;
52
+ private above;
53
+ private cardEl?;
54
+ private triggerEl?;
55
+ private openTimer?;
56
+ private closeTimer?;
57
+ private get t();
58
+ disconnectedCallback(): void;
59
+ private clearTimers;
60
+ private scheduleOpen;
61
+ private scheduleClose;
62
+ private show;
63
+ private hide;
64
+ private anchor;
65
+ private fitsBelow;
66
+ private prefersReducedMotion;
67
+ private readonly onKeydown;
68
+ private runAction;
69
+ private renderAvatar;
70
+ render(): unknown;
71
+ }
72
+ declare global {
73
+ interface HTMLElementTagNameMap {
74
+ 'ok-hover-card': OkHoverCard;
75
+ }
76
+ }
@@ -0,0 +1,24 @@
1
+ import { LitElement } from 'lit';
2
+ export type OkIconTileColor = 'brand' | 'leaf' | 'warn' | 'danger' | 'info' | 'neutral';
3
+ export type OkIconTileSize = 'md' | 'lg';
4
+ export type OkIconTileShape = 'rounded' | 'circle';
5
+ export declare class OkIconTile extends LitElement {
6
+ static styles: import("lit").CSSResult;
7
+ /** Nombre del icono (Iconify, p.ej. "ion:home-outline" o "home-outline"). */
8
+ icon?: string;
9
+ /** Par de color (fondo soft + color del icono). */
10
+ color: OkIconTileColor;
11
+ /** Tamaño del tile. */
12
+ size: OkIconTileSize;
13
+ /** Forma del recorte. */
14
+ shape: OkIconTileShape;
15
+ /** Etiqueta accesible; si falta, el tile es decorativo (aria-hidden). */
16
+ label?: string;
17
+ private renderIcon;
18
+ render(): unknown;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'ok-icon-tile': OkIconTile;
23
+ }
24
+ }
@@ -0,0 +1,56 @@
1
+ import { LitElement } from 'lit';
2
+ /** Relación de aspecto del marco. */
3
+ export type OkImageRatio = '16:9' | 'square' | 'portrait' | 'free';
4
+ /** Radio de las esquinas. */
5
+ export type OkImageRadius = 'sm' | 'md' | 'lg';
6
+ /** Modo de zoom/interacción. */
7
+ export type OkImageZoom = 'none' | 'lens' | 'lightbox';
8
+ export declare class OkImage extends LitElement {
9
+ static styles: import("lit").CSSResult;
10
+ /** URL de la imagen. */
11
+ src: string;
12
+ /** Texto alternativo (accesibilidad). */
13
+ alt: string;
14
+ /** Relación de aspecto del marco. */
15
+ ratio: OkImageRatio;
16
+ /** Caption opcional pinned abajo con degradado. */
17
+ caption?: string;
18
+ /** Radio de esquinas. */
19
+ radius: OkImageRadius;
20
+ /** Modo de zoom/interacción. */
21
+ zoom: OkImageZoom;
22
+ /** Texto del placeholder mientras carga. */
23
+ placeholderText: string;
24
+ /** true cuando la imagen ha cargado (fade-in). */
25
+ private loaded;
26
+ /** true si la imagen falló al cargar. */
27
+ private errored;
28
+ /** true mientras el cursor está sobre la imagen en modo lens. */
29
+ private zooming;
30
+ /** true mientras el overlay lightbox está abierto. */
31
+ private lightboxOpen;
32
+ /** Posición (%) de la lente, seguida con el puntero. */
33
+ private lensX;
34
+ private lensY;
35
+ protected willUpdate(changed: Map<string, unknown>): void;
36
+ private onLoad;
37
+ private onError;
38
+ private onPointerMove;
39
+ private onFrameClick;
40
+ private onPointerEnter;
41
+ private onPointerLeave;
42
+ private openLightbox;
43
+ private closeLightbox;
44
+ private onKeydown;
45
+ connectedCallback(): void;
46
+ disconnectedCallback(): void;
47
+ private renderLens;
48
+ private renderLightboxHint;
49
+ private renderLightbox;
50
+ render(): unknown;
51
+ }
52
+ declare global {
53
+ interface HTMLElementTagNameMap {
54
+ 'ok-image': OkImage;
55
+ }
56
+ }
@@ -0,0 +1,33 @@
1
+ import { LitElement } from 'lit';
2
+ export type OkInlineFeedbackTone = 'info' | 'success' | 'warning' | 'danger' | 'neutral';
3
+ export interface OkInlineFeedbackLabels {
4
+ /** aria-label del botón de cierre. */
5
+ dismiss: string;
6
+ }
7
+ export declare class OkInlineFeedback extends LitElement {
8
+ static styles: import("lit").CSSResult;
9
+ /** Tono del banner: define color e icono por defecto. */
10
+ tone: OkInlineFeedbackTone;
11
+ /** Título en negrita (opcional). */
12
+ heading?: string;
13
+ /** Nombre de icono ion-icon que sobrescribe el icono por defecto del tono (opcional). */
14
+ icon?: string;
15
+ /** Muestra el botón de cierre. */
16
+ dismissible: boolean;
17
+ /** Oculta el banner (reflejado para CSS y consumidores externos). */
18
+ hidden: boolean;
19
+ /** Textos traducibles (merge sobre los defaults en inglés). */
20
+ labels: Partial<OkInlineFeedbackLabels>;
21
+ private get t();
22
+ /** Marca si el slot de actions tiene contenido (para colapsar el contenedor vacío). */
23
+ private hasActions;
24
+ private defaultIcon;
25
+ private onActionsSlotChange;
26
+ private dismiss;
27
+ render(): unknown;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'ok-inline-feedback': OkInlineFeedback;
32
+ }
33
+ }
@@ -0,0 +1,137 @@
1
+ import { LitElement } from 'lit';
2
+ import '../ok-qr/ok-qr.js';
3
+ /** Parte fiscal (emisor o receptor). */
4
+ export interface InvoiceParty {
5
+ name: string;
6
+ /** NIF / CIF / VAT. */
7
+ tax_id?: string;
8
+ address?: string;
9
+ city?: string;
10
+ postal_code?: string;
11
+ country?: string;
12
+ email?: string;
13
+ phone?: string;
14
+ }
15
+ /** Una línea de factura. */
16
+ export interface InvoiceLine {
17
+ description: string;
18
+ qty: number;
19
+ unit_price: number;
20
+ /** % de descuento sobre la línea (opcional). */
21
+ discount_percent?: number;
22
+ /** % de impuesto aplicado a la línea (informativo; el cálculo va en `taxes`). */
23
+ tax_rate?: number;
24
+ /** Importe de la línea (neto tras descuento, sin impuesto). */
25
+ total: number;
26
+ }
27
+ /** Resumen de un tipo impositivo. */
28
+ export interface InvoiceTaxLine {
29
+ /** Etiqueta (p.ej. "IVA 21%"). */
30
+ label: string;
31
+ /** Tipo en % (p.ej. 21). */
32
+ rate?: number;
33
+ base: number;
34
+ amount: number;
35
+ }
36
+ export interface OkInvoiceLabels {
37
+ /** Mensaje cuando no hay datos de factura. */
38
+ empty: string;
39
+ /** Título del documento (cabecera derecha). */
40
+ invoice: string;
41
+ /** Etiqueta del nº de factura. */
42
+ number: string;
43
+ /** Etiqueta de la fecha de emisión. */
44
+ date: string;
45
+ /** Etiqueta de la fecha de vencimiento. */
46
+ dueDate: string;
47
+ /** Cabecera del bloque receptor. */
48
+ billTo: string;
49
+ /** Cabecera de columna: descripción. */
50
+ description: string;
51
+ /** Cabecera de columna: cantidad. */
52
+ qty: string;
53
+ /** Cabecera de columna: precio unitario. */
54
+ price: string;
55
+ /** Cabecera de columna: descuento. */
56
+ discount: string;
57
+ /** Cabecera de columna: impuesto. */
58
+ tax: string;
59
+ /** Cabecera de columna: importe de línea. */
60
+ amount: string;
61
+ /** Mensaje cuando no hay líneas. */
62
+ noLines: string;
63
+ /** Etiqueta de la base imponible. */
64
+ taxBase: string;
65
+ /** Etiqueta del descuento total. */
66
+ discountTotal: string;
67
+ /** Etiqueta del total. */
68
+ total: string;
69
+ /** Cabecera de la forma de pago. */
70
+ paymentMethod: string;
71
+ }
72
+ /** JSON completo de la factura. */
73
+ export interface InvoiceData {
74
+ /** Emisor (con logo opcional). */
75
+ issuer: InvoiceParty & {
76
+ logo_url?: string;
77
+ };
78
+ /** Receptor / cliente. */
79
+ customer: InvoiceParty;
80
+ /** Tipo fiscal (p.ej. 'F1' completa, 'F2' simplificada, 'R1' rectificativa). */
81
+ type?: string;
82
+ /** Nº de factura (serie + número). */
83
+ number: string;
84
+ /** Fecha de emisión (ya formateada o ISO legible). */
85
+ issue_date: string;
86
+ /** Fecha de vencimiento (opcional). */
87
+ due_date?: string;
88
+ lines: InvoiceLine[];
89
+ /** Base imponible total (suma de netos). */
90
+ subtotal: number;
91
+ /** Descuento total agregado (opcional). */
92
+ discount_total?: number;
93
+ /** Resumen de impuestos por tipo. */
94
+ taxes: InvoiceTaxLine[];
95
+ /** Suma de impuestos. */
96
+ tax_total: number;
97
+ /** Total a pagar. */
98
+ total: number;
99
+ /** Símbolo de moneda (def. '€'). */
100
+ currency?: string;
101
+ /** Método de pago (p.ej. "Transferencia", "Tarjeta"). */
102
+ payment_method?: string;
103
+ /** Condiciones de pago / IBAN / vencimiento textual. */
104
+ payment_terms?: string;
105
+ /** Notas libres. */
106
+ notes?: string;
107
+ /** Pie legal (LOPD, registro mercantil, etc.). */
108
+ footer?: string;
109
+ /** Payload del QR (VeriFactu / verificación). Si vacío, no se pinta. */
110
+ qr?: string;
111
+ /** Leyenda bajo el QR. */
112
+ qr_note?: string;
113
+ }
114
+ export declare class OkInvoice extends LitElement {
115
+ static styles: import("lit").CSSResult;
116
+ /** JSON de la factura a renderizar. */
117
+ invoice?: InvoiceData;
118
+ /** Tamaño del QR en px (lado). */
119
+ qrSize: number;
120
+ /** Textos traducibles (merge sobre los defaults en inglés). */
121
+ labels: Partial<OkInvoiceLabels>;
122
+ private get t();
123
+ private cur;
124
+ private money;
125
+ render(): import("lit").TemplateResult<1>;
126
+ private party;
127
+ private renderTop;
128
+ private renderBillTo;
129
+ private renderLines;
130
+ private renderSummary;
131
+ private renderFoot;
132
+ }
133
+ declare global {
134
+ interface HTMLElementTagNameMap {
135
+ 'ok-invoice': OkInvoice;
136
+ }
137
+ }
@@ -0,0 +1,31 @@
1
+ import { LitElement } from 'lit';
2
+ /** Tamaño visual del visor. */
3
+ export type OkJsonViewerSize = 'compact' | 'default' | 'lg';
4
+ /** Valor JSON cualquiera (recursivo). */
5
+ export type OkJsonValue = string | number | boolean | null | OkJsonValue[] | {
6
+ [key: string]: OkJsonValue;
7
+ };
8
+ export declare class OkJsonViewer extends LitElement {
9
+ static styles: import("lit").CSSResult;
10
+ /** Datos a visualizar: valor JSON, o un string JSON que se parsea. */
11
+ data: OkJsonValue | string;
12
+ /** Tamaño visual: compact | default | lg. */
13
+ size: OkJsonViewerSize;
14
+ /** Profundidad inicial expandida (default 1; usa -1 para expandir todo). */
15
+ expandedDepth: number;
16
+ private collapsed;
17
+ private get value();
18
+ private static hasChildren;
19
+ private isExpanded;
20
+ private toggle;
21
+ private static caretSvg;
22
+ private static renderLeaf;
23
+ private static countLabel;
24
+ private renderRow;
25
+ render(): unknown;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'ok-json-viewer': OkJsonViewer;
30
+ }
31
+ }
@@ -0,0 +1,56 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkKanbanCard {
3
+ /** Identificador único de la tarjeta (clave de movimiento/click). */
4
+ id: string;
5
+ /** Título principal de la tarjeta. */
6
+ title: string;
7
+ /** Texto secundario opcional bajo el título. */
8
+ subtitle?: string;
9
+ /** Etiquetas opcionales mostradas como chips. */
10
+ tags?: string[];
11
+ }
12
+ export interface OkKanbanColumn {
13
+ /** Identificador único de la columna. */
14
+ id: string;
15
+ /** Título visible en la cabecera. */
16
+ title: string;
17
+ /** Color de acento opcional (cualquier valor CSS) para la franja/cabecera. */
18
+ color?: string;
19
+ /** Tarjetas de la columna, en orden. */
20
+ cards: OkKanbanCard[];
21
+ }
22
+ export interface OkKanbanLabels {
23
+ /** Mensaje de columna sin tarjetas. */
24
+ empty: string;
25
+ }
26
+ export declare class OkKanban extends LitElement {
27
+ static styles: import("lit").CSSResult;
28
+ /** Columnas del tablero (con sus tarjetas). El componente mantiene una copia interna `view`. */
29
+ columns: OkKanbanColumn[];
30
+ /** Textos traducibles (merge sobre los defaults en inglés). */
31
+ labels: Partial<OkKanbanLabels>;
32
+ private get t();
33
+ private view;
34
+ private drag;
35
+ private overColumn;
36
+ private overCardId;
37
+ private overAfter;
38
+ private lastColumnsRef;
39
+ private syncFromProp;
40
+ private onDragStart;
41
+ private onDragEnd;
42
+ private onColumnDragOver;
43
+ private onCardDragOver;
44
+ private onColumnDrop;
45
+ private onCardDrop;
46
+ private commitMove;
47
+ private onCardClick;
48
+ private renderCard;
49
+ private renderColumn;
50
+ render(): unknown;
51
+ }
52
+ declare global {
53
+ interface HTMLElementTagNameMap {
54
+ 'ok-kanban': OkKanban;
55
+ }
56
+ }
@@ -0,0 +1,21 @@
1
+ import { LitElement } from 'lit';
2
+ /** Tamaño del keycap. */
3
+ export type OkKbdSize = 'sm' | 'md';
4
+ export declare class OkKbd extends LitElement {
5
+ static styles: import("lit").CSSResult;
6
+ /** Teclas separadas por espacio (p.ej. "cmd k" o "ctrl shift n"). */
7
+ keys: string;
8
+ /** Tamaño del keycap. */
9
+ size: OkKbdSize;
10
+ /** Si es combo, inserta separadores "+" entre teclas. Por defecto true. */
11
+ combo: boolean;
12
+ private parseKeys;
13
+ private isMod;
14
+ private label;
15
+ render(): unknown;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'ok-kbd': OkKbd;
20
+ }
21
+ }
@@ -0,0 +1,35 @@
1
+ import { LitElement } from 'lit';
2
+ /** Distribución del teclado. */
3
+ export type OkKeyboardLayout = 'qwerty' | 'numeric' | 'symbol';
4
+ /** Densidad: touch (kiosko, teclas grandes) o compact (denso, mobile). */
5
+ export type OkKeyboardDensity = 'touch' | 'compact';
6
+ export declare class OkKeyboard extends LitElement {
7
+ static styles: import("lit").CSSResult;
8
+ /** Distribución: qwerty (texto completo), numeric (rejilla 3-col), symbol. */
9
+ layout: OkKeyboardLayout;
10
+ /** Densidad de las teclas. */
11
+ density: OkKeyboardDensity;
12
+ /** Valor actual del campo (controlado o no). */
13
+ value: string;
14
+ /** Muestra la tira de display companion (label + valor + caret). */
15
+ showDisplay: boolean;
16
+ /** Etiqueta de la tira de display. */
17
+ displayLabel: string;
18
+ /** Estado de shift (mayúsculas). Reflejado para CSS. */
19
+ isShift: boolean;
20
+ /** Layout interno activo cuando el usuario alterna 123/ABC. */
21
+ private activeLayout;
22
+ protected willUpdate(changed: Map<string, unknown>): void;
23
+ private get rows();
24
+ private emit;
25
+ private setValue;
26
+ private handleKey;
27
+ private renderKey;
28
+ private renderDisplay;
29
+ render(): unknown;
30
+ }
31
+ declare global {
32
+ interface HTMLElementTagNameMap {
33
+ 'ok-keyboard': OkKeyboard;
34
+ }
35
+ }
@@ -0,0 +1,24 @@
1
+ import { LitElement } from 'lit';
2
+ type OkKpiTrend = 'up' | 'down' | 'flat';
3
+ export declare class OkKpi extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ /** Etiqueta (muted, uppercase). */
6
+ label?: string;
7
+ /** Valor principal (grande, bold). */
8
+ value?: string;
9
+ /** Variación, p.ej. '+12%'. */
10
+ delta?: string;
11
+ /** Tendencia: 'up' | 'down' | 'flat'. Controla color y flecha del delta. */
12
+ trend: OkKpiTrend;
13
+ /** Nombre de un ion-icon opcional mostrado junto al label. */
14
+ icon?: string;
15
+ /** Devuelve el ion-icon de flecha según la tendencia. */
16
+ private trendIcon;
17
+ render(): unknown;
18
+ }
19
+ declare global {
20
+ interface HTMLElementTagNameMap {
21
+ 'ok-kpi': OkKpi;
22
+ }
23
+ }
24
+ export {};
@@ -0,0 +1,31 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkLanguageSelectLabels {
3
+ /** aria-label del trigger que abre el desplegable de idiomas. */
4
+ language: string;
5
+ }
6
+ export declare class OkLanguageSelect extends LitElement {
7
+ static styles: import("lit").CSSResult;
8
+ /** Código del idioma activo (p.ej. "es"). Si vacío, se usa el del navegador. */
9
+ value: string;
10
+ /** Estado del desplegable (reflejado para :host([open])). */
11
+ open: boolean;
12
+ /** Textos i18n (parcial; se mezclan sobre los defaults en inglés). */
13
+ labels: Partial<OkLanguageSelectLabels>;
14
+ private get t();
15
+ private currentLabel;
16
+ connectedCallback(): void;
17
+ disconnectedCallback(): void;
18
+ firstUpdated(): void;
19
+ /** Decide el idioma activo: value → navegador → primero; marca el <a> y guarda su etiqueta. */
20
+ private resolveCurrent;
21
+ private toggle;
22
+ private onDocClick;
23
+ private onKeydown;
24
+ private onPanelClick;
25
+ render(): unknown;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'ok-language-select': OkLanguageSelect;
30
+ }
31
+ }