@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,27 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class OkSparkline extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ /** Serie de datos a representar. */
5
+ values: number[];
6
+ /** Tipo de gráfico: línea o barras. */
7
+ type: 'line' | 'bar';
8
+ /** Color del trazo/relleno; cae al token del componente si no se da. */
9
+ color: string;
10
+ /** Ancho del SVG en px. */
11
+ width: number;
12
+ /** Alto del SVG en px. */
13
+ height: number;
14
+ /** En modo línea, rellena el área bajo la curva. */
15
+ filled: boolean;
16
+ private get pad();
17
+ private get stroke();
18
+ private points;
19
+ private renderLine;
20
+ private renderBars;
21
+ render(): unknown;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ 'ok-sparkline': OkSparkline;
26
+ }
27
+ }
@@ -0,0 +1,49 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkSplitButtonItem {
3
+ /** Identificador único del item (clave de selección). */
4
+ id: string;
5
+ /** Texto visible del item. */
6
+ label: string;
7
+ /** Nombre de un ionicon opcional, mostrado antes del label. */
8
+ icon?: string;
9
+ }
10
+ export interface OkSplitButtonLabels {
11
+ /** aria-label del botón caret que abre el menú. */
12
+ more: string;
13
+ /** aria-label del menú desplegable. */
14
+ menu: string;
15
+ /** Texto mostrado cuando no hay items. */
16
+ empty: string;
17
+ }
18
+ export declare class OkSplitButton extends LitElement {
19
+ static styles: import("lit").CSSResult;
20
+ /** Texto del botón principal. */
21
+ label: string;
22
+ /** Color Ionic propagado a los `ion-button` (primary, danger, …). */
23
+ color: string;
24
+ /** Fill Ionic propagado a los `ion-button` (solid | outline | clear). */
25
+ fill: 'solid' | 'outline' | 'clear' | 'default';
26
+ /** Items del menú desplegable. */
27
+ items: OkSplitButtonItem[];
28
+ /** Textos traducibles (merge sobre los defaults en inglés). */
29
+ labels: Partial<OkSplitButtonLabels>;
30
+ private get t();
31
+ private open;
32
+ private readonly onDocClick;
33
+ private readonly onKeydown;
34
+ disconnectedCallback(): void;
35
+ private bind;
36
+ private unbind;
37
+ private toggle;
38
+ private openMenu;
39
+ private close;
40
+ private mainClick;
41
+ private selectItem;
42
+ private renderItem;
43
+ render(): unknown;
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'ok-split-button': OkSplitButton;
48
+ }
49
+ }
@@ -0,0 +1,36 @@
1
+ import { LitElement } from 'lit';
2
+ export type OkSplitterOrientation = 'horizontal' | 'vertical';
3
+ export type OkSplitterCollapsed = 'none' | 'start' | 'end';
4
+ export declare class OkSplitter extends LitElement {
5
+ static styles: import("lit").CSSResult;
6
+ /** Orientación: horizontal (paneles lado a lado) o vertical (apilados). */
7
+ orientation: OkSplitterOrientation;
8
+ /** Tamaño del primer panel en % (0–100). */
9
+ size: number;
10
+ /** Mínimo % permitido para el primer panel. */
11
+ min: number;
12
+ /** Máximo % permitido para el primer panel. */
13
+ max: number;
14
+ /** Colapsar un panel: none | start | end. */
15
+ collapsed: OkSplitterCollapsed;
16
+ /** Estado de arrastre (reflejado para CSS). */
17
+ dragging: boolean;
18
+ private _size;
19
+ private _splitEl;
20
+ private _pointerId;
21
+ connectedCallback(): void;
22
+ protected willUpdate(changed: Map<string, unknown>): void;
23
+ private _clamp;
24
+ private _onPointerDown;
25
+ private _onPointerMove;
26
+ private _onPointerUp;
27
+ private _onKeyDown;
28
+ private _setSize;
29
+ private _emit;
30
+ render(): unknown;
31
+ }
32
+ declare global {
33
+ interface HTMLElementTagNameMap {
34
+ 'ok-splitter': OkSplitter;
35
+ }
36
+ }
@@ -0,0 +1,16 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class OkStat extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ /** Etiqueta de la métrica (muted). */
5
+ label?: string;
6
+ /** Valor de la métrica. */
7
+ value?: string;
8
+ /** Texto secundario opcional (muted) bajo el valor. */
9
+ hint?: string;
10
+ render(): unknown;
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'ok-stat': OkStat;
15
+ }
16
+ }
@@ -0,0 +1,24 @@
1
+ import { LitElement } from 'lit';
2
+ /** Tono semántico del dot. */
3
+ export type OkStatusDotTone = 'ok' | 'warn' | 'danger' | 'info' | 'off' | 'brand';
4
+ /** Tamaño del dot. */
5
+ export type OkStatusDotSize = 'sm' | 'md' | 'lg';
6
+ export declare class OkStatusDot extends LitElement {
7
+ static styles: import("lit").CSSResult;
8
+ /** Tono semántico: ok | warn | danger | info | off | brand. */
9
+ tone: OkStatusDotTone;
10
+ /** Tamaño: sm | md | lg. */
11
+ size: OkStatusDotSize;
12
+ /** Animación de pulso "en vivo". */
13
+ pulse: boolean;
14
+ /** Texto descriptivo del estado (para accesibilidad y/o visible). */
15
+ label?: string;
16
+ /** Si hay label, mostrarlo inline junto al dot (si no, queda solo sr-only). */
17
+ showLabel: boolean;
18
+ render(): unknown;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'ok-status-dot': OkStatusDot;
23
+ }
24
+ }
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ export type OkStatusPillTone = 'success' | 'warning' | 'danger' | 'info' | 'primary' | 'neutral';
3
+ export type OkStatusPillSize = 'sm' | 'md';
4
+ export declare class OkStatusPill extends LitElement {
5
+ static styles: import("lit").CSSResult;
6
+ /** Tono semántico del pill. */
7
+ tone: OkStatusPillTone;
8
+ /** Texto del pill (alternativa al slot; útil al crearlo por JS en renders de celda). */
9
+ label?: string;
10
+ /** Nombre de icono ion-icon opcional a la izquierda. */
11
+ icon?: string;
12
+ /** Punto de color en vez de icono (estilo Linear). */
13
+ dot: boolean;
14
+ /** Tamaño. */
15
+ size: OkStatusPillSize;
16
+ render(): unknown;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'ok-status-pill': OkStatusPill;
21
+ }
22
+ }
@@ -0,0 +1,33 @@
1
+ import { LitElement } from 'lit';
2
+ /** Un paso del stepper/wizard. */
3
+ export interface OkStep {
4
+ /** Etiqueta corta del paso. */
5
+ label: string;
6
+ /** Descripción opcional bajo la etiqueta (solo desktop). */
7
+ description?: string;
8
+ }
9
+ export interface OkStepperLabels {
10
+ /** Resumen compacto (móvil); `{n}` = paso actual (1-based), `{total}` = total de pasos. */
11
+ stepCount: string;
12
+ }
13
+ export declare class OkStepper extends LitElement {
14
+ static styles: import("lit").CSSResult;
15
+ /** Lista de pasos a mostrar. */
16
+ steps: OkStep[];
17
+ /** Índice (0-based) del paso activo. */
18
+ current: number;
19
+ /** Textos humanos sobreescribibles (i18n). Default INGLÉS. */
20
+ labels: Partial<OkStepperLabels>;
21
+ /** Textos efectivos: defaults INGLÉS mezclados con los del consumidor. */
22
+ private get t();
23
+ /** Emite ok-step-select al pulsar un paso. */
24
+ private _select;
25
+ /** Estado de un paso respecto al actual. */
26
+ private _stateClass;
27
+ render(): unknown;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'ok-stepper': OkStepper;
32
+ }
33
+ }
@@ -0,0 +1,33 @@
1
+ import { LitElement } from 'lit';
2
+ import { type Store } from '../../store/store.js';
3
+ export declare class OkStore extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ /** Nombre de la base de datos IndexedDB que posee este elemento (default: 'outfitkit'). */
6
+ name?: string;
7
+ /** La instancia de store que posee este elemento. Disponible tras la creación. */
8
+ store: Store;
9
+ private unsubscribe?;
10
+ private currentName?;
11
+ connectedCallback(): void;
12
+ disconnectedCallback(): void;
13
+ updated(changed: Map<string, unknown>): void;
14
+ private ensureStore;
15
+ /** Lee un valor del store (SÍNCRONO). */
16
+ get<T = unknown>(key: string): T | undefined;
17
+ /** Escribe un valor en el store. */
18
+ set<T = unknown>(key: string, value: T): void;
19
+ /**
20
+ * Actualiza un valor a partir del previo. Se llama `updateValue` (no `update`) porque `update`
21
+ * es un método reservado del ciclo de vida de LitElement; usa el `.store.update()` directamente
22
+ * si prefieres el nombre corto.
23
+ */
24
+ updateValue<T = unknown>(key: string, fn: (prev: T | undefined) => T): void;
25
+ /** Borra una clave. */
26
+ delete(key: string): void;
27
+ render(): unknown;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'ok-store': OkStore;
32
+ }
33
+ }
@@ -0,0 +1,39 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkTagInputLabels {
3
+ /** Texto guía del input cuando no hay tags. */
4
+ placeholder: string;
5
+ /** aria-label del botón × de cada chip. Variable: {tag}. */
6
+ removeLabel: string;
7
+ }
8
+ export declare class OkTagInput extends LitElement {
9
+ static styles: import("lit").CSSResult;
10
+ /** Tags actuales. */
11
+ value: string[];
12
+ /** Texto guía del campo. Si se deja vacío, usa `labels.placeholder` (inglés por defecto). */
13
+ placeholder: string;
14
+ /** Sugerencias opcionales para el dropdown. */
15
+ suggestions?: string[];
16
+ /** Textos i18n (default inglés); pasa solo las claves que quieras sobreescribir. */
17
+ labels: Partial<OkTagInputLabels>;
18
+ private get t();
19
+ private get effectivePlaceholder();
20
+ private draft;
21
+ private open;
22
+ private activeIndex;
23
+ private onDocClick;
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ private close;
27
+ private get filteredSuggestions();
28
+ private emitChange;
29
+ private addTag;
30
+ private removeAt;
31
+ private handleInput;
32
+ private handleKeydown;
33
+ render(): unknown;
34
+ }
35
+ declare global {
36
+ interface HTMLElementTagNameMap {
37
+ 'ok-tag-input': OkTagInput;
38
+ }
39
+ }
@@ -0,0 +1,21 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class OkTestimonial extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ /** Nº de estrellas (0–5). Si 0/undefined no se muestran. */
5
+ rating: number;
6
+ /** Nombre del autor. */
7
+ author?: string;
8
+ /** Rol / empresa del autor (atributo HTML: author-role; `role` está reservado por ARIA). */
9
+ authorRole?: string;
10
+ /** URL del avatar. Si no hay, se muestran las iniciales del autor. */
11
+ avatar?: string;
12
+ /** Cristal esmerilado. */
13
+ glass: boolean;
14
+ private initials;
15
+ render(): unknown;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'ok-testimonial': OkTestimonial;
20
+ }
21
+ }
@@ -0,0 +1,50 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class OkTimePicker extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ /** Valor canónico "HH:MM" (24h). */
5
+ value: string;
6
+ /** Paso de minutos para la lista de minutos (default 5). */
7
+ step: number;
8
+ /** Presentación 12h con segmento AM/PM (el valor sigue siendo 24h). */
9
+ useAmpm: boolean;
10
+ /** Hora mínima seleccionable "HH:MM" (inclusive). */
11
+ min: string;
12
+ /** Hora máxima seleccionable "HH:MM" (inclusive). */
13
+ max: string;
14
+ /** Desactiva la interacción. */
15
+ disabled: boolean;
16
+ private open;
17
+ private end;
18
+ private above;
19
+ private readonly onDocPointer;
20
+ private readonly onKeydown;
21
+ disconnectedCallback(): void;
22
+ private bind;
23
+ private unbind;
24
+ private get current();
25
+ private get minMin();
26
+ private get maxMin();
27
+ private inRange;
28
+ private toggle;
29
+ private openPanel;
30
+ private close;
31
+ private reanchor;
32
+ private scrollToSelected;
33
+ private commit;
34
+ private pickHour;
35
+ private pickMinute;
36
+ private pickMeridiem;
37
+ private hourOptions;
38
+ private minuteOptions;
39
+ private displayHour;
40
+ private displayMinute;
41
+ private hourLabel;
42
+ private get isPm();
43
+ render(): unknown;
44
+ private panelTemplate;
45
+ }
46
+ declare global {
47
+ interface HTMLElementTagNameMap {
48
+ 'ok-time-picker': OkTimePicker;
49
+ }
50
+ }
@@ -0,0 +1,33 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkTimelineItem {
3
+ /** Identificador único del item. */
4
+ id: string;
5
+ /** Título visible del hito. */
6
+ title: string;
7
+ /** Texto secundario opcional bajo el título. */
8
+ description?: string;
9
+ /** Marca temporal/etiqueta opcional (se muestra atenuada). */
10
+ time?: string;
11
+ /** Nombre de un ionicon opcional, dibujado dentro del punto. */
12
+ icon?: string;
13
+ /** Color del punto (token Ionic p.ej. 'primary' o cualquier valor CSS p.ej. '#3880ff'). */
14
+ color?: string;
15
+ /** Estado del hito; afecta al color por defecto y al resaltado del `current`. */
16
+ status?: 'done' | 'current' | 'pending';
17
+ }
18
+ export declare class OkTimeline extends LitElement {
19
+ static styles: import("lit").CSSResult;
20
+ /** Items de la línea de tiempo (en orden cronológico de arriba a abajo). */
21
+ items: OkTimelineItem[];
22
+ /** Disposición: 'left' (todo a la derecha de la línea) o 'alternate' (zig-zag en desktop). */
23
+ align: 'left' | 'alternate';
24
+ private dotColor;
25
+ private emitClick;
26
+ private renderItem;
27
+ render(): unknown;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'ok-timeline': OkTimeline;
32
+ }
33
+ }
@@ -0,0 +1,46 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkTreeNode {
3
+ /** Identificador único del nodo (clave de selección/expansión). */
4
+ id: string;
5
+ /** Texto visible del nodo. */
6
+ label: string;
7
+ /** Nombre de un ionicon opcional, mostrado antes del label. */
8
+ icon?: string;
9
+ /** Hijos del nodo; si tiene, se dibuja chevron expandible. */
10
+ children?: OkTreeNode[];
11
+ /** Estado inicial de expansión (se copia al estado interno la primera vez). */
12
+ expanded?: boolean;
13
+ /** Deshabilita la interacción (no expande ni selecciona). */
14
+ disabled?: boolean;
15
+ }
16
+ export interface OkTreeLabels {
17
+ /** aria-label del chevron cuando el nodo está colapsado. */
18
+ expand: string;
19
+ /** aria-label del chevron cuando el nodo está expandido. */
20
+ collapse: string;
21
+ }
22
+ export declare class OkTree extends LitElement {
23
+ static styles: import("lit").CSSResult;
24
+ /** Nodos raíz del árbol (recursivo vía `children`). */
25
+ nodes: OkTreeNode[];
26
+ /** Si está activo, las filas son clicables y emiten `ok-select`. */
27
+ selectable: boolean;
28
+ /** Id del nodo resaltado. */
29
+ activeId: string;
30
+ /** Textos traducibles (merge sobre los defaults en inglés). */
31
+ labels: Partial<OkTreeLabels>;
32
+ private get t();
33
+ private expandedIds;
34
+ private seeded;
35
+ private seedExpanded;
36
+ private isExpanded;
37
+ private toggle;
38
+ private select;
39
+ private renderNode;
40
+ render(): unknown;
41
+ }
42
+ declare global {
43
+ interface HTMLElementTagNameMap {
44
+ 'ok-tree': OkTree;
45
+ }
46
+ }
@@ -0,0 +1,49 @@
1
+ import { LitElement } from 'lit';
2
+ export interface OkVideoLabels {
3
+ /** aria-label del botón cuando está pausado (acción: reproducir). */
4
+ play: string;
5
+ /** aria-label del botón cuando reproduce (acción: pausar). */
6
+ pause: string;
7
+ /** aria-label del botón de mute cuando hay sonido (acción: silenciar). */
8
+ mute: string;
9
+ /** aria-label del botón de mute cuando está silenciado (acción: activar sonido). */
10
+ unmute: string;
11
+ /** aria-label del slider de volumen. */
12
+ volume: string;
13
+ /** aria-label del botón de pantalla completa. */
14
+ fullscreen: string;
15
+ }
16
+ export declare class OkVideo extends LitElement {
17
+ static styles: import("lit").CSSResult;
18
+ /** URL del vídeo a reproducir. */
19
+ src: string;
20
+ /** Imagen de previsualización opcional. */
21
+ poster: string;
22
+ /** Textos i18n (parcial; se mezclan sobre los defaults en inglés). */
23
+ labels: Partial<OkVideoLabels>;
24
+ private get t();
25
+ private playing;
26
+ private current;
27
+ private duration;
28
+ private volume;
29
+ private muted;
30
+ private videoEl;
31
+ private stageEl;
32
+ private togglePlay;
33
+ private onPlay;
34
+ private onPause;
35
+ private onEnded;
36
+ private onTimeUpdate;
37
+ private onLoadedMeta;
38
+ private seek;
39
+ private onVolume;
40
+ private toggleMute;
41
+ private toggleFullscreen;
42
+ private fmt;
43
+ render(): unknown;
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'ok-video': OkVideo;
48
+ }
49
+ }
@@ -0,0 +1,71 @@
1
+ import { LitElement } from 'lit';
2
+ /** Tamaño de celda en la rejilla de 12 columnas (desktop): sm=3, md=6, lg=8. */
3
+ export type WidgetSize = 'sm' | 'md' | 'lg';
4
+ /** Definición de un widget del catálogo. */
5
+ export interface WidgetDef {
6
+ /** Id estable (clave de activación/orden/persistencia). */
7
+ id: string;
8
+ /** Título legible (se muestra en el selector). */
9
+ title: string;
10
+ /** Icono ionicons para el selector. */
11
+ icon?: string;
12
+ /** Categoría/grupo (se muestra como subtítulo en el selector). */
13
+ category?: string;
14
+ /** Tamaño de celda (def 'md'). */
15
+ size?: WidgetSize;
16
+ /** Monta el cuerpo del widget DENTRO de `cell` (el host añade sus ok/ion con sus datos). */
17
+ render: (cell: HTMLElement) => void;
18
+ }
19
+ /** Preset = conjunto recomendado de widgets para un sector/rol. */
20
+ export interface WidgetPreset {
21
+ id: string;
22
+ label: string;
23
+ widgets: string[];
24
+ }
25
+ /** Textos del selector (default inglés; override por `.labels`). */
26
+ export interface OkWidgetBoardLabels {
27
+ customize: string;
28
+ close: string;
29
+ presets: string;
30
+ active: string;
31
+ available: string;
32
+ empty: string;
33
+ }
34
+ export declare class OkWidgetBoard extends LitElement {
35
+ static styles: import("lit").CSSResult;
36
+ /** Catálogo de widgets disponibles. */
37
+ widgets: WidgetDef[];
38
+ /** Presets por sector/rol (opcional). */
39
+ presets: WidgetPreset[];
40
+ /** Ids activos y ordenados. Si no se pasa, deriva del 1er preset o de todos. */
41
+ value: string[];
42
+ /** Muestra el botón ⋮ de configuración. */
43
+ editable: boolean;
44
+ /** Si se da, persiste el `value` en localStorage bajo `okwb:{storageKey}`. */
45
+ storageKey: string;
46
+ /** Textos del selector (parcial; lo no pasado cae al default inglés). */
47
+ labels: Partial<OkWidgetBoardLabels>;
48
+ private initialized;
49
+ private modal?;
50
+ private reorderEl?;
51
+ private availEl?;
52
+ private get t();
53
+ private get byId();
54
+ private get active();
55
+ willUpdate(): void;
56
+ private persist;
57
+ /** Cambia el estado activo, persiste, re-renderiza el selector y emite `ok-change`. */
58
+ private setValue;
59
+ render(): import("lit").TemplateResult<1>;
60
+ updated(): void;
61
+ private openConfig;
62
+ private buildModal;
63
+ /** Repinta las listas de activos/disponibles del modal según `value`. */
64
+ private refreshModal;
65
+ disconnectedCallback(): void;
66
+ }
67
+ declare global {
68
+ interface HTMLElementTagNameMap {
69
+ 'ok-widget-board': OkWidgetBoard;
70
+ }
71
+ }
@@ -0,0 +1,30 @@
1
+ import { LitElement } from 'lit';
2
+ import { type OkStep } from '../ok-stepper/ok-stepper.js';
3
+ export type { OkStep } from '../ok-stepper/ok-stepper.js';
4
+ export declare class OkWizard extends LitElement {
5
+ static styles: import("lit").CSSResult;
6
+ /** Lista de pasos (misma forma que ok-stepper). */
7
+ steps: OkStep[];
8
+ /** Índice (0-based) del paso actual. */
9
+ current: number;
10
+ /** Etiqueta del botón Atrás. Default INGLÉS. */
11
+ backLabel: string;
12
+ /** Etiqueta del botón Siguiente. Default INGLÉS. */
13
+ nextLabel: string;
14
+ /** Etiqueta del botón Finalizar (último paso). Default INGLÉS. */
15
+ finishLabel: string;
16
+ /** Cambia al índice dado (con clamp) y emite ok-step-change si realmente cambia. */
17
+ private _goTo;
18
+ /** Retrocede un paso. */
19
+ private _back;
20
+ /** Avanza un paso, o emite ok-finish si es el último. */
21
+ private _next;
22
+ /** Navegación desde el stepper (clic en un paso). */
23
+ private _onStepSelect;
24
+ render(): unknown;
25
+ }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'ok-wizard': OkWizard;
29
+ }
30
+ }
package/dist/define.js ADDED
@@ -0,0 +1,8 @@
1
+ function define(tag, ctor) {
2
+ if (typeof customElements !== "undefined" && !customElements.get(tag)) {
3
+ customElements.define(tag, ctor);
4
+ }
5
+ }
6
+ export {
7
+ define
8
+ };