@vielzeug/refine 1.8.0 → 2.0.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 (809) hide show
  1. package/README.md +5 -12
  2. package/dist/_dev.cjs +1 -1
  3. package/dist/_dev.cjs.map +1 -1
  4. package/dist/_dev.js +2 -5
  5. package/dist/_dev.js.map +1 -1
  6. package/dist/_virtual/_rolldown/runtime.cjs +1 -1
  7. package/dist/accordion-item.cjs +26 -24
  8. package/dist/accordion-item.cjs.map +1 -1
  9. package/dist/accordion-item.js +53 -51
  10. package/dist/accordion-item.js.map +1 -1
  11. package/dist/accordion.cjs +3 -1
  12. package/dist/accordion.cjs.map +1 -1
  13. package/dist/accordion.js +5 -3
  14. package/dist/accordion.js.map +1 -1
  15. package/dist/alert.cjs +1 -1
  16. package/dist/alert.cjs.map +1 -1
  17. package/dist/alert.js +1 -1
  18. package/dist/alert.js.map +1 -1
  19. package/dist/async.cjs +4 -2
  20. package/dist/async.cjs.map +1 -1
  21. package/dist/async.js +4 -2
  22. package/dist/async.js.map +1 -1
  23. package/dist/avatar-group.cjs +7 -0
  24. package/dist/avatar-group.cjs.map +1 -0
  25. package/dist/avatar-group.js +34 -0
  26. package/dist/avatar-group.js.map +1 -0
  27. package/dist/avatar.cjs +21 -16
  28. package/dist/avatar.cjs.map +1 -1
  29. package/dist/avatar.js +38 -54
  30. package/dist/avatar.js.map +1 -1
  31. package/dist/badge.cjs +4 -2
  32. package/dist/badge.cjs.map +1 -1
  33. package/dist/badge.js +6 -4
  34. package/dist/badge.js.map +1 -1
  35. package/dist/box.cjs +3 -1
  36. package/dist/box.cjs.map +1 -1
  37. package/dist/box.js +24 -18
  38. package/dist/box.js.map +1 -1
  39. package/dist/breadcrumb.cjs +4 -4
  40. package/dist/breadcrumb.cjs.map +1 -1
  41. package/dist/breadcrumb.js +4 -4
  42. package/dist/breadcrumb.js.map +1 -1
  43. package/dist/button-group.cjs +3 -3
  44. package/dist/button-group.cjs.map +1 -1
  45. package/dist/button-group.js +18 -16
  46. package/dist/button-group.js.map +1 -1
  47. package/dist/button.cjs +16 -12
  48. package/dist/button.cjs.map +1 -1
  49. package/dist/button.js +31 -28
  50. package/dist/button.js.map +1 -1
  51. package/dist/calendar.cjs +94 -69
  52. package/dist/calendar.cjs.map +1 -1
  53. package/dist/calendar.js +131 -98
  54. package/dist/calendar.js.map +1 -1
  55. package/dist/card.cjs +7 -7
  56. package/dist/card.cjs.map +1 -1
  57. package/dist/card.js +53 -49
  58. package/dist/card.js.map +1 -1
  59. package/dist/carousel.cjs +65 -57
  60. package/dist/carousel.cjs.map +1 -1
  61. package/dist/carousel.js +157 -201
  62. package/dist/carousel.js.map +1 -1
  63. package/dist/chat-message.cjs +21 -19
  64. package/dist/chat-message.cjs.map +1 -1
  65. package/dist/chat-message.js +18 -15
  66. package/dist/chat-message.js.map +1 -1
  67. package/dist/checkbox-group.cjs +12 -10
  68. package/dist/checkbox-group.cjs.map +1 -1
  69. package/dist/checkbox-group.js +75 -76
  70. package/dist/checkbox-group.js.map +1 -1
  71. package/dist/checkbox.cjs +4 -4
  72. package/dist/checkbox.cjs.map +1 -1
  73. package/dist/checkbox.js +55 -55
  74. package/dist/checkbox.js.map +1 -1
  75. package/dist/chip.cjs +22 -20
  76. package/dist/chip.cjs.map +1 -1
  77. package/dist/chip.js +15 -12
  78. package/dist/chip.js.map +1 -1
  79. package/dist/code-window.cjs +8 -2
  80. package/dist/code-window.cjs.map +1 -1
  81. package/dist/code-window.js +8 -2
  82. package/dist/code-window.js.map +1 -1
  83. package/dist/combobox.cjs +63 -58
  84. package/dist/combobox.cjs.map +1 -1
  85. package/dist/combobox.js +199 -197
  86. package/dist/combobox.js.map +1 -1
  87. package/dist/command-palette.cjs +49 -29
  88. package/dist/command-palette.cjs.map +1 -1
  89. package/dist/command-palette.js +150 -118
  90. package/dist/command-palette.js.map +1 -1
  91. package/dist/content/avatar/avatar-group.d.ts +33 -0
  92. package/dist/content/avatar/avatar-group.d.ts.map +1 -0
  93. package/dist/content/avatar/avatar.d.ts +0 -32
  94. package/dist/content/avatar/avatar.d.ts.map +1 -1
  95. package/dist/content/card/card.css.cjs +1 -1
  96. package/dist/content/card/card.css.cjs.map +1 -1
  97. package/dist/content/card/card.css.js +1 -1
  98. package/dist/content/card/card.css.js.map +1 -1
  99. package/dist/content/card/card.d.ts.map +1 -1
  100. package/dist/content/carousel/carousel-slide.cjs +3 -1
  101. package/dist/content/carousel/carousel-slide.cjs.map +1 -1
  102. package/dist/content/carousel/carousel-slide.css.cjs +1 -1
  103. package/dist/content/carousel/carousel-slide.css.cjs.map +1 -1
  104. package/dist/content/carousel/carousel-slide.css.js +1 -1
  105. package/dist/content/carousel/carousel-slide.css.js.map +1 -1
  106. package/dist/content/carousel/carousel-slide.js +3 -1
  107. package/dist/content/carousel/carousel-slide.js.map +1 -1
  108. package/dist/content/carousel/carousel.css.cjs +1 -1
  109. package/dist/content/carousel/carousel.css.cjs.map +1 -1
  110. package/dist/content/carousel/carousel.css.js +1 -1
  111. package/dist/content/carousel/carousel.css.js.map +1 -1
  112. package/dist/content/carousel/carousel.d.ts +5 -19
  113. package/dist/content/carousel/carousel.d.ts.map +1 -1
  114. package/dist/content/chat-message/chat-message.d.ts.map +1 -1
  115. package/dist/content/index.d.ts +10 -2
  116. package/dist/content/index.d.ts.map +1 -1
  117. package/dist/content/list/_list-item-reveal.cjs +1 -1
  118. package/dist/content/list/_list-item-reveal.cjs.map +1 -1
  119. package/dist/content/list/_list-item-reveal.d.ts +2 -2
  120. package/dist/content/list/_list-item-reveal.d.ts.map +1 -1
  121. package/dist/content/list/_list-item-reveal.js +2 -2
  122. package/dist/content/list/_list-item-reveal.js.map +1 -1
  123. package/dist/content/list/list.d.ts.map +1 -1
  124. package/dist/content/marquee/index.d.ts +2 -0
  125. package/dist/content/marquee/index.d.ts.map +1 -0
  126. package/dist/content/marquee/marquee.css.cjs +2 -0
  127. package/dist/content/marquee/marquee.css.cjs.map +1 -0
  128. package/dist/content/marquee/marquee.css.js +6 -0
  129. package/dist/content/marquee/marquee.css.js.map +1 -0
  130. package/dist/content/marquee/marquee.d.ts +44 -0
  131. package/dist/content/marquee/marquee.d.ts.map +1 -0
  132. package/dist/content/stepper/_is-step-navigable.cjs +2 -0
  133. package/dist/content/stepper/_is-step-navigable.cjs.map +1 -0
  134. package/dist/content/stepper/_is-step-navigable.d.ts +14 -0
  135. package/dist/content/stepper/_is-step-navigable.d.ts.map +1 -0
  136. package/dist/content/stepper/_is-step-navigable.js +8 -0
  137. package/dist/content/stepper/_is-step-navigable.js.map +1 -0
  138. package/dist/content/stepper/step.css.cjs +2 -0
  139. package/dist/content/stepper/step.css.cjs.map +1 -0
  140. package/dist/content/stepper/step.css.js +6 -0
  141. package/dist/content/stepper/step.css.js.map +1 -0
  142. package/dist/content/stepper/step.d.ts +63 -0
  143. package/dist/content/stepper/step.d.ts.map +1 -0
  144. package/dist/content/stepper/stepper.css.cjs +2 -0
  145. package/dist/content/stepper/stepper.css.cjs.map +1 -0
  146. package/dist/content/stepper/stepper.css.js +6 -0
  147. package/dist/content/stepper/stepper.css.js.map +1 -0
  148. package/dist/content/stepper/stepper.d.ts +88 -0
  149. package/dist/content/stepper/stepper.d.ts.map +1 -0
  150. package/dist/copy-command.cjs +9 -3
  151. package/dist/copy-command.cjs.map +1 -1
  152. package/dist/copy-command.js +9 -3
  153. package/dist/copy-command.js.map +1 -1
  154. package/dist/{headless → core}/_internal.d.ts +3 -5
  155. package/dist/core/_internal.d.ts.map +1 -0
  156. package/dist/core/announcer.cjs.map +1 -0
  157. package/dist/core/announcer.d.ts.map +1 -0
  158. package/dist/{headless → core}/announcer.js +1 -1
  159. package/dist/core/announcer.js.map +1 -0
  160. package/dist/core/aria-reflection.cjs.map +1 -0
  161. package/dist/core/aria-reflection.d.ts.map +1 -0
  162. package/dist/{headless → core}/aria-reflection.js +1 -1
  163. package/dist/core/aria-reflection.js.map +1 -0
  164. package/dist/core/auto-resize.cjs.map +1 -0
  165. package/dist/core/auto-resize.d.ts.map +1 -0
  166. package/dist/{headless → core}/auto-resize.js +1 -1
  167. package/dist/core/auto-resize.js.map +1 -0
  168. package/dist/core/checkable.cjs.map +1 -0
  169. package/dist/core/checkable.d.ts.map +1 -0
  170. package/dist/{headless → core}/checkable.js +1 -1
  171. package/dist/core/checkable.js.map +1 -0
  172. package/dist/core/choice-field.cjs +2 -0
  173. package/dist/core/choice-field.cjs.map +1 -0
  174. package/dist/core/choice-field.d.ts.map +1 -0
  175. package/dist/{headless → core}/choice-field.js +3 -2
  176. package/dist/core/choice-field.js.map +1 -0
  177. package/dist/core/composer.cjs.map +1 -0
  178. package/dist/core/composer.d.ts.map +1 -0
  179. package/dist/{headless → core}/composer.js +1 -1
  180. package/dist/core/composer.js.map +1 -0
  181. package/dist/{headless → core}/date-picker.cjs +1 -1
  182. package/dist/core/date-picker.cjs.map +1 -0
  183. package/dist/core/date-picker.d.ts.map +1 -0
  184. package/dist/{headless → core}/date-picker.js +3 -3
  185. package/dist/core/date-picker.js.map +1 -0
  186. package/dist/core/direction.cjs.map +1 -0
  187. package/dist/core/direction.d.ts.map +1 -0
  188. package/dist/{headless → core}/direction.js +1 -1
  189. package/dist/core/direction.js.map +1 -0
  190. package/dist/core/field-base.cjs +2 -0
  191. package/dist/core/field-base.cjs.map +1 -0
  192. package/dist/{headless → core}/field-base.d.ts +3 -3
  193. package/dist/core/field-base.d.ts.map +1 -0
  194. package/dist/core/field-base.js +66 -0
  195. package/dist/core/field-base.js.map +1 -0
  196. package/dist/core/focus.cjs.map +1 -0
  197. package/dist/core/focus.d.ts.map +1 -0
  198. package/dist/{headless → core}/focus.js +1 -1
  199. package/dist/core/focus.js.map +1 -0
  200. package/dist/{headless → core}/index.d.ts +7 -6
  201. package/dist/core/index.d.ts.map +1 -0
  202. package/dist/{headless → core}/keyboard.cjs +1 -1
  203. package/dist/core/keyboard.cjs.map +1 -0
  204. package/dist/core/keyboard.d.ts.map +1 -0
  205. package/dist/{headless → core}/keyboard.js +2 -2
  206. package/dist/core/keyboard.js.map +1 -0
  207. package/dist/core/light-dom.cjs.map +1 -0
  208. package/dist/core/light-dom.d.ts.map +1 -0
  209. package/dist/{headless → core}/light-dom.js +1 -1
  210. package/dist/core/light-dom.js.map +1 -0
  211. package/dist/core/nav.cjs.map +1 -0
  212. package/dist/core/nav.d.ts.map +1 -0
  213. package/dist/{headless → core}/nav.js +1 -1
  214. package/dist/core/nav.js.map +1 -0
  215. package/dist/core/numbers.cjs.map +1 -0
  216. package/dist/core/numbers.d.ts.map +1 -0
  217. package/dist/{headless → core}/numbers.js +1 -1
  218. package/dist/core/numbers.js.map +1 -0
  219. package/dist/core/option-list.cjs +2 -0
  220. package/dist/core/option-list.cjs.map +1 -0
  221. package/dist/core/option-list.d.ts +49 -0
  222. package/dist/core/option-list.d.ts.map +1 -0
  223. package/dist/core/option-list.js +65 -0
  224. package/dist/core/option-list.js.map +1 -0
  225. package/dist/core/ore.cjs.map +1 -0
  226. package/dist/{headless → core}/ore.d.ts +2 -2
  227. package/dist/core/ore.d.ts.map +1 -0
  228. package/dist/{headless → core}/ore.js +1 -1
  229. package/dist/core/ore.js.map +1 -0
  230. package/dist/core/overlay.cjs +2 -0
  231. package/dist/core/overlay.cjs.map +1 -0
  232. package/dist/core/overlay.d.ts +41 -0
  233. package/dist/core/overlay.d.ts.map +1 -0
  234. package/dist/core/overlay.js +17 -0
  235. package/dist/core/overlay.js.map +1 -0
  236. package/dist/core/paginated-list.d.ts.map +1 -0
  237. package/dist/core/parse.cjs.map +1 -0
  238. package/dist/core/parse.d.ts.map +1 -0
  239. package/dist/{headless → core}/parse.js +1 -1
  240. package/dist/core/parse.js.map +1 -0
  241. package/dist/core/positioner.cjs +2 -0
  242. package/dist/core/positioner.cjs.map +1 -0
  243. package/dist/core/positioner.d.ts.map +1 -0
  244. package/dist/{headless → core}/positioner.js +7 -7
  245. package/dist/core/positioner.js.map +1 -0
  246. package/dist/core/ref-callback.cjs +2 -0
  247. package/dist/core/ref-callback.cjs.map +1 -0
  248. package/dist/core/ref-callback.d.ts.map +1 -0
  249. package/dist/{headless → core}/ref-callback.js +2 -2
  250. package/dist/core/ref-callback.js.map +1 -0
  251. package/dist/core/signals.cjs +2 -0
  252. package/dist/core/signals.cjs.map +1 -0
  253. package/dist/core/signals.d.ts.map +1 -0
  254. package/dist/{headless → core}/signals.js +3 -2
  255. package/dist/core/signals.js.map +1 -0
  256. package/dist/core/slider.cjs +2 -0
  257. package/dist/core/slider.cjs.map +1 -0
  258. package/dist/core/slider.d.ts.map +1 -0
  259. package/dist/{headless → core}/slider.js +3 -3
  260. package/dist/{headless/slider.cjs.map → core/slider.js.map} +1 -1
  261. package/dist/core/spinner.cjs +2 -0
  262. package/dist/core/spinner.cjs.map +1 -0
  263. package/dist/core/spinner.d.ts.map +1 -0
  264. package/dist/{headless → core}/spinner.js +3 -3
  265. package/dist/{headless/spinner.cjs.map → core/spinner.js.map} +1 -1
  266. package/dist/core/swipe.cjs.map +1 -0
  267. package/dist/core/swipe.d.ts.map +1 -0
  268. package/dist/{headless → core}/swipe.js +1 -1
  269. package/dist/core/swipe.js.map +1 -0
  270. package/dist/core/text-field.cjs.map +1 -0
  271. package/dist/core/text-field.d.ts.map +1 -0
  272. package/dist/{headless → core}/text-field.js +1 -1
  273. package/dist/core/text-field.js.map +1 -0
  274. package/dist/core/typeahead.cjs.map +1 -0
  275. package/dist/core/typeahead.d.ts.map +1 -0
  276. package/dist/{headless → core}/typeahead.js +1 -1
  277. package/dist/core/typeahead.js.map +1 -0
  278. package/dist/custom-elements.json +5079 -4595
  279. package/dist/datagrid.cjs +320 -271
  280. package/dist/datagrid.cjs.map +1 -1
  281. package/dist/datagrid.js +483 -429
  282. package/dist/datagrid.js.map +1 -1
  283. package/dist/date-picker.cjs +77 -62
  284. package/dist/date-picker.cjs.map +1 -1
  285. package/dist/date-picker.js +169 -146
  286. package/dist/date-picker.js.map +1 -1
  287. package/dist/dialog.cjs +3 -3
  288. package/dist/dialog.cjs.map +1 -1
  289. package/dist/dialog.js +18 -7
  290. package/dist/dialog.js.map +1 -1
  291. package/dist/disclosure/tabs/tabs.d.ts.map +1 -1
  292. package/dist/drawer.cjs +5 -5
  293. package/dist/drawer.cjs.map +1 -1
  294. package/dist/drawer.js +52 -47
  295. package/dist/drawer.js.map +1 -1
  296. package/dist/errors.cjs.map +1 -1
  297. package/dist/errors.js.map +1 -1
  298. package/dist/feedback/chip/chip.d.ts.map +1 -1
  299. package/dist/feedback/skeleton/skeleton.d.ts.map +1 -1
  300. package/dist/feedback/toast/index.d.ts +1 -1
  301. package/dist/feedback/toast/index.d.ts.map +1 -1
  302. package/dist/feedback/toast/toast.d.ts +16 -68
  303. package/dist/feedback/toast/toast.d.ts.map +1 -1
  304. package/dist/feedback/typing-indicator/typing-indicator.d.ts +1 -1
  305. package/dist/file-input.cjs +111 -78
  306. package/dist/file-input.cjs.map +1 -1
  307. package/dist/file-input.js +220 -183
  308. package/dist/file-input.js.map +1 -1
  309. package/dist/grid-item.cjs +3 -1
  310. package/dist/grid-item.cjs.map +1 -1
  311. package/dist/grid-item.js +3 -1
  312. package/dist/grid-item.js.map +1 -1
  313. package/dist/grid.cjs +3 -1
  314. package/dist/grid.cjs.map +1 -1
  315. package/dist/grid.js +6 -5
  316. package/dist/grid.js.map +1 -1
  317. package/dist/icon.cjs +5 -1
  318. package/dist/icon.cjs.map +1 -1
  319. package/dist/icon.js +50 -46
  320. package/dist/icon.js.map +1 -1
  321. package/dist/index.cjs +1 -1
  322. package/dist/index.d.ts +7 -8
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +2 -67
  325. package/dist/input.cjs +44 -40
  326. package/dist/input.cjs.map +1 -1
  327. package/dist/input.js +132 -130
  328. package/dist/input.js.map +1 -1
  329. package/dist/inputs/button-group/button-group.css.cjs +1 -1
  330. package/dist/inputs/button-group/button-group.css.cjs.map +1 -1
  331. package/dist/inputs/button-group/button-group.css.js +1 -1
  332. package/dist/inputs/button-group/button-group.css.js.map +1 -1
  333. package/dist/inputs/button-group/button-group.d.ts +6 -3
  334. package/dist/inputs/button-group/button-group.d.ts.map +1 -1
  335. package/dist/inputs/checkbox/checkbox.d.ts +6 -5
  336. package/dist/inputs/checkbox/checkbox.d.ts.map +1 -1
  337. package/dist/inputs/checkbox-group/checkbox-group.d.ts +1 -1
  338. package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -1
  339. package/dist/inputs/combobox/combobox.d.ts +4 -2
  340. package/dist/inputs/combobox/combobox.d.ts.map +1 -1
  341. package/dist/inputs/combobox/combobox.types.d.ts +5 -7
  342. package/dist/inputs/combobox/combobox.types.d.ts.map +1 -1
  343. package/dist/inputs/datagrid/datagrid-column.cjs +1 -1
  344. package/dist/inputs/datagrid/datagrid-column.cjs.map +1 -1
  345. package/dist/inputs/datagrid/datagrid-column.d.ts +1 -1
  346. package/dist/inputs/datagrid/datagrid-column.d.ts.map +1 -1
  347. package/dist/inputs/datagrid/datagrid-column.js +5 -5
  348. package/dist/inputs/datagrid/datagrid-column.js.map +1 -1
  349. package/dist/inputs/datagrid/datagrid-model.cjs +2 -0
  350. package/dist/inputs/datagrid/datagrid-model.cjs.map +1 -0
  351. package/dist/inputs/datagrid/datagrid-model.d.ts +101 -0
  352. package/dist/inputs/datagrid/datagrid-model.d.ts.map +1 -0
  353. package/dist/inputs/datagrid/datagrid-model.js +202 -0
  354. package/dist/inputs/datagrid/datagrid-model.js.map +1 -0
  355. package/dist/inputs/datagrid/datagrid-nav.cjs.map +1 -1
  356. package/dist/inputs/datagrid/datagrid.d.ts +44 -45
  357. package/dist/inputs/datagrid/datagrid.d.ts.map +1 -1
  358. package/dist/inputs/date-picker/date-picker.d.ts +4 -4
  359. package/dist/inputs/date-picker/date-picker.d.ts.map +1 -1
  360. package/dist/inputs/file-input/file-input-upload.cjs +1 -1
  361. package/dist/inputs/file-input/file-input-upload.cjs.map +1 -1
  362. package/dist/inputs/file-input/file-input-upload.d.ts.map +1 -1
  363. package/dist/inputs/file-input/file-input-upload.js +6 -3
  364. package/dist/inputs/file-input/file-input-upload.js.map +1 -1
  365. package/dist/inputs/file-input/file-input.d.ts.map +1 -1
  366. package/dist/inputs/index.d.ts +0 -4
  367. package/dist/inputs/index.d.ts.map +1 -1
  368. package/dist/inputs/input/input.d.ts +4 -10
  369. package/dist/inputs/input/input.d.ts.map +1 -1
  370. package/dist/inputs/message-composer/message-composer.d.ts +6 -10
  371. package/dist/inputs/message-composer/message-composer.d.ts.map +1 -1
  372. package/dist/inputs/number-input/number-input.d.ts +4 -10
  373. package/dist/inputs/number-input/number-input.d.ts.map +1 -1
  374. package/dist/inputs/otp-input/otp-input.d.ts +4 -6
  375. package/dist/inputs/otp-input/otp-input.d.ts.map +1 -1
  376. package/dist/inputs/radio/radio.d.ts +4 -3
  377. package/dist/inputs/radio/radio.d.ts.map +1 -1
  378. package/dist/inputs/radio-group/radio-group.d.ts +1 -1
  379. package/dist/inputs/radio-group/radio-group.d.ts.map +1 -1
  380. package/dist/inputs/rating/rating.d.ts +4 -5
  381. package/dist/inputs/rating/rating.d.ts.map +1 -1
  382. package/dist/inputs/select/select.d.ts +7 -9
  383. package/dist/inputs/select/select.d.ts.map +1 -1
  384. package/dist/inputs/shared/field-binding.cjs.map +1 -1
  385. package/dist/inputs/shared/field-binding.d.ts +1 -1
  386. package/dist/inputs/shared/field-binding.js.map +1 -1
  387. package/dist/inputs/shared/index.d.ts +0 -1
  388. package/dist/inputs/shared/index.d.ts.map +1 -1
  389. package/dist/inputs/shared/native-field-event.cjs +2 -0
  390. package/dist/inputs/shared/native-field-event.cjs.map +1 -0
  391. package/dist/inputs/shared/native-field-event.d.ts +6 -0
  392. package/dist/inputs/shared/native-field-event.d.ts.map +1 -0
  393. package/dist/inputs/shared/native-field-event.js +29 -0
  394. package/dist/inputs/shared/native-field-event.js.map +1 -0
  395. package/dist/inputs/shared/templates.cjs +18 -12
  396. package/dist/inputs/shared/templates.cjs.map +1 -1
  397. package/dist/inputs/shared/templates.d.ts +1 -1
  398. package/dist/inputs/shared/templates.d.ts.map +1 -1
  399. package/dist/inputs/shared/templates.js +19 -13
  400. package/dist/inputs/shared/templates.js.map +1 -1
  401. package/dist/inputs/slider/slider.css.cjs +1 -1
  402. package/dist/inputs/slider/slider.css.cjs.map +1 -1
  403. package/dist/inputs/slider/slider.css.js +1 -1
  404. package/dist/inputs/slider/slider.css.js.map +1 -1
  405. package/dist/inputs/slider/slider.d.ts +7 -10
  406. package/dist/inputs/slider/slider.d.ts.map +1 -1
  407. package/dist/inputs/switch/switch.d.ts +4 -3
  408. package/dist/inputs/switch/switch.d.ts.map +1 -1
  409. package/dist/inputs/textarea/textarea.d.ts +4 -10
  410. package/dist/inputs/textarea/textarea.d.ts.map +1 -1
  411. package/dist/inputs/time-picker/time-picker.d.ts +4 -4
  412. package/dist/inputs/time-picker/time-picker.d.ts.map +1 -1
  413. package/dist/layout/box/box.d.ts.map +1 -1
  414. package/dist/layout/navbar/navbar.css.cjs +1 -1
  415. package/dist/layout/navbar/navbar.css.cjs.map +1 -1
  416. package/dist/layout/navbar/navbar.css.js +1 -1
  417. package/dist/layout/navbar/navbar.css.js.map +1 -1
  418. package/dist/layout/navbar/navbar.d.ts +10 -0
  419. package/dist/layout/navbar/navbar.d.ts.map +1 -1
  420. package/dist/layout/sidebar/sidebar-item.css.cjs +1 -1
  421. package/dist/layout/sidebar/sidebar-item.css.cjs.map +1 -1
  422. package/dist/layout/sidebar/sidebar-item.css.js +1 -1
  423. package/dist/layout/sidebar/sidebar-item.css.js.map +1 -1
  424. package/dist/layout/sidebar/sidebar.css.cjs +1 -1
  425. package/dist/layout/sidebar/sidebar.css.cjs.map +1 -1
  426. package/dist/layout/sidebar/sidebar.css.js +1 -1
  427. package/dist/layout/sidebar/sidebar.css.js.map +1 -1
  428. package/dist/layout/sidebar/sidebar.d.ts.map +1 -1
  429. package/dist/list-item.cjs +2 -2
  430. package/dist/list-item.cjs.map +1 -1
  431. package/dist/list-item.js +4 -4
  432. package/dist/list-item.js.map +1 -1
  433. package/dist/list.cjs +3 -1
  434. package/dist/list.cjs.map +1 -1
  435. package/dist/list.js +28 -25
  436. package/dist/list.js.map +1 -1
  437. package/dist/marquee.cjs +32 -0
  438. package/dist/marquee.cjs.map +1 -0
  439. package/dist/marquee.js +93 -0
  440. package/dist/marquee.js.map +1 -0
  441. package/dist/menu.cjs +7 -7
  442. package/dist/menu.cjs.map +1 -1
  443. package/dist/menu.js +135 -103
  444. package/dist/menu.js.map +1 -1
  445. package/dist/message-composer.cjs +33 -31
  446. package/dist/message-composer.cjs.map +1 -1
  447. package/dist/message-composer.js +123 -123
  448. package/dist/message-composer.js.map +1 -1
  449. package/dist/navbar.cjs +17 -15
  450. package/dist/navbar.cjs.map +1 -1
  451. package/dist/navbar.js +108 -89
  452. package/dist/navbar.js.map +1 -1
  453. package/dist/number-input.cjs +19 -19
  454. package/dist/number-input.cjs.map +1 -1
  455. package/dist/number-input.js +94 -97
  456. package/dist/number-input.js.map +1 -1
  457. package/dist/otp-input.cjs +15 -13
  458. package/dist/otp-input.cjs.map +1 -1
  459. package/dist/otp-input.js +83 -82
  460. package/dist/otp-input.js.map +1 -1
  461. package/dist/overlay/command-palette/command-palette.d.ts +2 -2
  462. package/dist/overlay/command-palette/command-palette.d.ts.map +1 -1
  463. package/dist/overlay/command-palette/command-palette.types.d.ts +4 -5
  464. package/dist/overlay/command-palette/command-palette.types.d.ts.map +1 -1
  465. package/dist/overlay/dialog/dialog.d.ts +7 -6
  466. package/dist/overlay/dialog/dialog.d.ts.map +1 -1
  467. package/dist/overlay/drawer/drawer.d.ts +7 -10
  468. package/dist/overlay/drawer/drawer.d.ts.map +1 -1
  469. package/dist/overlay/index.d.ts +1 -1
  470. package/dist/overlay/index.d.ts.map +1 -1
  471. package/dist/overlay/menu/menu.d.ts +9 -7
  472. package/dist/overlay/menu/menu.d.ts.map +1 -1
  473. package/dist/overlay/popover/popover.d.ts +6 -11
  474. package/dist/overlay/popover/popover.d.ts.map +1 -1
  475. package/dist/overlay/shared/await-exit.cjs +1 -1
  476. package/dist/overlay/shared/await-exit.cjs.map +1 -1
  477. package/dist/overlay/shared/await-exit.js +1 -1
  478. package/dist/overlay/shared/await-exit.js.map +1 -1
  479. package/dist/overlay/shared/use-dialog.cjs +1 -1
  480. package/dist/overlay/shared/use-dialog.cjs.map +1 -1
  481. package/dist/overlay/shared/use-dialog.d.ts +13 -3
  482. package/dist/overlay/shared/use-dialog.d.ts.map +1 -1
  483. package/dist/overlay/shared/use-dialog.js +80 -72
  484. package/dist/overlay/shared/use-dialog.js.map +1 -1
  485. package/dist/overlay/shared/use-floating-trigger.cjs +1 -1
  486. package/dist/overlay/shared/use-floating-trigger.cjs.map +1 -1
  487. package/dist/overlay/shared/use-floating-trigger.d.ts +3 -1
  488. package/dist/overlay/shared/use-floating-trigger.d.ts.map +1 -1
  489. package/dist/overlay/shared/use-floating-trigger.js +64 -70
  490. package/dist/overlay/shared/use-floating-trigger.js.map +1 -1
  491. package/dist/overlay/tooltip/tooltip.d.ts +9 -0
  492. package/dist/overlay/tooltip/tooltip.d.ts.map +1 -1
  493. package/dist/pagination.cjs +69 -55
  494. package/dist/pagination.cjs.map +1 -1
  495. package/dist/pagination.js +70 -56
  496. package/dist/pagination.js.map +1 -1
  497. package/dist/password-strength.cjs +6 -4
  498. package/dist/password-strength.cjs.map +1 -1
  499. package/dist/password-strength.js +6 -4
  500. package/dist/password-strength.js.map +1 -1
  501. package/dist/popover.cjs +4 -4
  502. package/dist/popover.cjs.map +1 -1
  503. package/dist/popover.js +28 -17
  504. package/dist/popover.js.map +1 -1
  505. package/dist/progress.cjs +25 -17
  506. package/dist/progress.cjs.map +1 -1
  507. package/dist/progress.js +26 -18
  508. package/dist/progress.js.map +1 -1
  509. package/dist/radio-group.cjs +14 -12
  510. package/dist/radio-group.cjs.map +1 -1
  511. package/dist/radio-group.js +88 -89
  512. package/dist/radio-group.js.map +1 -1
  513. package/dist/radio.cjs +4 -4
  514. package/dist/radio.cjs.map +1 -1
  515. package/dist/radio.js +90 -90
  516. package/dist/radio.js.map +1 -1
  517. package/dist/rating.cjs +18 -16
  518. package/dist/rating.cjs.map +1 -1
  519. package/dist/rating.js +69 -69
  520. package/dist/rating.js.map +1 -1
  521. package/dist/refine.cjs +1669 -1324
  522. package/dist/refine.cjs.map +1 -1
  523. package/dist/refine.iife.js +1656 -1311
  524. package/dist/refine.iife.js.map +1 -1
  525. package/dist/refine.js +1759 -1414
  526. package/dist/refine.js.map +1 -1
  527. package/dist/register.d.ts +21 -0
  528. package/dist/register.d.ts.map +1 -0
  529. package/dist/select.cjs +59 -51
  530. package/dist/select.cjs.map +1 -1
  531. package/dist/select.js +189 -182
  532. package/dist/select.js.map +1 -1
  533. package/dist/separator.cjs +9 -9
  534. package/dist/separator.cjs.map +1 -1
  535. package/dist/separator.js +9 -9
  536. package/dist/separator.js.map +1 -1
  537. package/dist/shared/index.d.ts +1 -1
  538. package/dist/shared/prop-bundles.cjs +1 -1
  539. package/dist/shared/prop-bundles.cjs.map +1 -1
  540. package/dist/shared/prop-bundles.js +4 -2
  541. package/dist/shared/prop-bundles.js.map +1 -1
  542. package/dist/shared/size-presets.cjs +1 -1
  543. package/dist/shared/size-presets.cjs.map +1 -1
  544. package/dist/shared/size-presets.d.ts +3 -0
  545. package/dist/shared/size-presets.d.ts.map +1 -1
  546. package/dist/shared/size-presets.js +4 -1
  547. package/dist/shared/size-presets.js.map +1 -1
  548. package/dist/sidebar.cjs +8 -8
  549. package/dist/sidebar.cjs.map +1 -1
  550. package/dist/sidebar.js +25 -25
  551. package/dist/sidebar.js.map +1 -1
  552. package/dist/skeleton.cjs +4 -6
  553. package/dist/skeleton.cjs.map +1 -1
  554. package/dist/skeleton.js +21 -22
  555. package/dist/skeleton.js.map +1 -1
  556. package/dist/slider.cjs +14 -14
  557. package/dist/slider.cjs.map +1 -1
  558. package/dist/slider.js +160 -168
  559. package/dist/slider.js.map +1 -1
  560. package/dist/step.cjs +47 -0
  561. package/dist/step.cjs.map +1 -0
  562. package/dist/step.js +127 -0
  563. package/dist/step.js.map +1 -0
  564. package/dist/stepper.cjs +8 -0
  565. package/dist/stepper.cjs.map +1 -0
  566. package/dist/stepper.js +101 -0
  567. package/dist/stepper.js.map +1 -0
  568. package/dist/styles/index.d.ts +0 -28
  569. package/dist/styles/index.d.ts.map +1 -1
  570. package/dist/styles/mixins/shape.css.cjs +2 -2
  571. package/dist/styles/mixins/shape.css.cjs.map +1 -1
  572. package/dist/styles/mixins/shape.css.js +6 -6
  573. package/dist/styles/mixins/shape.css.js.map +1 -1
  574. package/dist/styles/tokens.css +4 -0
  575. package/dist/switch.cjs +4 -4
  576. package/dist/switch.cjs.map +1 -1
  577. package/dist/switch.js +44 -44
  578. package/dist/switch.js.map +1 -1
  579. package/dist/tab-item.cjs +3 -3
  580. package/dist/tab-item.cjs.map +1 -1
  581. package/dist/tab-item.js +24 -24
  582. package/dist/tab-item.js.map +1 -1
  583. package/dist/tab-panel.cjs +7 -5
  584. package/dist/tab-panel.cjs.map +1 -1
  585. package/dist/tab-panel.js +14 -12
  586. package/dist/tab-panel.js.map +1 -1
  587. package/dist/table.cjs +3 -1
  588. package/dist/table.cjs.map +1 -1
  589. package/dist/table.js +3 -1
  590. package/dist/table.js.map +1 -1
  591. package/dist/tabs.cjs +6 -6
  592. package/dist/tabs.cjs.map +1 -1
  593. package/dist/tabs.js +30 -29
  594. package/dist/tabs.js.map +1 -1
  595. package/dist/text.cjs +3 -1
  596. package/dist/text.cjs.map +1 -1
  597. package/dist/text.js +3 -1
  598. package/dist/text.js.map +1 -1
  599. package/dist/textarea.cjs +22 -22
  600. package/dist/textarea.cjs.map +1 -1
  601. package/dist/textarea.js +110 -112
  602. package/dist/textarea.js.map +1 -1
  603. package/dist/time-picker.cjs +69 -61
  604. package/dist/time-picker.cjs.map +1 -1
  605. package/dist/time-picker.js +146 -132
  606. package/dist/time-picker.js.map +1 -1
  607. package/dist/toast.cjs +22 -22
  608. package/dist/toast.cjs.map +1 -1
  609. package/dist/toast.js +280 -173
  610. package/dist/toast.js.map +1 -1
  611. package/dist/tooltip.cjs +5 -5
  612. package/dist/tooltip.cjs.map +1 -1
  613. package/dist/tooltip.js +61 -51
  614. package/dist/tooltip.js.map +1 -1
  615. package/dist/typing-indicator.cjs +1 -1
  616. package/dist/typing-indicator.cjs.map +1 -1
  617. package/dist/typing-indicator.js +5 -5
  618. package/dist/typing-indicator.js.map +1 -1
  619. package/dist/utils/link.cjs.map +1 -1
  620. package/dist/utils/link.d.ts +2 -2
  621. package/package.json +35 -117
  622. package/dist/form.cjs +0 -11
  623. package/dist/form.cjs.map +0 -1
  624. package/dist/form.js +0 -59
  625. package/dist/form.js.map +0 -1
  626. package/dist/headless/_internal.d.ts.map +0 -1
  627. package/dist/headless/announcer.cjs.map +0 -1
  628. package/dist/headless/announcer.d.ts.map +0 -1
  629. package/dist/headless/announcer.js.map +0 -1
  630. package/dist/headless/aria-reflection.cjs.map +0 -1
  631. package/dist/headless/aria-reflection.d.ts.map +0 -1
  632. package/dist/headless/aria-reflection.js.map +0 -1
  633. package/dist/headless/auto-resize.cjs.map +0 -1
  634. package/dist/headless/auto-resize.d.ts.map +0 -1
  635. package/dist/headless/auto-resize.js.map +0 -1
  636. package/dist/headless/checkable.cjs.map +0 -1
  637. package/dist/headless/checkable.d.ts.map +0 -1
  638. package/dist/headless/checkable.js.map +0 -1
  639. package/dist/headless/choice-field.cjs +0 -2
  640. package/dist/headless/choice-field.cjs.map +0 -1
  641. package/dist/headless/choice-field.d.ts.map +0 -1
  642. package/dist/headless/choice-field.js.map +0 -1
  643. package/dist/headless/composer.cjs.map +0 -1
  644. package/dist/headless/composer.d.ts.map +0 -1
  645. package/dist/headless/composer.js.map +0 -1
  646. package/dist/headless/datagrid.cjs +0 -2
  647. package/dist/headless/datagrid.cjs.map +0 -1
  648. package/dist/headless/datagrid.d.ts +0 -158
  649. package/dist/headless/datagrid.d.ts.map +0 -1
  650. package/dist/headless/datagrid.js +0 -55
  651. package/dist/headless/datagrid.js.map +0 -1
  652. package/dist/headless/date-picker.cjs.map +0 -1
  653. package/dist/headless/date-picker.d.ts.map +0 -1
  654. package/dist/headless/date-picker.js.map +0 -1
  655. package/dist/headless/direction.cjs.map +0 -1
  656. package/dist/headless/direction.d.ts.map +0 -1
  657. package/dist/headless/direction.js.map +0 -1
  658. package/dist/headless/field-base.cjs +0 -2
  659. package/dist/headless/field-base.cjs.map +0 -1
  660. package/dist/headless/field-base.d.ts.map +0 -1
  661. package/dist/headless/field-base.js +0 -72
  662. package/dist/headless/field-base.js.map +0 -1
  663. package/dist/headless/focus.cjs.map +0 -1
  664. package/dist/headless/focus.d.ts.map +0 -1
  665. package/dist/headless/focus.js.map +0 -1
  666. package/dist/headless/index.d.ts.map +0 -1
  667. package/dist/headless/keyboard.cjs.map +0 -1
  668. package/dist/headless/keyboard.d.ts.map +0 -1
  669. package/dist/headless/keyboard.js.map +0 -1
  670. package/dist/headless/light-dom.cjs.map +0 -1
  671. package/dist/headless/light-dom.d.ts.map +0 -1
  672. package/dist/headless/light-dom.js.map +0 -1
  673. package/dist/headless/nav.cjs.map +0 -1
  674. package/dist/headless/nav.d.ts.map +0 -1
  675. package/dist/headless/nav.js.map +0 -1
  676. package/dist/headless/numbers.cjs.map +0 -1
  677. package/dist/headless/numbers.d.ts.map +0 -1
  678. package/dist/headless/numbers.js.map +0 -1
  679. package/dist/headless/option-list.cjs +0 -2
  680. package/dist/headless/option-list.cjs.map +0 -1
  681. package/dist/headless/option-list.d.ts +0 -107
  682. package/dist/headless/option-list.d.ts.map +0 -1
  683. package/dist/headless/option-list.js +0 -66
  684. package/dist/headless/option-list.js.map +0 -1
  685. package/dist/headless/ore.cjs.map +0 -1
  686. package/dist/headless/ore.d.ts.map +0 -1
  687. package/dist/headless/ore.js.map +0 -1
  688. package/dist/headless/overlay.cjs +0 -2
  689. package/dist/headless/overlay.cjs.map +0 -1
  690. package/dist/headless/overlay.d.ts +0 -64
  691. package/dist/headless/overlay.d.ts.map +0 -1
  692. package/dist/headless/overlay.js +0 -32
  693. package/dist/headless/overlay.js.map +0 -1
  694. package/dist/headless/paginated-list.cjs +0 -2
  695. package/dist/headless/paginated-list.cjs.map +0 -1
  696. package/dist/headless/paginated-list.d.ts.map +0 -1
  697. package/dist/headless/paginated-list.js +0 -34
  698. package/dist/headless/paginated-list.js.map +0 -1
  699. package/dist/headless/parse.cjs.map +0 -1
  700. package/dist/headless/parse.d.ts.map +0 -1
  701. package/dist/headless/parse.js.map +0 -1
  702. package/dist/headless/positioner.cjs +0 -2
  703. package/dist/headless/positioner.cjs.map +0 -1
  704. package/dist/headless/positioner.d.ts.map +0 -1
  705. package/dist/headless/positioner.js.map +0 -1
  706. package/dist/headless/ref-callback.cjs +0 -2
  707. package/dist/headless/ref-callback.cjs.map +0 -1
  708. package/dist/headless/ref-callback.d.ts.map +0 -1
  709. package/dist/headless/ref-callback.js.map +0 -1
  710. package/dist/headless/selection-control.cjs +0 -2
  711. package/dist/headless/selection-control.cjs.map +0 -1
  712. package/dist/headless/selection-control.d.ts +0 -30
  713. package/dist/headless/selection-control.d.ts.map +0 -1
  714. package/dist/headless/selection-control.js +0 -44
  715. package/dist/headless/selection-control.js.map +0 -1
  716. package/dist/headless/signals.cjs +0 -2
  717. package/dist/headless/signals.cjs.map +0 -1
  718. package/dist/headless/signals.d.ts.map +0 -1
  719. package/dist/headless/signals.js.map +0 -1
  720. package/dist/headless/slider.cjs +0 -2
  721. package/dist/headless/slider.d.ts.map +0 -1
  722. package/dist/headless/slider.js.map +0 -1
  723. package/dist/headless/sort-control.cjs +0 -2
  724. package/dist/headless/sort-control.cjs.map +0 -1
  725. package/dist/headless/sort-control.d.ts +0 -22
  726. package/dist/headless/sort-control.d.ts.map +0 -1
  727. package/dist/headless/sort-control.js +0 -36
  728. package/dist/headless/sort-control.js.map +0 -1
  729. package/dist/headless/spinner.cjs +0 -2
  730. package/dist/headless/spinner.d.ts.map +0 -1
  731. package/dist/headless/spinner.js.map +0 -1
  732. package/dist/headless/swipe.cjs.map +0 -1
  733. package/dist/headless/swipe.d.ts.map +0 -1
  734. package/dist/headless/swipe.js.map +0 -1
  735. package/dist/headless/text-field.cjs.map +0 -1
  736. package/dist/headless/text-field.d.ts.map +0 -1
  737. package/dist/headless/text-field.js.map +0 -1
  738. package/dist/headless/typeahead.cjs.map +0 -1
  739. package/dist/headless/typeahead.d.ts.map +0 -1
  740. package/dist/headless/typeahead.js.map +0 -1
  741. package/dist/headless.cjs +0 -1
  742. package/dist/headless.js +0 -30
  743. package/dist/inputs/datagrid/datagrid-controls.cjs +0 -2
  744. package/dist/inputs/datagrid/datagrid-controls.cjs.map +0 -1
  745. package/dist/inputs/datagrid/datagrid-controls.d.ts +0 -98
  746. package/dist/inputs/datagrid/datagrid-controls.d.ts.map +0 -1
  747. package/dist/inputs/datagrid/datagrid-controls.js +0 -147
  748. package/dist/inputs/datagrid/datagrid-controls.js.map +0 -1
  749. package/dist/inputs/form/form.css.cjs +0 -2
  750. package/dist/inputs/form/form.css.cjs.map +0 -1
  751. package/dist/inputs/form/form.css.js +0 -6
  752. package/dist/inputs/form/form.css.js.map +0 -1
  753. package/dist/inputs/form/form.d.ts +0 -59
  754. package/dist/inputs/form/form.d.ts.map +0 -1
  755. package/dist/inputs/shared/form-context.cjs +0 -2
  756. package/dist/inputs/shared/form-context.cjs.map +0 -1
  757. package/dist/inputs/shared/form-context.d.ts +0 -55
  758. package/dist/inputs/shared/form-context.d.ts.map +0 -1
  759. package/dist/inputs/shared/form-context.js +0 -15
  760. package/dist/inputs/shared/form-context.js.map +0 -1
  761. package/dist/styles/index.cjs +0 -2
  762. package/dist/styles/index.cjs.map +0 -1
  763. package/dist/styles/index.js +0 -25
  764. package/dist/styles/index.js.map +0 -1
  765. package/dist/styles/styles.css +0 -5
  766. package/dist/testing/index.d.ts +0 -188
  767. package/dist/testing/index.d.ts.map +0 -1
  768. package/dist/testing.cjs +0 -2
  769. package/dist/testing.cjs.map +0 -1
  770. package/dist/testing.js +0 -26
  771. package/dist/testing.js.map +0 -1
  772. /package/dist/{headless → core}/announcer.cjs +0 -0
  773. /package/dist/{headless → core}/announcer.d.ts +0 -0
  774. /package/dist/{headless → core}/aria-reflection.cjs +0 -0
  775. /package/dist/{headless → core}/aria-reflection.d.ts +0 -0
  776. /package/dist/{headless → core}/auto-resize.cjs +0 -0
  777. /package/dist/{headless → core}/auto-resize.d.ts +0 -0
  778. /package/dist/{headless → core}/checkable.cjs +0 -0
  779. /package/dist/{headless → core}/checkable.d.ts +0 -0
  780. /package/dist/{headless → core}/choice-field.d.ts +0 -0
  781. /package/dist/{headless → core}/composer.cjs +0 -0
  782. /package/dist/{headless → core}/composer.d.ts +0 -0
  783. /package/dist/{headless → core}/date-picker.d.ts +0 -0
  784. /package/dist/{headless → core}/direction.cjs +0 -0
  785. /package/dist/{headless → core}/direction.d.ts +0 -0
  786. /package/dist/{headless → core}/focus.cjs +0 -0
  787. /package/dist/{headless → core}/focus.d.ts +0 -0
  788. /package/dist/{headless → core}/keyboard.d.ts +0 -0
  789. /package/dist/{headless → core}/light-dom.cjs +0 -0
  790. /package/dist/{headless → core}/light-dom.d.ts +0 -0
  791. /package/dist/{headless → core}/nav.cjs +0 -0
  792. /package/dist/{headless → core}/nav.d.ts +0 -0
  793. /package/dist/{headless → core}/numbers.cjs +0 -0
  794. /package/dist/{headless → core}/numbers.d.ts +0 -0
  795. /package/dist/{headless → core}/ore.cjs +0 -0
  796. /package/dist/{headless → core}/paginated-list.d.ts +0 -0
  797. /package/dist/{headless → core}/parse.cjs +0 -0
  798. /package/dist/{headless → core}/parse.d.ts +0 -0
  799. /package/dist/{headless → core}/positioner.d.ts +0 -0
  800. /package/dist/{headless → core}/ref-callback.d.ts +0 -0
  801. /package/dist/{headless → core}/signals.d.ts +0 -0
  802. /package/dist/{headless → core}/slider.d.ts +0 -0
  803. /package/dist/{headless → core}/spinner.d.ts +0 -0
  804. /package/dist/{headless → core}/swipe.cjs +0 -0
  805. /package/dist/{headless → core}/swipe.d.ts +0 -0
  806. /package/dist/{headless → core}/text-field.cjs +0 -0
  807. /package/dist/{headless → core}/text-field.d.ts +0 -0
  808. /package/dist/{headless → core}/typeahead.cjs +0 -0
  809. /package/dist/{headless → core}/typeahead.d.ts +0 -0
package/dist/input.js CHANGED
@@ -1,22 +1,21 @@
1
- import { sizeVariantMixin as e } from "./styles/mixins/shape.css.js";
2
- import { forcedColorsFocusMixin as t } from "./styles/mixins/theme.css.js";
3
- import { fieldVariantMixin as n } from "./styles/mixins/field-variants.css.js";
4
- import { fieldMixins as r } from "./styles/index.js";
5
- import { disablableBundle as i, roundableBundle as a, sizableBundle as o, themableBundle as s } from "./shared/prop-bundles.js";
6
- import { FIELD_SIZE_PRESET as c } from "./shared/size-presets.js";
7
- import { lifecycleSignal as l } from "./headless/ore.js";
8
- import { bindRefCallback as u } from "./headless/ref-callback.js";
9
- import { createTextField as d } from "./headless/text-field.js";
10
- import { errorAttr as f } from "./inputs/shared/field-binding.js";
11
- import { FORM_CTX as p, useFormContext as m } from "./inputs/shared/form-context.js";
12
- import { renderStatusIcon as h } from "./inputs/shared/templates.js";
13
- import g from "./inputs/input/input.css.js";
14
- import { bind as _, define as v, html as y, inject as b, onCleanup as x, onElement as S, prop as C, ref as w, useEmit as T, useSlots as E } from "@vielzeug/ore";
15
- import { computed as D, signal as O } from "@vielzeug/ripple";
16
- import { useField as k } from "@vielzeug/ore/forms";
17
- import { live as A } from "@vielzeug/ore/directives";
1
+ import { lifecycleSignal as e } from "./core/ore.js";
2
+ import { bindRefCallback as t } from "./core/ref-callback.js";
3
+ import { createTextField as n } from "./core/text-field.js";
4
+ import { coarsePointerMixin as r, reducedMotionMixin as i } from "./styles/mixins/accessibility.css.js";
5
+ import { roundedVariantMixin as a, sizeVariantMixin as o } from "./styles/mixins/shape.css.js";
6
+ import { disabledLoadingMixin as s } from "./styles/mixins/states.css.js";
7
+ import { colorThemeMixin as c, forcedColorsFocusMixin as l } from "./styles/mixins/theme.css.js";
8
+ import { fieldVariantMixin as u } from "./styles/mixins/field-variants.css.js";
9
+ import { disablableBundle as d, roundableBundle as f, sizableBundle as p, themableBundle as m } from "./shared/prop-bundles.js";
10
+ import { FIELD_SIZE_PRESET as h } from "./shared/size-presets.js";
11
+ import { errorAttr as g } from "./inputs/shared/field-binding.js";
12
+ import { renderStatusIcon as _ } from "./inputs/shared/templates.js";
13
+ import { defineFieldValue as v, dispatchNativeFieldEvent as y, setFieldValue as b } from "./inputs/shared/native-field-event.js";
14
+ import x from "./inputs/input/input.css.js";
15
+ import { bind as S, define as C, getHost as w, html as T, live as E, onCleanup as D, onElement as O, prop as k, ref as A, useField as j, useSlots as M } from "@vielzeug/ore";
16
+ import { computed as N, signal as P } from "@vielzeug/ripple";
18
17
  //#region src/inputs/input/input.ts
19
- var j = [
18
+ var F = [
20
19
  "text",
21
20
  "email",
22
21
  "password",
@@ -29,166 +28,169 @@ var j = [
29
28
  "datetime-local",
30
29
  "month",
31
30
  "week"
32
- ], M = "ore-input";
33
- v(M, {
31
+ ], I = "ore-input";
32
+ C(I, {
34
33
  formAssociated: !0,
35
34
  props: {
36
- ...s,
37
- ...o,
38
- ...i,
39
- ...a,
40
- autocomplete: C.string(),
41
- clearable: C.bool(!1),
42
- error: C.string(),
43
- fullwidth: C.bool(!1),
44
- helper: C.string(),
45
- inputmode: C.string(),
46
- label: C.string(),
47
- "label-placement": C.oneOf(["inset", "outside"], "inset"),
48
- loading: C.bool(!1),
49
- maxlength: C.json(void 0),
50
- minlength: C.json(void 0),
51
- name: C.string(),
52
- pattern: C.string(),
53
- placeholder: C.string(),
54
- readonly: C.bool(!1),
55
- ref: C.data(),
56
- required: C.bool(!1),
57
- success: C.bool(!1),
58
- type: C.oneOf(j, "text"),
59
- value: C.string(),
60
- variant: C.string()
35
+ ...m,
36
+ ...p,
37
+ ...d,
38
+ ...f,
39
+ autocomplete: k.string(),
40
+ clearable: k.bool(!1),
41
+ error: k.string(),
42
+ fullwidth: k.bool(!1),
43
+ helper: k.string(),
44
+ inputmode: k.string(),
45
+ label: k.string(),
46
+ "label-placement": k.oneOf(["inset", "outside"], "inset"),
47
+ loading: k.bool(!1),
48
+ maxlength: k.json(void 0),
49
+ minlength: k.json(void 0),
50
+ name: k.string(),
51
+ pattern: k.string(),
52
+ placeholder: k.string(),
53
+ readonly: k.bool(!1),
54
+ ref: k.data(),
55
+ required: k.bool(!1),
56
+ success: k.bool(!1),
57
+ type: k.oneOf(F, "text"),
58
+ value: k.string(),
59
+ variant: k.string()
61
60
  },
62
- setup(e) {
63
- let t = T(), n = E(), r = b(p), i = m(e, r), a = O(!1), o = w(), s = D(() => !!e.label.value || n.has("label").value), c = D(() => i.disabled.value || e.loading.value), g = l(x), v = d({
64
- disabled: c,
65
- error: e.error,
66
- hasLabel: s,
67
- helper: e.helper,
68
- label: e.label,
69
- labelPlacement: e["label-placement"],
70
- maxLength: e.maxlength,
71
- onChange: (e, n) => {
72
- t("change", {
73
- originalEvent: e,
74
- value: n
75
- });
61
+ setup(r) {
62
+ let i = w(), a = M(), o = P(!1), s = A(), c = N(() => !!r.label.value || a.has("label").value), l = N(() => r.disabled.value || r.loading.value), u = e(D), d = n({
63
+ disabled: l,
64
+ error: r.error,
65
+ hasLabel: c,
66
+ helper: r.helper,
67
+ label: r.label,
68
+ labelPlacement: r["label-placement"],
69
+ maxLength: r.maxlength,
70
+ onChange: (e, t) => {
71
+ b(i, t), y(i, "change");
76
72
  },
77
- onInput: (e, n) => {
78
- t("input", {
79
- originalEvent: e,
80
- value: n
81
- });
73
+ onInput: (e, t) => {
74
+ b(i, t), y(i, "input");
82
75
  },
83
76
  prefix: "input",
84
- readonly: e.readonly,
85
- required: e.required,
86
- signal: g,
87
- validateOn: r?.validateOn,
88
- value: e.value
77
+ readonly: r.readonly,
78
+ required: r.required,
79
+ signal: u,
80
+ value: r.value
89
81
  });
90
- v.attachFormField(k({
91
- disabled: v.disabled,
92
- onReset: v.reset,
82
+ v(i, () => d.value.value, (e) => {
83
+ d.value.value = e;
84
+ }), d.attachFormField(j({
85
+ disabled: d.disabled,
86
+ onReset: d.reset,
93
87
  toFormValue: (e) => e,
94
- validationMessage: v.validationMessage,
95
- validity: v.validity,
96
- value: v.value
88
+ validationMessage: d.validationMessage,
89
+ validity: d.validity,
90
+ value: d.value
97
91
  }));
98
- let { ariaDescribedBy: C, ariaErrorMessage: j, ariaInvalid: M, ariaLabelledBy: N, assistiveId: P, clear: F, counter: I, errorId: L, errorText: R, fieldId: z, helperText: B, labelId: V, labelVisible: H, value: U, wire: W } = v;
99
- return S(o, (t) => {
100
- W(t, g);
101
- let n = u(e.ref, t);
92
+ let { ariaDescribedBy: f, ariaErrorMessage: p, ariaInvalid: m, ariaLabelledBy: h, assistiveId: x, clear: C, counter: k, errorId: F, errorText: I, fieldId: L, helperText: R, labelId: z, labelVisible: B, value: V, wire: H } = d;
93
+ return O(s, (e) => {
94
+ H(e, u);
95
+ let n = t(r.ref, e);
102
96
  return () => {
103
97
  n();
104
98
  };
105
- }), _({ attr: {
106
- error: f(R),
107
- "has-value": () => U.value ? !0 : void 0,
108
- size: i.size,
109
- success: () => e.success.value && !R.value ? !0 : void 0,
110
- variant: i.variant
111
- } }), y`
99
+ }), S({ attr: {
100
+ error: g(I),
101
+ "has-value": () => V.value ? !0 : void 0,
102
+ size: r.size,
103
+ success: () => r.success.value && !I.value ? !0 : void 0,
104
+ variant: r.variant
105
+ } }), T`
112
106
  <div class="input-wrapper" part="wrapper">
113
- <label class="label" for="${z}" id="${V}" part="label" ?hidden="${() => !H.value}"
114
- ><slot name="label">${e.label}</slot></label
115
- >
107
+ <label class="label" for="${L}" id="${z}" part="label" ?hidden="${() => !B.value}">
108
+ <slot name="label">${r.label}</slot>
109
+ </label>
116
110
  <div class="field" part="field">
117
111
  <div class="input-row" part="input-row">
118
112
  <slot name="prefix"></slot>
119
113
  <input
120
114
  part="input"
121
- id="${z}"
122
- :type="${() => e.type.value === "password" && a.value ? "text" : e.type.value ?? "text"}"
123
- :name="${e.name}"
124
- :placeholder="${e.placeholder}"
125
- :autocomplete="${e.autocomplete}"
126
- :inputmode="${e.inputmode}"
127
- :maxlength="${e.maxlength}"
128
- :minlength="${e.minlength}"
129
- :pattern="${e.pattern}"
130
- ?disabled="${c}"
131
- ?readonly="${e.readonly}"
132
- ?required="${e.required}"
133
- :value="${A(U)}"
134
- :aria-labelledby="${N}"
135
- :aria-describedby="${C}"
136
- :aria-errormessage="${j}"
137
- :aria-invalid="${M}"
138
- :aria-busy="${() => e.loading.value ? "true" : null}"
139
- ref="${o}" />
115
+ id="${L}"
116
+ type="${() => r.type.value === "password" && o.value ? "text" : r.type.value ?? "text"}"
117
+ name="${r.name}"
118
+ placeholder="${r.placeholder}"
119
+ autocomplete="${r.autocomplete}"
120
+ inputmode="${r.inputmode}"
121
+ maxlength="${r.maxlength}"
122
+ minlength="${r.minlength}"
123
+ pattern="${r.pattern}"
124
+ ?disabled="${l}"
125
+ ?readonly="${r.readonly}"
126
+ ?required="${r.required}"
127
+ value="${E(V)}"
128
+ aria-labelledby="${h}"
129
+ aria-describedby="${f}"
130
+ aria-errormessage="${p}"
131
+ aria-invalid="${m}"
132
+ aria-busy="${() => r.loading.value ? "true" : null}"
133
+ ref="${s}" />
140
134
  <slot name="suffix"></slot>
141
- ${h(R)}
135
+ ${_(I)}
142
136
  <span class="field-spinner" part="spinner" role="status" aria-label="Loading"></span>
143
137
  <button
144
138
  class="pwd-toggle-btn"
145
139
  part="pwd-toggle"
146
140
  type="button"
147
- :aria-label="${() => a.value ? "Hide password" : "Show password"}"
148
- :aria-pressed="${() => String(a.value)}"
149
- :tabindex="${() => e.type.value === "password" ? "0" : "-1"}"
141
+ aria-label="${() => o.value ? "Hide password" : "Show password"}"
142
+ aria-pressed="${() => String(o.value)}"
143
+ tabindex="${() => r.type.value === "password" ? "0" : "-1"}"
150
144
  @click="${() => {
151
- a.value = !a.value, o.value?.focus();
145
+ o.value = !o.value, s.value?.focus();
152
146
  }}">
153
- ${() => a.value ? y`<ore-icon name="eye-off" size="14" stroke-width="2" aria-hidden="true"></ore-icon>` : y`<ore-icon name="eye" size="14" stroke-width="2" aria-hidden="true"></ore-icon>`}
147
+ ${() => o.value ? T`
148
+ <ore-icon name="eye-off" size="14" stroke-width="2" aria-hidden="true"></ore-icon>
149
+ ` : T`
150
+ <ore-icon name="eye" size="14" stroke-width="2" aria-hidden="true"></ore-icon>
151
+ `}
154
152
  </button>
155
153
  <button
156
154
  aria-label="Clear"
157
155
  class="clear-btn"
158
156
  part="clear"
159
157
  type="button"
160
- :tabindex="${() => U.value ? "0" : "-1"}"
158
+ tabindex="${() => V.value ? "0" : "-1"}"
161
159
  @click="${(e) => {
162
- F(e), o.value?.focus();
160
+ C(e), s.value?.focus();
163
161
  }}">
164
162
  <ore-icon aria-hidden="true" name="x" size="12" stroke-width="2.5"></ore-icon>
165
163
  </button>
166
164
  </div>
167
165
  </div>
168
- <div class="helper-text" aria-live="polite" id="${P}" part="helper" ?hidden="${() => !!R.value || !B.value}">
169
- <slot name="helper">${() => B.value}</slot>
166
+ <div class="helper-text" aria-live="polite" id="${x}" part="helper" ?hidden="${() => !!I.value || !R.value}">
167
+ <slot name="helper">${() => R.value}</slot>
170
168
  </div>
171
- <div class="helper-text" id="${L}" role="alert" part="error" ?hidden="${() => !R.value}">
172
- <slot name="error">${() => R.value}</slot>
169
+ <div class="helper-text" id="${F}" role="alert" part="error" ?hidden="${() => !I.value}">
170
+ <slot name="error">${() => I.value}</slot>
173
171
  </div>
174
172
  <div
175
173
  class="char-counter"
176
174
  part="char-counter"
177
- :data-near-limit="${() => I?.value.counterNearLimit && !I?.value.counterAtLimit ? "" : null}"
178
- :data-at-limit="${() => I?.value.counterAtLimit ? "" : null}"
179
- ?hidden="${() => !I}">
180
- ${() => I?.value.counterText ?? ""}
175
+ data-near-limit="${() => k?.value.counterNearLimit && !k?.value.counterAtLimit ? "" : null}"
176
+ data-at-limit="${() => k?.value.counterAtLimit ? "" : null}"
177
+ ?hidden="${() => !k}">
178
+ ${() => k?.value.counterText ?? ""}
181
179
  </div>
182
180
  </div>
183
181
  `;
184
182
  },
185
183
  shadow: { delegatesFocus: !0 },
186
184
  styles: [
187
- ...r,
188
- e(c),
189
- t("input"),
190
- g,
191
- n({
185
+ c,
186
+ r,
187
+ i,
188
+ a,
189
+ s,
190
+ o(h),
191
+ l("input"),
192
+ x,
193
+ u({
192
194
  container: ".field",
193
195
  text: "input",
194
196
  tokenPrefix: "input"
@@ -196,6 +198,6 @@ v(M, {
196
198
  ]
197
199
  });
198
200
  //#endregion
199
- export { M as INPUT_TAG };
201
+ export { I as INPUT_TAG };
200
202
 
201
203
  //# sourceMappingURL=input.js.map
package/dist/input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../src/inputs/input/input.ts"],"sourcesContent":["import { define, html, inject, prop, ref, bind, onCleanup, onElement, useEmit, useSlots } from '@vielzeug/ore';\nimport { live } from '@vielzeug/ore/directives';\nimport { useField } from '@vielzeug/ore/forms';\nimport { computed, signal } from '@vielzeug/ripple';\n\nimport type { TextFieldProps } from '../../shared';\nimport type { InputType, VisualVariant } from '../../types';\n\nimport { bindRefCallback, lifecycleSignal, createTextField } from '../../headless';\nimport { disablableBundle, FIELD_SIZE_PRESET, roundableBundle, sizableBundle, themableBundle } from '../../shared';\nimport '../../content/icon/icon';\nimport { fieldMixins, fieldVariantMixin, forcedColorsFocusMixin, sizeVariantMixin } from '../../styles';\nimport { errorAttr } from '../shared/field-binding';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport { renderStatusIcon } from '../shared/templates';\nimport componentStyles from './input.css?inline';\n\n/** Input component properties */\n\nexport type OreInputEvents = {\n change: { originalEvent: Event; value: string };\n input: { originalEvent: Event; value: string };\n};\n\nexport type OreInputProps = TextFieldProps<Exclude<VisualVariant, 'frost'>> & {\n /** Autocomplete hint */\n autocomplete?: string;\n /** Show a clear (×) button when the field has a value */\n clearable?: boolean;\n /** Virtual keyboard hint for mobile devices */\n inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';\n /**\n * Shows an inline spinner inside the field and forces the inner `<input>` into\n * `disabled` for the duration — use while an async validation/submission request\n * is in flight (e.g. checking username availability) to prevent double-submits.\n */\n loading?: boolean;\n /** Maximum character length — shows a counter below the input */\n maxlength?: number;\n /** Minimum character length */\n minlength?: number;\n /** HTML pattern attribute for client-side validation */\n pattern?: string;\n /**\n * JS-only callback fired with the inner `<input>` element when it mounts,\n * and with `null` when it unmounts. Intended for composed components that\n * need imperative access to the raw input element.\n * Set as a JS property: `bitInput.ref = (el) => { ... }`.\n */\n ref?: ((el: HTMLInputElement | null) => void) | null;\n /** HTML input type */\n type?: InputType;\n};\n\nconst VALID_INPUT_TYPES = [\n 'text',\n 'email',\n 'password',\n 'search',\n 'url',\n 'tel',\n 'number',\n 'date',\n 'time',\n 'datetime-local',\n 'month',\n 'week',\n] as const;\n\n/**\n * A customizable text input component with multiple variants, label placements, and form features.\n *\n * @element ore-input\n *\n * @attr {string} label - Label text\n * @attr {string} label-placement - Label placement: 'inset' | 'outside'\n * @attr {string} type - HTML input type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search'\n * @attr {string} value - Current input value\n * @attr {string} placeholder - Placeholder text\n * @attr {string} name - Form field name\n * @attr {string} helper - Helper text displayed below the input (fallback when the `helper` slot is empty)\n * @attr {string} error - Error message — marks the field as invalid (fallback when the `error` slot is empty)\n * @attr {boolean} disabled - Disable input interaction\n * @attr {boolean} readonly - Make the input read-only\n * @attr {boolean} required - Mark the field as required\n * @attr {boolean} loading - Show an inline spinner and force the field disabled\n * @attr {boolean} success - Show an inline success check icon (suppressed while `error` is set)\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text'\n * @attr {string} size - Input size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n *\n * @fires input - Emitted when input value changes (on every keystroke). detail: { value: string; originalEvent: Event }\n * @fires change - Emitted when input loses focus with changed value. detail: { value: string; originalEvent: Event }\n *\n * @slot prefix - Content before the input (e.g., icons)\n * @slot suffix - Content after the input (e.g., clear button, validation icon)\n * @slot label - Replaces the label text — slotted content takes precedence over the `label` prop\n * @slot helper - Replaces the helper text — slotted content takes precedence over the `helper` prop\n * @slot error - Replaces the error text — slotted content takes precedence over the `error` prop\n *\n * @part wrapper - The input wrapper element\n * @part label - The label element (inset or outside)\n * @part field - The field container element\n * @part input-row - The input row container element\n * @part input - The input element\n * @part status-icon - The inline error/success icon shown inside the field\n * @part spinner - The inline loading spinner shown inside the field while `loading`\n * @part helper - The helper text element\n *\n * @cssprop --input-bg - Background color\n * @cssprop --input-color - Text color\n * @cssprop --input-border-color - Border color\n * @cssprop --input-placeholder-color - Placeholder text color\n * @cssprop --input-radius - Border radius\n * @cssprop --input-padding - Inner padding (block inline)\n * @cssprop --input-gap - Gap between prefix/suffix icons and input text\n * @cssprop --input-font-size - Font size\n * @cssprop --input-height - Field height\n * @cssprop --input-hover-bg - Field background on hover (flat/ghost variants)\n * @cssprop --input-hover-border-color - Field border on hover (flat/bordered variants)\n * @cssprop --input-focus-bg - Field background when focused (flat variant)\n * @cssprop --input-focus-border-color - Field border when focused (flat/text variants)\n *\n * @example\n * ```html\n * <ore-input type=\"email\" label=\"Email\" placeholder=\"you@example.com\" />\n * <ore-input label=\"Name\" variant=\"bordered\" color=\"primary\" />\n * <ore-input label=\"Username\" error=\"That username is taken\" />\n * <ore-input label=\"Username\" success />\n * <ore-input label=\"Username\" loading />\n * ```\n */\nexport const INPUT_TAG = 'ore-input' as const;\ndefine<OreInputProps>(INPUT_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n ...roundableBundle,\n autocomplete: prop.string(),\n clearable: prop.bool(false),\n error: prop.string(),\n fullwidth: prop.bool(false),\n helper: prop.string(),\n inputmode: prop.string<'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'>(),\n label: prop.string(),\n 'label-placement': prop.oneOf(['inset', 'outside'] as const, 'inset'),\n loading: prop.bool(false),\n maxlength: prop.json(undefined as number | undefined),\n minlength: prop.json(undefined as number | undefined),\n name: prop.string(),\n pattern: prop.string(),\n placeholder: prop.string(),\n readonly: prop.bool(false),\n ref: prop.data<((el: HTMLInputElement | null) => void) | null>(),\n required: prop.bool(false),\n success: prop.bool(false),\n type: prop.oneOf(VALID_INPUT_TYPES, 'text'),\n value: prop.string(),\n variant: prop.string<'flat' | 'text' | 'solid' | 'bordered' | 'outline' | 'ghost'>(),\n },\n setup(props) {\n const emit = useEmit<OreInputEvents>();\n const slots = useSlots();\n\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(props, formCtx);\n const showPassword = signal(false);\n const inputRef = ref<HTMLInputElement>();\n\n const hasLabel = computed(() => !!props.label.value || slots.has('label').value);\n // `loading` behaves like a temporary `disabled` — forces the inner <input> out of\n // constraint validation and interaction for the duration, layered on top of any real\n // `disabled` prop or form-context disabling already folded into `fCtxProps.disabled`.\n const isDisabled = computed(() => fCtxProps.disabled.value || props.loading.value);\n\n const abortSignal = lifecycleSignal(onCleanup);\n const tf = createTextField({\n disabled: isDisabled,\n error: props.error,\n hasLabel,\n helper: props.helper,\n label: props.label,\n labelPlacement: props['label-placement'],\n maxLength: props.maxlength,\n onChange: (event: Event, value: string) => {\n emit('change', { originalEvent: event, value });\n },\n onInput: (event: Event, value: string) => {\n emit('input', { originalEvent: event, value });\n },\n prefix: 'input',\n readonly: props.readonly,\n required: props.required,\n signal: abortSignal,\n validateOn: formCtx?.validateOn,\n value: props.value,\n });\n\n tf.attachFormField(\n useField<string>({\n disabled: tf.disabled,\n onReset: tf.reset,\n toFormValue: (v) => v,\n validationMessage: tf.validationMessage,\n validity: tf.validity,\n value: tf.value,\n }),\n );\n\n const {\n ariaDescribedBy,\n ariaErrorMessage,\n ariaInvalid,\n ariaLabelledBy,\n assistiveId,\n clear: clearValue,\n counter,\n errorId,\n errorText,\n fieldId: inputId,\n helperText,\n labelId,\n labelVisible,\n value: fieldValue,\n wire,\n } = tf;\n\n onElement(inputRef, (el) => {\n wire(el, abortSignal);\n\n const unwireRef = bindRefCallback(props.ref, el);\n\n return () => {\n unwireRef();\n };\n });\n\n const clear = (event?: Event): void => {\n clearValue(event);\n inputRef.value?.focus();\n };\n\n const resolvedInputType = (): string =>\n props.type.value === 'password' && showPassword.value ? 'text' : (props.type.value ?? 'text');\n\n bind({\n attr: {\n error: errorAttr(errorText),\n 'has-value': () => (fieldValue.value ? true : undefined),\n size: fCtxProps.size,\n // Reflects `success` only once `error` is confirmed empty — keeps the two host\n // attributes mutually exclusive even if a consumer sets both props at once.\n success: () => (props.success.value && !errorText.value ? true : undefined),\n variant: fCtxProps.variant,\n },\n });\n\n const labelHidden = () => !labelVisible.value;\n const passwordToggleLabel = () => (showPassword.value ? 'Hide password' : 'Show password');\n const passwordTogglePressed = () => String(showPassword.value);\n const passwordToggleIcon = () =>\n showPassword.value\n ? html`<ore-icon name=\"eye-off\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>`\n : html`<ore-icon name=\"eye\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>`;\n const helperHidden = () => !!errorText.value || !helperText.value;\n const errorHidden = () => !errorText.value;\n const counterNearLimit = () => (counter?.value.counterNearLimit && !counter?.value.counterAtLimit ? '' : null);\n const counterAtLimit = () => (counter?.value.counterAtLimit ? '' : null);\n const counterHidden = () => !counter;\n const counterText = () => counter?.value.counterText ?? '';\n\n const clearTabIndex = () => (fieldValue.value ? '0' : '-1');\n const pwdToggleTabIndex = () => (props.type.value === 'password' ? '0' : '-1');\n\n const togglePassword = () => {\n showPassword.value = !showPassword.value;\n inputRef.value?.focus();\n };\n\n return html`\n <div class=\"input-wrapper\" part=\"wrapper\">\n <label class=\"label\" for=\"${inputId}\" id=\"${labelId}\" part=\"label\" ?hidden=\"${labelHidden}\"\n ><slot name=\"label\">${props.label}</slot></label\n >\n <div class=\"field\" part=\"field\">\n <div class=\"input-row\" part=\"input-row\">\n <slot name=\"prefix\"></slot>\n <input\n part=\"input\"\n id=\"${inputId}\"\n :type=\"${resolvedInputType}\"\n :name=\"${props.name}\"\n :placeholder=\"${props.placeholder}\"\n :autocomplete=\"${props.autocomplete}\"\n :inputmode=\"${props.inputmode}\"\n :maxlength=\"${props.maxlength}\"\n :minlength=\"${props.minlength}\"\n :pattern=\"${props.pattern}\"\n ?disabled=\"${isDisabled}\"\n ?readonly=\"${props.readonly}\"\n ?required=\"${props.required}\"\n :value=\"${live(fieldValue)}\"\n :aria-labelledby=\"${ariaLabelledBy}\"\n :aria-describedby=\"${ariaDescribedBy}\"\n :aria-errormessage=\"${ariaErrorMessage}\"\n :aria-invalid=\"${ariaInvalid}\"\n :aria-busy=\"${() => (props.loading.value ? 'true' : null)}\"\n ref=\"${inputRef}\" />\n <slot name=\"suffix\"></slot>\n ${renderStatusIcon(errorText)}\n <span class=\"field-spinner\" part=\"spinner\" role=\"status\" aria-label=\"Loading\"></span>\n <button\n class=\"pwd-toggle-btn\"\n part=\"pwd-toggle\"\n type=\"button\"\n :aria-label=\"${passwordToggleLabel}\"\n :aria-pressed=\"${passwordTogglePressed}\"\n :tabindex=\"${pwdToggleTabIndex}\"\n @click=\"${togglePassword}\">\n ${passwordToggleIcon}\n </button>\n <button\n aria-label=\"Clear\"\n class=\"clear-btn\"\n part=\"clear\"\n type=\"button\"\n :tabindex=\"${clearTabIndex}\"\n @click=\"${clear}\">\n <ore-icon aria-hidden=\"true\" name=\"x\" size=\"12\" stroke-width=\"2.5\"></ore-icon>\n </button>\n </div>\n </div>\n <div class=\"helper-text\" aria-live=\"polite\" id=\"${assistiveId}\" part=\"helper\" ?hidden=\"${helperHidden}\">\n <slot name=\"helper\">${() => helperText.value}</slot>\n </div>\n <div class=\"helper-text\" id=\"${errorId}\" role=\"alert\" part=\"error\" ?hidden=\"${errorHidden}\">\n <slot name=\"error\">${() => errorText.value}</slot>\n </div>\n <div\n class=\"char-counter\"\n part=\"char-counter\"\n :data-near-limit=\"${counterNearLimit}\"\n :data-at-limit=\"${counterAtLimit}\"\n ?hidden=\"${counterHidden}\">\n ${counterText}\n </div>\n </div>\n `;\n },\n shadow: { delegatesFocus: true },\n styles: [\n ...fieldMixins,\n sizeVariantMixin(FIELD_SIZE_PRESET),\n forcedColorsFocusMixin('input'),\n componentStyles,\n // Must come after `componentStyles` — `@layer` precedence is fixed by which layer name is\n // *first* referenced across this whole array, and `componentStyles` is what establishes\n // `refine.base` (the unconditional `--_bg`/`--_border-color` defaults this mixin's\n // `refine.variants` rules need to win over). Placed earlier, `refine.variants` would end up\n // registered as the *lower*-priority layer, and every variant would silently render as the\n // base default — exactly the bug this ordering fixes.\n fieldVariantMixin({ container: '.field', text: 'input', tokenPrefix: 'input' }),\n ],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"input.js","names":[],"sources":["../src/inputs/input/input.ts"],"sourcesContent":["import { define, html, prop, ref, bind, getHost, onCleanup, onElement, useSlots } from '@vielzeug/ore';\nimport { live, useField } from '@vielzeug/ore';\nimport { computed, signal } from '@vielzeug/ripple';\n\nimport type { TextFieldProps } from '../../shared';\nimport type { InputType, VisualVariant } from '../../types';\n\nimport { bindRefCallback, lifecycleSignal, createTextField } from '../../core';\nimport { disablableBundle, FIELD_SIZE_PRESET, roundableBundle, sizableBundle, themableBundle } from '../../shared';\nimport '../../content/icon/icon';\nimport {\n coarsePointerMixin,\n colorThemeMixin,\n disabledLoadingMixin,\n fieldVariantMixin,\n forcedColorsFocusMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport { errorAttr } from '../shared/field-binding';\nimport { defineFieldValue, dispatchNativeFieldEvent, setFieldValue } from '../shared/native-field-event';\nimport { renderStatusIcon } from '../shared/templates';\nimport componentStyles from './input.css?inline';\n\n/** Input component properties */\n\nexport type OreInputEvents = {\n change: Event;\n input: InputEvent;\n};\n\nexport type OreInputProps = TextFieldProps<Exclude<VisualVariant, 'frost'>> & {\n /** Autocomplete hint */\n autocomplete?: string;\n /** Show a clear (×) button when the field has a value */\n clearable?: boolean;\n /** Virtual keyboard hint for mobile devices */\n inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';\n /**\n * Shows an inline spinner inside the field and forces the inner `<input>` into\n * `disabled` for the duration — use while an async validation/submission request\n * is in flight (e.g. checking username availability) to prevent double-submits.\n */\n loading?: boolean;\n /** Maximum character length — shows a counter below the input */\n maxlength?: number;\n /** Minimum character length */\n minlength?: number;\n /** HTML pattern attribute for client-side validation */\n pattern?: string;\n /**\n * JS-only callback fired with the inner `<input>` element when it mounts,\n * and with `null` when it unmounts. Intended for composed components that\n * need imperative access to the raw input element.\n * Set as a JS property: `bitInput.ref = (el) => { ... }`.\n */\n ref?: ((el: HTMLInputElement | null) => void) | null;\n /** HTML input type */\n type?: InputType;\n};\n\nconst VALID_INPUT_TYPES = [\n 'text',\n 'email',\n 'password',\n 'search',\n 'url',\n 'tel',\n 'number',\n 'date',\n 'time',\n 'datetime-local',\n 'month',\n 'week',\n] as const;\n\n/**\n * A customizable text input component with multiple variants, label placements, and form features.\n *\n * @element ore-input\n *\n * @attr {string} label - Label text\n * @attr {string} label-placement - Label placement: 'inset' | 'outside'\n * @attr {string} type - HTML input type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search'\n * @attr {string} value - Current input value\n * @attr {string} placeholder - Placeholder text\n * @attr {string} name - Form field name\n * @attr {string} helper - Helper text displayed below the input (fallback when the `helper` slot is empty)\n * @attr {string} error - Error message — marks the field as invalid (fallback when the `error` slot is empty)\n * @attr {boolean} disabled - Disable input interaction\n * @attr {boolean} readonly - Make the input read-only\n * @attr {boolean} required - Mark the field as required\n * @attr {boolean} loading - Show an inline spinner and force the field disabled\n * @attr {boolean} success - Show an inline success check icon (suppressed while `error` is set)\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text'\n * @attr {string} size - Input size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n *\n * @fires input - Emitted when input value changes (on every keystroke).\n * @fires change - Emitted when input loses focus with changed value.\n *\n * @slot prefix - Content before the input (e.g., icons)\n * @slot suffix - Content after the input (e.g., clear button, validation icon)\n * @slot label - Replaces the label text — slotted content takes precedence over the `label` prop\n * @slot helper - Replaces the helper text — slotted content takes precedence over the `helper` prop\n * @slot error - Replaces the error text — slotted content takes precedence over the `error` prop\n *\n * @part wrapper - The input wrapper element\n * @part label - The label element (inset or outside)\n * @part field - The field container element\n * @part input-row - The input row container element\n * @part input - The input element\n * @part status-icon - The inline error/success icon shown inside the field\n * @part spinner - The inline loading spinner shown inside the field while `loading`\n * @part helper - The helper text element\n *\n * @cssprop --input-bg - Background color\n * @cssprop --input-color - Text color\n * @cssprop --input-border-color - Border color\n * @cssprop --input-placeholder-color - Placeholder text color\n * @cssprop --input-radius - Border radius\n * @cssprop --input-padding - Inner padding (block inline)\n * @cssprop --input-gap - Gap between prefix/suffix icons and input text\n * @cssprop --input-font-size - Font size\n * @cssprop --input-height - Field height\n * @cssprop --input-hover-bg - Field background on hover (flat/ghost variants)\n * @cssprop --input-hover-border-color - Field border on hover (flat/bordered variants)\n * @cssprop --input-focus-bg - Field background when focused (flat variant)\n * @cssprop --input-focus-border-color - Field border when focused (flat/text variants)\n *\n * @example\n * ```html\n * <ore-input type=\"email\" label=\"Email\" placeholder=\"you@example.com\" />\n * <ore-input label=\"Name\" variant=\"bordered\" color=\"primary\" />\n * <ore-input label=\"Username\" error=\"That username is taken\" />\n * <ore-input label=\"Username\" success />\n * <ore-input label=\"Username\" loading />\n * ```\n */\nexport const INPUT_TAG = 'ore-input' as const;\ndefine<OreInputProps>(INPUT_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n ...roundableBundle,\n autocomplete: prop.string(),\n clearable: prop.bool(false),\n error: prop.string(),\n fullwidth: prop.bool(false),\n helper: prop.string(),\n inputmode: prop.string<'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'>(),\n label: prop.string(),\n 'label-placement': prop.oneOf(['inset', 'outside'] as const, 'inset'),\n loading: prop.bool(false),\n maxlength: prop.json(undefined as number | undefined),\n minlength: prop.json(undefined as number | undefined),\n name: prop.string(),\n pattern: prop.string(),\n placeholder: prop.string(),\n readonly: prop.bool(false),\n ref: prop.data<((el: HTMLInputElement | null) => void) | null>(),\n required: prop.bool(false),\n success: prop.bool(false),\n type: prop.oneOf(VALID_INPUT_TYPES, 'text'),\n value: prop.string(),\n variant: prop.string<'flat' | 'text' | 'solid' | 'bordered' | 'outline' | 'ghost'>(),\n },\n setup(props) {\n const el = getHost();\n const slots = useSlots();\n\n const showPassword = signal(false);\n const inputRef = ref<HTMLInputElement>();\n\n const hasLabel = computed(() => !!props.label.value || slots.has('label').value);\n // `loading` behaves like a temporary `disabled` — forces the inner <input> out of\n // constraint validation and interaction for the duration, layered on top of any real\n // `loading` is layered on top of the consumer's explicit `disabled` prop.\n const isDisabled = computed(() => props.disabled.value || props.loading.value);\n\n const abortSignal = lifecycleSignal(onCleanup);\n const tf = createTextField({\n disabled: isDisabled,\n error: props.error,\n hasLabel,\n helper: props.helper,\n label: props.label,\n labelPlacement: props['label-placement'],\n maxLength: props.maxlength,\n onChange: (_event: Event, value: string) => {\n setFieldValue(el, value);\n dispatchNativeFieldEvent(el, 'change');\n },\n onInput: (_event: Event, value: string) => {\n setFieldValue(el, value);\n dispatchNativeFieldEvent(el, 'input');\n },\n prefix: 'input',\n readonly: props.readonly,\n required: props.required,\n signal: abortSignal,\n value: props.value,\n });\n\n defineFieldValue(\n el,\n () => tf.value.value,\n (value) => {\n tf.value.value = value;\n },\n );\n\n tf.attachFormField(\n useField<string>({\n disabled: tf.disabled,\n onReset: tf.reset,\n toFormValue: (v) => v,\n validationMessage: tf.validationMessage,\n validity: tf.validity,\n value: tf.value,\n }),\n );\n\n const {\n ariaDescribedBy,\n ariaErrorMessage,\n ariaInvalid,\n ariaLabelledBy,\n assistiveId,\n clear: clearValue,\n counter,\n errorId,\n errorText,\n fieldId: inputId,\n helperText,\n labelId,\n labelVisible,\n value: fieldValue,\n wire,\n } = tf;\n\n onElement(inputRef, (el) => {\n wire(el, abortSignal);\n\n const unwireRef = bindRefCallback(props.ref, el);\n\n return () => {\n unwireRef();\n };\n });\n\n const clear = (event?: Event): void => {\n clearValue(event);\n inputRef.value?.focus();\n };\n\n const resolvedInputType = (): string =>\n props.type.value === 'password' && showPassword.value ? 'text' : (props.type.value ?? 'text');\n\n bind({\n attr: {\n error: errorAttr(errorText),\n 'has-value': () => (fieldValue.value ? true : undefined),\n size: props.size,\n // Reflects `success` only once `error` is confirmed empty — keeps the two host\n // attributes mutually exclusive even if a consumer sets both props at once.\n success: () => (props.success.value && !errorText.value ? true : undefined),\n variant: props.variant,\n },\n });\n\n const labelHidden = () => !labelVisible.value;\n const passwordToggleLabel = () => (showPassword.value ? 'Hide password' : 'Show password');\n const passwordTogglePressed = () => String(showPassword.value);\n const passwordToggleIcon = () =>\n showPassword.value\n ? html`\n <ore-icon name=\"eye-off\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n `\n : html`\n <ore-icon name=\"eye\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n `;\n const helperHidden = () => !!errorText.value || !helperText.value;\n const errorHidden = () => !errorText.value;\n const counterNearLimit = () => (counter?.value.counterNearLimit && !counter?.value.counterAtLimit ? '' : null);\n const counterAtLimit = () => (counter?.value.counterAtLimit ? '' : null);\n const counterHidden = () => !counter;\n const counterText = () => counter?.value.counterText ?? '';\n\n const clearTabIndex = () => (fieldValue.value ? '0' : '-1');\n const pwdToggleTabIndex = () => (props.type.value === 'password' ? '0' : '-1');\n\n const togglePassword = () => {\n showPassword.value = !showPassword.value;\n inputRef.value?.focus();\n };\n\n return html`\n <div class=\"input-wrapper\" part=\"wrapper\">\n <label class=\"label\" for=\"${inputId}\" id=\"${labelId}\" part=\"label\" ?hidden=\"${labelHidden}\">\n <slot name=\"label\">${props.label}</slot>\n </label>\n <div class=\"field\" part=\"field\">\n <div class=\"input-row\" part=\"input-row\">\n <slot name=\"prefix\"></slot>\n <input\n part=\"input\"\n id=\"${inputId}\"\n type=\"${resolvedInputType}\"\n name=\"${props.name}\"\n placeholder=\"${props.placeholder}\"\n autocomplete=\"${props.autocomplete}\"\n inputmode=\"${props.inputmode}\"\n maxlength=\"${props.maxlength}\"\n minlength=\"${props.minlength}\"\n pattern=\"${props.pattern}\"\n ?disabled=\"${isDisabled}\"\n ?readonly=\"${props.readonly}\"\n ?required=\"${props.required}\"\n value=\"${live(fieldValue)}\"\n aria-labelledby=\"${ariaLabelledBy}\"\n aria-describedby=\"${ariaDescribedBy}\"\n aria-errormessage=\"${ariaErrorMessage}\"\n aria-invalid=\"${ariaInvalid}\"\n aria-busy=\"${() => (props.loading.value ? 'true' : null)}\"\n ref=\"${inputRef}\" />\n <slot name=\"suffix\"></slot>\n ${renderStatusIcon(errorText)}\n <span class=\"field-spinner\" part=\"spinner\" role=\"status\" aria-label=\"Loading\"></span>\n <button\n class=\"pwd-toggle-btn\"\n part=\"pwd-toggle\"\n type=\"button\"\n aria-label=\"${passwordToggleLabel}\"\n aria-pressed=\"${passwordTogglePressed}\"\n tabindex=\"${pwdToggleTabIndex}\"\n @click=\"${togglePassword}\">\n ${passwordToggleIcon}\n </button>\n <button\n aria-label=\"Clear\"\n class=\"clear-btn\"\n part=\"clear\"\n type=\"button\"\n tabindex=\"${clearTabIndex}\"\n @click=\"${clear}\">\n <ore-icon aria-hidden=\"true\" name=\"x\" size=\"12\" stroke-width=\"2.5\"></ore-icon>\n </button>\n </div>\n </div>\n <div class=\"helper-text\" aria-live=\"polite\" id=\"${assistiveId}\" part=\"helper\" ?hidden=\"${helperHidden}\">\n <slot name=\"helper\">${() => helperText.value}</slot>\n </div>\n <div class=\"helper-text\" id=\"${errorId}\" role=\"alert\" part=\"error\" ?hidden=\"${errorHidden}\">\n <slot name=\"error\">${() => errorText.value}</slot>\n </div>\n <div\n class=\"char-counter\"\n part=\"char-counter\"\n data-near-limit=\"${counterNearLimit}\"\n data-at-limit=\"${counterAtLimit}\"\n ?hidden=\"${counterHidden}\">\n ${counterText}\n </div>\n </div>\n `;\n },\n shadow: { delegatesFocus: true },\n styles: [\n colorThemeMixin,\n coarsePointerMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n disabledLoadingMixin,\n sizeVariantMixin(FIELD_SIZE_PRESET),\n forcedColorsFocusMixin('input'),\n componentStyles,\n // Must come after `componentStyles` — `@layer` precedence is fixed by which layer name is\n // *first* referenced across this whole array, and `componentStyles` is what establishes\n // `refine.base` (the unconditional `--_bg`/`--_border-color` defaults this mixin's\n // `refine.variants` rules need to win over). Placed earlier, `refine.variants` would end up\n // registered as the *lower*-priority layer, and every variant would silently render as the\n // base default — exactly the bug this ordering fixes.\n fieldVariantMixin({ container: '.field', text: 'input', tokenPrefix: 'input' }),\n ],\n});\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var e=`@layer refine.base{:host{--group-gap:var(--size-2);--group-radius:var(--rounded-lg);display:inline-flex}.button-group{gap:var(--group-gap);flex-direction:row;display:flex}}@layer refine.variants{:host([orientation=vertical]) .button-group{flex-direction:column}}@layer refine.overrides{:host([fullwidth]){width:100%;display:flex}:host([fullwidth]) .button-group{width:100%}:host([fullwidth]) ::slotted(ore-button){flex:1}:host([attached]) .button-group{gap:0}:host([attached]) ::slotted(ore-button:hover),:host([attached]) ::slotted(ore-button:focus-within){z-index:1;position:relative}:host([attached]:not([orientation=vertical])) ::slotted(ore-button){--button-radius:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:not(:first-child)){--button-border-start:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) 0 0 var(--group-radius)}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:last-child){--button-radius:0 var(--group-radius) var(--group-radius) 0}:host([attached][orientation=vertical]) ::slotted(ore-button){--button-radius:0}:host([attached][orientation=vertical]) ::slotted(ore-button:not(:first-child)){--button-border-top:0}:host([attached][orientation=vertical]) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) var(--group-radius) 0 0}:host([attached][orientation=vertical]) ::slotted(ore-button:last-child){--button-radius:0 0 var(--group-radius) var(--group-radius)}}`;exports.default=e;
1
+ var e=`@layer refine.base{:host{--group-gap:var(--size-2);--group-radius:var(--_radius,var(--rounded-lg));display:inline-flex}.button-group{gap:var(--group-gap);flex-direction:row;display:flex}}@layer refine.variants{:host([orientation=vertical]) .button-group{flex-direction:column}}@layer refine.overrides{:host([fullwidth]){width:100%;display:flex}:host([fullwidth]) .button-group{width:100%}:host([fullwidth]) ::slotted(ore-button){flex:1}:host([attached]) .button-group{gap:0}:host([attached]) ::slotted(ore-button:hover),:host([attached]) ::slotted(ore-button:focus-within){z-index:1;position:relative}:host([attached]:not([orientation=vertical])) ::slotted(ore-button){--button-radius:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:not(:first-child)){--button-border-start:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) 0 0 var(--group-radius)}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:last-child){--button-radius:0 var(--group-radius) var(--group-radius) 0}:host([attached][orientation=vertical]) ::slotted(ore-button){--button-radius:0}:host([attached][orientation=vertical]) ::slotted(ore-button:not(:first-child)){--button-border-top:0}:host([attached][orientation=vertical]) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) var(--group-radius) 0 0}:host([attached][orientation=vertical]) ::slotted(ore-button:last-child){--button-radius:0 0 var(--group-radius) var(--group-radius)}}`;exports.default=e;
2
2
  //# sourceMappingURL=button-group.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.css.cjs","names":[],"sources":["../../../src/inputs/button-group/button-group.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles\n ======================================== */\n\n :host {\n display: inline-flex;\n\n --group-gap: var(--size-2);\n --group-radius: var(--rounded-lg);\n }\n\n .button-group {\n display: flex;\n flex-direction: row;\n gap: var(--group-gap);\n }\n}\n\n@layer refine.variants {\n /* ========================================\n Orientation\n ======================================== */\n\n :host([orientation='vertical']) .button-group {\n flex-direction: column;\n }\n}\n\n@layer refine.overrides {\n /* ========================================\n Full Width\n ======================================== */\n\n :host([fullwidth]) {\n display: flex;\n width: 100%;\n }\n\n :host([fullwidth]) .button-group {\n width: 100%;\n }\n\n :host([fullwidth]) ::slotted(ore-button) {\n flex: 1;\n }\n\n /* ========================================\n Attached Mode\n ======================================== */\n\n :host([attached]) .button-group {\n gap: 0;\n }\n\n /* Ensure attached buttons have proper z-index on hover/focus */\n :host([attached]) ::slotted(ore-button:hover),\n :host([attached]) ::slotted(ore-button:focus-within) {\n position: relative;\n z-index: 1;\n }\n\n /* Horizontal attached - remove inner borders and round corners */\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:not(:first-child)) {\n --button-border-start: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) 0 0 var(--group-radius);\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:last-child) {\n --button-radius: 0 var(--group-radius) var(--group-radius) 0;\n }\n\n /* Vertical attached - remove inner borders and round corners */\n :host([attached][orientation='vertical']) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:not(:first-child)) {\n --button-border-top: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) var(--group-radius) 0 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:last-child) {\n --button-radius: 0 0 var(--group-radius) var(--group-radius);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"button-group.css.cjs","names":[],"sources":["../../../src/inputs/button-group/button-group.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles\n ======================================== */\n\n :host {\n display: inline-flex;\n\n --group-gap: var(--size-2);\n --group-radius: var(--_radius, var(--rounded-lg));\n }\n\n .button-group {\n display: flex;\n flex-direction: row;\n gap: var(--group-gap);\n }\n}\n\n@layer refine.variants {\n /* ========================================\n Orientation\n ======================================== */\n\n :host([orientation='vertical']) .button-group {\n flex-direction: column;\n }\n}\n\n@layer refine.overrides {\n /* ========================================\n Full Width\n ======================================== */\n\n :host([fullwidth]) {\n display: flex;\n width: 100%;\n }\n\n :host([fullwidth]) .button-group {\n width: 100%;\n }\n\n :host([fullwidth]) ::slotted(ore-button) {\n flex: 1;\n }\n\n /* ========================================\n Attached Mode\n ======================================== */\n\n :host([attached]) .button-group {\n gap: 0;\n }\n\n /* Ensure attached buttons have proper z-index on hover/focus */\n :host([attached]) ::slotted(ore-button:hover),\n :host([attached]) ::slotted(ore-button:focus-within) {\n position: relative;\n z-index: 1;\n }\n\n /* Horizontal attached - remove inner borders and round corners */\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:not(:first-child)) {\n --button-border-start: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) 0 0 var(--group-radius);\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:last-child) {\n --button-radius: 0 var(--group-radius) var(--group-radius) 0;\n }\n\n /* Vertical attached - remove inner borders and round corners */\n :host([attached][orientation='vertical']) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:not(:first-child)) {\n --button-border-top: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) var(--group-radius) 0 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:last-child) {\n --button-radius: 0 0 var(--group-radius) var(--group-radius);\n }\n}\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  //#region src/inputs/button-group/button-group.css?inline
2
- var e = "@layer refine.base{:host{--group-gap:var(--size-2);--group-radius:var(--rounded-lg);display:inline-flex}.button-group{gap:var(--group-gap);flex-direction:row;display:flex}}@layer refine.variants{:host([orientation=vertical]) .button-group{flex-direction:column}}@layer refine.overrides{:host([fullwidth]){width:100%;display:flex}:host([fullwidth]) .button-group{width:100%}:host([fullwidth]) ::slotted(ore-button){flex:1}:host([attached]) .button-group{gap:0}:host([attached]) ::slotted(ore-button:hover),:host([attached]) ::slotted(ore-button:focus-within){z-index:1;position:relative}:host([attached]:not([orientation=vertical])) ::slotted(ore-button){--button-radius:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:not(:first-child)){--button-border-start:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) 0 0 var(--group-radius)}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:last-child){--button-radius:0 var(--group-radius) var(--group-radius) 0}:host([attached][orientation=vertical]) ::slotted(ore-button){--button-radius:0}:host([attached][orientation=vertical]) ::slotted(ore-button:not(:first-child)){--button-border-top:0}:host([attached][orientation=vertical]) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) var(--group-radius) 0 0}:host([attached][orientation=vertical]) ::slotted(ore-button:last-child){--button-radius:0 0 var(--group-radius) var(--group-radius)}}";
2
+ var e = "@layer refine.base{:host{--group-gap:var(--size-2);--group-radius:var(--_radius,var(--rounded-lg));display:inline-flex}.button-group{gap:var(--group-gap);flex-direction:row;display:flex}}@layer refine.variants{:host([orientation=vertical]) .button-group{flex-direction:column}}@layer refine.overrides{:host([fullwidth]){width:100%;display:flex}:host([fullwidth]) .button-group{width:100%}:host([fullwidth]) ::slotted(ore-button){flex:1}:host([attached]) .button-group{gap:0}:host([attached]) ::slotted(ore-button:hover),:host([attached]) ::slotted(ore-button:focus-within){z-index:1;position:relative}:host([attached]:not([orientation=vertical])) ::slotted(ore-button){--button-radius:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:not(:first-child)){--button-border-start:0}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) 0 0 var(--group-radius)}:host([attached]:not([orientation=vertical])) ::slotted(ore-button:last-child){--button-radius:0 var(--group-radius) var(--group-radius) 0}:host([attached][orientation=vertical]) ::slotted(ore-button){--button-radius:0}:host([attached][orientation=vertical]) ::slotted(ore-button:not(:first-child)){--button-border-top:0}:host([attached][orientation=vertical]) ::slotted(ore-button:first-child){--button-radius:var(--group-radius) var(--group-radius) 0 0}:host([attached][orientation=vertical]) ::slotted(ore-button:last-child){--button-radius:0 0 var(--group-radius) var(--group-radius)}}";
3
3
  //#endregion
4
4
  export { e as default };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.css.js","names":[],"sources":["../../../src/inputs/button-group/button-group.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles\n ======================================== */\n\n :host {\n display: inline-flex;\n\n --group-gap: var(--size-2);\n --group-radius: var(--rounded-lg);\n }\n\n .button-group {\n display: flex;\n flex-direction: row;\n gap: var(--group-gap);\n }\n}\n\n@layer refine.variants {\n /* ========================================\n Orientation\n ======================================== */\n\n :host([orientation='vertical']) .button-group {\n flex-direction: column;\n }\n}\n\n@layer refine.overrides {\n /* ========================================\n Full Width\n ======================================== */\n\n :host([fullwidth]) {\n display: flex;\n width: 100%;\n }\n\n :host([fullwidth]) .button-group {\n width: 100%;\n }\n\n :host([fullwidth]) ::slotted(ore-button) {\n flex: 1;\n }\n\n /* ========================================\n Attached Mode\n ======================================== */\n\n :host([attached]) .button-group {\n gap: 0;\n }\n\n /* Ensure attached buttons have proper z-index on hover/focus */\n :host([attached]) ::slotted(ore-button:hover),\n :host([attached]) ::slotted(ore-button:focus-within) {\n position: relative;\n z-index: 1;\n }\n\n /* Horizontal attached - remove inner borders and round corners */\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:not(:first-child)) {\n --button-border-start: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) 0 0 var(--group-radius);\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:last-child) {\n --button-radius: 0 var(--group-radius) var(--group-radius) 0;\n }\n\n /* Vertical attached - remove inner borders and round corners */\n :host([attached][orientation='vertical']) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:not(:first-child)) {\n --button-border-top: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) var(--group-radius) 0 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:last-child) {\n --button-radius: 0 0 var(--group-radius) var(--group-radius);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"button-group.css.js","names":[],"sources":["../../../src/inputs/button-group/button-group.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles\n ======================================== */\n\n :host {\n display: inline-flex;\n\n --group-gap: var(--size-2);\n --group-radius: var(--_radius, var(--rounded-lg));\n }\n\n .button-group {\n display: flex;\n flex-direction: row;\n gap: var(--group-gap);\n }\n}\n\n@layer refine.variants {\n /* ========================================\n Orientation\n ======================================== */\n\n :host([orientation='vertical']) .button-group {\n flex-direction: column;\n }\n}\n\n@layer refine.overrides {\n /* ========================================\n Full Width\n ======================================== */\n\n :host([fullwidth]) {\n display: flex;\n width: 100%;\n }\n\n :host([fullwidth]) .button-group {\n width: 100%;\n }\n\n :host([fullwidth]) ::slotted(ore-button) {\n flex: 1;\n }\n\n /* ========================================\n Attached Mode\n ======================================== */\n\n :host([attached]) .button-group {\n gap: 0;\n }\n\n /* Ensure attached buttons have proper z-index on hover/focus */\n :host([attached]) ::slotted(ore-button:hover),\n :host([attached]) ::slotted(ore-button:focus-within) {\n position: relative;\n z-index: 1;\n }\n\n /* Horizontal attached - remove inner borders and round corners */\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:not(:first-child)) {\n --button-border-start: 0;\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) 0 0 var(--group-radius);\n }\n\n :host([attached]:not([orientation='vertical'])) ::slotted(ore-button:last-child) {\n --button-radius: 0 var(--group-radius) var(--group-radius) 0;\n }\n\n /* Vertical attached - remove inner borders and round corners */\n :host([attached][orientation='vertical']) ::slotted(ore-button) {\n --button-radius: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:not(:first-child)) {\n --button-border-top: 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:first-child) {\n --button-radius: var(--group-radius) var(--group-radius) 0 0;\n }\n\n :host([attached][orientation='vertical']) ::slotted(ore-button:last-child) {\n --button-radius: 0 0 var(--group-radius) var(--group-radius);\n }\n}\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { type Readable } from '@vielzeug/ripple';
2
- import type { ComponentSize, ThemeColor } from '../../shared';
2
+ import type { ComponentSize, RoundedSize, ThemeColor } from '../../shared';
3
3
  import type { ButtonVariant } from '../button/button';
4
4
  /** Button group properties */
5
5
  export type OreButtonGroupProps = {
@@ -13,6 +13,8 @@ export type OreButtonGroupProps = {
13
13
  label?: string;
14
14
  /** Layout direction */
15
15
  orientation?: 'horizontal' | 'vertical';
16
+ /** Corner radius of the group container (and its attached-mode end buttons) */
17
+ rounded?: RoundedSize | '';
16
18
  /** Shared size for all child buttons */
17
19
  size?: ComponentSize;
18
20
  /** Shared visual variant for all child buttons */
@@ -36,20 +38,21 @@ export declare const BUTTON_GROUP_CTX: import("@vielzeug/ore").InjectionKey<Butt
36
38
  * @attr {boolean} fullwidth - Group spans full width
37
39
  * @attr {string} label - Accessible label
38
40
  * @attr {string} orientation - 'horizontal' | 'vertical'
41
+ * @attr {string} rounded - Corner radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full' (bare attribute defaults to 'full')
39
42
  * @attr {string} size - Shared size: 'sm' | 'md' | 'lg'
40
43
  * @attr {string} variant - Shared visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'
41
44
  *
42
45
  * @slot - Place ore-button elements here
43
46
  *
44
47
  * @cssprop --group-gap - Gap between buttons (non-attached mode)
45
- * @cssprop --group-radius - Border radius of the group container
48
+ * @cssprop --group-radius - Border radius of the group container, defaults to the `rounded` attribute's token
46
49
  * @cssprop --button-radius - Passed through to child buttons to control corner radius
47
50
  * @cssprop --button-border-start - Passed through to suppress start borders in attached mode
48
51
  * @cssprop --button-border-top - Passed through to suppress top borders in vertical attached mode
49
52
  * @part group - Group container.
50
53
  * @example
51
54
  * ```html
52
- * <ore-button-group attached>
55
+ * <ore-button-group attached rounded="full">
53
56
  * <ore-button variant="solid" color="primary">Save</ore-button>
54
57
  * <ore-button variant="solid" color="primary">Save &amp; Continue</ore-button>
55
58
  * </ore-button-group>
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../../src/inputs/button-group/button-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,8BAA8B;AAC9B,MAAM,MAAM,mBAAmB,GAAG;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,wCAAwC;IACxC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,kDAAkD;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,OAAO,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,sEAAkE,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,gBAAgB,EAAG,kBAA2B,CAAC"}
1
+ {"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../../src/inputs/button-group/button-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,8BAA8B;AAC9B,MAAM,MAAM,mBAAmB,GAAG;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC;IAC3B,wCAAwC;IACxC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,kDAAkD;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,OAAO,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,sEAAkE,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,gBAAgB,EAAG,kBAA2B,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { CheckableProps, ComponentSize, ThemeColor } from '../../types';
2
- import { type CheckableChangePayload } from '../../headless';
3
2
  import '../../content/icon/icon';
4
3
  export type OreCheckboxEvents = {
5
- change: CheckableChangePayload;
4
+ change: Event;
5
+ input: Event;
6
6
  };
7
7
  export type OreCheckboxProps = CheckableProps & {
8
8
  /** Theme color */
@@ -15,7 +15,7 @@ export type OreCheckboxProps = CheckableProps & {
15
15
  helper?: string;
16
16
  /** Indeterminate state (partially checked) */
17
17
  indeterminate?: boolean;
18
- /** Require this checkbox to be checked for `<ore-form>` validation (e.g. a consent checkbox) */
18
+ /** Require this checkbox to be checked for native form validation (e.g. a consent checkbox) */
19
19
  required?: boolean;
20
20
  /** Component size */
21
21
  size?: ComponentSize;
@@ -28,7 +28,7 @@ export type OreCheckboxProps = CheckableProps & {
28
28
  * @attr {boolean} checked - Checked state
29
29
  * @attr {boolean} disabled - Disable checkbox interaction
30
30
  * @attr {boolean} indeterminate - Indeterminate (partially checked) state
31
- * @attr {boolean} required - Require this checkbox to be checked for `<ore-form>` validation
31
+ * @attr {boolean} required - Require this checkbox to be checked for native form validation
32
32
  * @attr {string} value - Field value submitted with forms
33
33
  * @attr {string} name - Form field name
34
34
  * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
@@ -36,7 +36,8 @@ export type OreCheckboxProps = CheckableProps & {
36
36
  * @attr {string} error - Error message (marks field as invalid)
37
37
  * @attr {string} helper - Helper text displayed below the checkbox
38
38
  *
39
- * @fires change - Emitted when checkbox is toggled. detail: { checked: boolean, value: string, originalEvent?: Event }
39
+ * @fires input - Emitted when checkbox is toggled.
40
+ * @fires change - Emitted when checkbox is toggled.
40
41
  *
41
42
  * @slot - Checkbox label text
42
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/inputs/checkbox/checkbox.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,KAAK,sBAAsB,EAAoC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,yBAAyB,CAAC;AAejC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,YAAY,EAAG,cAAuB,CAAC"}
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/inputs/checkbox/checkbox.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,yBAAyB,CAAC;AAejC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,YAAY,EAAG,cAAuB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type Readable } from '@vielzeug/ripple';
2
2
  import type { ComponentSize, ThemeColor } from '../../types';
3
- import { type ChoiceChangeDetail } from '../../headless';
3
+ import { type ChoiceChangeDetail } from '../../core';
4
4
  export type CheckboxGroupContext = {
5
5
  color: Readable<ThemeColor | undefined>;
6
6
  disabled: Readable<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../../../src/inputs/checkbox-group/checkbox-group.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAY,KAAK,QAAQ,EAAU,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,4DAA8D,CAAC;AAI9F,MAAM,MAAM,qBAAqB,GAAG;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,kBAAkB,EAAG,oBAA6B,CAAC"}
1
+ {"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../../../src/inputs/checkbox-group/checkbox-group.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,KAAK,QAAQ,EAAU,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,YAAY,CAAC;AAOpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,4DAA8D,CAAC;AAI9F,MAAM,MAAM,qBAAqB,GAAG;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,kBAAkB,EAAG,oBAA6B,CAAC"}