@dropi/ui 0.1.16 → 0.1.17

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 (136) hide show
  1. package/assets/lottie-files/failure.json +1 -0
  2. package/assets/lottie-files/question.json +1 -0
  3. package/assets/lottie-files/success.json +1 -0
  4. package/assets/lottie-files/warning.json +1 -0
  5. package/dist/cjs/dropi-accordion.cjs.entry.js +53 -0
  6. package/dist/cjs/dropi-badge.cjs.entry.js +1 -1
  7. package/dist/cjs/dropi-button.cjs.entry.js +2 -2
  8. package/dist/cjs/dropi-checkbox.cjs.entry.js +3 -3
  9. package/dist/cjs/dropi-empty-state.cjs.entry.js +35 -0
  10. package/dist/cjs/dropi-icon.cjs.entry.js +3 -3
  11. package/dist/cjs/dropi-input.cjs.entry.js +2 -2
  12. package/dist/cjs/dropi-modal.cjs.entry.js +113 -0
  13. package/dist/cjs/dropi-paginator.cjs.entry.js +89 -0
  14. package/dist/cjs/dropi-radio-button.cjs.entry.js +2 -2
  15. package/dist/cjs/dropi-select.cjs.entry.js +2 -2
  16. package/dist/cjs/dropi-skeleton.cjs.entry.js +47 -0
  17. package/dist/cjs/dropi-switch.cjs.entry.js +2 -2
  18. package/dist/cjs/dropi-tabs.cjs.entry.js +49 -0
  19. package/dist/cjs/dropi-tag.cjs.entry.js +2 -2
  20. package/dist/cjs/dropi-text-area.cjs.entry.js +3 -3
  21. package/dist/cjs/dropi-toast.cjs.entry.js +55 -0
  22. package/dist/cjs/dropi-tooltip.cjs.entry.js +42 -0
  23. package/dist/cjs/dropi-ui.cjs.js +2 -2
  24. package/dist/cjs/{index-CuGLZVqo.js → index-B6R6Ojma.js} +1 -1
  25. package/dist/cjs/loader.cjs.js +2 -2
  26. package/dist/collection/collection-manifest.json +8 -0
  27. package/dist/collection/components/dropi-accordion/dropi-accordion.css +21 -0
  28. package/dist/collection/components/dropi-accordion/dropi-accordion.js +170 -0
  29. package/dist/collection/components/dropi-button/dropi-button.css +7 -1
  30. package/dist/collection/components/dropi-checkbox/dropi-checkbox.js +2 -2
  31. package/dist/collection/components/dropi-empty-state/dropi-empty-state.css +58 -0
  32. package/dist/collection/components/dropi-empty-state/dropi-empty-state.js +195 -0
  33. package/dist/collection/components/dropi-icon/dropi-icon.css +2 -0
  34. package/dist/collection/components/dropi-icon/dropi-icon.js +1 -1
  35. package/dist/collection/components/dropi-input/dropi-input.css +2 -0
  36. package/dist/collection/components/dropi-modal/dropi-modal.css +124 -0
  37. package/dist/collection/components/dropi-modal/dropi-modal.js +406 -0
  38. package/dist/collection/components/dropi-paginator/dropi-paginator.css +100 -0
  39. package/dist/collection/components/dropi-paginator/dropi-paginator.js +241 -0
  40. package/dist/collection/components/dropi-radio-button/dropi-radio-button.js +1 -1
  41. package/dist/collection/components/dropi-select/dropi-select.js +1 -1
  42. package/dist/collection/components/dropi-skeleton/dropi-skeleton.css +27 -0
  43. package/dist/collection/components/dropi-skeleton/dropi-skeleton.js +162 -0
  44. package/dist/collection/components/dropi-switch/dropi-switch.js +1 -1
  45. package/dist/collection/components/dropi-tabs/dropi-tabs.css +42 -0
  46. package/dist/collection/components/dropi-tabs/dropi-tabs.js +159 -0
  47. package/dist/collection/components/dropi-tag/dropi-tag.js +1 -1
  48. package/dist/collection/components/dropi-text-area/dropi-text-area.js +2 -2
  49. package/dist/collection/components/dropi-toast/dropi-toast.css +63 -0
  50. package/dist/collection/components/dropi-toast/dropi-toast.js +164 -0
  51. package/dist/collection/components/dropi-tooltip/dropi-tooltip.css +67 -0
  52. package/dist/collection/components/dropi-tooltip/dropi-tooltip.js +147 -0
  53. package/dist/components/dropi-accordion.d.ts +11 -0
  54. package/dist/components/dropi-accordion.js +1 -0
  55. package/dist/components/dropi-button.js +1 -1
  56. package/dist/components/dropi-checkbox.js +1 -1
  57. package/dist/components/dropi-empty-state.d.ts +11 -0
  58. package/dist/components/dropi-empty-state.js +1 -0
  59. package/dist/components/dropi-icon.js +1 -1
  60. package/dist/components/dropi-input.js +1 -1
  61. package/dist/components/dropi-modal.d.ts +11 -0
  62. package/dist/components/dropi-modal.js +1 -0
  63. package/dist/components/dropi-paginator.d.ts +11 -0
  64. package/dist/components/dropi-paginator.js +1 -0
  65. package/dist/components/dropi-radio-button.js +1 -1
  66. package/dist/components/dropi-select.js +1 -1
  67. package/dist/components/dropi-skeleton.d.ts +11 -0
  68. package/dist/components/dropi-skeleton.js +1 -0
  69. package/dist/components/dropi-switch.js +1 -1
  70. package/dist/components/dropi-tabs.d.ts +11 -0
  71. package/dist/components/dropi-tabs.js +1 -0
  72. package/dist/components/dropi-tag.js +1 -1
  73. package/dist/components/dropi-text-area.js +1 -1
  74. package/dist/components/dropi-toast.d.ts +11 -0
  75. package/dist/components/dropi-toast.js +1 -0
  76. package/dist/components/dropi-tooltip.d.ts +11 -0
  77. package/dist/components/dropi-tooltip.js +1 -0
  78. package/dist/components/index.js +1 -1
  79. package/dist/components/{p-MNma8N1x.js → p-ChOXWKmI.js} +1 -1
  80. package/dist/components/p-NCyvfOs2.js +1 -0
  81. package/dist/dropi-ui/dropi-ui.css +1 -1
  82. package/dist/dropi-ui/dropi-ui.esm.js +1 -1
  83. package/dist/dropi-ui/p-082b7039.entry.js +1 -0
  84. package/dist/dropi-ui/p-09c38a49.entry.js +1 -0
  85. package/dist/dropi-ui/p-1739d20c.entry.js +1 -0
  86. package/dist/dropi-ui/{p-dd089a60.entry.js → p-26dbae0d.entry.js} +1 -1
  87. package/dist/dropi-ui/p-42179ae4.entry.js +1 -0
  88. package/dist/dropi-ui/p-4d582d58.entry.js +1 -0
  89. package/dist/dropi-ui/p-6031ac9d.entry.js +1 -0
  90. package/dist/dropi-ui/{p-bda1427f.entry.js → p-63e969da.entry.js} +1 -1
  91. package/dist/dropi-ui/p-65fa8558.entry.js +1 -0
  92. package/dist/dropi-ui/{p-52291024.entry.js → p-6d15d32f.entry.js} +1 -1
  93. package/dist/dropi-ui/{p-0faaab2b.entry.js → p-79466fec.entry.js} +1 -1
  94. package/dist/dropi-ui/p-Twbb5MNM.js +2 -0
  95. package/dist/dropi-ui/p-a5650d8f.entry.js +1 -0
  96. package/dist/dropi-ui/p-b0d3442e.entry.js +1 -0
  97. package/dist/dropi-ui/{p-f785011f.entry.js → p-e44242e2.entry.js} +1 -1
  98. package/dist/dropi-ui/{p-a46a05a6.entry.js → p-eb7f9a57.entry.js} +1 -1
  99. package/dist/dropi-ui/{p-a1944f3d.entry.js → p-ecda6e19.entry.js} +1 -1
  100. package/dist/dropi-ui/{p-9c7076d3.entry.js → p-f0e1e0f6.entry.js} +1 -1
  101. package/dist/dropi-ui/p-f283f41d.entry.js +1 -0
  102. package/dist/esm/dropi-accordion.entry.js +51 -0
  103. package/dist/esm/dropi-badge.entry.js +1 -1
  104. package/dist/esm/dropi-button.entry.js +2 -2
  105. package/dist/esm/dropi-checkbox.entry.js +3 -3
  106. package/dist/esm/dropi-empty-state.entry.js +33 -0
  107. package/dist/esm/dropi-icon.entry.js +3 -3
  108. package/dist/esm/dropi-input.entry.js +2 -2
  109. package/dist/esm/dropi-modal.entry.js +111 -0
  110. package/dist/esm/dropi-paginator.entry.js +87 -0
  111. package/dist/esm/dropi-radio-button.entry.js +2 -2
  112. package/dist/esm/dropi-select.entry.js +2 -2
  113. package/dist/esm/dropi-skeleton.entry.js +45 -0
  114. package/dist/esm/dropi-switch.entry.js +2 -2
  115. package/dist/esm/dropi-tabs.entry.js +47 -0
  116. package/dist/esm/dropi-tag.entry.js +2 -2
  117. package/dist/esm/dropi-text-area.entry.js +3 -3
  118. package/dist/esm/dropi-toast.entry.js +53 -0
  119. package/dist/esm/dropi-tooltip.entry.js +40 -0
  120. package/dist/esm/dropi-ui.js +3 -3
  121. package/dist/esm/{index-DFz-gwFP.js → index-Twbb5MNM.js} +1 -1
  122. package/dist/esm/loader.js +3 -3
  123. package/dist/types/components/dropi-accordion/dropi-accordion.d.ts +29 -0
  124. package/dist/types/components/dropi-empty-state/dropi-empty-state.d.ts +24 -0
  125. package/dist/types/components/dropi-modal/dropi-modal.d.ts +37 -0
  126. package/dist/types/components/dropi-paginator/dropi-paginator.d.ts +32 -0
  127. package/dist/types/components/dropi-skeleton/dropi-skeleton.d.ts +19 -0
  128. package/dist/types/components/dropi-tabs/dropi-tabs.d.ts +38 -0
  129. package/dist/types/components/dropi-toast/dropi-toast.d.ts +38 -0
  130. package/dist/types/components/dropi-tooltip/dropi-tooltip.d.ts +25 -0
  131. package/dist/types/components.d.ts +832 -0
  132. package/package.json +1 -1
  133. package/scripts/setup.js +48 -19
  134. package/dist/dropi-ui/p-21abf91a.entry.js +0 -1
  135. package/dist/dropi-ui/p-6f0aa619.entry.js +0 -1
  136. package/dist/dropi-ui/p-DFz-gwFP.js +0 -2
@@ -8,18 +8,57 @@ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { BadgeState } from "./components/dropi-badge/dropi-badge";
9
9
  import { ButtonSeverity, ButtonSize, ButtonState, ButtonType } from "./components/dropi-button/dropi-button";
10
10
  import { InputMode } from "./components/dropi-input/dropi-input";
11
+ import { ModalPosition, ModalSize } from "./components/dropi-modal/dropi-modal";
11
12
  import { Event } from "./stencil-public-runtime";
12
13
  import { SelectOption, SelectOptionGroup } from "./components/dropi-select/select.types";
14
+ import { SkeletonVariant } from "./components/dropi-skeleton/dropi-skeleton";
15
+ import { TabItem } from "./components/dropi-tabs/dropi-tabs";
13
16
  import { TagState, TagType } from "./components/dropi-tag/dropi-tag";
14
17
  import { ResizeMode } from "./components/dropi-text-area/dropi-text-area";
18
+ import { ToastMessage } from "./components/dropi-toast/dropi-toast";
19
+ import { TooltipPosition } from "./components/dropi-tooltip/dropi-tooltip";
15
20
  export { BadgeState } from "./components/dropi-badge/dropi-badge";
16
21
  export { ButtonSeverity, ButtonSize, ButtonState, ButtonType } from "./components/dropi-button/dropi-button";
17
22
  export { InputMode } from "./components/dropi-input/dropi-input";
23
+ export { ModalPosition, ModalSize } from "./components/dropi-modal/dropi-modal";
18
24
  export { Event } from "./stencil-public-runtime";
19
25
  export { SelectOption, SelectOptionGroup } from "./components/dropi-select/select.types";
26
+ export { SkeletonVariant } from "./components/dropi-skeleton/dropi-skeleton";
27
+ export { TabItem } from "./components/dropi-tabs/dropi-tabs";
20
28
  export { TagState, TagType } from "./components/dropi-tag/dropi-tag";
21
29
  export { ResizeMode } from "./components/dropi-text-area/dropi-text-area";
30
+ export { ToastMessage } from "./components/dropi-toast/dropi-toast";
31
+ export { TooltipPosition } from "./components/dropi-tooltip/dropi-tooltip";
22
32
  export namespace Components {
33
+ /**
34
+ * @component dropi-accordion
35
+ * Collapsible section with animated expand/collapse.
36
+ * @example <dropi-accordion header="¿Cómo funciona?">
37
+ * <p>Contenido del acordeón aquí.</p>
38
+ * </dropi-accordion>
39
+ */
40
+ interface DropiAccordion {
41
+ /**
42
+ * Disable toggling
43
+ * @default false
44
+ */
45
+ "disabled": boolean;
46
+ /**
47
+ * Title shown in the header button
48
+ * @default ''
49
+ */
50
+ "header": string;
51
+ /**
52
+ * Whether the section is expanded
53
+ * @default false
54
+ */
55
+ "open": boolean;
56
+ /**
57
+ * Icon name from dropi-icon sprite (shown before title)
58
+ * @default ''
59
+ */
60
+ "preIcon": string;
61
+ }
23
62
  /**
24
63
  * @component dropi-badge
25
64
  * Status badge for user/account states.
@@ -90,6 +129,42 @@ export namespace Components {
90
129
  */
91
130
  "disabled": boolean;
92
131
  }
132
+ /**
133
+ * @component dropi-empty-state
134
+ * Empty state illustration with title, description and optional action button.
135
+ */
136
+ interface DropiEmptyState {
137
+ /**
138
+ * Primary action button label (empty = hidden)
139
+ * @default ''
140
+ */
141
+ "actionLabel": string;
142
+ /**
143
+ * Description text
144
+ * @default ''
145
+ */
146
+ "description": string;
147
+ /**
148
+ * Title text
149
+ * @default ''
150
+ */
151
+ "header": string;
152
+ /**
153
+ * Alt text for the image
154
+ * @default 'Sin resultados'
155
+ */
156
+ "imageAlt": string;
157
+ /**
158
+ * URL of the illustration image
159
+ * @default ''
160
+ */
161
+ "imageUrl": string;
162
+ /**
163
+ * Secondary action button label (empty = hidden)
164
+ * @default ''
165
+ */
166
+ "secondaryLabel": string;
167
+ }
93
168
  /**
94
169
  * @component dropi-icon
95
170
  * Renders an SVG icon from the Dropi sprite sheet.
@@ -241,6 +316,87 @@ export namespace Components {
241
316
  */
242
317
  "value": string;
243
318
  }
319
+ /**
320
+ * @component dropi-modal
321
+ * Modal/dialog with backdrop, close button, and header/content/footer slots.
322
+ * Slots: (default) body, "header" custom header, "footer" actions.
323
+ */
324
+ interface DropiModal {
325
+ /**
326
+ * @default true
327
+ */
328
+ "closeOnEscape": boolean;
329
+ /**
330
+ * @default true
331
+ */
332
+ "dismissable": boolean;
333
+ /**
334
+ * @default ''
335
+ */
336
+ "header": string;
337
+ "hide": () => Promise<void>;
338
+ /**
339
+ * @default true
340
+ */
341
+ "modal": boolean;
342
+ /**
343
+ * @default 'center'
344
+ */
345
+ "position": ModalPosition;
346
+ "show": () => Promise<void>;
347
+ /**
348
+ * @default true
349
+ */
350
+ "showCloseIcon": boolean;
351
+ /**
352
+ * @default true
353
+ */
354
+ "showHeader": boolean;
355
+ /**
356
+ * @default 'm'
357
+ */
358
+ "size": ModalSize;
359
+ /**
360
+ * @default false
361
+ */
362
+ "visible": boolean;
363
+ }
364
+ /**
365
+ * @component dropi-paginator
366
+ * Pagination control with page numbers, prev/next buttons and items-per-page selector.
367
+ */
368
+ interface DropiPaginator {
369
+ /**
370
+ * Max page buttons to show at once
371
+ * @default 5
372
+ */
373
+ "maxPages": number;
374
+ /**
375
+ * Current page (1-based)
376
+ * @default 1
377
+ */
378
+ "page": number;
379
+ /**
380
+ * Items per page
381
+ * @default 10
382
+ */
383
+ "pageSize": number;
384
+ /**
385
+ * Options for items per page
386
+ * @default [10, 25, 50, 100]
387
+ */
388
+ "pageSizeOptions": number[] | string;
389
+ /**
390
+ * Whether to show the items-per-page selector
391
+ * @default false
392
+ */
393
+ "showPageSizeSelector": boolean;
394
+ /**
395
+ * Total number of items
396
+ * @default 0
397
+ */
398
+ "total": number;
399
+ }
244
400
  /**
245
401
  * @component dropi-radio-button
246
402
  * Styled radio button with label.
@@ -391,6 +547,37 @@ export namespace Components {
391
547
  */
392
548
  "value": SelectOption | null;
393
549
  }
550
+ /**
551
+ * @component dropi-skeleton
552
+ * Loading placeholder with shimmer animation.
553
+ */
554
+ interface DropiSkeleton {
555
+ /**
556
+ * Border radius override
557
+ * @default ''
558
+ */
559
+ "borderRadius": string;
560
+ /**
561
+ * Height (CSS value, e.g. "16px", "48px")
562
+ * @default '16px'
563
+ */
564
+ "height": string;
565
+ /**
566
+ * Number of lines to repeat (text variant only)
567
+ * @default 1
568
+ */
569
+ "lines": number;
570
+ /**
571
+ * Shape variant: 'text' | 'circle' | 'rect'
572
+ * @default 'text'
573
+ */
574
+ "variant": SkeletonVariant;
575
+ /**
576
+ * Width (CSS value, e.g. "100%", "200px")
577
+ * @default '100%'
578
+ */
579
+ "width": string;
580
+ }
394
581
  /**
395
582
  * @component dropi-switch
396
583
  * Toggle switch component. Emits dropiChange on toggle.
@@ -407,6 +594,31 @@ export namespace Components {
407
594
  */
408
595
  "isChecked": boolean;
409
596
  }
597
+ /**
598
+ * @component dropi-tabs
599
+ * Horizontal tab navigation with optional counter badges and completed state icons.
600
+ * @example <dropi-tabs
601
+ * tabs='[{"id":1,"label":"Activos"},{"id":2,"label":"Histórico","counter":5}]'
602
+ * active-tab="1"
603
+ * />
604
+ */
605
+ interface DropiTabs {
606
+ /**
607
+ * Id of the active tab
608
+ * @default 0
609
+ */
610
+ "activeTab": string | number;
611
+ /**
612
+ * Whether to show a check/pending icon per tab
613
+ * @default false
614
+ */
615
+ "showIcon": boolean;
616
+ /**
617
+ * Array of TabItem or JSON string
618
+ * @default []
619
+ */
620
+ "tabs": TabItem[] | string;
621
+ }
410
622
  /**
411
623
  * @component dropi-tag
412
624
  * Colored tag/chip for statuses, categories, and labels.
@@ -514,6 +726,65 @@ export namespace Components {
514
726
  */
515
727
  "value": string;
516
728
  }
729
+ /**
730
+ * @component dropi-toast
731
+ * Global toast notification stack. Place once in the app root, call show() from JS.
732
+ * @example const t = document.querySelector('dropi-toast');
733
+ * t.show({ severity: 'success', summary: '¡Guardado!', detail: 'Cambios aplicados.' });
734
+ */
735
+ interface DropiToast {
736
+ /**
737
+ * Remove all toasts
738
+ */
739
+ "clear": () => Promise<void>;
740
+ /**
741
+ * Default auto-close ms (0 = manual)
742
+ * @default 4000
743
+ */
744
+ "life": number;
745
+ /**
746
+ * Toast position
747
+ * @default 'top-right'
748
+ */
749
+ "position": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';
750
+ /**
751
+ * Show a toast
752
+ */
753
+ "show": (msg: ToastMessage) => Promise<void>;
754
+ }
755
+ /**
756
+ * @component dropi-tooltip
757
+ * Wraps content and shows a tooltip bubble on hover/focus.
758
+ * @example <dropi-tooltip text="Más información" position="top">
759
+ * <dropi-button text="Hover" />
760
+ * </dropi-tooltip>
761
+ */
762
+ interface DropiTooltip {
763
+ /**
764
+ * Max CSS width of the bubble
765
+ * @default '280px'
766
+ */
767
+ "maxWidth": string;
768
+ /**
769
+ * Position: top | bottom | left | right
770
+ * @default 'top'
771
+ */
772
+ "position": TooltipPosition;
773
+ /**
774
+ * Delay in ms before showing
775
+ * @default 0
776
+ */
777
+ "showDelay": number;
778
+ /**
779
+ * Tooltip text
780
+ * @default ''
781
+ */
782
+ "text": string;
783
+ }
784
+ }
785
+ export interface DropiAccordionCustomEvent<T> extends CustomEvent<T> {
786
+ detail: T;
787
+ target: HTMLDropiAccordionElement;
517
788
  }
518
789
  export interface DropiButtonCustomEvent<T> extends CustomEvent<T> {
519
790
  detail: T;
@@ -523,10 +794,22 @@ export interface DropiCheckboxCustomEvent<T> extends CustomEvent<T> {
523
794
  detail: T;
524
795
  target: HTMLDropiCheckboxElement;
525
796
  }
797
+ export interface DropiEmptyStateCustomEvent<T> extends CustomEvent<T> {
798
+ detail: T;
799
+ target: HTMLDropiEmptyStateElement;
800
+ }
526
801
  export interface DropiInputCustomEvent<T> extends CustomEvent<T> {
527
802
  detail: T;
528
803
  target: HTMLDropiInputElement;
529
804
  }
805
+ export interface DropiModalCustomEvent<T> extends CustomEvent<T> {
806
+ detail: T;
807
+ target: HTMLDropiModalElement;
808
+ }
809
+ export interface DropiPaginatorCustomEvent<T> extends CustomEvent<T> {
810
+ detail: T;
811
+ target: HTMLDropiPaginatorElement;
812
+ }
530
813
  export interface DropiRadioButtonCustomEvent<T> extends CustomEvent<T> {
531
814
  detail: T;
532
815
  target: HTMLDropiRadioButtonElement;
@@ -539,11 +822,39 @@ export interface DropiSwitchCustomEvent<T> extends CustomEvent<T> {
539
822
  detail: T;
540
823
  target: HTMLDropiSwitchElement;
541
824
  }
825
+ export interface DropiTabsCustomEvent<T> extends CustomEvent<T> {
826
+ detail: T;
827
+ target: HTMLDropiTabsElement;
828
+ }
542
829
  export interface DropiTextAreaCustomEvent<T> extends CustomEvent<T> {
543
830
  detail: T;
544
831
  target: HTMLDropiTextAreaElement;
545
832
  }
546
833
  declare global {
834
+ interface HTMLDropiAccordionElementEventMap {
835
+ "dropiToggle": boolean;
836
+ }
837
+ /**
838
+ * @component dropi-accordion
839
+ * Collapsible section with animated expand/collapse.
840
+ * @example <dropi-accordion header="¿Cómo funciona?">
841
+ * <p>Contenido del acordeón aquí.</p>
842
+ * </dropi-accordion>
843
+ */
844
+ interface HTMLDropiAccordionElement extends Components.DropiAccordion, HTMLStencilElement {
845
+ addEventListener<K extends keyof HTMLDropiAccordionElementEventMap>(type: K, listener: (this: HTMLDropiAccordionElement, ev: DropiAccordionCustomEvent<HTMLDropiAccordionElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
846
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
847
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
848
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
849
+ removeEventListener<K extends keyof HTMLDropiAccordionElementEventMap>(type: K, listener: (this: HTMLDropiAccordionElement, ev: DropiAccordionCustomEvent<HTMLDropiAccordionElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
850
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
851
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
852
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
853
+ }
854
+ var HTMLDropiAccordionElement: {
855
+ prototype: HTMLDropiAccordionElement;
856
+ new (): HTMLDropiAccordionElement;
857
+ };
547
858
  /**
548
859
  * @component dropi-badge
549
860
  * Status badge for user/account states.
@@ -598,6 +909,28 @@ declare global {
598
909
  prototype: HTMLDropiCheckboxElement;
599
910
  new (): HTMLDropiCheckboxElement;
600
911
  };
912
+ interface HTMLDropiEmptyStateElementEventMap {
913
+ "dropiAction": void;
914
+ "dropiSecondaryAction": void;
915
+ }
916
+ /**
917
+ * @component dropi-empty-state
918
+ * Empty state illustration with title, description and optional action button.
919
+ */
920
+ interface HTMLDropiEmptyStateElement extends Components.DropiEmptyState, HTMLStencilElement {
921
+ addEventListener<K extends keyof HTMLDropiEmptyStateElementEventMap>(type: K, listener: (this: HTMLDropiEmptyStateElement, ev: DropiEmptyStateCustomEvent<HTMLDropiEmptyStateElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
922
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
923
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
924
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
925
+ removeEventListener<K extends keyof HTMLDropiEmptyStateElementEventMap>(type: K, listener: (this: HTMLDropiEmptyStateElement, ev: DropiEmptyStateCustomEvent<HTMLDropiEmptyStateElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
926
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
927
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
928
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
929
+ }
930
+ var HTMLDropiEmptyStateElement: {
931
+ prototype: HTMLDropiEmptyStateElement;
932
+ new (): HTMLDropiEmptyStateElement;
933
+ };
601
934
  /**
602
935
  * @component dropi-icon
603
936
  * Renders an SVG icon from the Dropi sprite sheet.
@@ -642,6 +975,51 @@ declare global {
642
975
  prototype: HTMLDropiInputElement;
643
976
  new (): HTMLDropiInputElement;
644
977
  };
978
+ interface HTMLDropiModalElementEventMap {
979
+ "dropiShow": void;
980
+ "dropiHide": void;
981
+ "visibleChange": boolean;
982
+ }
983
+ /**
984
+ * @component dropi-modal
985
+ * Modal/dialog with backdrop, close button, and header/content/footer slots.
986
+ * Slots: (default) body, "header" custom header, "footer" actions.
987
+ */
988
+ interface HTMLDropiModalElement extends Components.DropiModal, HTMLStencilElement {
989
+ addEventListener<K extends keyof HTMLDropiModalElementEventMap>(type: K, listener: (this: HTMLDropiModalElement, ev: DropiModalCustomEvent<HTMLDropiModalElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
990
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
991
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
992
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
993
+ removeEventListener<K extends keyof HTMLDropiModalElementEventMap>(type: K, listener: (this: HTMLDropiModalElement, ev: DropiModalCustomEvent<HTMLDropiModalElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
994
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
995
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
996
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
997
+ }
998
+ var HTMLDropiModalElement: {
999
+ prototype: HTMLDropiModalElement;
1000
+ new (): HTMLDropiModalElement;
1001
+ };
1002
+ interface HTMLDropiPaginatorElementEventMap {
1003
+ "dropiPageChange": { page: number; pageSize: number };
1004
+ }
1005
+ /**
1006
+ * @component dropi-paginator
1007
+ * Pagination control with page numbers, prev/next buttons and items-per-page selector.
1008
+ */
1009
+ interface HTMLDropiPaginatorElement extends Components.DropiPaginator, HTMLStencilElement {
1010
+ addEventListener<K extends keyof HTMLDropiPaginatorElementEventMap>(type: K, listener: (this: HTMLDropiPaginatorElement, ev: DropiPaginatorCustomEvent<HTMLDropiPaginatorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1011
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1012
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1013
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1014
+ removeEventListener<K extends keyof HTMLDropiPaginatorElementEventMap>(type: K, listener: (this: HTMLDropiPaginatorElement, ev: DropiPaginatorCustomEvent<HTMLDropiPaginatorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1015
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1016
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1017
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1018
+ }
1019
+ var HTMLDropiPaginatorElement: {
1020
+ prototype: HTMLDropiPaginatorElement;
1021
+ new (): HTMLDropiPaginatorElement;
1022
+ };
645
1023
  interface HTMLDropiRadioButtonElementEventMap {
646
1024
  "dropiChange": Event;
647
1025
  }
@@ -703,6 +1081,16 @@ declare global {
703
1081
  prototype: HTMLDropiSelectElement;
704
1082
  new (): HTMLDropiSelectElement;
705
1083
  };
1084
+ /**
1085
+ * @component dropi-skeleton
1086
+ * Loading placeholder with shimmer animation.
1087
+ */
1088
+ interface HTMLDropiSkeletonElement extends Components.DropiSkeleton, HTMLStencilElement {
1089
+ }
1090
+ var HTMLDropiSkeletonElement: {
1091
+ prototype: HTMLDropiSkeletonElement;
1092
+ new (): HTMLDropiSkeletonElement;
1093
+ };
706
1094
  interface HTMLDropiSwitchElementEventMap {
707
1095
  "dropiChange": boolean;
708
1096
  }
@@ -724,6 +1112,31 @@ declare global {
724
1112
  prototype: HTMLDropiSwitchElement;
725
1113
  new (): HTMLDropiSwitchElement;
726
1114
  };
1115
+ interface HTMLDropiTabsElementEventMap {
1116
+ "dropiTabChange": TabItem;
1117
+ }
1118
+ /**
1119
+ * @component dropi-tabs
1120
+ * Horizontal tab navigation with optional counter badges and completed state icons.
1121
+ * @example <dropi-tabs
1122
+ * tabs='[{"id":1,"label":"Activos"},{"id":2,"label":"Histórico","counter":5}]'
1123
+ * active-tab="1"
1124
+ * />
1125
+ */
1126
+ interface HTMLDropiTabsElement extends Components.DropiTabs, HTMLStencilElement {
1127
+ addEventListener<K extends keyof HTMLDropiTabsElementEventMap>(type: K, listener: (this: HTMLDropiTabsElement, ev: DropiTabsCustomEvent<HTMLDropiTabsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1128
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1129
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1130
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1131
+ removeEventListener<K extends keyof HTMLDropiTabsElementEventMap>(type: K, listener: (this: HTMLDropiTabsElement, ev: DropiTabsCustomEvent<HTMLDropiTabsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1132
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1133
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1134
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1135
+ }
1136
+ var HTMLDropiTabsElement: {
1137
+ prototype: HTMLDropiTabsElement;
1138
+ new (): HTMLDropiTabsElement;
1139
+ };
727
1140
  /**
728
1141
  * @component dropi-tag
729
1142
  * Colored tag/chip for statuses, categories, and labels.
@@ -759,20 +1172,86 @@ declare global {
759
1172
  prototype: HTMLDropiTextAreaElement;
760
1173
  new (): HTMLDropiTextAreaElement;
761
1174
  };
1175
+ /**
1176
+ * @component dropi-toast
1177
+ * Global toast notification stack. Place once in the app root, call show() from JS.
1178
+ * @example const t = document.querySelector('dropi-toast');
1179
+ * t.show({ severity: 'success', summary: '¡Guardado!', detail: 'Cambios aplicados.' });
1180
+ */
1181
+ interface HTMLDropiToastElement extends Components.DropiToast, HTMLStencilElement {
1182
+ }
1183
+ var HTMLDropiToastElement: {
1184
+ prototype: HTMLDropiToastElement;
1185
+ new (): HTMLDropiToastElement;
1186
+ };
1187
+ /**
1188
+ * @component dropi-tooltip
1189
+ * Wraps content and shows a tooltip bubble on hover/focus.
1190
+ * @example <dropi-tooltip text="Más información" position="top">
1191
+ * <dropi-button text="Hover" />
1192
+ * </dropi-tooltip>
1193
+ */
1194
+ interface HTMLDropiTooltipElement extends Components.DropiTooltip, HTMLStencilElement {
1195
+ }
1196
+ var HTMLDropiTooltipElement: {
1197
+ prototype: HTMLDropiTooltipElement;
1198
+ new (): HTMLDropiTooltipElement;
1199
+ };
762
1200
  interface HTMLElementTagNameMap {
1201
+ "dropi-accordion": HTMLDropiAccordionElement;
763
1202
  "dropi-badge": HTMLDropiBadgeElement;
764
1203
  "dropi-button": HTMLDropiButtonElement;
765
1204
  "dropi-checkbox": HTMLDropiCheckboxElement;
1205
+ "dropi-empty-state": HTMLDropiEmptyStateElement;
766
1206
  "dropi-icon": HTMLDropiIconElement;
767
1207
  "dropi-input": HTMLDropiInputElement;
1208
+ "dropi-modal": HTMLDropiModalElement;
1209
+ "dropi-paginator": HTMLDropiPaginatorElement;
768
1210
  "dropi-radio-button": HTMLDropiRadioButtonElement;
769
1211
  "dropi-select": HTMLDropiSelectElement;
1212
+ "dropi-skeleton": HTMLDropiSkeletonElement;
770
1213
  "dropi-switch": HTMLDropiSwitchElement;
1214
+ "dropi-tabs": HTMLDropiTabsElement;
771
1215
  "dropi-tag": HTMLDropiTagElement;
772
1216
  "dropi-text-area": HTMLDropiTextAreaElement;
1217
+ "dropi-toast": HTMLDropiToastElement;
1218
+ "dropi-tooltip": HTMLDropiTooltipElement;
773
1219
  }
774
1220
  }
775
1221
  declare namespace LocalJSX {
1222
+ /**
1223
+ * @component dropi-accordion
1224
+ * Collapsible section with animated expand/collapse.
1225
+ * @example <dropi-accordion header="¿Cómo funciona?">
1226
+ * <p>Contenido del acordeón aquí.</p>
1227
+ * </dropi-accordion>
1228
+ */
1229
+ interface DropiAccordion {
1230
+ /**
1231
+ * Disable toggling
1232
+ * @default false
1233
+ */
1234
+ "disabled"?: boolean;
1235
+ /**
1236
+ * Title shown in the header button
1237
+ * @default ''
1238
+ */
1239
+ "header"?: string;
1240
+ /**
1241
+ * Emitted when toggled. e.detail = new open state
1242
+ */
1243
+ "onDropiToggle"?: (event: DropiAccordionCustomEvent<boolean>) => void;
1244
+ /**
1245
+ * Whether the section is expanded
1246
+ * @default false
1247
+ */
1248
+ "open"?: boolean;
1249
+ /**
1250
+ * Icon name from dropi-icon sprite (shown before title)
1251
+ * @default ''
1252
+ */
1253
+ "preIcon"?: string;
1254
+ }
776
1255
  /**
777
1256
  * @component dropi-badge
778
1257
  * Status badge for user/account states.
@@ -859,6 +1338,50 @@ declare namespace LocalJSX {
859
1338
  */
860
1339
  "onDropiChange"?: (event: DropiCheckboxCustomEvent<boolean>) => void;
861
1340
  }
1341
+ /**
1342
+ * @component dropi-empty-state
1343
+ * Empty state illustration with title, description and optional action button.
1344
+ */
1345
+ interface DropiEmptyState {
1346
+ /**
1347
+ * Primary action button label (empty = hidden)
1348
+ * @default ''
1349
+ */
1350
+ "actionLabel"?: string;
1351
+ /**
1352
+ * Description text
1353
+ * @default ''
1354
+ */
1355
+ "description"?: string;
1356
+ /**
1357
+ * Title text
1358
+ * @default ''
1359
+ */
1360
+ "header"?: string;
1361
+ /**
1362
+ * Alt text for the image
1363
+ * @default 'Sin resultados'
1364
+ */
1365
+ "imageAlt"?: string;
1366
+ /**
1367
+ * URL of the illustration image
1368
+ * @default ''
1369
+ */
1370
+ "imageUrl"?: string;
1371
+ /**
1372
+ * Emitted when primary action button is clicked
1373
+ */
1374
+ "onDropiAction"?: (event: DropiEmptyStateCustomEvent<void>) => void;
1375
+ /**
1376
+ * Emitted when secondary action button is clicked
1377
+ */
1378
+ "onDropiSecondaryAction"?: (event: DropiEmptyStateCustomEvent<void>) => void;
1379
+ /**
1380
+ * Secondary action button label (empty = hidden)
1381
+ * @default ''
1382
+ */
1383
+ "secondaryLabel"?: string;
1384
+ }
862
1385
  /**
863
1386
  * @component dropi-icon
864
1387
  * Renders an SVG icon from the Dropi sprite sheet.
@@ -1030,6 +1553,92 @@ declare namespace LocalJSX {
1030
1553
  */
1031
1554
  "value"?: string;
1032
1555
  }
1556
+ /**
1557
+ * @component dropi-modal
1558
+ * Modal/dialog with backdrop, close button, and header/content/footer slots.
1559
+ * Slots: (default) body, "header" custom header, "footer" actions.
1560
+ */
1561
+ interface DropiModal {
1562
+ /**
1563
+ * @default true
1564
+ */
1565
+ "closeOnEscape"?: boolean;
1566
+ /**
1567
+ * @default true
1568
+ */
1569
+ "dismissable"?: boolean;
1570
+ /**
1571
+ * @default ''
1572
+ */
1573
+ "header"?: string;
1574
+ /**
1575
+ * @default true
1576
+ */
1577
+ "modal"?: boolean;
1578
+ "onDropiHide"?: (event: DropiModalCustomEvent<void>) => void;
1579
+ "onDropiShow"?: (event: DropiModalCustomEvent<void>) => void;
1580
+ "onVisibleChange"?: (event: DropiModalCustomEvent<boolean>) => void;
1581
+ /**
1582
+ * @default 'center'
1583
+ */
1584
+ "position"?: ModalPosition;
1585
+ /**
1586
+ * @default true
1587
+ */
1588
+ "showCloseIcon"?: boolean;
1589
+ /**
1590
+ * @default true
1591
+ */
1592
+ "showHeader"?: boolean;
1593
+ /**
1594
+ * @default 'm'
1595
+ */
1596
+ "size"?: ModalSize;
1597
+ /**
1598
+ * @default false
1599
+ */
1600
+ "visible"?: boolean;
1601
+ }
1602
+ /**
1603
+ * @component dropi-paginator
1604
+ * Pagination control with page numbers, prev/next buttons and items-per-page selector.
1605
+ */
1606
+ interface DropiPaginator {
1607
+ /**
1608
+ * Max page buttons to show at once
1609
+ * @default 5
1610
+ */
1611
+ "maxPages"?: number;
1612
+ /**
1613
+ * Emitted when page changes. e.detail = { page, pageSize }
1614
+ */
1615
+ "onDropiPageChange"?: (event: DropiPaginatorCustomEvent<{ page: number; pageSize: number }>) => void;
1616
+ /**
1617
+ * Current page (1-based)
1618
+ * @default 1
1619
+ */
1620
+ "page"?: number;
1621
+ /**
1622
+ * Items per page
1623
+ * @default 10
1624
+ */
1625
+ "pageSize"?: number;
1626
+ /**
1627
+ * Options for items per page
1628
+ * @default [10, 25, 50, 100]
1629
+ */
1630
+ "pageSizeOptions"?: number[] | string;
1631
+ /**
1632
+ * Whether to show the items-per-page selector
1633
+ * @default false
1634
+ */
1635
+ "showPageSizeSelector"?: boolean;
1636
+ /**
1637
+ * Total number of items
1638
+ * @default 0
1639
+ */
1640
+ "total"?: number;
1641
+ }
1033
1642
  /**
1034
1643
  * @component dropi-radio-button
1035
1644
  * Styled radio button with label.
@@ -1200,6 +1809,37 @@ declare namespace LocalJSX {
1200
1809
  */
1201
1810
  "value"?: SelectOption | null;
1202
1811
  }
1812
+ /**
1813
+ * @component dropi-skeleton
1814
+ * Loading placeholder with shimmer animation.
1815
+ */
1816
+ interface DropiSkeleton {
1817
+ /**
1818
+ * Border radius override
1819
+ * @default ''
1820
+ */
1821
+ "borderRadius"?: string;
1822
+ /**
1823
+ * Height (CSS value, e.g. "16px", "48px")
1824
+ * @default '16px'
1825
+ */
1826
+ "height"?: string;
1827
+ /**
1828
+ * Number of lines to repeat (text variant only)
1829
+ * @default 1
1830
+ */
1831
+ "lines"?: number;
1832
+ /**
1833
+ * Shape variant: 'text' | 'circle' | 'rect'
1834
+ * @default 'text'
1835
+ */
1836
+ "variant"?: SkeletonVariant;
1837
+ /**
1838
+ * Width (CSS value, e.g. "100%", "200px")
1839
+ * @default '100%'
1840
+ */
1841
+ "width"?: string;
1842
+ }
1203
1843
  /**
1204
1844
  * @component dropi-switch
1205
1845
  * Toggle switch component. Emits dropiChange on toggle.
@@ -1228,6 +1868,35 @@ declare namespace LocalJSX {
1228
1868
  */
1229
1869
  "onDropiChange"?: (event: DropiSwitchCustomEvent<boolean>) => void;
1230
1870
  }
1871
+ /**
1872
+ * @component dropi-tabs
1873
+ * Horizontal tab navigation with optional counter badges and completed state icons.
1874
+ * @example <dropi-tabs
1875
+ * tabs='[{"id":1,"label":"Activos"},{"id":2,"label":"Histórico","counter":5}]'
1876
+ * active-tab="1"
1877
+ * />
1878
+ */
1879
+ interface DropiTabs {
1880
+ /**
1881
+ * Id of the active tab
1882
+ * @default 0
1883
+ */
1884
+ "activeTab"?: string | number;
1885
+ /**
1886
+ * Emitted on tab click. e.detail = TabItem
1887
+ */
1888
+ "onDropiTabChange"?: (event: DropiTabsCustomEvent<TabItem>) => void;
1889
+ /**
1890
+ * Whether to show a check/pending icon per tab
1891
+ * @default false
1892
+ */
1893
+ "showIcon"?: boolean;
1894
+ /**
1895
+ * Array of TabItem or JSON string
1896
+ * @default []
1897
+ */
1898
+ "tabs"?: TabItem[] | string;
1899
+ }
1231
1900
  /**
1232
1901
  * @component dropi-tag
1233
1902
  * Colored tag/chip for statuses, categories, and labels.
@@ -1349,7 +2018,60 @@ declare namespace LocalJSX {
1349
2018
  */
1350
2019
  "value"?: string;
1351
2020
  }
2021
+ /**
2022
+ * @component dropi-toast
2023
+ * Global toast notification stack. Place once in the app root, call show() from JS.
2024
+ * @example const t = document.querySelector('dropi-toast');
2025
+ * t.show({ severity: 'success', summary: '¡Guardado!', detail: 'Cambios aplicados.' });
2026
+ */
2027
+ interface DropiToast {
2028
+ /**
2029
+ * Default auto-close ms (0 = manual)
2030
+ * @default 4000
2031
+ */
2032
+ "life"?: number;
2033
+ /**
2034
+ * Toast position
2035
+ * @default 'top-right'
2036
+ */
2037
+ "position"?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';
2038
+ }
2039
+ /**
2040
+ * @component dropi-tooltip
2041
+ * Wraps content and shows a tooltip bubble on hover/focus.
2042
+ * @example <dropi-tooltip text="Más información" position="top">
2043
+ * <dropi-button text="Hover" />
2044
+ * </dropi-tooltip>
2045
+ */
2046
+ interface DropiTooltip {
2047
+ /**
2048
+ * Max CSS width of the bubble
2049
+ * @default '280px'
2050
+ */
2051
+ "maxWidth"?: string;
2052
+ /**
2053
+ * Position: top | bottom | left | right
2054
+ * @default 'top'
2055
+ */
2056
+ "position"?: TooltipPosition;
2057
+ /**
2058
+ * Delay in ms before showing
2059
+ * @default 0
2060
+ */
2061
+ "showDelay"?: number;
2062
+ /**
2063
+ * Tooltip text
2064
+ * @default ''
2065
+ */
2066
+ "text"?: string;
2067
+ }
1352
2068
 
2069
+ interface DropiAccordionAttributes {
2070
+ "header": string;
2071
+ "open": boolean;
2072
+ "disabled": boolean;
2073
+ "preIcon": string;
2074
+ }
1353
2075
  interface DropiBadgeAttributes {
1354
2076
  "state": BadgeState;
1355
2077
  }
@@ -1366,6 +2088,14 @@ declare namespace LocalJSX {
1366
2088
  "checked": boolean;
1367
2089
  "disabled": boolean;
1368
2090
  }
2091
+ interface DropiEmptyStateAttributes {
2092
+ "header": string;
2093
+ "description": string;
2094
+ "imageUrl": string;
2095
+ "imageAlt": string;
2096
+ "actionLabel": string;
2097
+ "secondaryLabel": string;
2098
+ }
1369
2099
  interface DropiIconAttributes {
1370
2100
  "name": string;
1371
2101
  "width": string;
@@ -1396,6 +2126,25 @@ declare namespace LocalJSX {
1396
2126
  "helperText": string;
1397
2127
  "showHelperOnlyOnError": boolean;
1398
2128
  }
2129
+ interface DropiModalAttributes {
2130
+ "visible": boolean;
2131
+ "header": string;
2132
+ "showCloseIcon": boolean;
2133
+ "dismissable": boolean;
2134
+ "closeOnEscape": boolean;
2135
+ "modal": boolean;
2136
+ "showHeader": boolean;
2137
+ "position": ModalPosition;
2138
+ "size": ModalSize;
2139
+ }
2140
+ interface DropiPaginatorAttributes {
2141
+ "total": number;
2142
+ "pageSize": number;
2143
+ "page": number;
2144
+ "maxPages": number;
2145
+ "showPageSizeSelector": boolean;
2146
+ "pageSizeOptions": number[] | string;
2147
+ }
1399
2148
  interface DropiRadioButtonAttributes {
1400
2149
  "label": string;
1401
2150
  "name": string;
@@ -1421,10 +2170,22 @@ declare namespace LocalJSX {
1421
2170
  "preIcon": string;
1422
2171
  "defaultSelectedId": string;
1423
2172
  }
2173
+ interface DropiSkeletonAttributes {
2174
+ "variant": SkeletonVariant;
2175
+ "width": string;
2176
+ "height": string;
2177
+ "borderRadius": string;
2178
+ "lines": number;
2179
+ }
1424
2180
  interface DropiSwitchAttributes {
1425
2181
  "isChecked": boolean;
1426
2182
  "disabled": boolean;
1427
2183
  }
2184
+ interface DropiTabsAttributes {
2185
+ "tabs": TabItem[] | string;
2186
+ "activeTab": string;
2187
+ "showIcon": boolean;
2188
+ }
1428
2189
  interface DropiTagAttributes {
1429
2190
  "type": TagType;
1430
2191
  "state": TagState;
@@ -1448,24 +2209,50 @@ declare namespace LocalJSX {
1448
2209
  "helperText": string;
1449
2210
  "invalid": boolean;
1450
2211
  }
2212
+ interface DropiToastAttributes {
2213
+ "position": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';
2214
+ "life": number;
2215
+ }
2216
+ interface DropiTooltipAttributes {
2217
+ "text": string;
2218
+ "position": TooltipPosition;
2219
+ "maxWidth": string;
2220
+ "showDelay": number;
2221
+ }
1451
2222
 
1452
2223
  interface IntrinsicElements {
2224
+ "dropi-accordion": Omit<DropiAccordion, keyof DropiAccordionAttributes> & { [K in keyof DropiAccordion & keyof DropiAccordionAttributes]?: DropiAccordion[K] } & { [K in keyof DropiAccordion & keyof DropiAccordionAttributes as `attr:${K}`]?: DropiAccordionAttributes[K] } & { [K in keyof DropiAccordion & keyof DropiAccordionAttributes as `prop:${K}`]?: DropiAccordion[K] };
1453
2225
  "dropi-badge": Omit<DropiBadge, keyof DropiBadgeAttributes> & { [K in keyof DropiBadge & keyof DropiBadgeAttributes]?: DropiBadge[K] } & { [K in keyof DropiBadge & keyof DropiBadgeAttributes as `attr:${K}`]?: DropiBadgeAttributes[K] } & { [K in keyof DropiBadge & keyof DropiBadgeAttributes as `prop:${K}`]?: DropiBadge[K] };
1454
2226
  "dropi-button": Omit<DropiButton, keyof DropiButtonAttributes> & { [K in keyof DropiButton & keyof DropiButtonAttributes]?: DropiButton[K] } & { [K in keyof DropiButton & keyof DropiButtonAttributes as `attr:${K}`]?: DropiButtonAttributes[K] } & { [K in keyof DropiButton & keyof DropiButtonAttributes as `prop:${K}`]?: DropiButton[K] };
1455
2227
  "dropi-checkbox": Omit<DropiCheckbox, keyof DropiCheckboxAttributes> & { [K in keyof DropiCheckbox & keyof DropiCheckboxAttributes]?: DropiCheckbox[K] } & { [K in keyof DropiCheckbox & keyof DropiCheckboxAttributes as `attr:${K}`]?: DropiCheckboxAttributes[K] } & { [K in keyof DropiCheckbox & keyof DropiCheckboxAttributes as `prop:${K}`]?: DropiCheckbox[K] };
2228
+ "dropi-empty-state": Omit<DropiEmptyState, keyof DropiEmptyStateAttributes> & { [K in keyof DropiEmptyState & keyof DropiEmptyStateAttributes]?: DropiEmptyState[K] } & { [K in keyof DropiEmptyState & keyof DropiEmptyStateAttributes as `attr:${K}`]?: DropiEmptyStateAttributes[K] } & { [K in keyof DropiEmptyState & keyof DropiEmptyStateAttributes as `prop:${K}`]?: DropiEmptyState[K] };
1456
2229
  "dropi-icon": Omit<DropiIcon, keyof DropiIconAttributes> & { [K in keyof DropiIcon & keyof DropiIconAttributes]?: DropiIcon[K] } & { [K in keyof DropiIcon & keyof DropiIconAttributes as `attr:${K}`]?: DropiIconAttributes[K] } & { [K in keyof DropiIcon & keyof DropiIconAttributes as `prop:${K}`]?: DropiIcon[K] };
1457
2230
  "dropi-input": Omit<DropiInput, keyof DropiInputAttributes> & { [K in keyof DropiInput & keyof DropiInputAttributes]?: DropiInput[K] } & { [K in keyof DropiInput & keyof DropiInputAttributes as `attr:${K}`]?: DropiInputAttributes[K] } & { [K in keyof DropiInput & keyof DropiInputAttributes as `prop:${K}`]?: DropiInput[K] };
2231
+ "dropi-modal": Omit<DropiModal, keyof DropiModalAttributes> & { [K in keyof DropiModal & keyof DropiModalAttributes]?: DropiModal[K] } & { [K in keyof DropiModal & keyof DropiModalAttributes as `attr:${K}`]?: DropiModalAttributes[K] } & { [K in keyof DropiModal & keyof DropiModalAttributes as `prop:${K}`]?: DropiModal[K] };
2232
+ "dropi-paginator": Omit<DropiPaginator, keyof DropiPaginatorAttributes> & { [K in keyof DropiPaginator & keyof DropiPaginatorAttributes]?: DropiPaginator[K] } & { [K in keyof DropiPaginator & keyof DropiPaginatorAttributes as `attr:${K}`]?: DropiPaginatorAttributes[K] } & { [K in keyof DropiPaginator & keyof DropiPaginatorAttributes as `prop:${K}`]?: DropiPaginator[K] };
1458
2233
  "dropi-radio-button": Omit<DropiRadioButton, keyof DropiRadioButtonAttributes> & { [K in keyof DropiRadioButton & keyof DropiRadioButtonAttributes]?: DropiRadioButton[K] } & { [K in keyof DropiRadioButton & keyof DropiRadioButtonAttributes as `attr:${K}`]?: DropiRadioButtonAttributes[K] } & { [K in keyof DropiRadioButton & keyof DropiRadioButtonAttributes as `prop:${K}`]?: DropiRadioButton[K] };
1459
2234
  "dropi-select": Omit<DropiSelect, keyof DropiSelectAttributes> & { [K in keyof DropiSelect & keyof DropiSelectAttributes]?: DropiSelect[K] } & { [K in keyof DropiSelect & keyof DropiSelectAttributes as `attr:${K}`]?: DropiSelectAttributes[K] } & { [K in keyof DropiSelect & keyof DropiSelectAttributes as `prop:${K}`]?: DropiSelect[K] };
2235
+ "dropi-skeleton": Omit<DropiSkeleton, keyof DropiSkeletonAttributes> & { [K in keyof DropiSkeleton & keyof DropiSkeletonAttributes]?: DropiSkeleton[K] } & { [K in keyof DropiSkeleton & keyof DropiSkeletonAttributes as `attr:${K}`]?: DropiSkeletonAttributes[K] } & { [K in keyof DropiSkeleton & keyof DropiSkeletonAttributes as `prop:${K}`]?: DropiSkeleton[K] };
1460
2236
  "dropi-switch": Omit<DropiSwitch, keyof DropiSwitchAttributes> & { [K in keyof DropiSwitch & keyof DropiSwitchAttributes]?: DropiSwitch[K] } & { [K in keyof DropiSwitch & keyof DropiSwitchAttributes as `attr:${K}`]?: DropiSwitchAttributes[K] } & { [K in keyof DropiSwitch & keyof DropiSwitchAttributes as `prop:${K}`]?: DropiSwitch[K] };
2237
+ "dropi-tabs": Omit<DropiTabs, keyof DropiTabsAttributes> & { [K in keyof DropiTabs & keyof DropiTabsAttributes]?: DropiTabs[K] } & { [K in keyof DropiTabs & keyof DropiTabsAttributes as `attr:${K}`]?: DropiTabsAttributes[K] } & { [K in keyof DropiTabs & keyof DropiTabsAttributes as `prop:${K}`]?: DropiTabs[K] };
1461
2238
  "dropi-tag": Omit<DropiTag, keyof DropiTagAttributes> & { [K in keyof DropiTag & keyof DropiTagAttributes]?: DropiTag[K] } & { [K in keyof DropiTag & keyof DropiTagAttributes as `attr:${K}`]?: DropiTagAttributes[K] } & { [K in keyof DropiTag & keyof DropiTagAttributes as `prop:${K}`]?: DropiTag[K] };
1462
2239
  "dropi-text-area": Omit<DropiTextArea, keyof DropiTextAreaAttributes> & { [K in keyof DropiTextArea & keyof DropiTextAreaAttributes]?: DropiTextArea[K] } & { [K in keyof DropiTextArea & keyof DropiTextAreaAttributes as `attr:${K}`]?: DropiTextAreaAttributes[K] } & { [K in keyof DropiTextArea & keyof DropiTextAreaAttributes as `prop:${K}`]?: DropiTextArea[K] };
2240
+ "dropi-toast": Omit<DropiToast, keyof DropiToastAttributes> & { [K in keyof DropiToast & keyof DropiToastAttributes]?: DropiToast[K] } & { [K in keyof DropiToast & keyof DropiToastAttributes as `attr:${K}`]?: DropiToastAttributes[K] } & { [K in keyof DropiToast & keyof DropiToastAttributes as `prop:${K}`]?: DropiToast[K] };
2241
+ "dropi-tooltip": Omit<DropiTooltip, keyof DropiTooltipAttributes> & { [K in keyof DropiTooltip & keyof DropiTooltipAttributes]?: DropiTooltip[K] } & { [K in keyof DropiTooltip & keyof DropiTooltipAttributes as `attr:${K}`]?: DropiTooltipAttributes[K] } & { [K in keyof DropiTooltip & keyof DropiTooltipAttributes as `prop:${K}`]?: DropiTooltip[K] };
1463
2242
  }
1464
2243
  }
1465
2244
  export { LocalJSX as JSX };
1466
2245
  declare module "@stencil/core" {
1467
2246
  export namespace JSX {
1468
2247
  interface IntrinsicElements {
2248
+ /**
2249
+ * @component dropi-accordion
2250
+ * Collapsible section with animated expand/collapse.
2251
+ * @example <dropi-accordion header="¿Cómo funciona?">
2252
+ * <p>Contenido del acordeón aquí.</p>
2253
+ * </dropi-accordion>
2254
+ */
2255
+ "dropi-accordion": LocalJSX.IntrinsicElements["dropi-accordion"] & JSXBase.HTMLAttributes<HTMLDropiAccordionElement>;
1469
2256
  /**
1470
2257
  * @component dropi-badge
1471
2258
  * Status badge for user/account states.
@@ -1483,6 +2270,11 @@ declare module "@stencil/core" {
1483
2270
  * Supports form association via native `<input type="checkbox">` internals.
1484
2271
  */
1485
2272
  "dropi-checkbox": LocalJSX.IntrinsicElements["dropi-checkbox"] & JSXBase.HTMLAttributes<HTMLDropiCheckboxElement>;
2273
+ /**
2274
+ * @component dropi-empty-state
2275
+ * Empty state illustration with title, description and optional action button.
2276
+ */
2277
+ "dropi-empty-state": LocalJSX.IntrinsicElements["dropi-empty-state"] & JSXBase.HTMLAttributes<HTMLDropiEmptyStateElement>;
1486
2278
  /**
1487
2279
  * @component dropi-icon
1488
2280
  * Renders an SVG icon from the Dropi sprite sheet.
@@ -1503,6 +2295,17 @@ declare module "@stencil/core" {
1503
2295
  * Pass `value` and listen to `dropiInput` to update.
1504
2296
  */
1505
2297
  "dropi-input": LocalJSX.IntrinsicElements["dropi-input"] & JSXBase.HTMLAttributes<HTMLDropiInputElement>;
2298
+ /**
2299
+ * @component dropi-modal
2300
+ * Modal/dialog with backdrop, close button, and header/content/footer slots.
2301
+ * Slots: (default) body, "header" custom header, "footer" actions.
2302
+ */
2303
+ "dropi-modal": LocalJSX.IntrinsicElements["dropi-modal"] & JSXBase.HTMLAttributes<HTMLDropiModalElement>;
2304
+ /**
2305
+ * @component dropi-paginator
2306
+ * Pagination control with page numbers, prev/next buttons and items-per-page selector.
2307
+ */
2308
+ "dropi-paginator": LocalJSX.IntrinsicElements["dropi-paginator"] & JSXBase.HTMLAttributes<HTMLDropiPaginatorElement>;
1506
2309
  /**
1507
2310
  * @component dropi-radio-button
1508
2311
  * Styled radio button with label.
@@ -1528,11 +2331,25 @@ declare module "@stencil/core" {
1528
2331
  * ```
1529
2332
  */
1530
2333
  "dropi-select": LocalJSX.IntrinsicElements["dropi-select"] & JSXBase.HTMLAttributes<HTMLDropiSelectElement>;
2334
+ /**
2335
+ * @component dropi-skeleton
2336
+ * Loading placeholder with shimmer animation.
2337
+ */
2338
+ "dropi-skeleton": LocalJSX.IntrinsicElements["dropi-skeleton"] & JSXBase.HTMLAttributes<HTMLDropiSkeletonElement>;
1531
2339
  /**
1532
2340
  * @component dropi-switch
1533
2341
  * Toggle switch component. Emits dropiChange on toggle.
1534
2342
  */
1535
2343
  "dropi-switch": LocalJSX.IntrinsicElements["dropi-switch"] & JSXBase.HTMLAttributes<HTMLDropiSwitchElement>;
2344
+ /**
2345
+ * @component dropi-tabs
2346
+ * Horizontal tab navigation with optional counter badges and completed state icons.
2347
+ * @example <dropi-tabs
2348
+ * tabs='[{"id":1,"label":"Activos"},{"id":2,"label":"Histórico","counter":5}]'
2349
+ * active-tab="1"
2350
+ * />
2351
+ */
2352
+ "dropi-tabs": LocalJSX.IntrinsicElements["dropi-tabs"] & JSXBase.HTMLAttributes<HTMLDropiTabsElement>;
1536
2353
  /**
1537
2354
  * @component dropi-tag
1538
2355
  * Colored tag/chip for statuses, categories, and labels.
@@ -1544,6 +2361,21 @@ declare module "@stencil/core" {
1544
2361
  * helper text, and native form association.
1545
2362
  */
1546
2363
  "dropi-text-area": LocalJSX.IntrinsicElements["dropi-text-area"] & JSXBase.HTMLAttributes<HTMLDropiTextAreaElement>;
2364
+ /**
2365
+ * @component dropi-toast
2366
+ * Global toast notification stack. Place once in the app root, call show() from JS.
2367
+ * @example const t = document.querySelector('dropi-toast');
2368
+ * t.show({ severity: 'success', summary: '¡Guardado!', detail: 'Cambios aplicados.' });
2369
+ */
2370
+ "dropi-toast": LocalJSX.IntrinsicElements["dropi-toast"] & JSXBase.HTMLAttributes<HTMLDropiToastElement>;
2371
+ /**
2372
+ * @component dropi-tooltip
2373
+ * Wraps content and shows a tooltip bubble on hover/focus.
2374
+ * @example <dropi-tooltip text="Más información" position="top">
2375
+ * <dropi-button text="Hover" />
2376
+ * </dropi-tooltip>
2377
+ */
2378
+ "dropi-tooltip": LocalJSX.IntrinsicElements["dropi-tooltip"] & JSXBase.HTMLAttributes<HTMLDropiTooltipElement>;
1547
2379
  }
1548
2380
  }
1549
2381
  }