@andespindola/ui-core 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/ui-accordion-item.cjs.entry.js +2 -2
  3. package/dist/cjs/ui-accordion.cjs.entry.js +1 -1
  4. package/dist/cjs/ui-alert.cjs.entry.js +40 -0
  5. package/dist/cjs/ui-avatar-group.cjs.entry.js +17 -0
  6. package/dist/cjs/ui-avatar.cjs.entry.js +2 -2
  7. package/dist/cjs/ui-badge.cjs.entry.js +7 -2
  8. package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +23 -0
  9. package/dist/cjs/ui-breadcrumb.cjs.entry.js +17 -0
  10. package/dist/cjs/ui-button.cjs.entry.js +5 -3
  11. package/dist/cjs/ui-card.cjs.entry.js +2 -2
  12. package/dist/cjs/ui-checkbox.cjs.entry.js +2 -2
  13. package/dist/cjs/ui-container.cjs.entry.js +26 -0
  14. package/dist/cjs/ui-dialog.cjs.entry.js +1 -1
  15. package/dist/cjs/ui-drawer.cjs.entry.js +1 -1
  16. package/dist/cjs/ui-dropdown-item.cjs.entry.js +1 -1
  17. package/dist/cjs/ui-dropdown-menu.cjs.entry.js +1 -1
  18. package/dist/cjs/ui-field.cjs.entry.js +1 -1
  19. package/dist/cjs/ui-grid.cjs.entry.js +34 -0
  20. package/dist/cjs/ui-input.cjs.entry.js +10 -2
  21. package/dist/cjs/ui-label.cjs.entry.js +1 -1
  22. package/dist/cjs/ui-pagination.cjs.entry.js +63 -0
  23. package/dist/cjs/ui-popover.cjs.entry.js +1 -1
  24. package/dist/cjs/ui-progress.cjs.entry.js +2 -2
  25. package/dist/cjs/ui-radio-group.cjs.entry.js +1 -1
  26. package/dist/cjs/ui-reveal.cjs.entry.js +1 -1
  27. package/dist/cjs/ui-scroll-progress.cjs.entry.js +1 -1
  28. package/dist/cjs/ui-section.cjs.entry.js +2 -2
  29. package/dist/cjs/ui-segmented.cjs.entry.js +31 -0
  30. package/dist/cjs/ui-select.cjs.entry.js +2 -2
  31. package/dist/cjs/ui-separator.cjs.entry.js +1 -1
  32. package/dist/cjs/ui-skeleton.cjs.entry.js +2 -2
  33. package/dist/cjs/ui-slider.cjs.entry.js +1 -1
  34. package/dist/cjs/ui-spinner.cjs.entry.js +1 -1
  35. package/dist/cjs/ui-stack.cjs.entry.js +53 -0
  36. package/dist/cjs/ui-stat.cjs.entry.js +28 -0
  37. package/dist/cjs/ui-switch.cjs.entry.js +1 -1
  38. package/dist/cjs/ui-tabs.cjs.entry.js +3 -3
  39. package/dist/cjs/ui-textarea.cjs.entry.js +2 -2
  40. package/dist/cjs/ui-theme-toggle.cjs.entry.js +1 -1
  41. package/dist/cjs/ui-toast.cjs.entry.js +1 -1
  42. package/dist/cjs/ui-toaster.cjs.entry.js +1 -1
  43. package/dist/cjs/ui-tooltip.cjs.entry.js +2 -2
  44. package/dist/cjs/uikit.cjs.js +1 -1
  45. package/dist/collection/collection-manifest.json +10 -0
  46. package/dist/collection/components/ui-accordion/ui-accordion.js +1 -1
  47. package/dist/collection/components/ui-accordion-item/ui-accordion-item.css +8 -0
  48. package/dist/collection/components/ui-accordion-item/ui-accordion-item.js +1 -1
  49. package/dist/collection/components/ui-alert/ui-alert.css +95 -0
  50. package/dist/collection/components/ui-alert/ui-alert.js +134 -0
  51. package/dist/collection/components/ui-avatar/ui-avatar.css +31 -0
  52. package/dist/collection/components/ui-avatar/ui-avatar.js +20 -1
  53. package/dist/collection/components/ui-avatar-group/ui-avatar-group.css +22 -0
  54. package/dist/collection/components/ui-avatar-group/ui-avatar-group.js +21 -0
  55. package/dist/collection/components/ui-badge/ui-badge.css +26 -0
  56. package/dist/collection/components/ui-badge/ui-badge.js +63 -1
  57. package/dist/collection/components/ui-breadcrumb/ui-breadcrumb.css +15 -0
  58. package/dist/collection/components/ui-breadcrumb/ui-breadcrumb.js +18 -0
  59. package/dist/collection/components/ui-breadcrumb-item/ui-breadcrumb-item.css +30 -0
  60. package/dist/collection/components/ui-breadcrumb-item/ui-breadcrumb-item.js +69 -0
  61. package/dist/collection/components/ui-button/ui-button.css +11 -1
  62. package/dist/collection/components/ui-button/ui-button.js +24 -2
  63. package/dist/collection/components/ui-card/ui-card.css +17 -3
  64. package/dist/collection/components/ui-card/ui-card.js +1 -1
  65. package/dist/collection/components/ui-checkbox/ui-checkbox.css +6 -2
  66. package/dist/collection/components/ui-checkbox/ui-checkbox.js +1 -1
  67. package/dist/collection/components/ui-container/ui-container.css +38 -0
  68. package/dist/collection/components/ui-container/ui-container.js +79 -0
  69. package/dist/collection/components/ui-dialog/ui-dialog.js +1 -1
  70. package/dist/collection/components/ui-drawer/ui-drawer.js +1 -1
  71. package/dist/collection/components/ui-dropdown-item/ui-dropdown-item.js +1 -1
  72. package/dist/collection/components/ui-dropdown-menu/ui-dropdown-menu.js +1 -1
  73. package/dist/collection/components/ui-field/ui-field.js +1 -1
  74. package/dist/collection/components/ui-grid/ui-grid.css +8 -0
  75. package/dist/collection/components/ui-grid/ui-grid.js +106 -0
  76. package/dist/collection/components/ui-input/ui-input.css +65 -14
  77. package/dist/collection/components/ui-input/ui-input.js +29 -1
  78. package/dist/collection/components/ui-label/ui-label.js +1 -1
  79. package/dist/collection/components/ui-pagination/ui-pagination.css +59 -0
  80. package/dist/collection/components/ui-pagination/ui-pagination.js +147 -0
  81. package/dist/collection/components/ui-popover/ui-popover.js +1 -1
  82. package/dist/collection/components/ui-progress/ui-progress.css +9 -4
  83. package/dist/collection/components/ui-progress/ui-progress.js +1 -1
  84. package/dist/collection/components/ui-radio-group/ui-radio-group.js +1 -1
  85. package/dist/collection/components/ui-reveal/ui-reveal.js +1 -1
  86. package/dist/collection/components/ui-scroll-progress/ui-scroll-progress.js +1 -1
  87. package/dist/collection/components/ui-section/ui-section.css +12 -5
  88. package/dist/collection/components/ui-section/ui-section.js +1 -1
  89. package/dist/collection/components/ui-segmented/ui-segmented.css +46 -0
  90. package/dist/collection/components/ui-segmented/ui-segmented.js +99 -0
  91. package/dist/collection/components/ui-select/ui-select.css +4 -0
  92. package/dist/collection/components/ui-select/ui-select.js +1 -1
  93. package/dist/collection/components/ui-separator/ui-separator.js +1 -1
  94. package/dist/collection/components/ui-skeleton/ui-skeleton.css +9 -6
  95. package/dist/collection/components/ui-skeleton/ui-skeleton.js +1 -1
  96. package/dist/collection/components/ui-slider/ui-slider.js +1 -1
  97. package/dist/collection/components/ui-spinner/ui-spinner.js +1 -1
  98. package/dist/collection/components/ui-stack/ui-stack.css +8 -0
  99. package/dist/collection/components/ui-stack/ui-stack.js +184 -0
  100. package/dist/collection/components/ui-stat/ui-stat.css +69 -0
  101. package/dist/collection/components/ui-stat/ui-stat.js +118 -0
  102. package/dist/collection/components/ui-switch/ui-switch.js +1 -1
  103. package/dist/collection/components/ui-tabs/ui-tabs.css +12 -0
  104. package/dist/collection/components/ui-tabs/ui-tabs.js +2 -2
  105. package/dist/collection/components/ui-textarea/ui-textarea.css +4 -0
  106. package/dist/collection/components/ui-textarea/ui-textarea.js +1 -1
  107. package/dist/collection/components/ui-theme-toggle/ui-theme-toggle.js +1 -1
  108. package/dist/collection/components/ui-toast/ui-toast.js +1 -1
  109. package/dist/collection/components/ui-toaster/ui-toaster.js +1 -1
  110. package/dist/collection/components/ui-tooltip/ui-tooltip.css +5 -4
  111. package/dist/collection/components/ui-tooltip/ui-tooltip.js +1 -1
  112. package/dist/components/{p-Bz9HyboB.js → p-BwNtNvTb.js} +1 -1
  113. package/dist/components/{p-C8ePpPG3.js → p-CgsjJD8o.js} +1 -1
  114. package/dist/components/ui-accordion-item.js +1 -1
  115. package/dist/components/ui-accordion.js +1 -1
  116. package/dist/components/ui-alert.d.ts +11 -0
  117. package/dist/components/ui-alert.js +1 -0
  118. package/dist/components/ui-avatar-group.d.ts +11 -0
  119. package/dist/components/ui-avatar-group.js +1 -0
  120. package/dist/components/ui-avatar.js +1 -1
  121. package/dist/components/ui-badge.js +1 -1
  122. package/dist/components/ui-breadcrumb-item.d.ts +11 -0
  123. package/dist/components/ui-breadcrumb-item.js +1 -0
  124. package/dist/components/ui-breadcrumb.d.ts +11 -0
  125. package/dist/components/ui-breadcrumb.js +1 -0
  126. package/dist/components/ui-button.js +1 -1
  127. package/dist/components/ui-card.js +1 -1
  128. package/dist/components/ui-checkbox.js +1 -1
  129. package/dist/components/ui-container.d.ts +11 -0
  130. package/dist/components/ui-container.js +1 -0
  131. package/dist/components/ui-dialog.js +1 -1
  132. package/dist/components/ui-drawer.js +1 -1
  133. package/dist/components/ui-dropdown-item.js +1 -1
  134. package/dist/components/ui-dropdown-menu.js +1 -1
  135. package/dist/components/ui-field.js +1 -1
  136. package/dist/components/ui-grid.d.ts +11 -0
  137. package/dist/components/ui-grid.js +1 -0
  138. package/dist/components/ui-input.js +1 -1
  139. package/dist/components/ui-label.js +1 -1
  140. package/dist/components/ui-loading-overlay.js +1 -1
  141. package/dist/components/ui-pagination.d.ts +11 -0
  142. package/dist/components/ui-pagination.js +1 -0
  143. package/dist/components/ui-popover.js +1 -1
  144. package/dist/components/ui-progress.js +1 -1
  145. package/dist/components/ui-radio-group.js +1 -1
  146. package/dist/components/ui-reveal.js +1 -1
  147. package/dist/components/ui-scroll-progress.js +1 -1
  148. package/dist/components/ui-section.js +1 -1
  149. package/dist/components/ui-segmented.d.ts +11 -0
  150. package/dist/components/ui-segmented.js +1 -0
  151. package/dist/components/ui-select.js +1 -1
  152. package/dist/components/ui-separator.js +1 -1
  153. package/dist/components/ui-skeleton.js +1 -1
  154. package/dist/components/ui-slider.js +1 -1
  155. package/dist/components/ui-spinner.js +1 -1
  156. package/dist/components/ui-stack.d.ts +11 -0
  157. package/dist/components/ui-stack.js +1 -0
  158. package/dist/components/ui-stat.d.ts +11 -0
  159. package/dist/components/ui-stat.js +1 -0
  160. package/dist/components/ui-switch.js +1 -1
  161. package/dist/components/ui-tabs.js +1 -1
  162. package/dist/components/ui-textarea.js +1 -1
  163. package/dist/components/ui-theme-toggle.js +1 -1
  164. package/dist/components/ui-toast.js +1 -1
  165. package/dist/components/ui-toaster.js +1 -1
  166. package/dist/components/ui-tooltip.js +1 -1
  167. package/dist/esm/loader.js +1 -1
  168. package/dist/esm/ui-accordion-item.entry.js +2 -2
  169. package/dist/esm/ui-accordion.entry.js +1 -1
  170. package/dist/esm/ui-alert.entry.js +38 -0
  171. package/dist/esm/ui-avatar-group.entry.js +15 -0
  172. package/dist/esm/ui-avatar.entry.js +2 -2
  173. package/dist/esm/ui-badge.entry.js +8 -3
  174. package/dist/esm/ui-breadcrumb-item.entry.js +21 -0
  175. package/dist/esm/ui-breadcrumb.entry.js +15 -0
  176. package/dist/esm/ui-button.entry.js +5 -3
  177. package/dist/esm/ui-card.entry.js +2 -2
  178. package/dist/esm/ui-checkbox.entry.js +2 -2
  179. package/dist/esm/ui-container.entry.js +24 -0
  180. package/dist/esm/ui-dialog.entry.js +1 -1
  181. package/dist/esm/ui-drawer.entry.js +1 -1
  182. package/dist/esm/ui-dropdown-item.entry.js +1 -1
  183. package/dist/esm/ui-dropdown-menu.entry.js +1 -1
  184. package/dist/esm/ui-field.entry.js +1 -1
  185. package/dist/esm/ui-grid.entry.js +32 -0
  186. package/dist/esm/ui-input.entry.js +10 -2
  187. package/dist/esm/ui-label.entry.js +1 -1
  188. package/dist/esm/ui-pagination.entry.js +61 -0
  189. package/dist/esm/ui-popover.entry.js +1 -1
  190. package/dist/esm/ui-progress.entry.js +2 -2
  191. package/dist/esm/ui-radio-group.entry.js +1 -1
  192. package/dist/esm/ui-reveal.entry.js +1 -1
  193. package/dist/esm/ui-scroll-progress.entry.js +1 -1
  194. package/dist/esm/ui-section.entry.js +2 -2
  195. package/dist/esm/ui-segmented.entry.js +29 -0
  196. package/dist/esm/ui-select.entry.js +2 -2
  197. package/dist/esm/ui-separator.entry.js +1 -1
  198. package/dist/esm/ui-skeleton.entry.js +2 -2
  199. package/dist/esm/ui-slider.entry.js +1 -1
  200. package/dist/esm/ui-spinner.entry.js +1 -1
  201. package/dist/esm/ui-stack.entry.js +51 -0
  202. package/dist/esm/ui-stat.entry.js +26 -0
  203. package/dist/esm/ui-switch.entry.js +1 -1
  204. package/dist/esm/ui-tabs.entry.js +3 -3
  205. package/dist/esm/ui-textarea.entry.js +2 -2
  206. package/dist/esm/ui-theme-toggle.entry.js +1 -1
  207. package/dist/esm/ui-toast.entry.js +1 -1
  208. package/dist/esm/ui-toaster.entry.js +1 -1
  209. package/dist/esm/ui-tooltip.entry.js +2 -2
  210. package/dist/esm/uikit.js +1 -1
  211. package/dist/types/components/ui-alert/ui-alert.d.ts +17 -0
  212. package/dist/types/components/ui-avatar/ui-avatar.d.ts +2 -0
  213. package/dist/types/components/ui-avatar-group/ui-avatar-group.d.ts +6 -0
  214. package/dist/types/components/ui-badge/ui-badge.d.ts +7 -0
  215. package/dist/types/components/ui-breadcrumb/ui-breadcrumb.d.ts +3 -0
  216. package/dist/types/components/ui-breadcrumb-item/ui-breadcrumb-item.d.ts +8 -0
  217. package/dist/types/components/ui-button/ui-button.d.ts +2 -0
  218. package/dist/types/components/ui-container/ui-container.d.ts +8 -0
  219. package/dist/types/components/ui-grid/ui-grid.d.ts +10 -0
  220. package/dist/types/components/ui-input/ui-input.d.ts +3 -0
  221. package/dist/types/components/ui-pagination/ui-pagination.d.ts +15 -0
  222. package/dist/types/components/ui-segmented/ui-segmented.d.ts +15 -0
  223. package/dist/types/components/ui-stack/ui-stack.d.ts +17 -0
  224. package/dist/types/components/ui-stat/ui-stat.d.ts +13 -0
  225. package/dist/types/components.d.ts +552 -0
  226. package/dist/uikit/{p-8cebbe65.entry.js → p-09895cd0.entry.js} +1 -1
  227. package/dist/uikit/p-0cba0d11.entry.js +1 -0
  228. package/dist/uikit/p-12db6a6e.entry.js +1 -0
  229. package/dist/uikit/{p-4a1abc1c.entry.js → p-1d016ea4.entry.js} +1 -1
  230. package/dist/uikit/{p-19b81437.entry.js → p-25637424.entry.js} +1 -1
  231. package/dist/uikit/p-2601d8b6.entry.js +1 -0
  232. package/dist/uikit/p-2de05aac.entry.js +1 -0
  233. package/dist/uikit/{p-3d30bc7a.entry.js → p-3996590f.entry.js} +1 -1
  234. package/dist/uikit/p-3fc062a6.entry.js +1 -0
  235. package/dist/uikit/p-45e80e73.entry.js +1 -0
  236. package/dist/uikit/{p-b61e3df4.entry.js → p-55a23f91.entry.js} +1 -1
  237. package/dist/uikit/p-567f7496.entry.js +1 -0
  238. package/dist/uikit/p-5951a496.entry.js +1 -0
  239. package/dist/uikit/{p-9aa557d1.entry.js → p-595e146f.entry.js} +1 -1
  240. package/dist/uikit/p-635862e6.entry.js +1 -0
  241. package/dist/uikit/{p-c72ed105.entry.js → p-67963692.entry.js} +1 -1
  242. package/dist/uikit/p-6c0e9809.entry.js +1 -0
  243. package/dist/uikit/p-74b60a60.entry.js +1 -0
  244. package/dist/uikit/p-7a3d85da.entry.js +1 -0
  245. package/dist/uikit/{p-f7402442.entry.js → p-7f2c2924.entry.js} +1 -1
  246. package/dist/uikit/{p-5df32809.entry.js → p-81b45a43.entry.js} +1 -1
  247. package/dist/uikit/p-86ed6154.entry.js +1 -0
  248. package/dist/uikit/p-94ad46a5.entry.js +1 -0
  249. package/dist/uikit/{p-e410c789.entry.js → p-95cd976e.entry.js} +1 -1
  250. package/dist/uikit/{p-4382718f.entry.js → p-979f6178.entry.js} +1 -1
  251. package/dist/uikit/p-97d4dbf4.entry.js +1 -0
  252. package/dist/uikit/p-9a4dc343.entry.js +1 -0
  253. package/dist/uikit/p-9a9590b9.entry.js +1 -0
  254. package/dist/uikit/p-a01305a5.entry.js +1 -0
  255. package/dist/uikit/p-a080f46a.entry.js +1 -0
  256. package/dist/uikit/p-a92a7b19.entry.js +1 -0
  257. package/dist/uikit/p-a977a0db.entry.js +1 -0
  258. package/dist/uikit/p-b2df8437.entry.js +1 -0
  259. package/dist/uikit/{p-9e7b81ef.entry.js → p-c73c1009.entry.js} +1 -1
  260. package/dist/uikit/{p-83159bfc.entry.js → p-cd0ec835.entry.js} +1 -1
  261. package/dist/uikit/p-d20452b4.entry.js +1 -0
  262. package/dist/uikit/p-d7021157.entry.js +1 -0
  263. package/dist/uikit/p-db07f9c5.entry.js +1 -0
  264. package/dist/uikit/p-dca9f6f9.entry.js +1 -0
  265. package/dist/uikit/p-ddd70374.entry.js +1 -0
  266. package/dist/uikit/{p-629c1728.entry.js → p-faa98928.entry.js} +1 -1
  267. package/dist/uikit/p-fd832f52.entry.js +1 -0
  268. package/dist/uikit/uikit.esm.js +1 -1
  269. package/package.json +8 -3
  270. package/dist/uikit/p-06d6d907.entry.js +0 -1
  271. package/dist/uikit/p-0fb4949b.entry.js +0 -1
  272. package/dist/uikit/p-162302d1.entry.js +0 -1
  273. package/dist/uikit/p-24edfe3e.entry.js +0 -1
  274. package/dist/uikit/p-57058c30.entry.js +0 -1
  275. package/dist/uikit/p-5ea42ee5.entry.js +0 -1
  276. package/dist/uikit/p-76f0f79f.entry.js +0 -1
  277. package/dist/uikit/p-8bcd423c.entry.js +0 -1
  278. package/dist/uikit/p-90d49509.entry.js +0 -1
  279. package/dist/uikit/p-94fb298e.entry.js +0 -1
  280. package/dist/uikit/p-9c57cf57.entry.js +0 -1
  281. package/dist/uikit/p-9d784b04.entry.js +0 -1
  282. package/dist/uikit/p-9f7c6ca8.entry.js +0 -1
  283. package/dist/uikit/p-a7be1c69.entry.js +0 -1
  284. package/dist/uikit/p-b30aa6a6.entry.js +0 -1
  285. package/dist/uikit/p-cb2adfb7.entry.js +0 -1
  286. package/dist/uikit/p-cf10ca3b.entry.js +0 -1
  287. package/dist/uikit/p-fd1648bf.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiButtonCss = () => `:host{display:inline-block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;border:1px solid transparent;border-radius:var(--ui-radius-full);font-family:var(--ui-font-sans);font-weight:500;cursor:pointer;outline:none;transition:all var(--ui-duration) var(--ui-ease)}.btn:active{transform:scale(0.98)}.btn:focus-visible{box-shadow:0 0 0 2px var(--ui-background), 0 0 0 4px var(--ui-ring)}.btn:disabled{pointer-events:none;opacity:0.5}.size-sm{height:2.25rem;padding:0 1rem;font-size:0.75rem}.size-md{height:2.75rem;padding:0 1.25rem;font-size:0.875rem}.size-lg{height:3rem;padding:0 1.5rem;font-size:1rem}.size-icon{height:2.5rem;width:2.5rem;padding:0}.variant-solid{background:var(--ui-accent);color:var(--ui-accent-contrast);box-shadow:var(--ui-shadow)}.variant-solid:hover{filter:brightness(1.1)}.variant-default{background:var(--ui-panel-strong);color:var(--ui-foreground);border-color:var(--ui-border);backdrop-filter:blur(22px)}.variant-default:hover{border-color:var(--ui-border-strong)}.variant-subtle{background:var(--ui-chip);color:var(--ui-foreground);border-color:var(--ui-border);backdrop-filter:blur(22px)}.variant-subtle:hover{background:var(--ui-panel)}.variant-outline{color:var(--ui-foreground);border-color:var(--ui-border-strong)}.variant-outline:hover{background:var(--ui-chip)}.variant-ghost{color:var(--ui-text-soft)}.variant-ghost:hover{background:var(--ui-chip)}.variant-destructive{background:var(--ui-danger);color:var(--ui-on-status)}.variant-destructive:hover{filter:brightness(1.1)}.variant-link{color:var(--ui-accent);text-underline-offset:4px}.variant-link:hover{text-decoration:underline}.spinner{width:1rem;height:1rem;border-radius:9999px;border:2px solid currentColor;border-top-color:transparent;animation:ui-button-spin 0.7s linear infinite}@keyframes ui-button-spin{to{transform:rotate(360deg)}}`;
3
+ const uiButtonCss = () => `:host{display:inline-block}:host([full]){display:block;width:100%}:host([full]) .btn{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;border:1px solid transparent;border-radius:var(--ui-radius-full);font-family:var(--ui-font-sans);font-weight:500;cursor:pointer;outline:none;transition:all var(--ui-duration) var(--ui-ease)}.btn:active{transform:scale(0.98)}.btn:focus-visible{box-shadow:0 0 0 2px var(--ui-background), 0 0 0 4px var(--ui-ring)}.btn:disabled{pointer-events:none;opacity:0.5}.size-sm{height:2.25rem;padding:0 1rem;font-size:0.75rem}.size-md{height:2.75rem;padding:0 1.25rem;font-size:0.875rem}.size-lg{height:3rem;padding:0 1.5rem;font-size:1rem}.size-icon{height:2.5rem;width:2.5rem;padding:0}.variant-solid{background:var(--ui-accent);color:var(--ui-accent-contrast);box-shadow:var(--ui-shadow)}.variant-solid:hover{filter:brightness(1.1)}.variant-default{background:var(--ui-panel-strong);color:var(--ui-foreground);border-color:var(--ui-border);backdrop-filter:blur(22px)}.variant-default:hover{border-color:var(--ui-border-strong)}.variant-subtle{background:var(--ui-chip);color:var(--ui-foreground);border-color:var(--ui-border);backdrop-filter:blur(22px)}.variant-subtle:hover{background:var(--ui-panel)}.variant-outline{color:var(--ui-foreground);border-color:color-mix(in srgb, var(--ui-foreground) 30%, transparent)}.variant-outline:hover{background:var(--ui-chip);border-color:color-mix(in srgb, var(--ui-foreground) 45%, transparent)}.variant-ghost{color:var(--ui-text-soft)}.variant-ghost:hover{background:var(--ui-chip)}.variant-destructive{background:var(--ui-danger);color:var(--ui-on-status)}.variant-destructive:hover{filter:brightness(1.1)}.variant-link{color:var(--ui-accent);text-underline-offset:4px}.variant-link:hover{text-decoration:underline}.spinner{width:1rem;height:1rem;border-radius:9999px;border:2px solid currentColor;border-top-color:transparent;animation:ui-button-spin 0.7s linear infinite}@keyframes ui-button-spin{to{transform:rotate(360deg)}}`;
4
4
 
5
5
  const UiButton = class {
6
6
  constructor(hostRef) {
@@ -15,13 +15,15 @@ const UiButton = class {
15
15
  this.loading = false;
16
16
  /** Tipo do botão nativo. */
17
17
  this.type = "button";
18
+ /** Ocupa 100% da largura disponível. */
19
+ this.full = false;
18
20
  }
19
21
  render() {
20
- return (h(Host, { key: 'bf18a1f72babada2698ce42f54bf2d73b0d41d0b' }, h("button", { key: 'f08a766e14d139d7031dac4fa5846fbc0749328f', class: {
22
+ return (h(Host, { key: 'fa9886a20cac8424b127be543c0fd1ad04cc2fb1' }, h("button", { key: 'c54077dabce85b286733efcae8a08a435b81d72e', class: {
21
23
  btn: true,
22
24
  [`variant-${this.variant}`]: true,
23
25
  [`size-${this.size}`]: true,
24
- }, type: this.type, disabled: this.disabled || this.loading, "aria-busy": this.loading ? "true" : null }, this.loading && h("span", { key: 'a3e87dd124b697050a657b9957884c231aa58c54', class: "spinner", "aria-hidden": "true" }), h("slot", { key: '87a720f06602011042d70a91918a0b2157abb163' }))));
26
+ }, type: this.type, disabled: this.disabled || this.loading, "aria-busy": this.loading ? "true" : null }, this.loading && h("span", { key: '8e557bd098d5655be256ea7fc0748990b7f11026', class: "spinner", "aria-hidden": "true" }), h("slot", { key: '36946d065411700928e3541f351a3f6f75018ae9' }))));
25
27
  }
26
28
  };
27
29
  UiButton.style = uiButtonCss();
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiCardCss = () => `:host{display:block}.card{border:1px solid var(--ui-border);background:var(--ui-panel);box-shadow:var(--ui-shadow-lg);backdrop-filter:blur(22px) saturate(140%);border-radius:var(--ui-radius-xl);color:var(--ui-foreground);padding:1.5rem}::slotted([slot="title"]){font-size:1.125rem;font-weight:600;letter-spacing:-0.01em}::slotted([slot="description"]){color:var(--ui-text-muted);font-size:0.875rem}`;
3
+ const uiCardCss = () => `:host{display:block}.card{display:flex;flex-direction:column;gap:0.5rem;padding:1.5rem;border:1px solid var(--ui-border);background:var(--ui-panel);box-shadow:var(--ui-shadow-lg);backdrop-filter:blur(22px) saturate(140%);border-radius:var(--ui-radius-xl);color:var(--ui-text-soft);font-family:var(--ui-font-sans)}::slotted([slot="title"]){margin:0;font-size:1.125rem;font-weight:600;letter-spacing:-0.01em;color:var(--ui-foreground)}::slotted([slot="description"]){margin:0;font-size:0.875rem;color:var(--ui-text-muted)}::slotted([slot="footer"]){display:flex;gap:0.75rem;margin-top:0.5rem}`;
4
4
 
5
5
  const UiCard = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: '7e2833cdc6f37c6b8577c17677840913fb7cd9e1' }, h("div", { key: '223c291e98af73ee2c299b8649773cfcf54388d7', class: "card" }, h("slot", { key: 'e948386bcd492c31e264d50cf27d26e98dd771eb' }))));
10
+ return (h(Host, { key: '39ddf0a9974086fcc9ad3fc89f1e1d6858e2fead' }, h("div", { key: 'e8e510a468dc662f9fc76affce785a9b37edc205', class: "card" }, h("slot", { key: 'ee92d4bc2fa1738d84689d989d4e113d515acc83', name: "title" }), h("slot", { key: '6e87c2406474b6ea2aa370d1602ff02a89c4f4d5', name: "description" }), h("slot", { key: 'a388b4bc2d9c5e328ade55ac38c870afc9ade82c' }), h("slot", { key: '071ce297db672e332cf2d354a395b07e100b16a1', name: "footer" }))));
11
11
  }
12
12
  };
13
13
  UiCard.style = uiCardCss();
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiCheckboxCss = () => `:host{display:inline-flex}.checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);background:var(--ui-panel);cursor:pointer;outline:none;transition:all var(--ui-duration) var(--ui-ease)}.checkbox:focus-visible{box-shadow:0 0 0 2px var(--ui-background), 0 0 0 4px var(--ui-ring)}.checkbox[aria-checked="true"]{background:var(--ui-accent);border-color:var(--ui-accent)}.checkbox:disabled{opacity:0.5;pointer-events:none}.check{width:0.875rem;height:0.875rem;color:var(--ui-accent-contrast);opacity:0;transform:scale(0.6);transition:all var(--ui-duration) var(--ui-ease)}.checkbox[aria-checked="true"] .check{opacity:1;transform:scale(1)}`;
3
+ const uiCheckboxCss = () => `:host{display:inline-flex}.checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;border:1.5px solid color-mix(in srgb, var(--ui-foreground) 32%, transparent);border-radius:var(--ui-radius-sm);background:var(--ui-chip);cursor:pointer;outline:none;transition:all var(--ui-duration) var(--ui-ease)}.checkbox:hover:not(:disabled):not([aria-checked="true"]){border-color:var(--ui-accent)}.checkbox:focus-visible{box-shadow:0 0 0 2px var(--ui-background), 0 0 0 4px var(--ui-ring)}.checkbox[aria-checked="true"]{background:var(--ui-accent);border-color:var(--ui-accent)}.checkbox:disabled{opacity:0.5;pointer-events:none}.check{width:0.875rem;height:0.875rem;color:var(--ui-accent-contrast);opacity:0;transform:scale(0.6);transition:all var(--ui-duration) var(--ui-ease)}.checkbox[aria-checked="true"] .check{opacity:1;transform:scale(1)}`;
4
4
 
5
5
  const UiCheckbox = class {
6
6
  constructor(hostRef) {
@@ -24,7 +24,7 @@ const UiCheckbox = class {
24
24
  };
25
25
  }
26
26
  render() {
27
- return (h(Host, { key: '218342fd572fe2a937ef30501ceb1286ed9872ac' }, h("button", { key: 'c54f4b4d663c472e08aeff9016da9d3fe63072fd', class: "checkbox", type: "button", role: "checkbox", "aria-checked": this.checked ? "true" : "false", disabled: this.disabled, onClick: this.toggle, onKeyDown: this.onKeyDown }, h("svg", { key: 'a4f460f90eeaa930b0d867ad1aadf99550ff3c9a', class: "check", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("polyline", { key: 'e96040e1a3058b910203023d882aa8da62ec9fce', points: "20 6 9 17 4 12" })))));
27
+ return (h(Host, { key: '73477b35af6a093e87ae8a5b33232690888ca98c' }, h("button", { key: '235b0102bbdd9a0ef23c3230acbba9aebdb06898', class: "checkbox", type: "button", role: "checkbox", "aria-checked": this.checked ? "true" : "false", disabled: this.disabled, onClick: this.toggle, onKeyDown: this.onKeyDown }, h("svg", { key: '3aaa64d1d173991b2c785298586aab66471e9285', class: "check", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("polyline", { key: 'baaca1ba97901e5a9d4e97640221f35cdeb02351', points: "20 6 9 17 4 12" })))));
28
28
  }
29
29
  };
30
30
  UiCheckbox.style = uiCheckboxCss();
@@ -0,0 +1,24 @@
1
+ import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
+
3
+ const uiContainerCss = () => `:host{display:block;width:100%}.container{margin-inline:auto;width:100%;font-family:var(--ui-font-sans)}.size-sm{max-width:40rem}.size-md{max-width:48rem}.size-lg{max-width:64rem}.size-xl{max-width:80rem}.size-full{max-width:none}.padded{padding-inline:1.25rem}@media (min-width: 640px){.padded{padding-inline:2rem}}`;
4
+
5
+ const UiContainer = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ /** Largura máxima do container. */
9
+ this.size = "lg";
10
+ /** Aplica padding lateral responsivo. */
11
+ this.padded = true;
12
+ }
13
+ render() {
14
+ const classes = {
15
+ container: true,
16
+ [`size-${this.size}`]: true,
17
+ padded: this.padded,
18
+ };
19
+ return (h(Host, { key: '4f00ee39f0ae347fafac349ee8e42c991c8013dd' }, h("div", { key: 'a0f8f0c6d418f119c6631d0387f9328af8fbb416', class: classes }, h("slot", { key: '86178f8371c958123fcf8b7e6bfe059aeed9f690' }))));
20
+ }
21
+ };
22
+ UiContainer.style = uiContainerCss();
23
+
24
+ export { UiContainer as ui_container };
@@ -42,7 +42,7 @@ const UiDialog = class {
42
42
  this.open = false;
43
43
  }
44
44
  render() {
45
- return (h(Host, { key: 'c61dad5c30282e7a0ff063b713fff567be0b2183' }, h("dialog", { key: '55e3de816fcdaafce020a8edb30e469f6d579df7', class: "dialog", ref: (el) => (this.dialogEl = el), onClose: this.onClose, onCancel: this.onClose, onClick: this.onBackdropClick }, h("div", { key: '39b8436aca48ee79ff63a1cd81640697be8007cf', class: "content" }, h("slot", { key: 'e8d509cd882aa1e3a97f66486baf4afacdf36767' })))));
45
+ return (h(Host, { key: 'e6c34700dc04fd3754eedeab279a67cd3997fb3d' }, h("dialog", { key: 'fdb23f89bd4b9aef79abaec586bf39add47ce013', class: "dialog", ref: (el) => (this.dialogEl = el), onClose: this.onClose, onCancel: this.onClose, onClick: this.onBackdropClick }, h("div", { key: '8a86f47c263d4fac68debdcef9cc8ed7e0be7ca8', class: "content" }, h("slot", { key: 'fe9d9105c13670104b5a60c939f9256b44694e8e' })))));
46
46
  }
47
47
  static get watchers() { return {
48
48
  "open": [{
@@ -44,7 +44,7 @@ const UiDrawer = class {
44
44
  this.open = false;
45
45
  }
46
46
  render() {
47
- return (h(Host, { key: '96c4f4cec0fdc9a8601448bfc9a16dda37b33507' }, h("dialog", { key: '72ef71e674d116c9d2f47bf4d997fc9d5ca1472d', class: `drawer side-${this.side}`, ref: (el) => (this.dialogEl = el), onClose: this.onClose, onCancel: this.onClose, onClick: this.onBackdropClick }, h("div", { key: '25e537c059dcc33085bd0c0c47aa39448a16176b', class: "content" }, h("slot", { key: '3c0b746055fb6f1ac6a8c0c4713aa9cd47fd1a00' })))));
47
+ return (h(Host, { key: '5d44e7d604eab21d2d30d5cbaaa225658c8e7e71' }, h("dialog", { key: 'ecdfc2057a8864f6b8dc961ddcd51c3f349b2b54', class: `drawer side-${this.side}`, ref: (el) => (this.dialogEl = el), onClose: this.onClose, onCancel: this.onClose, onClick: this.onBackdropClick }, h("div", { key: 'c14965ebb97a2c77d06c4a50466d00bf4036bafa', class: "content" }, h("slot", { key: '2bdbb4cbd2cd30ade870090c5383d398cfb6772b' })))));
48
48
  }
49
49
  static get watchers() { return {
50
50
  "open": [{
@@ -16,7 +16,7 @@ const UiDropdownItem = class {
16
16
  };
17
17
  }
18
18
  render() {
19
- return (h(Host, { key: '9e88bb2a1ccec0a6c5f088cdd40a7881cba6e3ac' }, h("button", { key: '371c531f920cbd1a5374b8c6812d9b67c97e44f4', type: "button", class: "item", role: "menuitem", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: 'fe16aad1402e098180719edd9110c83ee550224c' }))));
19
+ return (h(Host, { key: 'a73d394ff94b232151c37e749d398f4485f46bde' }, h("button", { key: '3827857b88fc5d63681e80dc2cc470b58faf69e1', type: "button", class: "item", role: "menuitem", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: 'a6dbd79c7b171ef6a8a53aa5da39fbca37725e1c' }))));
20
20
  }
21
21
  get host() { return getElement(this); }
22
22
  };
@@ -81,7 +81,7 @@ const UiDropdownMenu = class {
81
81
  this.cleanup = undefined;
82
82
  }
83
83
  render() {
84
- return (h(Host, { key: '83694eb278f8a9c711ae30677254a4168dbd825f' }, h("span", { key: 'dabab12417ed473e22097578c07842f36a05e397', class: "trigger", ref: (el) => (this.triggerEl = el), onClick: this.onTriggerClick }, h("slot", { key: '6e3b0f1c2c83a48c0c70a2416c6e0ac34b05c68e', name: "trigger" })), h("div", { key: '2b6059c9bfa98c6f5bc9656d86ffeaf1009a887b', class: { menu: true, "is-open": this.open }, role: "menu", ref: (el) => (this.floatingEl = el) }, h("slot", { key: 'af01e24903f705ef30174ba37735d774b8e5aa99' }))));
84
+ return (h(Host, { key: '6d1ac3cd9096527745a84f24443a3b230bf2aaf0' }, h("span", { key: '5594e37030b1fd69260b4de30393aacfbc636ca3', class: "trigger", ref: (el) => (this.triggerEl = el), onClick: this.onTriggerClick }, h("slot", { key: '763b6bf28fe4c79a13a2cc5a620d19e51ae5f6e2', name: "trigger" })), h("div", { key: '0bec01181593abbcb1a8634eb027ce0cef0d860d', class: { menu: true, "is-open": this.open }, role: "menu", ref: (el) => (this.floatingEl = el) }, h("slot", { key: '1b1fa528fc1186c81dd433d0cb9b775df8357641' }))));
85
85
  }
86
86
  get host() { return getElement(this); }
87
87
  static get watchers() { return {
@@ -9,7 +9,7 @@ const UiField = class {
9
9
  this.required = false;
10
10
  }
11
11
  render() {
12
- return (h(Host, { key: '1f944085a10d6c795ce06a7a91021fee46780347' }, h("div", { key: 'a2f2fde238292d543c65bf6e1ed0dfd0dce424f9', class: "field" }, this.label && (h("label", { key: '4f450b5e43f1ea8dda3b3134022a010391a2f404', class: "label", htmlFor: this.fieldId }, this.label, this.required && (h("span", { key: '1853d16b19752584b646a294dcbe2b8359ec12b4', class: "required", "aria-hidden": "true" }, " *")))), h("slot", { key: '75adc24c2264e3e954618737769232535caa13e4' }), this.error ? (h("p", { class: "error", role: "alert" }, this.error)) : (this.description && h("p", { class: "description" }, this.description)))));
12
+ return (h(Host, { key: '1910a6ce3a389ab7faa9e3b46e0397e6a9bfbaab' }, h("div", { key: 'fb76fb030b9af9129578f7b2f0b85eaffefc8d67', class: "field" }, this.label && (h("label", { key: '659a7c0982360c133891a1a22a98cdae32a529ed', class: "label", htmlFor: this.fieldId }, this.label, this.required && (h("span", { key: 'de93f19b8a2dd063df1175c00c68c0b7c9b092d6', class: "required", "aria-hidden": "true" }, " *")))), h("slot", { key: 'a510f107aab90a202c178f1d22727689db828fdc' }), this.error ? (h("p", { class: "error", role: "alert" }, this.error)) : (this.description && h("p", { class: "description" }, this.description)))));
13
13
  }
14
14
  };
15
15
  UiField.style = uiFieldCss();
@@ -0,0 +1,32 @@
1
+ import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
+
3
+ const uiGridCss = () => `:host{display:block}.grid{display:grid;font-family:var(--ui-font-sans)}`;
4
+
5
+ const GAP = {
6
+ xs: "0.25rem",
7
+ sm: "0.5rem",
8
+ md: "1rem",
9
+ lg: "1.5rem",
10
+ xl: "2rem",
11
+ };
12
+ const UiGrid = class {
13
+ constructor(hostRef) {
14
+ registerInstance(this, hostRef);
15
+ /** Número de colunas da grade. */
16
+ this.columns = 12;
17
+ /** Espaçamento entre células. */
18
+ this.gap = "md";
19
+ }
20
+ render() {
21
+ const style = {
22
+ gridTemplateColumns: this.minItemWidth
23
+ ? `repeat(auto-fit, minmax(${this.minItemWidth}, 1fr))`
24
+ : `repeat(${this.columns}, minmax(0, 1fr))`,
25
+ gap: GAP[this.gap],
26
+ };
27
+ return (h(Host, { key: '465a816e064af42d8282185ee92e32477a6112fd' }, h("div", { key: 'da2e151c56959ced55477e3fe6c99aa5563b38aa', class: "grid", style: style }, h("slot", { key: '5bb285ce0feaf16d066b627010fc3fb595a85c15' }))));
28
+ }
29
+ };
30
+ UiGrid.style = uiGridCss();
31
+
32
+ export { UiGrid as ui_grid };
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiInputCss = () => `:host{display:block}.input{width:100%;height:2.75rem;padding:0 1rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-panel);color:var(--ui-foreground);font-family:var(--ui-font-sans);font-size:0.875rem;outline:none;backdrop-filter:blur(22px);transition:all var(--ui-duration) var(--ui-ease);box-sizing:border-box}.input::placeholder{color:var(--ui-text-faint)}.input:focus-visible{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-ring)}.input:disabled{opacity:0.5;pointer-events:none}.input.invalid{border-color:var(--ui-danger)}.input.invalid:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--ui-danger) 40%, transparent)}`;
3
+ const uiInputCss = () => `:host{display:block}.field{display:flex;align-items:center;gap:0.5rem;width:100%;height:2.75rem;padding:0 0.875rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-panel);backdrop-filter:blur(22px);transition:all var(--ui-duration) var(--ui-ease);box-sizing:border-box}.field:hover:not(.disabled){border-color:var(--ui-border-strong)}.field:focus-within{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-ring)}.field.invalid{border-color:var(--ui-danger)}.field.invalid:focus-within{box-shadow:0 0 0 2px color-mix(in srgb, var(--ui-danger) 40%, transparent)}.field.disabled{opacity:0.5;pointer-events:none}.input{flex:1;min-width:0;height:100%;border:none;background:transparent;color:var(--ui-foreground);font-family:var(--ui-font-sans);font-size:0.875rem;outline:none}.input::placeholder{color:var(--ui-text-faint)}.affix{display:inline-flex;align-items:center;color:var(--ui-text-muted)}.affix::slotted(svg),::slotted([slot="prefix"]),::slotted([slot="suffix"]){display:inline-flex;color:var(--ui-text-muted)}.clear{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.25rem;height:1.25rem;padding:0;border:none;border-radius:var(--ui-radius-full);background:var(--ui-chip);color:var(--ui-text-muted);cursor:pointer;transition:all var(--ui-duration) var(--ui-ease)}.clear:hover{color:var(--ui-foreground);background:var(--ui-panel-strong)}`;
4
4
 
5
5
  const UiInput = class {
6
6
  constructor(hostRef) {
@@ -15,6 +15,8 @@ const UiInput = class {
15
15
  this.disabled = false;
16
16
  /** Marca o campo como inválido (estilo + aria-invalid). */
17
17
  this.invalid = false;
18
+ /** Exibe um botão para limpar o valor quando preenchido. */
19
+ this.clearable = false;
18
20
  this.onInput = (event) => {
19
21
  const target = event.target;
20
22
  this.value = target.value;
@@ -23,9 +25,15 @@ const UiInput = class {
23
25
  this.onChange = (event) => {
24
26
  this.uiChange.emit(event.target.value);
25
27
  };
28
+ this.clear = () => {
29
+ this.value = "";
30
+ this.uiInput.emit("");
31
+ this.uiChange.emit("");
32
+ };
26
33
  }
27
34
  render() {
28
- return (h(Host, { key: 'e2ca2973fb898cde6988d2422f8b346662caf375' }, h("input", { key: '6e2b0358dc583f448a71f95f319d0fd675536c60', class: { input: true, invalid: this.invalid }, type: this.type, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, "aria-invalid": this.invalid ? "true" : null, onInput: this.onInput, onChange: this.onChange })));
35
+ const showClear = this.clearable && !!this.value && !this.disabled;
36
+ return (h(Host, { key: 'a87a7c9a1aba5631099f2f9c3a3083a9e7374854' }, h("div", { key: '04d3493ab32a4636f3f2540aaba0b30e4c018225', class: { field: true, invalid: this.invalid, disabled: this.disabled } }, h("span", { key: '66fa079a8b6ccc62dca78f4266d92800dd8727b0', class: "affix" }, h("slot", { key: 'c9db74515db3226bc730beb42a2a8f2d8eb6ee9f', name: "prefix" })), h("input", { key: 'a8f4db568e49ee22b5eeae078c4e4b3fdbc48983', class: "input", type: this.type, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, "aria-invalid": this.invalid ? "true" : null, onInput: this.onInput, onChange: this.onChange }), showClear && (h("button", { key: 'e38a2279db1b1c677274a6e22019bf3183ae1920', class: "clear", type: "button", "aria-label": "Limpar", onClick: this.clear }, h("svg", { key: '0982ea65d3b1598620953fcd600b1eb1945348ee', viewBox: "0 0 24 24", width: "14", height: "14", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }, h("path", { key: '26f833d4ccf8feab9f2ec4f4527b8c8e9c00d09b', d: "M18 6 6 18M6 6l12 12" })))), h("span", { key: '22c7d4d4a030157a4a9eb73ef0a260f4db56c848', class: "affix" }, h("slot", { key: 'fa74011b1237908aa9eea78f88294afcdf09f0f5', name: "suffix" })))));
29
37
  }
30
38
  };
31
39
  UiInput.style = uiInputCss();
@@ -7,7 +7,7 @@ const UiLabel = class {
7
7
  registerInstance(this, hostRef);
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: 'bb726d8b26a82776e688532b6fbe69c178308c75' }, h("label", { key: 'bfd33ad1561fcee62395be37e83894cdce0ec259', class: "label" }, h("slot", { key: 'c0ac5938df3aea7219a59caf46cb7cd152046770' }))));
10
+ return (h(Host, { key: '15695a208223a3270e49d72972a49c26fe3acd4d' }, h("label", { key: 'a6d0290c845797368e59fa936b80c8fee55dbcb1', class: "label" }, h("slot", { key: 'daae42c194f0c31d69a82bfad95a97b85cf2cdf2' }))));
11
11
  }
12
12
  };
13
13
  UiLabel.style = uiLabelCss();
@@ -0,0 +1,61 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-DYwlrXg_.js';
2
+
3
+ const uiPaginationCss = () => `:host{display:inline-block}.pagination{display:inline-flex;align-items:center;gap:0.25rem;font-family:var(--ui-font-sans)}.page{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 0.5rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:transparent;color:var(--ui-foreground);font-family:var(--ui-font-sans);font-size:0.875rem;cursor:pointer;outline:none;transition:all var(--ui-duration) var(--ui-ease)}.page:hover{border-color:var(--ui-border-strong);background:var(--ui-chip)}.page:focus-visible{box-shadow:0 0 0 2px var(--ui-ring)}.page:disabled{pointer-events:none;opacity:0.5}.page.active{background:var(--ui-accent);color:var(--ui-accent-contrast);border-color:var(--ui-accent);box-shadow:var(--ui-shadow-sm)}.ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;color:var(--ui-text-faint);font-size:0.875rem}`;
4
+
5
+ const UiPagination = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.uiChange = createEvent(this, "uiChange");
9
+ /** Total de páginas. */
10
+ this.total = 1;
11
+ /** Página atual. */
12
+ this.current = 1;
13
+ /** Quantidade de páginas ao redor da atual. */
14
+ this.siblings = 1;
15
+ this.clamp = (page) => Math.min(Math.max(page, 1), Math.max(this.total, 1));
16
+ this.go = (page) => {
17
+ const next = this.clamp(page);
18
+ if (next === this.current)
19
+ return;
20
+ this.current = next;
21
+ this.uiChange.emit(next);
22
+ };
23
+ this.buildRange = () => {
24
+ const total = Math.max(this.total, 1);
25
+ const current = this.clamp(this.current);
26
+ const siblings = Math.max(this.siblings, 0);
27
+ const start = Math.max(current - siblings, 1);
28
+ const end = Math.min(current + siblings, total);
29
+ const pages = new Set([1, total]);
30
+ for (let page = start; page <= end; page += 1)
31
+ pages.add(page);
32
+ const sorted = Array.from(pages)
33
+ .filter((page) => page >= 1 && page <= total)
34
+ .sort((a, b) => a - b);
35
+ const result = [];
36
+ let previous = 0;
37
+ for (const page of sorted) {
38
+ if (previous && page - previous > 1)
39
+ result.push("...");
40
+ result.push(page);
41
+ previous = page;
42
+ }
43
+ return result;
44
+ };
45
+ }
46
+ render() {
47
+ const total = Math.max(this.total, 1);
48
+ const current = this.clamp(this.current);
49
+ const entries = this.buildRange();
50
+ return (h(Host, { key: '405a1c41db3850f25ffc14a053b12c0767809b1e' }, h("nav", { key: 'bd9baa3307cb5576ca81ab82653b44ccd4cb0385', class: "pagination", role: "navigation", "aria-label": "Pagina\u00E7\u00E3o" }, h("button", { key: '8efdfeb278037fabab6b82ba4083a7d23a00d612', class: "page nav", type: "button", "aria-label": "P\u00E1gina anterior", disabled: current <= 1, onClick: () => this.go(current - 1) }, "\u2039"), entries.map((entry, index) => {
51
+ if (entry === "...") {
52
+ return (h("span", { key: `ellipsis-${index}`, class: "ellipsis", "aria-hidden": "true" }, "\u2026"));
53
+ }
54
+ const active = entry === current;
55
+ return (h("button", { key: entry, class: { page: true, active }, type: "button", "aria-label": `Página ${entry}`, "aria-current": active ? "page" : undefined, onClick: () => this.go(entry) }, entry));
56
+ }), h("button", { key: '5ba13b9a59857423e65a4d10630eb66cc32c30fe', class: "page nav", type: "button", "aria-label": "Pr\u00F3xima p\u00E1gina", disabled: current >= total, onClick: () => this.go(current + 1) }, "\u203A"))));
57
+ }
58
+ };
59
+ UiPagination.style = uiPaginationCss();
60
+
61
+ export { UiPagination as ui_pagination };
@@ -78,7 +78,7 @@ const UiPopover = class {
78
78
  this.cleanup = undefined;
79
79
  }
80
80
  render() {
81
- return (h(Host, { key: '193a3f6fb440dc2da1837c2387511d38f71e7da3' }, h("span", { key: '8732b0b40340e39ac26b80e38864438cf9bf01cc', class: "trigger", ref: (el) => (this.triggerEl = el), onClick: this.onTriggerClick }, h("slot", { key: 'd51743b5fa62e8fd5c5639ba2d9681caa8556fb0', name: "trigger" })), h("div", { key: 'a2ae9fd5bb67dc1ad4243ac478ecc11cb4c28665', class: { panel: true, "is-open": this.open }, ref: (el) => (this.floatingEl = el) }, h("slot", { key: '655d8b979962d25dabe8497516be51199ce16452' }))));
81
+ return (h(Host, { key: '61b4088ff4d61701a3466619274e60ac64fcc420' }, h("span", { key: 'd2d00f4dbf391ea1bc119870e399187d98634de6', class: "trigger", ref: (el) => (this.triggerEl = el), onClick: this.onTriggerClick }, h("slot", { key: 'ece70edbdda096821de68295e55a3fba3caeada4', name: "trigger" })), h("div", { key: 'f30e5a570e49eb9c7056fd820bc57408dd78e013', class: { panel: true, "is-open": this.open }, ref: (el) => (this.floatingEl = el) }, h("slot", { key: '5823d3c7ed47946d812a2c34002fc5fd0cfc8a29' }))));
82
82
  }
83
83
  get host() { return getElement(this); }
84
84
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiProgressCss = () => `:host{display:block}.track{width:100%;height:0.5rem;border-radius:var(--ui-radius-full);background:var(--ui-chip);overflow:hidden}.indicator{height:100%;border-radius:var(--ui-radius-full);background:var(--ui-accent);transition:width var(--ui-duration) var(--ui-ease)}.indicator.indeterminate{width:40%;animation:ui-progress-slide 1.2s ease-in-out infinite}@keyframes ui-progress-slide{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}`;
3
+ const uiProgressCss = () => `:host{display:block}.track{width:100%;height:0.5rem;border-radius:var(--ui-radius-full);background:var(--ui-chip);border:1px solid var(--ui-border);overflow:hidden;box-sizing:border-box}.indicator{height:100%;min-width:0.5rem;border-radius:var(--ui-radius-full);background:linear-gradient(90deg, var(--ui-accent), var(--ui-accent-strong));box-shadow:0 0 12px color-mix(in srgb, var(--ui-accent) 55%, transparent);transition:width var(--ui-duration) var(--ui-ease)}.indicator.indeterminate{width:40%;min-width:0;animation:ui-progress-slide 1.3s var(--ui-ease) infinite}@keyframes ui-progress-slide{0%{transform:translateX(-110%)}100%{transform:translateX(360%)}}`;
4
4
 
5
5
  const UiProgress = class {
6
6
  constructor(hostRef) {
@@ -23,7 +23,7 @@ const UiProgress = class {
23
23
  }
24
24
  render() {
25
25
  const determinate = !this.isIndeterminate;
26
- return (h(Host, { key: '0be3e6f551bf5401e033a7faba2787eb4166eb0a', role: "progressbar", "aria-valuenow": determinate ? String(this.value) : undefined, "aria-valuemin": determinate ? "0" : undefined, "aria-valuemax": determinate ? String(this.max) : undefined }, h("div", { key: '89151bf96326053ce60b71a2f2f9b6c13d721e39', class: "track" }, h("div", { key: '2cdf8f8cbbe7729813e8e78b671fc43b7ebec153', class: { indicator: true, indeterminate: this.isIndeterminate }, style: determinate ? { width: `${this.percent}%` } : undefined }))));
26
+ return (h(Host, { key: '8f40e0e4a439959e1474d2952f0f891438fb3ecf', role: "progressbar", "aria-valuenow": determinate ? String(this.value) : undefined, "aria-valuemin": determinate ? "0" : undefined, "aria-valuemax": determinate ? String(this.max) : undefined }, h("div", { key: '9bfd7557efbfad05a8b170764b96935f00cbdaeb', class: "track" }, h("div", { key: '02205ac65e75f27f52869991b168c6397c8b2760', class: { indicator: true, indeterminate: this.isIndeterminate }, style: determinate ? { width: `${this.percent}%` } : undefined }))));
27
27
  }
28
28
  };
29
29
  UiProgress.style = uiProgressCss();
@@ -36,7 +36,7 @@ const UiRadioGroup = class {
36
36
  };
37
37
  }
38
38
  render() {
39
- return (h(Host, { key: '80b7e45cfc95e7e82015db2fa893b374ba73cf07' }, h("div", { key: '1133cd7ad3f9eb9ebaa0ac6c8a2ca3e2a52c46a9', class: "group", role: "radiogroup" }, this.options.map((option, index) => {
39
+ return (h(Host, { key: '67c377ec552ea8cb6ea3d015bab1ee3d66ee436c' }, h("div", { key: 'aa52c74b8473ca06b762811a900d90cdfc8f7422', class: "group", role: "radiogroup" }, this.options.map((option, index) => {
40
40
  const selected = option.value === this.value;
41
41
  return (h("button", { class: "radio", type: "button", role: "radio", "aria-checked": selected ? "true" : "false", tabindex: selected || (!this.value && index === 0) ? "0" : "-1", disabled: this.disabled, onClick: () => this.select(option.value), onKeyDown: (event) => this.onKeyDown(event, index) }, h("span", { class: "indicator" }, h("span", { class: "dot" })), h("span", { class: "label" }, option.label)));
42
42
  }))));
@@ -30,7 +30,7 @@ const UiReveal = class {
30
30
  this.observer?.disconnect();
31
31
  }
32
32
  render() {
33
- return (h(Host, { key: '926e1c25b8463f92dc35a010d58b9bd622932c21' }, h("div", { key: '0561142e1b0955e22d12056f316c98556cb5365d', class: { reveal: true, visible: this.visible }, style: { transitionDelay: `${this.delay}ms` } }, h("slot", { key: 'bd53a6ca33153d3f7768a7662e5e5b78ea221cc6' }))));
33
+ return (h(Host, { key: '4ab570c0eaa9fb6b4d6a9d01887fde6edd72ba8d' }, h("div", { key: 'cf0287499bfa5107fb49cadc85c85f2f70063967', class: { reveal: true, visible: this.visible }, style: { transitionDelay: `${this.delay}ms` } }, h("slot", { key: 'b46502732e597f13d60ec55be0d456dba8181386' }))));
34
34
  }
35
35
  get host() { return getElement(this); }
36
36
  };
@@ -27,7 +27,7 @@ const UiScrollProgress = class {
27
27
  window.removeEventListener("scroll", this.onScroll);
28
28
  }
29
29
  render() {
30
- return (h(Host, { key: '7eced0439a2d6ef04d085396a6fc0e69fbe798ed' }, h("div", { key: '30db3ea1a3fce2a26ebca96568e939c4a0183922', class: "bar", role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(this.progress * 100), style: { transform: `scaleX(${this.progress})` } })));
30
+ return (h(Host, { key: 'cb2d746b6e0ca3642a0460cff5685f2eb83a6301' }, h("div", { key: '7fdb8b414f833110c389aef8620c313fb8c001c7', class: "bar", role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(this.progress * 100), style: { transform: `scaleX(${this.progress})` } })));
31
31
  }
32
32
  };
33
33
  UiScrollProgress.style = uiScrollProgressCss();
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiSectionCss = () => `:host{display:block;font-family:var(--ui-font-sans)}section{max-width:80rem;margin:0 auto;padding:5rem 1.25rem}.eyebrow{margin:0 0 0.75rem;text-transform:uppercase;letter-spacing:0.08em;font-size:0.75rem;font-weight:600;color:var(--ui-accent)}.heading{margin:0 0 1rem;font-size:1.875rem;font-weight:600;color:var(--ui-foreground)}.description{margin:0 0 2rem;max-width:42rem;color:var(--ui-text-muted)}`;
3
+ const uiSectionCss = () => `:host{display:block;font-family:var(--ui-font-sans)}section{max-width:80rem;margin:0 auto;padding:3.5rem 1.5rem}.eyebrow{display:inline-block;margin:0 0 0.75rem;padding:0.25rem 0.625rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-full);background:var(--ui-chip);text-transform:uppercase;letter-spacing:0.12em;font-size:0.6875rem;font-weight:600;color:var(--ui-accent)}.heading{margin:0 0 0.75rem;font-size:2.25rem;font-weight:600;letter-spacing:-0.02em;line-height:1.1;color:var(--ui-foreground)}.description{margin:0 0 2rem;max-width:42rem;color:var(--ui-text-muted)}`;
4
4
 
5
5
  const UiSection = class {
6
6
  constructor(hostRef) {
@@ -13,7 +13,7 @@ const UiSection = class {
13
13
  this.description = "";
14
14
  }
15
15
  render() {
16
- return (h(Host, { key: '63ee126b1e457a4dcd01a66aa519e6fae8377db6' }, h("section", { key: '34f3c07dca2e9f6a3c288b7c41abaf2a3502129f' }, this.eyebrow && h("p", { key: '7c71e3e38e56872757d017ba4f59949f50518c6f', class: "eyebrow" }, this.eyebrow), this.heading && h("h2", { key: 'b8f42a4ae5d2e5d8fb80a4cb9de07ca10c2423fd', class: "heading" }, this.heading), this.description && h("p", { key: 'faeba9733afaa52e7a08629459dd708b4f647740', class: "description" }, this.description), h("slot", { key: '99e906d4ca93461c35125acb4eb3401ed76929fe' }))));
16
+ return (h(Host, { key: '71344e4d5a4c6bccade1bf5151aeba1dffa14d7f' }, h("section", { key: '404cb27c6db128f60608b4eff44fa6e05520016b' }, this.eyebrow && h("p", { key: '204ced95531d3bf77c2a32f940c3ec4bc0e76f53', class: "eyebrow" }, this.eyebrow), this.heading && h("h2", { key: '46818123dd264ef60db8ff9c7a2ad93979d71434', class: "heading" }, this.heading), this.description && h("p", { key: 'eaba39853cd12a874c9079e2181aca9e0fc130b7', class: "description" }, this.description), h("slot", { key: '24d02b1d9176e42d7906ef43881807d7cfda2e52' }))));
17
17
  }
18
18
  };
19
19
  UiSection.style = uiSectionCss();
@@ -0,0 +1,29 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-DYwlrXg_.js';
2
+
3
+ const uiSegmentedCss = () => `:host{display:inline-block}.track{display:inline-flex;align-items:center;gap:0.125rem;padding:0.25rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-full);background:var(--ui-chip);font-family:var(--ui-font-sans)}.segment{display:inline-flex;align-items:center;justify-content:center;height:2rem;padding:0 0.875rem;border:none;border-radius:var(--ui-radius-full);background:transparent;color:var(--ui-text-muted);font-family:var(--ui-font-sans);font-size:0.8125rem;font-weight:500;cursor:pointer;outline:none;transition:all var(--ui-duration) var(--ui-ease)}.segment:hover{color:var(--ui-foreground)}.segment:focus-visible{box-shadow:0 0 0 2px var(--ui-ring)}.segment.active{background:var(--ui-panel-strong);color:var(--ui-foreground);box-shadow:var(--ui-shadow-sm)}`;
4
+
5
+ const UiSegmented = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.uiChange = createEvent(this, "uiChange");
9
+ /** Lista de segmentos. */
10
+ this.items = [];
11
+ /** Valor do segmento ativo. */
12
+ this.value = "";
13
+ this.select = (value) => {
14
+ if (value === this.value)
15
+ return;
16
+ this.value = value;
17
+ this.uiChange.emit(value);
18
+ };
19
+ }
20
+ render() {
21
+ return (h(Host, { key: '92649a392383aebb62bab90e3f20a008783f2ed2' }, h("div", { key: '22983cd496ee1f9ed1dbf49d989c409cdca3c8b4', class: "track", role: "radiogroup" }, this.items.map((item) => {
22
+ const active = item.value === this.value;
23
+ return (h("button", { key: item.value, class: { segment: true, active }, type: "button", role: "radio", "aria-checked": active ? "true" : "false", onClick: () => this.select(item.value) }, item.label));
24
+ }))));
25
+ }
26
+ };
27
+ UiSegmented.style = uiSegmentedCss();
28
+
29
+ export { UiSegmented as ui_segmented };
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiSelectCss = () => `:host{display:block}.wrapper{position:relative;display:block;width:100%}.select{width:100%;height:2.75rem;padding:0 2.5rem 0 1rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-panel);color:var(--ui-foreground);font-family:var(--ui-font-sans);font-size:0.875rem;outline:none;backdrop-filter:blur(22px);transition:all var(--ui-duration) var(--ui-ease);box-sizing:border-box;cursor:pointer;-webkit-appearance:none;appearance:none}.select:focus-visible{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-ring)}.select:disabled{opacity:0.5;pointer-events:none}.chevron{position:absolute;top:50%;right:0.875rem;width:1.125rem;height:1.125rem;color:var(--ui-text-muted);transform:translateY(-50%);pointer-events:none}`;
3
+ const uiSelectCss = () => `:host{display:block}.wrapper{position:relative;display:block;width:100%}.select{width:100%;height:2.75rem;padding:0 2.5rem 0 1rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-panel);color:var(--ui-foreground);font-family:var(--ui-font-sans);font-size:0.875rem;outline:none;backdrop-filter:blur(22px);transition:all var(--ui-duration) var(--ui-ease);box-sizing:border-box;cursor:pointer;-webkit-appearance:none;appearance:none}.select:hover:not(:disabled){border-color:var(--ui-border-strong)}.select:focus-visible{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-ring)}.select:disabled{opacity:0.5;pointer-events:none}.chevron{position:absolute;top:50%;right:0.875rem;width:1.125rem;height:1.125rem;color:var(--ui-text-muted);transform:translateY(-50%);pointer-events:none}`;
4
4
 
5
5
  const UiSelect = class {
6
6
  constructor(hostRef) {
@@ -18,7 +18,7 @@ const UiSelect = class {
18
18
  }
19
19
  render() {
20
20
  const hasValue = this.value !== undefined && this.value !== "";
21
- return (h(Host, { key: '1ebd6a8472a116ad071e9504ab0756daddb27824' }, h("div", { key: '5d2d00f41b8f74202156d0af7c150b89d79dc1a4', class: "wrapper" }, h("select", { key: '7b370433247f03a126ce13005a3697ba5b04845f', class: "select", name: this.name, disabled: this.disabled, onChange: this.onChange }, this.placeholder && (h("option", { key: '9e482642eebeab0b1b1c5b56a6730fb5ecbd9617', value: "", disabled: true, selected: !hasValue }, this.placeholder)), this.options.map((option) => (h("option", { value: option.value, selected: option.value === this.value }, option.label)))), h("svg", { key: '7d66788b8d8b51169ae28e5e5c5a31c0b637e377', class: "chevron", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("polyline", { key: 'aaa00671ba95ebd20f81174fc27bf218b16dfc64', points: "6 9 12 15 18 9" })))));
21
+ return (h(Host, { key: '5f41047362d77643cc663925900c15c6cd10ec60' }, h("div", { key: '53ec77b2100bdd6de568ad549a42ad8fd080ac6a', class: "wrapper" }, h("select", { key: 'b0b4b1def7b7166bf24f996f9736a670a9b7b052', class: "select", name: this.name, disabled: this.disabled, onChange: this.onChange }, this.placeholder && (h("option", { key: 'e83b039418ac74bb3124c151dca9af43ff05dd61', value: "", disabled: true, selected: !hasValue }, this.placeholder)), this.options.map((option) => (h("option", { value: option.value, selected: option.value === this.value }, option.label)))), h("svg", { key: 'bb3165c856d11b352b2c7a64cc12ab4284541fb4', class: "chevron", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("polyline", { key: 'ab5e3cb2419dc63fbcd3804740b781c856ae8240', points: "6 9 12 15 18 9" })))));
22
22
  }
23
23
  };
24
24
  UiSelect.style = uiSelectCss();
@@ -9,7 +9,7 @@ const UiSeparator = class {
9
9
  this.orientation = "horizontal";
10
10
  }
11
11
  render() {
12
- return (h(Host, { key: '212e4b763ad309ef74ba2e21592a0d4091fb0fcf', role: "separator", "aria-orientation": this.orientation, class: `orientation-${this.orientation}` }));
12
+ return (h(Host, { key: '33e452485ff7838e37a378f9acba10f242069cfc', role: "separator", "aria-orientation": this.orientation, class: `orientation-${this.orientation}` }));
13
13
  }
14
14
  };
15
15
  UiSeparator.style = uiSeparatorCss();
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
2
 
3
- const uiSkeletonCss = () => `:host{display:block}.skeleton{display:block;width:100%;height:100%;border-radius:var(--ui-radius-sm);background:linear-gradient( 90deg, var(--ui-chip), var(--ui-panel), var(--ui-chip) );background-size:200% 100%;animation:ui-skeleton-shimmer 1.5s ease-in-out infinite}@keyframes ui-skeleton-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}`;
3
+ const uiSkeletonCss = () => `:host{display:block}.skeleton{display:block;width:100%;height:100%;min-height:1rem;border-radius:var(--ui-radius-sm);background-color:var(--ui-chip);background-image:linear-gradient( 90deg, transparent, color-mix(in srgb, var(--ui-foreground) 12%, transparent), transparent );background-size:200% 100%;background-repeat:no-repeat;animation:ui-skeleton-shimmer 1.5s ease-in-out infinite}@keyframes ui-skeleton-shimmer{0%{background-position:-150% 0}100%{background-position:150% 0}}`;
4
4
 
5
5
  const UiSkeleton = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: '19b59c75e9ff1607c731227bd344a0d082de5366' }, h("span", { key: '6eb968b5bd87768818381db897a090a2783ad938', class: "skeleton" })));
10
+ return (h(Host, { key: '8f839817a493a8221e9d3b2e95fd7ae5ece2e70e' }, h("span", { key: '295dce8e9e6489def8b20a703f04c65ad3740ce8', class: "skeleton" })));
11
11
  }
12
12
  };
13
13
  UiSkeleton.style = uiSkeletonCss();
@@ -27,7 +27,7 @@ const UiSlider = class {
27
27
  };
28
28
  }
29
29
  render() {
30
- return (h(Host, { key: 'dc7f810ebfdde28731d2e1c491596caf03c2476e' }, h("input", { key: 'cac37f559b5587d18fee732e11d6515d57d23466', class: "slider", type: "range", min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, onInput: this.onInput, onChange: this.onChange })));
30
+ return (h(Host, { key: '22fe57f0e95edb2e169718c8b1fb5c2f3d78ddfe' }, h("input", { key: 'a9e16ef8f97f412c22911f72c4b7212f6d04a293', class: "slider", type: "range", min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, onInput: this.onInput, onChange: this.onChange })));
31
31
  }
32
32
  };
33
33
  UiSlider.style = uiSliderCss();
@@ -9,7 +9,7 @@ const UiSpinner = class {
9
9
  this.size = "md";
10
10
  }
11
11
  render() {
12
- return (h(Host, { key: 'cedf6e857d1f4e6561c78f3fd3076341c2d8ecdc', role: "status" }, h("span", { key: '7200580dccc32b30829725ad84e913c3b1afee60', class: { spinner: true, [`size-${this.size}`]: true } }), h("span", { key: '63d4cfee2e5cebabc3c7b3b6ed95a656daa65705', class: "sr-only" }, "Carregando")));
12
+ return (h(Host, { key: '0414d6e3be8588ad4c71c5e4cf227075ac7494ab', role: "status" }, h("span", { key: '61e5d0a16b5fd566767ef098477c3144a9c1c987', class: { spinner: true, [`size-${this.size}`]: true } }), h("span", { key: 'ea33b6e6603ba23e7a117ef978329c83818a044b', class: "sr-only" }, "Carregando")));
13
13
  }
14
14
  };
15
15
  UiSpinner.style = uiSpinnerCss();
@@ -0,0 +1,51 @@
1
+ import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
+
3
+ const uiStackCss = () => `:host{display:block}.stack{display:flex;font-family:var(--ui-font-sans)}`;
4
+
5
+ const GAP = {
6
+ xs: "0.25rem",
7
+ sm: "0.5rem",
8
+ md: "1rem",
9
+ lg: "1.5rem",
10
+ xl: "2rem",
11
+ };
12
+ const ALIGN = {
13
+ start: "flex-start",
14
+ center: "center",
15
+ end: "flex-end",
16
+ stretch: "stretch",
17
+ };
18
+ const JUSTIFY = {
19
+ start: "flex-start",
20
+ center: "center",
21
+ end: "flex-end",
22
+ between: "space-between",
23
+ };
24
+ const UiStack = class {
25
+ constructor(hostRef) {
26
+ registerInstance(this, hostRef);
27
+ /** Direção do empilhamento. */
28
+ this.direction = "vertical";
29
+ /** Espaçamento entre itens. */
30
+ this.gap = "md";
31
+ /** Alinhamento no eixo cruzado. */
32
+ this.align = "stretch";
33
+ /** Distribuição no eixo principal. */
34
+ this.justify = "start";
35
+ /** Permite quebra de linha dos itens. */
36
+ this.wrap = false;
37
+ }
38
+ render() {
39
+ const style = {
40
+ flexDirection: this.direction === "horizontal" ? "row" : "column",
41
+ gap: GAP[this.gap],
42
+ alignItems: ALIGN[this.align],
43
+ justifyContent: JUSTIFY[this.justify],
44
+ flexWrap: this.wrap ? "wrap" : "nowrap",
45
+ };
46
+ return (h(Host, { key: 'ba9547e72877aa05a5e93afbe098d7402b315df3' }, h("div", { key: 'e0fd73777e2211925435f2fd8bfcb74ad2eb8085', class: "stack", style: style }, h("slot", { key: '3a5aa50721c641f0cc81328a21262ff5d375e55c' }))));
47
+ }
48
+ };
49
+ UiStack.style = uiStackCss();
50
+
51
+ export { UiStack as ui_stack };
@@ -0,0 +1,26 @@
1
+ import { r as registerInstance, h, H as Host } from './index-DYwlrXg_.js';
2
+
3
+ const uiStatCss = () => `:host{display:block}.card{display:flex;flex-direction:column;gap:0.5rem;padding:1.25rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);background:var(--ui-panel);backdrop-filter:blur(22px);font-family:var(--ui-font-sans)}.label{margin:0;text-transform:uppercase;letter-spacing:0.08em;font-size:0.7rem;font-weight:500;color:var(--ui-text-faint)}.value-row{display:flex;align-items:baseline;gap:0.625rem}.value{font-size:1.875rem;font-weight:600;line-height:1.1;color:var(--ui-foreground)}.delta{display:inline-flex;align-items:center;gap:0.25rem;padding:0.125rem 0.5rem;border-radius:var(--ui-radius-full);font-size:0.75rem;font-weight:600}.delta svg{display:block}.trend-up{color:var(--ui-success);background:color-mix(in srgb, var(--ui-success) 14%, transparent)}.trend-down{color:var(--ui-danger);background:color-mix(in srgb, var(--ui-danger) 14%, transparent)}.trend-neutral{color:var(--ui-text-muted);background:var(--ui-chip)}.extra{font-size:0.8125rem;color:var(--ui-text-muted)}`;
4
+
5
+ const UiStat = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ /** Direção da tendência. */
9
+ this.trend = "neutral";
10
+ }
11
+ renderArrow() {
12
+ if (this.trend === "down") {
13
+ return (h("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "currentColor", "aria-hidden": "true" }, h("path", { d: "M6 11 1 4h10z" })));
14
+ }
15
+ if (this.trend === "up") {
16
+ return (h("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "currentColor", "aria-hidden": "true" }, h("path", { d: "M6 1 11 8H1z" })));
17
+ }
18
+ return null;
19
+ }
20
+ render() {
21
+ return (h(Host, { key: '7afc03397921ff23d08da136999896a40d8a31be' }, h("div", { key: '35a7d594e9ebb426f10ff256ba4805ee88a0100c', class: "card" }, h("p", { key: '92a82cf415c22f884ed782d410e25559ff391017', class: "label" }, this.label), h("div", { key: '1c8d08800ca0a6f38e574930c5187ec979666a62', class: "value-row" }, h("span", { key: '0bb5e825e9d51a045638f48616c24bdc7a4a0ee0', class: "value" }, this.value), this.delta && (h("span", { key: '01aa434582c8eee2c1fd6b69c16de0262fb89daf', class: { delta: true, [`trend-${this.trend}`]: true } }, this.renderArrow(), this.delta))), h("div", { key: '4446e15c156412cc8b6c72f823a49396f31e8e74', class: "extra" }, h("slot", { key: 'ca4e0cc60f588840d3fd88e3efaecabb84cd633d' })))));
22
+ }
23
+ };
24
+ UiStat.style = uiStatCss();
25
+
26
+ export { UiStat as ui_stat };
@@ -24,7 +24,7 @@ const UiSwitch = class {
24
24
  };
25
25
  }
26
26
  render() {
27
- return (h(Host, { key: '495f30df67c0277471c4d01920f5608700943132' }, h("button", { key: '8327f2d141877994b6ddd3ba8b474e816cb2f949', class: "switch", type: "button", role: "switch", "aria-checked": this.checked ? "true" : "false", disabled: this.disabled, onClick: this.toggle, onKeyDown: this.onKeyDown }, h("span", { key: 'e91d3ffd7b8fdfb1a64f96746c5a396ecaecb882', class: "thumb" }))));
27
+ return (h(Host, { key: '018ccd47d567e5c16ce40a600c15a9e2281301d2' }, h("button", { key: '7975d671d3c6d048b760b285a68e9ae832c93ebc', class: "switch", type: "button", role: "switch", "aria-checked": this.checked ? "true" : "false", disabled: this.disabled, onClick: this.toggle, onKeyDown: this.onKeyDown }, h("span", { key: '4ac740348a215ff97e0cae3bbbbd411163760792', class: "thumb" }))));
28
28
  }
29
29
  };
30
30
  UiSwitch.style = uiSwitchCss();