@vielzeug/refine 2.2.5 → 2.4.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 (223) hide show
  1. package/dist/accordion-item.cjs +1 -1
  2. package/dist/accordion-item.cjs.map +1 -1
  3. package/dist/accordion-item.js +1 -1
  4. package/dist/accordion-item.js.map +1 -1
  5. package/dist/card.cjs +1 -1
  6. package/dist/card.cjs.map +1 -1
  7. package/dist/card.js +1 -1
  8. package/dist/card.js.map +1 -1
  9. package/dist/carousel.cjs +1 -1
  10. package/dist/carousel.cjs.map +1 -1
  11. package/dist/carousel.js +1 -1
  12. package/dist/carousel.js.map +1 -1
  13. package/dist/chat-message.cjs +9 -9
  14. package/dist/chat-message.cjs.map +1 -1
  15. package/dist/chat-message.js +41 -38
  16. package/dist/chat-message.js.map +1 -1
  17. package/dist/combobox.cjs +9 -7
  18. package/dist/combobox.cjs.map +1 -1
  19. package/dist/combobox.js +55 -48
  20. package/dist/combobox.js.map +1 -1
  21. package/dist/command-palette.cjs +1 -1
  22. package/dist/command-palette.cjs.map +1 -1
  23. package/dist/command-palette.js +1 -1
  24. package/dist/command-palette.js.map +1 -1
  25. package/dist/content/index.d.ts +2 -0
  26. package/dist/content/index.d.ts.map +1 -1
  27. package/dist/content/list/list-item.css.cjs +1 -1
  28. package/dist/content/list/list-item.css.cjs.map +1 -1
  29. package/dist/content/list/list-item.css.js +1 -1
  30. package/dist/content/list/list-item.css.js.map +1 -1
  31. package/dist/content/list/list-item.d.ts +9 -0
  32. package/dist/content/list/list-item.d.ts.map +1 -1
  33. package/dist/content/stats/stats.css.cjs +2 -0
  34. package/dist/content/stats/stats.css.cjs.map +1 -0
  35. package/dist/content/stats/stats.css.js +6 -0
  36. package/dist/content/stats/stats.css.js.map +1 -0
  37. package/dist/content/stats/stats.d.ts +72 -0
  38. package/dist/content/stats/stats.d.ts.map +1 -0
  39. package/dist/core/announcer.cjs +1 -1
  40. package/dist/core/announcer.cjs.map +1 -1
  41. package/dist/core/announcer.d.ts +13 -3
  42. package/dist/core/announcer.d.ts.map +1 -1
  43. package/dist/core/announcer.js +16 -9
  44. package/dist/core/announcer.js.map +1 -1
  45. package/dist/core/auto-resize.cjs +1 -1
  46. package/dist/core/auto-resize.cjs.map +1 -1
  47. package/dist/core/auto-resize.js +1 -1
  48. package/dist/core/auto-resize.js.map +1 -1
  49. package/dist/custom-elements.json +4457 -4161
  50. package/dist/datagrid.cjs +199 -179
  51. package/dist/datagrid.cjs.map +1 -1
  52. package/dist/datagrid.js +435 -321
  53. package/dist/datagrid.js.map +1 -1
  54. package/dist/disclosure/tab-item/tab-item.css.cjs +1 -1
  55. package/dist/disclosure/tab-item/tab-item.css.cjs.map +1 -1
  56. package/dist/disclosure/tab-item/tab-item.css.js +1 -1
  57. package/dist/disclosure/tab-item/tab-item.css.js.map +1 -1
  58. package/dist/disclosure/tab-item/tab-item.d.ts +3 -0
  59. package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -1
  60. package/dist/disclosure/tabs/tabs.css.cjs +1 -1
  61. package/dist/disclosure/tabs/tabs.css.cjs.map +1 -1
  62. package/dist/disclosure/tabs/tabs.css.js +1 -1
  63. package/dist/disclosure/tabs/tabs.css.js.map +1 -1
  64. package/dist/disclosure/tabs/tabs.d.ts +4 -0
  65. package/dist/disclosure/tabs/tabs.d.ts.map +1 -1
  66. package/dist/feedback/typing-indicator/typing-indicator.d.ts +2 -2
  67. package/dist/file-input.cjs +49 -49
  68. package/dist/file-input.cjs.map +1 -1
  69. package/dist/file-input.js +128 -127
  70. package/dist/file-input.js.map +1 -1
  71. package/dist/frameworks/elements.d.ts +2 -1
  72. package/dist/icon.cjs +1 -1
  73. package/dist/icon.cjs.map +1 -1
  74. package/dist/icon.js +1 -1
  75. package/dist/icon.js.map +1 -1
  76. package/dist/input.cjs +5 -4
  77. package/dist/input.cjs.map +1 -1
  78. package/dist/input.js +14 -8
  79. package/dist/input.js.map +1 -1
  80. package/dist/inputs/combobox/combobox-options.cjs +1 -1
  81. package/dist/inputs/combobox/combobox-options.cjs.map +1 -1
  82. package/dist/inputs/combobox/combobox-options.d.ts.map +1 -1
  83. package/dist/inputs/combobox/combobox-options.js +1 -0
  84. package/dist/inputs/combobox/combobox-options.js.map +1 -1
  85. package/dist/inputs/combobox/combobox.css.cjs +1 -1
  86. package/dist/inputs/combobox/combobox.css.cjs.map +1 -1
  87. package/dist/inputs/combobox/combobox.css.js +1 -1
  88. package/dist/inputs/combobox/combobox.css.js.map +1 -1
  89. package/dist/inputs/combobox/combobox.d.ts +1 -0
  90. package/dist/inputs/combobox/combobox.d.ts.map +1 -1
  91. package/dist/inputs/combobox/combobox.types.d.ts +7 -0
  92. package/dist/inputs/combobox/combobox.types.d.ts.map +1 -1
  93. package/dist/inputs/datagrid/datagrid-model.cjs +1 -1
  94. package/dist/inputs/datagrid/datagrid-model.cjs.map +1 -1
  95. package/dist/inputs/datagrid/datagrid-model.d.ts +17 -3
  96. package/dist/inputs/datagrid/datagrid-model.d.ts.map +1 -1
  97. package/dist/inputs/datagrid/datagrid-model.js +93 -70
  98. package/dist/inputs/datagrid/datagrid-model.js.map +1 -1
  99. package/dist/inputs/datagrid/datagrid.css.cjs +1 -1
  100. package/dist/inputs/datagrid/datagrid.css.cjs.map +1 -1
  101. package/dist/inputs/datagrid/datagrid.css.js +1 -1
  102. package/dist/inputs/datagrid/datagrid.css.js.map +1 -1
  103. package/dist/inputs/datagrid/datagrid.d.ts +54 -4
  104. package/dist/inputs/datagrid/datagrid.d.ts.map +1 -1
  105. package/dist/inputs/file-input/file-input-upload.cjs +1 -1
  106. package/dist/inputs/file-input/file-input-upload.cjs.map +1 -1
  107. package/dist/inputs/file-input/file-input-upload.d.ts +2 -0
  108. package/dist/inputs/file-input/file-input-upload.d.ts.map +1 -1
  109. package/dist/inputs/file-input/file-input-upload.js +5 -2
  110. package/dist/inputs/file-input/file-input-upload.js.map +1 -1
  111. package/dist/inputs/file-input/file-input.d.ts.map +1 -1
  112. package/dist/inputs/index.d.ts +1 -1
  113. package/dist/inputs/index.d.ts.map +1 -1
  114. package/dist/inputs/input/input.css.cjs +1 -1
  115. package/dist/inputs/input/input.css.cjs.map +1 -1
  116. package/dist/inputs/input/input.css.js +1 -1
  117. package/dist/inputs/input/input.css.js.map +1 -1
  118. package/dist/inputs/input/input.d.ts +3 -0
  119. package/dist/inputs/input/input.d.ts.map +1 -1
  120. package/dist/inputs/select/select.css.cjs +1 -1
  121. package/dist/inputs/select/select.css.cjs.map +1 -1
  122. package/dist/inputs/select/select.css.js +1 -1
  123. package/dist/inputs/select/select.css.js.map +1 -1
  124. package/dist/inputs/select/select.d.ts +5 -0
  125. package/dist/inputs/select/select.d.ts.map +1 -1
  126. package/dist/layout/navbar/navbar.d.ts +2 -0
  127. package/dist/layout/navbar/navbar.d.ts.map +1 -1
  128. package/dist/layout/sidebar/sidebar.css.cjs +1 -1
  129. package/dist/layout/sidebar/sidebar.css.cjs.map +1 -1
  130. package/dist/layout/sidebar/sidebar.css.js +1 -1
  131. package/dist/layout/sidebar/sidebar.css.js.map +1 -1
  132. package/dist/layout/sidebar/sidebar.d.ts +8 -0
  133. package/dist/layout/sidebar/sidebar.d.ts.map +1 -1
  134. package/dist/list-item.cjs +6 -5
  135. package/dist/list-item.cjs.map +1 -1
  136. package/dist/list-item.js +23 -17
  137. package/dist/list-item.js.map +1 -1
  138. package/dist/list.cjs +1 -1
  139. package/dist/list.cjs.map +1 -1
  140. package/dist/list.js +1 -1
  141. package/dist/list.js.map +1 -1
  142. package/dist/menu.cjs +1 -1
  143. package/dist/menu.cjs.map +1 -1
  144. package/dist/menu.js +1 -1
  145. package/dist/menu.js.map +1 -1
  146. package/dist/navbar.cjs +2 -2
  147. package/dist/navbar.cjs.map +1 -1
  148. package/dist/navbar.js +7 -5
  149. package/dist/navbar.js.map +1 -1
  150. package/dist/navigation-menu.cjs +1 -1
  151. package/dist/navigation-menu.cjs.map +1 -1
  152. package/dist/navigation-menu.js +1 -1
  153. package/dist/navigation-menu.js.map +1 -1
  154. package/dist/overlay/popover/popover.css.cjs +1 -1
  155. package/dist/overlay/popover/popover.css.cjs.map +1 -1
  156. package/dist/overlay/popover/popover.css.js +1 -1
  157. package/dist/overlay/popover/popover.css.js.map +1 -1
  158. package/dist/overlay/popover/popover.d.ts +1 -0
  159. package/dist/overlay/popover/popover.d.ts.map +1 -1
  160. package/dist/overlay/shared/use-dialog.cjs +1 -1
  161. package/dist/overlay/shared/use-dialog.cjs.map +1 -1
  162. package/dist/overlay/shared/use-dialog.js +1 -1
  163. package/dist/overlay/shared/use-dialog.js.map +1 -1
  164. package/dist/overlay/shared/use-floating-trigger.cjs +1 -1
  165. package/dist/overlay/shared/use-floating-trigger.cjs.map +1 -1
  166. package/dist/overlay/shared/use-floating-trigger.js +1 -1
  167. package/dist/overlay/shared/use-floating-trigger.js.map +1 -1
  168. package/dist/popover.cjs.map +1 -1
  169. package/dist/popover.js.map +1 -1
  170. package/dist/radio.cjs +1 -1
  171. package/dist/radio.cjs.map +1 -1
  172. package/dist/radio.js +10 -8
  173. package/dist/radio.js.map +1 -1
  174. package/dist/rating.cjs +1 -1
  175. package/dist/rating.cjs.map +1 -1
  176. package/dist/rating.js +1 -1
  177. package/dist/rating.js.map +1 -1
  178. package/dist/refine.cjs +428 -379
  179. package/dist/refine.cjs.map +1 -1
  180. package/dist/refine.iife.js +428 -379
  181. package/dist/refine.iife.js.map +1 -1
  182. package/dist/refine.js +458 -409
  183. package/dist/refine.js.map +1 -1
  184. package/dist/select.cjs +16 -14
  185. package/dist/select.cjs.map +1 -1
  186. package/dist/select.js +118 -112
  187. package/dist/select.js.map +1 -1
  188. package/dist/sidebar.cjs +28 -23
  189. package/dist/sidebar.cjs.map +1 -1
  190. package/dist/sidebar.js +112 -77
  191. package/dist/sidebar.js.map +1 -1
  192. package/dist/slider.cjs +1 -1
  193. package/dist/slider.cjs.map +1 -1
  194. package/dist/slider.js +1 -1
  195. package/dist/slider.js.map +1 -1
  196. package/dist/stats.cjs +18 -0
  197. package/dist/stats.cjs.map +1 -0
  198. package/dist/stats.js +88 -0
  199. package/dist/stats.js.map +1 -0
  200. package/dist/stepper.cjs +1 -1
  201. package/dist/stepper.cjs.map +1 -1
  202. package/dist/stepper.js +1 -1
  203. package/dist/stepper.js.map +1 -1
  204. package/dist/styles/mixins/animation.css.cjs +2 -0
  205. package/dist/styles/mixins/animation.css.cjs.map +1 -1
  206. package/dist/styles/mixins/animation.css.d.ts.map +1 -1
  207. package/dist/styles/mixins/animation.css.js +2 -0
  208. package/dist/styles/mixins/animation.css.js.map +1 -1
  209. package/dist/tab-item.cjs +1 -1
  210. package/dist/tab-item.cjs.map +1 -1
  211. package/dist/tab-item.js +3 -2
  212. package/dist/tab-item.js.map +1 -1
  213. package/dist/tabs.cjs +1 -1
  214. package/dist/tabs.cjs.map +1 -1
  215. package/dist/tabs.js +3 -1
  216. package/dist/tabs.js.map +1 -1
  217. package/dist/toast.cjs.map +1 -1
  218. package/dist/toast.js.map +1 -1
  219. package/dist/typing-indicator.cjs +1 -1
  220. package/dist/typing-indicator.cjs.map +1 -1
  221. package/dist/typing-indicator.js +8 -7
  222. package/dist/typing-indicator.js.map +1 -1
  223. package/package.json +66 -58
@@ -1,2 +1,2 @@
1
- var e=`@layer refine.base{:host{--tabs-transition:var(--transition-normal);--tabs-radius:var(--rounded-lg);flex-direction:column;width:100%;height:100%;display:flex}.tablist-wrapper{flex-shrink:0;position:relative}[role=tablist]{gap:var(--tabs-tab-gap,var(--size-1));scrollbar-width:none;align-items:stretch;display:flex;position:relative;overflow-x:auto}[role=tablist]::-webkit-scrollbar{display:none}.indicator{pointer-events:none;background:var(--tabs-indicator-color,var(--_theme-base));border-radius:var(--rounded-full);height:2px;transition:transform var(--tabs-transition);position:absolute;bottom:0;left:0}.panels{flex-direction:column;flex:1;min-height:0;display:flex}}@layer refine.orientation{:host([orientation=vertical]){flex-direction:row;align-items:flex-start}:host([orientation=vertical]) .tablist-wrapper{flex-shrink:0;display:flex}:host([orientation=vertical]) [role=tablist]{width:max-content;overflow-x:unset;flex-direction:column;overflow-y:auto}:host([orientation=vertical]) .indicator{top:0;bottom:unset;width:2px;height:unset;transition:transform var(--tabs-transition)}:host([orientation=vertical]) .indicator:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}:host([orientation=vertical]) .indicator:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}}@layer refine.variants{:host,:host([variant=solid]){--tabs-tab-gap:var(--size-1);--_tablist-bg:var(--tabs-tablist-bg,var(--color-contrast-100));--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host [role=tablist],:host([variant=solid]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius)}:host .indicator,:host([variant=solid]) .indicator{display:none}:host([variant=flat]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200));background:var(--tabs-bg,var(--color-contrast-100));border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--inset-shadow-xs), var(--shadow-2xs);overflow:hidden}:host([variant=flat]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:none;border-bottom:var(--border) solid var(--_tablist-border-color);background:0 0;border-radius:0}:host([variant=flat]) .indicator{display:none}:host([variant=bordered]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host([variant=bordered]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) var(--tabs-radius) 0 0;background:0 0;border-bottom:none}:host([variant=bordered]) .indicator{display:none}:host([variant=bordered]) .panels{border:var(--border) solid var(--_tablist-border-color);border-radius:0 0 var(--tabs-radius) var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) [role=tablist]{border-right:none;border-bottom:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) 0 0 var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) .panels{border-radius:0 var(--tabs-radius) var(--tabs-radius) 0}:host([variant=ghost]) [role=tablist]{gap:var(--size-1);background:0 0;border:none;border-radius:0;padding:0}:host([variant=ghost]) .indicator{display:none}:host([variant=glass]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-secondary) 20%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent))}:host([variant=glass]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05);backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05)}:host([variant=glass]) .indicator{display:none}:host([variant=frost]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-canvas) 55%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-contrast-300) 50%, transparent))}:host([variant=frost]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%);backdrop-filter:blur(var(--blur-lg)) saturate(180%)}:host([variant=frost]) .indicator{display:none}}`;exports.default=e;
1
+ var e=`@layer refine.base{:host{--tabs-transition:var(--transition-normal);--tabs-radius:var(--rounded-lg);flex-direction:column;width:100%;height:100%;display:flex}.tablist-wrapper{flex-shrink:0;position:relative}[role=tablist]{gap:var(--tabs-tab-gap,var(--size-1));scrollbar-width:none;align-items:stretch;display:flex;position:relative;overflow-x:auto}[role=tablist]::-webkit-scrollbar{display:none}.indicator{pointer-events:none;background:var(--tabs-indicator-color,var(--_theme-base));border-radius:var(--rounded-full);height:2px;transition:transform var(--tabs-transition);position:absolute;bottom:0;left:0}.panels{flex-direction:column;flex:1;min-height:0;display:flex}}@layer refine.orientation{:host([orientation=vertical]){flex-direction:row;align-items:flex-start}:host([orientation=vertical]) .tablist-wrapper{flex-shrink:0;display:flex}:host([orientation=vertical]) [role=tablist]{width:max-content;overflow-x:unset;flex-direction:column;overflow-y:auto}:host([orientation=vertical]) .indicator{top:0;bottom:unset;width:2px;height:unset;transition:transform var(--tabs-transition)}:host([orientation=vertical]) .indicator:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}:host([orientation=vertical]) .indicator:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}}@layer refine.variants{:host,:host([variant=solid]){--tabs-tab-gap:var(--size-1);--_tablist-bg:var(--tabs-tablist-bg,var(--color-contrast-100));--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host [role=tablist],:host([variant=solid]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius)}:host .indicator,:host([variant=solid]) .indicator{display:none}:host([variant=flat]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200));background:var(--tabs-bg,var(--color-contrast-100));border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--inset-shadow-xs), var(--shadow-2xs);overflow:hidden}:host([variant=flat]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:none;border-bottom:var(--border) solid var(--_tablist-border-color);background:0 0;border-radius:0}:host([variant=flat]) .indicator{display:none}:host([variant=bordered]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host([variant=bordered]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) var(--tabs-radius) 0 0;background:0 0;border-bottom:none}:host([variant=bordered]) .indicator{display:none}:host([variant=bordered]) .panels{border:var(--border) solid var(--_tablist-border-color);border-radius:0 0 var(--tabs-radius) var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) [role=tablist]{border-right:none;border-bottom:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) 0 0 var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) .panels{border-radius:0 var(--tabs-radius) var(--tabs-radius) 0}:host([variant=ghost]) [role=tablist]{gap:var(--size-1);background:0 0;border:none;border-radius:0;padding:0}:host([variant=ghost]) .indicator{display:none}:host([variant=glass]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-secondary) 20%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent))}:host([variant=glass]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05);backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05)}:host([variant=glass]) .indicator{display:none}:host([variant=frost]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-canvas) 55%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-contrast-300) 50%, transparent))}:host([variant=frost]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%);backdrop-filter:blur(var(--blur-lg)) saturate(180%)}:host([variant=frost]) .indicator{display:none}}@layer refine.density{:host([density=compact]){--tabs-radius:var(--rounded-md);height:auto}:host([density=compact]) [role=tablist]{gap:var(--size-1);padding:var(--size-1)}:host([density=compact][variant=ghost]) [role=tablist]{padding:0}}`;exports.default=e;
2
2
  //# sourceMappingURL=tabs.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.css.cjs","names":[],"sources":["../../../src/disclosure/tabs/tabs.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --tabs-transition: var(--transition-normal);\n --tabs-radius: var(--rounded-lg);\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .tablist-wrapper {\n position: relative;\n flex-shrink: 0;\n }\n\n [role='tablist'] {\n position: relative;\n display: flex;\n gap: var(--tabs-tab-gap, var(--size-1));\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n [role='tablist']::-webkit-scrollbar {\n display: none;\n }\n\n .indicator {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 2px;\n pointer-events: none;\n background: var(--tabs-indicator-color, var(--_theme-base));\n border-radius: var(--rounded-full);\n transition: transform var(--tabs-transition);\n }\n\n .panels {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n }\n}\n\n@layer refine.orientation {\n /* ─── vertical orientation ─── */\n :host([orientation='vertical']) {\n flex-direction: row;\n align-items: flex-start;\n }\n\n :host([orientation='vertical']) .tablist-wrapper {\n display: flex;\n flex-shrink: 0;\n }\n\n :host([orientation='vertical']) [role='tablist'] {\n flex-direction: column;\n width: max-content;\n overflow-x: unset;\n overflow-y: auto;\n }\n\n :host([orientation='vertical']) .indicator {\n inset-inline-start: 0;\n top: 0;\n\n /* Reposition indicator to inline-start side for vertical */\n bottom: unset;\n width: 2px;\n height: unset;\n transition: transform var(--tabs-transition);\n }\n}\n\n@layer refine.variants {\n /* ─── solid (default) ─── */\n :host,\n :host([variant='solid']) {\n --tabs-tab-gap: var(--size-1);\n --_tablist-bg: var(--tabs-tablist-bg, var(--color-contrast-100));\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host [role='tablist'],\n :host([variant='solid']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n }\n\n :host .indicator,\n :host([variant='solid']) .indicator {\n display: none;\n }\n\n /* ─── flat ─── */\n :host([variant='flat']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n\n overflow: hidden;\n background: var(--tabs-bg, var(--color-contrast-100));\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--inset-shadow-xs), var(--shadow-2xs);\n }\n\n :host([variant='flat']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: 0;\n }\n\n :host([variant='flat']) .indicator {\n display: none;\n }\n\n /* ─── bordered ─── */\n :host([variant='bordered']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host([variant='bordered']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: var(--border) solid var(--_tablist-border-color);\n border-bottom: none;\n border-radius: var(--tabs-radius) var(--tabs-radius) 0 0;\n }\n\n :host([variant='bordered']) .indicator {\n display: none;\n }\n\n :host([variant='bordered']) .panels {\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: 0 0 var(--tabs-radius) var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) [role='tablist'] {\n border-right: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius) 0 0 var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) .panels {\n border-radius: 0 var(--tabs-radius) var(--tabs-radius) 0;\n }\n\n /* ─── ghost ─── */\n :host([variant='ghost']) [role='tablist'] {\n gap: var(--size-1);\n padding: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n }\n\n :host([variant='ghost']) .indicator {\n display: none;\n }\n\n /* ─── glass ─── */\n :host([variant='glass']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-secondary) 20%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent)\n );\n }\n\n :host([variant='glass']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%) brightness(1.05);\n }\n\n :host([variant='glass']) .indicator {\n display: none;\n }\n\n /* ─── frost ─── */\n :host([variant='frost']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-canvas) 55%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-contrast-300) 50%, transparent)\n );\n }\n\n :host([variant='frost']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%);\n }\n\n :host([variant='frost']) .indicator {\n display: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"tabs.css.cjs","names":[],"sources":["../../../src/disclosure/tabs/tabs.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --tabs-transition: var(--transition-normal);\n --tabs-radius: var(--rounded-lg);\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .tablist-wrapper {\n position: relative;\n flex-shrink: 0;\n }\n\n [role='tablist'] {\n position: relative;\n display: flex;\n gap: var(--tabs-tab-gap, var(--size-1));\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n [role='tablist']::-webkit-scrollbar {\n display: none;\n }\n\n .indicator {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 2px;\n pointer-events: none;\n background: var(--tabs-indicator-color, var(--_theme-base));\n border-radius: var(--rounded-full);\n transition: transform var(--tabs-transition);\n }\n\n .panels {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n }\n}\n\n@layer refine.orientation {\n /* ─── vertical orientation ─── */\n :host([orientation='vertical']) {\n flex-direction: row;\n align-items: flex-start;\n }\n\n :host([orientation='vertical']) .tablist-wrapper {\n display: flex;\n flex-shrink: 0;\n }\n\n :host([orientation='vertical']) [role='tablist'] {\n flex-direction: column;\n width: max-content;\n overflow-x: unset;\n overflow-y: auto;\n }\n\n :host([orientation='vertical']) .indicator {\n inset-inline-start: 0;\n top: 0;\n\n /* Reposition indicator to inline-start side for vertical */\n bottom: unset;\n width: 2px;\n height: unset;\n transition: transform var(--tabs-transition);\n }\n}\n\n@layer refine.variants {\n /* ─── solid (default) ─── */\n :host,\n :host([variant='solid']) {\n --tabs-tab-gap: var(--size-1);\n --_tablist-bg: var(--tabs-tablist-bg, var(--color-contrast-100));\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host [role='tablist'],\n :host([variant='solid']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n }\n\n :host .indicator,\n :host([variant='solid']) .indicator {\n display: none;\n }\n\n /* ─── flat ─── */\n :host([variant='flat']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n\n overflow: hidden;\n background: var(--tabs-bg, var(--color-contrast-100));\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--inset-shadow-xs), var(--shadow-2xs);\n }\n\n :host([variant='flat']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: 0;\n }\n\n :host([variant='flat']) .indicator {\n display: none;\n }\n\n /* ─── bordered ─── */\n :host([variant='bordered']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host([variant='bordered']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: var(--border) solid var(--_tablist-border-color);\n border-bottom: none;\n border-radius: var(--tabs-radius) var(--tabs-radius) 0 0;\n }\n\n :host([variant='bordered']) .indicator {\n display: none;\n }\n\n :host([variant='bordered']) .panels {\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: 0 0 var(--tabs-radius) var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) [role='tablist'] {\n border-right: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius) 0 0 var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) .panels {\n border-radius: 0 var(--tabs-radius) var(--tabs-radius) 0;\n }\n\n /* ─── ghost ─── */\n :host([variant='ghost']) [role='tablist'] {\n gap: var(--size-1);\n padding: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n }\n\n :host([variant='ghost']) .indicator {\n display: none;\n }\n\n /* ─── glass ─── */\n :host([variant='glass']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-secondary) 20%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent)\n );\n }\n\n :host([variant='glass']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%) brightness(1.05);\n }\n\n :host([variant='glass']) .indicator {\n display: none;\n }\n\n /* ─── frost ─── */\n :host([variant='frost']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-canvas) 55%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-contrast-300) 50%, transparent)\n );\n }\n\n :host([variant='frost']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%);\n }\n\n :host([variant='frost']) .indicator {\n display: none;\n }\n}\n\n@layer refine.density {\n :host([density='compact']) {\n --tabs-radius: var(--rounded-md);\n\n height: auto;\n }\n\n :host([density='compact']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n }\n\n :host([density='compact'][variant='ghost']) [role='tablist'] {\n padding: 0;\n }\n}\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  //#region src/disclosure/tabs/tabs.css?inline
2
- var e = "@layer refine.base{:host{--tabs-transition:var(--transition-normal);--tabs-radius:var(--rounded-lg);flex-direction:column;width:100%;height:100%;display:flex}.tablist-wrapper{flex-shrink:0;position:relative}[role=tablist]{gap:var(--tabs-tab-gap,var(--size-1));scrollbar-width:none;align-items:stretch;display:flex;position:relative;overflow-x:auto}[role=tablist]::-webkit-scrollbar{display:none}.indicator{pointer-events:none;background:var(--tabs-indicator-color,var(--_theme-base));border-radius:var(--rounded-full);height:2px;transition:transform var(--tabs-transition);position:absolute;bottom:0;left:0}.panels{flex-direction:column;flex:1;min-height:0;display:flex}}@layer refine.orientation{:host([orientation=vertical]){flex-direction:row;align-items:flex-start}:host([orientation=vertical]) .tablist-wrapper{flex-shrink:0;display:flex}:host([orientation=vertical]) [role=tablist]{width:max-content;overflow-x:unset;flex-direction:column;overflow-y:auto}:host([orientation=vertical]) .indicator{top:0;bottom:unset;width:2px;height:unset;transition:transform var(--tabs-transition)}:host([orientation=vertical]) .indicator:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}:host([orientation=vertical]) .indicator:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}}@layer refine.variants{:host,:host([variant=solid]){--tabs-tab-gap:var(--size-1);--_tablist-bg:var(--tabs-tablist-bg,var(--color-contrast-100));--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host [role=tablist],:host([variant=solid]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius)}:host .indicator,:host([variant=solid]) .indicator{display:none}:host([variant=flat]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200));background:var(--tabs-bg,var(--color-contrast-100));border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--inset-shadow-xs), var(--shadow-2xs);overflow:hidden}:host([variant=flat]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:none;border-bottom:var(--border) solid var(--_tablist-border-color);background:0 0;border-radius:0}:host([variant=flat]) .indicator{display:none}:host([variant=bordered]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host([variant=bordered]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) var(--tabs-radius) 0 0;background:0 0;border-bottom:none}:host([variant=bordered]) .indicator{display:none}:host([variant=bordered]) .panels{border:var(--border) solid var(--_tablist-border-color);border-radius:0 0 var(--tabs-radius) var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) [role=tablist]{border-right:none;border-bottom:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) 0 0 var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) .panels{border-radius:0 var(--tabs-radius) var(--tabs-radius) 0}:host([variant=ghost]) [role=tablist]{gap:var(--size-1);background:0 0;border:none;border-radius:0;padding:0}:host([variant=ghost]) .indicator{display:none}:host([variant=glass]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-secondary) 20%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent))}:host([variant=glass]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05);backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05)}:host([variant=glass]) .indicator{display:none}:host([variant=frost]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-canvas) 55%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-contrast-300) 50%, transparent))}:host([variant=frost]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%);backdrop-filter:blur(var(--blur-lg)) saturate(180%)}:host([variant=frost]) .indicator{display:none}}";
2
+ var e = "@layer refine.base{:host{--tabs-transition:var(--transition-normal);--tabs-radius:var(--rounded-lg);flex-direction:column;width:100%;height:100%;display:flex}.tablist-wrapper{flex-shrink:0;position:relative}[role=tablist]{gap:var(--tabs-tab-gap,var(--size-1));scrollbar-width:none;align-items:stretch;display:flex;position:relative;overflow-x:auto}[role=tablist]::-webkit-scrollbar{display:none}.indicator{pointer-events:none;background:var(--tabs-indicator-color,var(--_theme-base));border-radius:var(--rounded-full);height:2px;transition:transform var(--tabs-transition);position:absolute;bottom:0;left:0}.panels{flex-direction:column;flex:1;min-height:0;display:flex}}@layer refine.orientation{:host([orientation=vertical]){flex-direction:row;align-items:flex-start}:host([orientation=vertical]) .tablist-wrapper{flex-shrink:0;display:flex}:host([orientation=vertical]) [role=tablist]{width:max-content;overflow-x:unset;flex-direction:column;overflow-y:auto}:host([orientation=vertical]) .indicator{top:0;bottom:unset;width:2px;height:unset;transition:transform var(--tabs-transition)}:host([orientation=vertical]) .indicator:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}:host([orientation=vertical]) .indicator:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}}@layer refine.variants{:host,:host([variant=solid]){--tabs-tab-gap:var(--size-1);--_tablist-bg:var(--tabs-tablist-bg,var(--color-contrast-100));--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host [role=tablist],:host([variant=solid]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius)}:host .indicator,:host([variant=solid]) .indicator{display:none}:host([variant=flat]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200));background:var(--tabs-bg,var(--color-contrast-100));border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--inset-shadow-xs), var(--shadow-2xs);overflow:hidden}:host([variant=flat]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:none;border-bottom:var(--border) solid var(--_tablist-border-color);background:0 0;border-radius:0}:host([variant=flat]) .indicator{display:none}:host([variant=bordered]){--_tablist-border-color:var(--tabs-tablist-border-color,var(--color-contrast-200))}:host([variant=bordered]) [role=tablist]{gap:var(--size-1);padding:var(--size-1);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) var(--tabs-radius) 0 0;background:0 0;border-bottom:none}:host([variant=bordered]) .indicator{display:none}:host([variant=bordered]) .panels{border:var(--border) solid var(--_tablist-border-color);border-radius:0 0 var(--tabs-radius) var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) [role=tablist]{border-right:none;border-bottom:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius) 0 0 var(--tabs-radius)}:host([variant=bordered][orientation=vertical]) .panels{border-radius:0 var(--tabs-radius) var(--tabs-radius) 0}:host([variant=ghost]) [role=tablist]{gap:var(--size-1);background:0 0;border:none;border-radius:0;padding:0}:host([variant=ghost]) .indicator{display:none}:host([variant=glass]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-secondary) 20%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent))}:host([variant=glass]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05);backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05)}:host([variant=glass]) .indicator{display:none}:host([variant=frost]){--_tablist-bg:var(--tabs-tablist-bg,color-mix(in oklch, var(--color-canvas) 55%, transparent));--_tablist-border-color:var(--tabs-tablist-border-color,color-mix(in oklch, var(--color-contrast-300) 50%, transparent))}:host([variant=frost]) [role=tablist]{padding:var(--size-1);background:var(--_tablist-bg);border:var(--border) solid var(--_tablist-border-color);border-radius:var(--tabs-radius);box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%);backdrop-filter:blur(var(--blur-lg)) saturate(180%)}:host([variant=frost]) .indicator{display:none}}@layer refine.density{:host([density=compact]){--tabs-radius:var(--rounded-md);height:auto}:host([density=compact]) [role=tablist]{gap:var(--size-1);padding:var(--size-1)}:host([density=compact][variant=ghost]) [role=tablist]{padding:0}}";
3
3
  //#endregion
4
4
  export { e as default };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.css.js","names":[],"sources":["../../../src/disclosure/tabs/tabs.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --tabs-transition: var(--transition-normal);\n --tabs-radius: var(--rounded-lg);\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .tablist-wrapper {\n position: relative;\n flex-shrink: 0;\n }\n\n [role='tablist'] {\n position: relative;\n display: flex;\n gap: var(--tabs-tab-gap, var(--size-1));\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n [role='tablist']::-webkit-scrollbar {\n display: none;\n }\n\n .indicator {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 2px;\n pointer-events: none;\n background: var(--tabs-indicator-color, var(--_theme-base));\n border-radius: var(--rounded-full);\n transition: transform var(--tabs-transition);\n }\n\n .panels {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n }\n}\n\n@layer refine.orientation {\n /* ─── vertical orientation ─── */\n :host([orientation='vertical']) {\n flex-direction: row;\n align-items: flex-start;\n }\n\n :host([orientation='vertical']) .tablist-wrapper {\n display: flex;\n flex-shrink: 0;\n }\n\n :host([orientation='vertical']) [role='tablist'] {\n flex-direction: column;\n width: max-content;\n overflow-x: unset;\n overflow-y: auto;\n }\n\n :host([orientation='vertical']) .indicator {\n inset-inline-start: 0;\n top: 0;\n\n /* Reposition indicator to inline-start side for vertical */\n bottom: unset;\n width: 2px;\n height: unset;\n transition: transform var(--tabs-transition);\n }\n}\n\n@layer refine.variants {\n /* ─── solid (default) ─── */\n :host,\n :host([variant='solid']) {\n --tabs-tab-gap: var(--size-1);\n --_tablist-bg: var(--tabs-tablist-bg, var(--color-contrast-100));\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host [role='tablist'],\n :host([variant='solid']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n }\n\n :host .indicator,\n :host([variant='solid']) .indicator {\n display: none;\n }\n\n /* ─── flat ─── */\n :host([variant='flat']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n\n overflow: hidden;\n background: var(--tabs-bg, var(--color-contrast-100));\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--inset-shadow-xs), var(--shadow-2xs);\n }\n\n :host([variant='flat']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: 0;\n }\n\n :host([variant='flat']) .indicator {\n display: none;\n }\n\n /* ─── bordered ─── */\n :host([variant='bordered']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host([variant='bordered']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: var(--border) solid var(--_tablist-border-color);\n border-bottom: none;\n border-radius: var(--tabs-radius) var(--tabs-radius) 0 0;\n }\n\n :host([variant='bordered']) .indicator {\n display: none;\n }\n\n :host([variant='bordered']) .panels {\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: 0 0 var(--tabs-radius) var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) [role='tablist'] {\n border-right: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius) 0 0 var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) .panels {\n border-radius: 0 var(--tabs-radius) var(--tabs-radius) 0;\n }\n\n /* ─── ghost ─── */\n :host([variant='ghost']) [role='tablist'] {\n gap: var(--size-1);\n padding: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n }\n\n :host([variant='ghost']) .indicator {\n display: none;\n }\n\n /* ─── glass ─── */\n :host([variant='glass']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-secondary) 20%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent)\n );\n }\n\n :host([variant='glass']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%) brightness(1.05);\n }\n\n :host([variant='glass']) .indicator {\n display: none;\n }\n\n /* ─── frost ─── */\n :host([variant='frost']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-canvas) 55%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-contrast-300) 50%, transparent)\n );\n }\n\n :host([variant='frost']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%);\n }\n\n :host([variant='frost']) .indicator {\n display: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"tabs.css.js","names":[],"sources":["../../../src/disclosure/tabs/tabs.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --tabs-transition: var(--transition-normal);\n --tabs-radius: var(--rounded-lg);\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .tablist-wrapper {\n position: relative;\n flex-shrink: 0;\n }\n\n [role='tablist'] {\n position: relative;\n display: flex;\n gap: var(--tabs-tab-gap, var(--size-1));\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n [role='tablist']::-webkit-scrollbar {\n display: none;\n }\n\n .indicator {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 2px;\n pointer-events: none;\n background: var(--tabs-indicator-color, var(--_theme-base));\n border-radius: var(--rounded-full);\n transition: transform var(--tabs-transition);\n }\n\n .panels {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n }\n}\n\n@layer refine.orientation {\n /* ─── vertical orientation ─── */\n :host([orientation='vertical']) {\n flex-direction: row;\n align-items: flex-start;\n }\n\n :host([orientation='vertical']) .tablist-wrapper {\n display: flex;\n flex-shrink: 0;\n }\n\n :host([orientation='vertical']) [role='tablist'] {\n flex-direction: column;\n width: max-content;\n overflow-x: unset;\n overflow-y: auto;\n }\n\n :host([orientation='vertical']) .indicator {\n inset-inline-start: 0;\n top: 0;\n\n /* Reposition indicator to inline-start side for vertical */\n bottom: unset;\n width: 2px;\n height: unset;\n transition: transform var(--tabs-transition);\n }\n}\n\n@layer refine.variants {\n /* ─── solid (default) ─── */\n :host,\n :host([variant='solid']) {\n --tabs-tab-gap: var(--size-1);\n --_tablist-bg: var(--tabs-tablist-bg, var(--color-contrast-100));\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host [role='tablist'],\n :host([variant='solid']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n }\n\n :host .indicator,\n :host([variant='solid']) .indicator {\n display: none;\n }\n\n /* ─── flat ─── */\n :host([variant='flat']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n\n overflow: hidden;\n background: var(--tabs-bg, var(--color-contrast-100));\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--inset-shadow-xs), var(--shadow-2xs);\n }\n\n :host([variant='flat']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: 0;\n }\n\n :host([variant='flat']) .indicator {\n display: none;\n }\n\n /* ─── bordered ─── */\n :host([variant='bordered']) {\n --_tablist-border-color: var(--tabs-tablist-border-color, var(--color-contrast-200));\n }\n\n :host([variant='bordered']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n background: transparent;\n border: var(--border) solid var(--_tablist-border-color);\n border-bottom: none;\n border-radius: var(--tabs-radius) var(--tabs-radius) 0 0;\n }\n\n :host([variant='bordered']) .indicator {\n display: none;\n }\n\n :host([variant='bordered']) .panels {\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: 0 0 var(--tabs-radius) var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) [role='tablist'] {\n border-right: none;\n border-bottom: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius) 0 0 var(--tabs-radius);\n }\n\n :host([variant='bordered'][orientation='vertical']) .panels {\n border-radius: 0 var(--tabs-radius) var(--tabs-radius) 0;\n }\n\n /* ─── ghost ─── */\n :host([variant='ghost']) [role='tablist'] {\n gap: var(--size-1);\n padding: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n }\n\n :host([variant='ghost']) .indicator {\n display: none;\n }\n\n /* ─── glass ─── */\n :host([variant='glass']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-secondary) 20%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent)\n );\n }\n\n :host([variant='glass']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%) brightness(1.05);\n }\n\n :host([variant='glass']) .indicator {\n display: none;\n }\n\n /* ─── frost ─── */\n :host([variant='frost']) {\n --_tablist-bg: var(--tabs-tablist-bg, color-mix(in oklch, var(--color-canvas) 55%, transparent));\n --_tablist-border-color: var(\n --tabs-tablist-border-color,\n color-mix(in oklch, var(--color-contrast-300) 50%, transparent)\n );\n }\n\n :host([variant='frost']) [role='tablist'] {\n padding: var(--size-1);\n background: var(--_tablist-bg);\n border: var(--border) solid var(--_tablist-border-color);\n border-radius: var(--tabs-radius);\n box-shadow: var(--shadow-md), var(--inset-shadow-xs);\n backdrop-filter: blur(var(--blur-lg)) saturate(180%);\n }\n\n :host([variant='frost']) .indicator {\n display: none;\n }\n}\n\n@layer refine.density {\n :host([density='compact']) {\n --tabs-radius: var(--rounded-md);\n\n height: auto;\n }\n\n :host([density='compact']) [role='tablist'] {\n gap: var(--size-1);\n padding: var(--size-1);\n }\n\n :host([density='compact'][variant='ghost']) [role='tablist'] {\n padding: 0;\n }\n}\n"],"mappings":""}
@@ -3,6 +3,7 @@ import type { ComponentSize, SurfaceVariant, ThemeColor } from '../../types';
3
3
  /** Context provided by ore-tabs to its ore-tab-item and ore-tab-panel children. */
4
4
  export type TabsContext = {
5
5
  color: Readable<ThemeColor | undefined>;
6
+ density: Readable<'compact' | 'default'>;
6
7
  orientation: Readable<'horizontal' | 'vertical'>;
7
8
  size: Readable<ComponentSize | undefined>;
8
9
  value: Readable<string | undefined>;
@@ -24,6 +25,8 @@ export type OreTabsProps = {
24
25
  activation?: 'auto' | 'manual';
25
26
  /** Theme color */
26
27
  color?: ThemeColor;
28
+ /** Spatial density; compact renders a 24px tab control for dense interfaces. */
29
+ density?: 'compact' | 'default';
27
30
  /** Accessible label for the tablist (passed as aria-label). Use when there is no visible heading labelling the tabs. */
28
31
  label?: string;
29
32
  /** Tab list orientation */
@@ -45,6 +48,7 @@ export type OreTabsProps = {
45
48
  * @attr {string} value - The value of the currently selected tab
46
49
  * @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'ghost' | 'glass' | 'frost'
47
50
  * @attr {string} size - Size: 'sm' | 'md' | 'lg'
51
+ * @attr {string} density - Spatial density: 'default' | 'compact'
48
52
  * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
49
53
  *
50
54
  * @fires change - Emitted when the active tab changes with detail: { value: string }
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/disclosure/tabs/tabs.ts"],"names":[],"mappings":"AAaA,OAAO,EAAY,KAAK,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAI1E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7E,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,WAAW,EAAE,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;IACjD,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpC,OAAO,EAAE,QAAQ,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;CAC/C,CAAC;AACF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,mDAA4C,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,wHAAwH;IACxH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,QAAQ,EAAG,UAAmB,CAAC"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/disclosure/tabs/tabs.ts"],"names":[],"mappings":"AAaA,OAAO,EAAY,KAAK,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAI1E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7E,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,OAAO,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACzC,WAAW,EAAE,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;IACjD,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpC,OAAO,EAAE,QAAQ,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;CAC/C,CAAC;AACF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,mDAA4C,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,wHAAwH;IACxH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,QAAQ,EAAG,UAAmB,CAAC"}
@@ -17,8 +17,8 @@ export type OreTypingIndicatorProps = {
17
17
  * announced through the shared singleton live region (`core/announcer.ts`) rather than a
18
18
  * static `aria-live` element in the template. A live region populated in the same paint as
19
19
  * its own insertion is unreliable across browsers/screen readers; routing through the shared
20
- * announcer (pre-existing region, clear-then-set) is the same pattern already used for other
21
- * transient status messages across this package.
20
+ * announcer (pre-existing region, clear-then-set, document-scoped) is the same pattern
21
+ * already used for other transient status messages across this package.
22
22
  *
23
23
  * @element ore-typing-indicator
24
24
  *
@@ -1,34 +1,34 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/accessibility.css.cjs"),t=require("./styles/mixins/shape.css.cjs"),n=require("./styles/mixins/states.css.cjs"),r=require("./styles/mixins/theme.css.cjs"),i=require("./core/keyboard.cjs"),a=require("./core/ref-callback.cjs"),o=require("./shared/size-presets.cjs"),s=require("./inputs/file-input/file-input.css.cjs"),c=require("./inputs/file-input/file-input-upload.cjs");let l=require("@vielzeug/ore"),u=require("@vielzeug/ripple"),d=require("@vielzeug/dnd");var f=e=>e.type.startsWith(`image/`),p=`ore-file-input`;(0,l.define)(p,{formAssociated:!0,props:{accept:l.prop.string(),color:l.prop.string(),disabled:l.prop.bool(!1),error:l.prop.string(),gallery:l.prop.bool(!1),helper:l.prop.string(),label:l.prop.string(),"max-files":l.prop.number(0),"max-size":l.prop.number(0),multiple:l.prop.bool(!1),name:l.prop.string(),ref:l.prop.data(),required:l.prop.bool(!1),size:l.prop.string(),upload:l.prop.data()},setup(e){let t=(0,l.useEmit)(),n=(0,u.signal)(!1),r=(0,u.signal)(null),o=(0,u.computed)(()=>!!e.disabled.value),s=(0,u.computed)(()=>e[`max-files`].value??0),p=(0,u.computed)(()=>e[`max-size`].value??0),m=c.createFileQueue({accept:e.accept,disabled:o,maxFiles:s,maxSize:p,multiple:(0,u.computed)(()=>!!e.multiple.value),onChange:(e,n)=>t(`change`,{files:e,originalEvent:n,value:e}),onRemove:(e,n,r)=>t(`remove`,{file:e,files:n,originalEvent:r,value:n}),onUploadError:(e,n)=>t(`upload-error`,{error:n,file:e}),onUploadProgress:(e,n,r)=>t(`upload-progress`,{file:e,loaded:n,total:r}),onUploadSuccess:e=>t(`upload-success`,{file:e}),upload:(0,u.computed)(()=>e.upload.value??void 0)});(0,l.onCleanup)(()=>m.dispose()),(0,l.useField)({disabled:o,toFormValue:t=>{if(t.length===0)return null;let n=e.name.value||`file`,r=new FormData;for(let e of t)r.append(n,e);return r},value:m.files});let h=(0,u.computed)(()=>!!e.error.value);(0,l.bind)({attr:{"drag-over":()=>n.value?!0:void 0,invalid:()=>h.value?!0:void 0,size:e.size}});let g=(0,l.createStableId)(`file-input`),_=`label-${g}`,v=`helper-${g}`,y=`error-${g}`,b=(0,l.ref)(),x=(0,l.ref)(),S=(0,u.computed)(()=>{let t=[];e.accept.value&&t.push(e.accept.value.split(`,`).map(e=>e.trim()).join(`, `));let n=p.value;n>0&&t.push(`max ${c.formatBytes(n)}`);let r=s.value;return r>0&&t.push(`up to ${r} file${r===1?``:`s`}`),t.join(` · `)});function C(e){r.value=e,x.value?.click()}let w=new Map;function T(e){let t=w.get(e);return t||(t=URL.createObjectURL(e),w.set(e,t)),t}function E(e){let t=new Set(e);for(let[e,n]of w)t.has(e)||(URL.revokeObjectURL(n),w.delete(e))}return(0,u.watch)(m.files,E),(0,l.onCleanup)(()=>{for(let e of w.values())URL.revokeObjectURL(e);w.clear()}),(0,l.onElement)(x,t=>a.bindRefCallback(e.ref,t)),(0,l.onMounted)(()=>{let e=x.value,t=b.value,a=!1,s=i.createInteraction({disabled:o,onPress:()=>{e.click()}});(0,l.onEvent)(e,`change`,e=>{let t=e.target,n=r.value;r.value=null,n&&t.files?.[0]?m.replaceFile(n,t.files[0],e):t.files?.length&&m.addFiles(Array.from(t.files),e),t.value=``}),(0,l.onEvent)(t,`click`,t=>{if(t.target!==e){if(a){a=!1;return}o.value||e.click()}}),(0,l.onEvent)(t,`keydown`,e=>{a=s.handleKeydown(e)&&e.key===`Enter`}),(0,u.watch)(o,e=>{let r=(0,d.createDropZone)({disabled:e,element:t,onDrop:e=>m.addFiles(e),onHoverChange:e=>{n.value=e}});return()=>r.dispose()},{immediate:!0})}),l.html`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/accessibility.css.cjs"),t=require("./styles/mixins/shape.css.cjs"),n=require("./styles/mixins/states.css.cjs"),r=require("./styles/mixins/theme.css.cjs"),i=require("./core/keyboard.cjs"),a=require("./core/ref-callback.cjs"),o=require("./shared/size-presets.cjs"),s=require("./inputs/file-input/file-input.css.cjs"),c=require("./inputs/file-input/file-input-upload.cjs");let l=require("@vielzeug/ore"),u=require("@vielzeug/ripple"),d=require("@vielzeug/dnd");var f=e=>e.type.startsWith(`image/`),p=`ore-file-input`;(0,l.define)(p,{formAssociated:!0,props:{accept:l.prop.string(),color:l.prop.string(),disabled:l.prop.bool(!1),error:l.prop.string(),gallery:l.prop.bool(!1),helper:l.prop.string(),label:l.prop.string(),"max-files":l.prop.number(0),"max-size":l.prop.number(0),multiple:l.prop.bool(!1),name:l.prop.string(),ref:l.prop.data(),required:l.prop.bool(!1),size:l.prop.string(),upload:l.prop.data()},setup(e){let t=(0,l.getHost)(),n=(0,l.useEmit)(),r=(0,u.signal)(!1),o=(0,u.signal)(null),s=(0,u.computed)(()=>!!e.disabled.value),p=(0,u.computed)(()=>e[`max-files`].value??0),m=(0,u.computed)(()=>e[`max-size`].value??0),h=c.createFileQueue({accept:e.accept,disabled:s,document:t.ownerDocument,maxFiles:p,maxSize:m,multiple:(0,u.computed)(()=>!!e.multiple.value),onChange:(e,t)=>n(`change`,{files:e,originalEvent:t,value:e}),onRemove:(e,t,r)=>n(`remove`,{file:e,files:t,originalEvent:r,value:t}),onUploadError:(e,t)=>n(`upload-error`,{error:t,file:e}),onUploadProgress:(e,t,r)=>n(`upload-progress`,{file:e,loaded:t,total:r}),onUploadSuccess:e=>n(`upload-success`,{file:e}),upload:(0,u.computed)(()=>e.upload.value??void 0)});(0,l.onCleanup)(()=>h.dispose()),(0,l.useField)({disabled:s,toFormValue:t=>{if(t.length===0)return null;let n=e.name.value||`file`,r=new FormData;for(let e of t)r.append(n,e);return r},value:h.files});let g=(0,u.computed)(()=>!!e.error.value);(0,l.bind)({attr:{"drag-over":()=>r.value?!0:void 0,invalid:()=>g.value?!0:void 0,size:e.size}});let _=(0,l.createStableId)(`file-input`),v=`label-${_}`,y=`helper-${_}`,b=`error-${_}`,x=(0,l.ref)(),S=(0,l.ref)(),C=(0,u.computed)(()=>{let t=[];e.accept.value&&t.push(e.accept.value.split(`,`).map(e=>e.trim()).join(`, `));let n=m.value;n>0&&t.push(`max ${c.formatBytes(n)}`);let r=p.value;return r>0&&t.push(`up to ${r} file${r===1?``:`s`}`),t.join(` · `)});function w(e){o.value=e,S.value?.click()}let T=new Map;function E(e){let t=T.get(e);return t||(t=URL.createObjectURL(e),T.set(e,t)),t}function D(e){let t=new Set(e);for(let[e,n]of T)t.has(e)||(URL.revokeObjectURL(n),T.delete(e))}return(0,u.watch)(h.files,D),(0,l.onCleanup)(()=>{for(let e of T.values())URL.revokeObjectURL(e);T.clear()}),(0,l.onElement)(S,t=>a.bindRefCallback(e.ref,t)),(0,l.onMounted)(()=>{let e=S.value,t=x.value,n=!1,a=i.createInteraction({disabled:s,onPress:()=>{e.click()}});(0,l.onEvent)(e,`change`,e=>{let t=e.target,n=o.value;o.value=null,n&&t.files?.[0]?h.replaceFile(n,t.files[0],e):t.files?.length&&h.addFiles(Array.from(t.files),e),t.value=``}),(0,l.onEvent)(t,`click`,t=>{if(t.target!==e){if(n){n=!1;return}s.value||e.click()}}),(0,l.onEvent)(t,`keydown`,e=>{n=a.handleKeydown(e)&&e.key===`Enter`}),(0,u.watch)(s,e=>{let n=(0,d.createDropZone)({disabled:e,element:t,onDrop:e=>h.addFiles(e),onHoverChange:e=>{r.value=e}});return()=>n.dispose()},{immediate:!0})}),l.html`
2
2
  <div class="file-input-wrapper" part="wrapper">
3
- <label class="label-outside" id="${_}" part="label" ?hidden=${()=>!e.label.value}>
3
+ <label class="label-outside" id="${v}" part="label" ?hidden=${()=>!e.label.value}>
4
4
  ${e.label}
5
5
  </label>
6
6
  <div
7
7
  class="dropzone"
8
8
  part="dropzone"
9
- ref=${b}
9
+ ref=${x}
10
10
  role="button"
11
- tabindex="${()=>o.value?`-1`:`0`}"
12
- aria-disabled="${()=>String(o.value)}"
11
+ tabindex="${()=>s.value?`-1`:`0`}"
12
+ aria-disabled="${()=>String(s.value)}"
13
13
  aria-label="${()=>e.label.value?null:`File upload drop zone`}"
14
- aria-labelledby="${()=>e.label.value?_:null}"
15
- aria-describedby="${v}">
14
+ aria-labelledby="${()=>e.label.value?v:null}"
15
+ aria-describedby="${y}">
16
16
  <input
17
17
  type="file"
18
- ref=${x}
18
+ ref=${S}
19
19
  part="input"
20
- id="${g}"
20
+ id="${_}"
21
21
  accept="${e.accept}"
22
22
  ?multiple="${e.multiple}"
23
23
  ?required="${e.required}"
24
- ?disabled="${o}"
24
+ ?disabled="${s}"
25
25
  name="${e.name}"
26
26
  hidden
27
27
  inert
28
28
  tabindex="-1" />
29
29
  <div class="dropzone-content">
30
- <span class="dropzone-icon" aria-hidden="true" data-status="${()=>h.value?`error`:null}">
31
- ${()=>h.value?l.html`
30
+ <span class="dropzone-icon" aria-hidden="true" data-status="${()=>g.value?`error`:null}">
31
+ ${()=>g.value?l.html`
32
32
  <ore-icon name="alert-circle" size="36" stroke-width="1.5" aria-hidden="true"></ore-icon>
33
33
  `:l.html`
34
34
  <ore-icon name="upload" size="36" stroke-width="1.5" aria-hidden="true"></ore-icon>
@@ -37,16 +37,16 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
37
37
  <!-- Signal 01: the copy itself shifts on drag-entry (not just border/glow) — a
38
38
  static "Drop files here" during an active drag reads as if the drop target
39
39
  hasn't noticed the file yet. -->
40
- ${(0,l.when)(()=>n.value,()=>l.html`
40
+ ${(0,l.when)(()=>r.value,()=>l.html`
41
41
  <span class="dropzone-title dropzone-title-active">Release to upload</span>
42
42
  `)}
43
- ${(0,l.when)(()=>!n.value,()=>l.html`
43
+ ${(0,l.when)(()=>!r.value,()=>l.html`
44
44
  <span class="dropzone-title">
45
45
  Drop files here or
46
46
  <u>click to browse</u>
47
47
  </span>
48
48
  `)}
49
- <span class="dropzone-hint" ?hidden=${()=>!S.value}>${S}</span>
49
+ <span class="dropzone-hint" ?hidden=${()=>!C.value}>${C}</span>
50
50
  </div>
51
51
  </div>
52
52
  <ul
@@ -54,46 +54,46 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
54
54
  part="${()=>e.gallery.value?`gallery`:null}"
55
55
  role="list"
56
56
  aria-label="Selected files"
57
- ?hidden=${()=>m.files.value.length===0}>
58
- ${()=>m.files.value.map(t=>e.gallery.value?l.html`
59
- <li class="file-card" data-status=${()=>m.fileState(t).status}>
57
+ ?hidden=${()=>h.files.value.length===0}>
58
+ ${()=>h.files.value.map(t=>e.gallery.value?l.html`
59
+ <li class="file-card" data-status=${()=>h.fileState(t).status}>
60
60
  <span class="file-thumb-frame">
61
61
  ${f(t)?l.html`
62
62
  <img
63
63
  class="file-thumb"
64
64
  alt=""
65
- ref="${e=>{e&&(e.src=T(t))}}" />
65
+ ref="${e=>{e&&(e.src=E(t))}}" />
66
66
  `:l.html`
67
67
  <span class="file-thumb file-thumb-generic" aria-hidden="true">
68
68
  <ore-icon name="file" size="28" stroke-width="1.5" aria-hidden="true"></ore-icon>
69
69
  </span>
70
70
  `}
71
- ${(0,l.when)(()=>m.fileState(t).status===`success`,()=>l.html`
71
+ ${(0,l.when)(()=>h.fileState(t).status===`success`,()=>l.html`
72
72
  <span class="file-status-badge file-status-badge-success" aria-hidden="true">
73
73
  <ore-icon name="check" size="11" stroke-width="3" aria-hidden="true"></ore-icon>
74
74
  </span>
75
75
  `)}
76
- ${(0,l.when)(()=>m.fileState(t).status===`error`,()=>l.html`
76
+ ${(0,l.when)(()=>h.fileState(t).status===`error`,()=>l.html`
77
77
  <span class="file-status-badge file-status-badge-error" aria-hidden="true">
78
78
  <ore-icon name="alert-circle" size="12" stroke-width="2.5" aria-hidden="true"></ore-icon>
79
79
  </span>
80
80
  `)}
81
81
  <span class="file-card-actions">
82
- ${(0,l.when)(()=>m.fileState(t).status===`error`,()=>l.html`
82
+ ${(0,l.when)(()=>h.fileState(t).status===`error`,()=>l.html`
83
83
  <button
84
84
  class="file-card-action"
85
85
  type="button"
86
86
  aria-label="${`Retry uploading ${t.name}`}"
87
- @click=${()=>m.retryUpload(t)}>
87
+ @click=${()=>h.retryUpload(t)}>
88
88
  <ore-icon name="refresh-cw" size="12" stroke-width="2.5" aria-hidden="true"></ore-icon>
89
89
  </button>
90
90
  `)}
91
- ${(0,l.when)(()=>m.fileState(t).status===`success`&&!!e.multiple.value&&!!e.upload.value,()=>l.html`
91
+ ${(0,l.when)(()=>h.fileState(t).status===`success`&&!!e.multiple.value&&!!e.upload.value,()=>l.html`
92
92
  <button
93
93
  class="file-card-action"
94
94
  type="button"
95
95
  aria-label="${`Replace ${t.name}`}"
96
- @click=${()=>C(t)}>
96
+ @click=${()=>w(t)}>
97
97
  <ore-icon name="upload" size="12" stroke-width="2.5" aria-hidden="true"></ore-icon>
98
98
  </button>
99
99
  `)}
@@ -101,66 +101,66 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
101
101
  class="file-card-action file-card-remove"
102
102
  type="button"
103
103
  aria-label="${`Remove ${t.name}`}"
104
- @click=${e=>m.removeFile(t,e)}>
104
+ @click=${e=>h.removeFile(t,e)}>
105
105
  <ore-icon name="x" size="12" stroke-width="2.5" aria-hidden="true"></ore-icon>
106
106
  </button>
107
107
  </span>
108
108
  </span>
109
109
  <span class="file-card-name" title="${t.name}">${t.name}</span>
110
- ${(0,l.when)(()=>m.fileState(t).status===`uploading`,()=>l.html`
110
+ ${(0,l.when)(()=>h.fileState(t).status===`uploading`,()=>l.html`
111
111
  <ore-progress
112
112
  type="linear"
113
113
  size="sm"
114
- value=${()=>m.uploadPercent(t)}
115
- label=${()=>`${m.uploadPercent(t)}%`}></ore-progress>
116
- <span class="file-progress-meta">${()=>m.uploadMetaText(t)}</span>
114
+ value=${()=>h.uploadPercent(t)}
115
+ label=${()=>`${h.uploadPercent(t)}%`}></ore-progress>
116
+ <span class="file-progress-meta">${()=>h.uploadMetaText(t)}</span>
117
117
  `)}
118
- ${(0,l.when)(()=>m.fileState(t).status===`error`,()=>l.html`
119
- <span class="file-error-text">${()=>m.fileState(t).error}</span>
118
+ ${(0,l.when)(()=>h.fileState(t).status===`error`,()=>l.html`
119
+ <span class="file-error-text">${()=>h.fileState(t).error}</span>
120
120
  `)}
121
121
  </li>
122
122
  `:l.html`
123
- <li class="file-item" data-status=${()=>m.fileState(t).status}>
123
+ <li class="file-item" data-status=${()=>h.fileState(t).status}>
124
124
  <span class="file-icon" aria-hidden="true">
125
125
  <ore-icon
126
- name=${()=>m.statusIconName(t)}
126
+ name=${()=>h.statusIconName(t)}
127
127
  size="18"
128
128
  stroke-width="1.75"
129
129
  aria-hidden="true"></ore-icon>
130
130
  </span>
131
131
  <span class="file-meta">
132
132
  <span class="file-name" title="${t.name}">${t.name}</span>
133
- ${(0,l.when)(()=>m.fileState(t).status===`uploading`,()=>l.html`
133
+ ${(0,l.when)(()=>h.fileState(t).status===`uploading`,()=>l.html`
134
134
  <ore-progress
135
135
  type="linear"
136
136
  size="sm"
137
- value=${()=>m.uploadPercent(t)}
138
- label=${()=>`${m.uploadPercent(t)}%`}></ore-progress>
139
- <span class="file-progress-meta">${()=>m.uploadMetaText(t)}</span>
137
+ value=${()=>h.uploadPercent(t)}
138
+ label=${()=>`${h.uploadPercent(t)}%`}></ore-progress>
139
+ <span class="file-progress-meta">${()=>h.uploadMetaText(t)}</span>
140
140
  `)}
141
- ${(0,l.when)(()=>m.fileState(t).status===`error`,()=>l.html`
142
- <span class="file-error-text">${()=>m.fileState(t).error}</span>
141
+ ${(0,l.when)(()=>h.fileState(t).status===`error`,()=>l.html`
142
+ <span class="file-error-text">${()=>h.fileState(t).error}</span>
143
143
  `)}
144
- ${(0,l.when)(()=>m.fileState(t).status===`idle`||m.fileState(t).status===`success`,()=>l.html`
144
+ ${(0,l.when)(()=>h.fileState(t).status===`idle`||h.fileState(t).status===`success`,()=>l.html`
145
145
  <span class="file-size">${c.formatBytes(t.size)}</span>
146
146
  `)}
147
147
  </span>
148
148
  <span class="file-actions">
149
- ${(0,l.when)(()=>m.fileState(t).status===`error`,()=>l.html`
149
+ ${(0,l.when)(()=>h.fileState(t).status===`error`,()=>l.html`
150
150
  <button
151
151
  class="file-action"
152
152
  type="button"
153
153
  aria-label="${`Retry uploading ${t.name}`}"
154
- @click=${()=>m.retryUpload(t)}>
154
+ @click=${()=>h.retryUpload(t)}>
155
155
  <ore-icon name="refresh-cw" size="14" stroke-width="2" aria-hidden="true"></ore-icon>
156
156
  </button>
157
157
  `)}
158
- ${(0,l.when)(()=>m.fileState(t).status===`success`&&!!e.multiple.value&&!!e.upload.value,()=>l.html`
158
+ ${(0,l.when)(()=>h.fileState(t).status===`success`&&!!e.multiple.value&&!!e.upload.value,()=>l.html`
159
159
  <button
160
160
  class="file-action"
161
161
  type="button"
162
162
  aria-label="${`Replace ${t.name}`}"
163
- @click=${()=>C(t)}>
163
+ @click=${()=>w(t)}>
164
164
  <ore-icon name="upload" size="14" stroke-width="2" aria-hidden="true"></ore-icon>
165
165
  </button>
166
166
  `)}
@@ -168,22 +168,22 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
168
168
  class="file-remove"
169
169
  type="button"
170
170
  aria-label="${`Remove ${t.name}`}"
171
- @click=${e=>m.removeFile(t,e)}>
171
+ @click=${e=>h.removeFile(t,e)}>
172
172
  <ore-icon name="x" size="12" stroke-width="2.5" aria-hidden="true"></ore-icon>
173
173
  </button>
174
174
  </span>
175
175
  </li>
176
176
  `)}
177
177
  </ul>
178
- <div class="helper-text" id="${v}" part="helper" ?hidden=${()=>h.value||!e.helper.value}>
178
+ <div class="helper-text" id="${y}" part="helper" ?hidden=${()=>g.value||!e.helper.value}>
179
179
  ${e.helper}
180
180
  </div>
181
181
  <div
182
182
  class="helper-text helper-text-error"
183
- id="${y}"
183
+ id="${b}"
184
184
  role="alert"
185
185
  part="error"
186
- ?hidden=${()=>!h.value}>
186
+ ?hidden=${()=>!g.value}>
187
187
  ${()=>e.error.value??``}
188
188
  </div>
189
189
  </div>