@vielzeug/refine 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1097) hide show
  1. package/README.md +89 -0
  2. package/dist/_dev.cjs +2 -0
  3. package/dist/_dev.cjs.map +1 -0
  4. package/dist/_dev.d.ts +2 -0
  5. package/dist/_dev.d.ts.map +1 -0
  6. package/dist/_dev.js +9 -0
  7. package/dist/_dev.js.map +1 -0
  8. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  9. package/dist/accordion-item.cjs +26 -0
  10. package/dist/accordion-item.cjs.map +1 -0
  11. package/dist/accordion-item.js +124 -0
  12. package/dist/accordion-item.js.map +1 -0
  13. package/dist/accordion.cjs +2 -0
  14. package/dist/accordion.cjs.map +1 -0
  15. package/dist/accordion.js +47 -0
  16. package/dist/accordion.js.map +1 -0
  17. package/dist/alert.cjs +36 -0
  18. package/dist/alert.cjs.map +1 -0
  19. package/dist/alert.js +93 -0
  20. package/dist/alert.js.map +1 -0
  21. package/dist/async.cjs +55 -0
  22. package/dist/async.cjs.map +1 -0
  23. package/dist/async.js +99 -0
  24. package/dist/async.js.map +1 -0
  25. package/dist/avatar.cjs +18 -0
  26. package/dist/avatar.cjs.map +1 -0
  27. package/dist/avatar.js +108 -0
  28. package/dist/avatar.js.map +1 -0
  29. package/dist/badge.cjs +7 -0
  30. package/dist/badge.cjs.map +1 -0
  31. package/dist/badge.js +65 -0
  32. package/dist/badge.js.map +1 -0
  33. package/dist/box.cjs +2 -0
  34. package/dist/box.cjs.map +1 -0
  35. package/dist/box.js +31 -0
  36. package/dist/box.js.map +1 -0
  37. package/dist/breadcrumb.cjs +21 -0
  38. package/dist/breadcrumb.cjs.map +1 -0
  39. package/dist/breadcrumb.js +57 -0
  40. package/dist/breadcrumb.js.map +1 -0
  41. package/dist/button-group.cjs +6 -0
  42. package/dist/button-group.cjs.map +1 -0
  43. package/dist/button-group.js +33 -0
  44. package/dist/button-group.js.map +1 -0
  45. package/dist/button.cjs +18 -0
  46. package/dist/button.cjs.map +1 -0
  47. package/dist/button.js +124 -0
  48. package/dist/button.js.map +1 -0
  49. package/dist/calendar.cjs +126 -0
  50. package/dist/calendar.cjs.map +1 -0
  51. package/dist/calendar.js +300 -0
  52. package/dist/calendar.js.map +1 -0
  53. package/dist/card.cjs +23 -0
  54. package/dist/card.cjs.map +1 -0
  55. package/dist/card.js +87 -0
  56. package/dist/card.js.map +1 -0
  57. package/dist/carousel.cjs +61 -0
  58. package/dist/carousel.cjs.map +1 -0
  59. package/dist/carousel.js +280 -0
  60. package/dist/carousel.js.map +1 -0
  61. package/dist/checkbox-group.cjs +18 -0
  62. package/dist/checkbox-group.cjs.map +1 -0
  63. package/dist/checkbox-group.js +118 -0
  64. package/dist/checkbox-group.js.map +1 -0
  65. package/dist/checkbox.cjs +11 -0
  66. package/dist/checkbox.cjs.map +1 -0
  67. package/dist/checkbox.js +88 -0
  68. package/dist/checkbox.js.map +1 -0
  69. package/dist/chip.cjs +42 -0
  70. package/dist/chip.cjs.map +1 -0
  71. package/dist/chip.js +133 -0
  72. package/dist/chip.js.map +1 -0
  73. package/dist/code-window.cjs +19 -0
  74. package/dist/code-window.cjs.map +1 -0
  75. package/dist/code-window.js +41 -0
  76. package/dist/code-window.js.map +1 -0
  77. package/dist/combobox.cjs +103 -0
  78. package/dist/combobox.cjs.map +1 -0
  79. package/dist/combobox.js +444 -0
  80. package/dist/combobox.js.map +1 -0
  81. package/dist/content/avatar/avatar-group.css?inline.cjs +2 -0
  82. package/dist/content/avatar/avatar-group.css?inline.cjs.map +1 -0
  83. package/dist/content/avatar/avatar-group.css?inline.js +6 -0
  84. package/dist/content/avatar/avatar-group.css?inline.js.map +1 -0
  85. package/dist/content/avatar/avatar.css?inline.cjs +2 -0
  86. package/dist/content/avatar/avatar.css?inline.cjs.map +1 -0
  87. package/dist/content/avatar/avatar.css?inline.js +6 -0
  88. package/dist/content/avatar/avatar.css?inline.js.map +1 -0
  89. package/dist/content/avatar/avatar.d.ts +88 -0
  90. package/dist/content/avatar/avatar.d.ts.map +1 -0
  91. package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs +2 -0
  92. package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs.map +1 -0
  93. package/dist/content/breadcrumb/breadcrumb-item.css?inline.js +6 -0
  94. package/dist/content/breadcrumb/breadcrumb-item.css?inline.js.map +1 -0
  95. package/dist/content/breadcrumb/breadcrumb.css?inline.cjs +2 -0
  96. package/dist/content/breadcrumb/breadcrumb.css?inline.cjs.map +1 -0
  97. package/dist/content/breadcrumb/breadcrumb.css?inline.js +6 -0
  98. package/dist/content/breadcrumb/breadcrumb.css?inline.js.map +1 -0
  99. package/dist/content/breadcrumb/breadcrumb.d.ts +57 -0
  100. package/dist/content/breadcrumb/breadcrumb.d.ts.map +1 -0
  101. package/dist/content/card/card.css?inline.cjs +2 -0
  102. package/dist/content/card/card.css?inline.cjs.map +1 -0
  103. package/dist/content/card/card.css?inline.js +6 -0
  104. package/dist/content/card/card.css?inline.js.map +1 -0
  105. package/dist/content/card/card.d.ts +74 -0
  106. package/dist/content/card/card.d.ts.map +1 -0
  107. package/dist/content/carousel/carousel-slide.cjs +2 -0
  108. package/dist/content/carousel/carousel-slide.cjs.map +1 -0
  109. package/dist/content/carousel/carousel-slide.css?inline.cjs +2 -0
  110. package/dist/content/carousel/carousel-slide.css?inline.cjs.map +1 -0
  111. package/dist/content/carousel/carousel-slide.css?inline.js +6 -0
  112. package/dist/content/carousel/carousel-slide.css?inline.js.map +1 -0
  113. package/dist/content/carousel/carousel-slide.d.ts +2 -0
  114. package/dist/content/carousel/carousel-slide.d.ts.map +1 -0
  115. package/dist/content/carousel/carousel-slide.js +18 -0
  116. package/dist/content/carousel/carousel-slide.js.map +1 -0
  117. package/dist/content/carousel/carousel.css?inline.cjs +2 -0
  118. package/dist/content/carousel/carousel.css?inline.cjs.map +1 -0
  119. package/dist/content/carousel/carousel.css?inline.js +6 -0
  120. package/dist/content/carousel/carousel.css?inline.js.map +1 -0
  121. package/dist/content/carousel/carousel.d.ts +110 -0
  122. package/dist/content/carousel/carousel.d.ts.map +1 -0
  123. package/dist/content/carousel/index.d.ts +3 -0
  124. package/dist/content/carousel/index.d.ts.map +1 -0
  125. package/dist/content/code-window/code-window.css?inline.cjs +2 -0
  126. package/dist/content/code-window/code-window.css?inline.cjs.map +1 -0
  127. package/dist/content/code-window/code-window.css?inline.js +6 -0
  128. package/dist/content/code-window/code-window.css?inline.js.map +1 -0
  129. package/dist/content/code-window/code-window.d.ts +61 -0
  130. package/dist/content/code-window/code-window.d.ts.map +1 -0
  131. package/dist/content/copy-command/copy-command.css?inline.cjs +2 -0
  132. package/dist/content/copy-command/copy-command.css?inline.cjs.map +1 -0
  133. package/dist/content/copy-command/copy-command.css?inline.js +6 -0
  134. package/dist/content/copy-command/copy-command.css?inline.js.map +1 -0
  135. package/dist/content/copy-command/copy-command.d.ts +66 -0
  136. package/dist/content/copy-command/copy-command.d.ts.map +1 -0
  137. package/dist/content/icon/icon.css?inline.cjs +2 -0
  138. package/dist/content/icon/icon.css?inline.cjs.map +1 -0
  139. package/dist/content/icon/icon.css?inline.js +6 -0
  140. package/dist/content/icon/icon.css?inline.js.map +1 -0
  141. package/dist/content/icon/icon.d.ts +45 -0
  142. package/dist/content/icon/icon.d.ts.map +1 -0
  143. package/dist/content/index.d.ts +23 -0
  144. package/dist/content/index.d.ts.map +1 -0
  145. package/dist/content/pagination/pagination.css?inline.cjs +2 -0
  146. package/dist/content/pagination/pagination.css?inline.cjs.map +1 -0
  147. package/dist/content/pagination/pagination.css?inline.js +6 -0
  148. package/dist/content/pagination/pagination.css?inline.js.map +1 -0
  149. package/dist/content/pagination/pagination.d.ts +61 -0
  150. package/dist/content/pagination/pagination.d.ts.map +1 -0
  151. package/dist/content/separator/separator.css?inline.cjs +2 -0
  152. package/dist/content/separator/separator.css?inline.cjs.map +1 -0
  153. package/dist/content/separator/separator.css?inline.js +6 -0
  154. package/dist/content/separator/separator.css?inline.js.map +1 -0
  155. package/dist/content/separator/separator.d.ts +38 -0
  156. package/dist/content/separator/separator.d.ts.map +1 -0
  157. package/dist/content/table/table.css?inline.cjs +2 -0
  158. package/dist/content/table/table.css?inline.cjs.map +1 -0
  159. package/dist/content/table/table.css?inline.js +6 -0
  160. package/dist/content/table/table.css?inline.js.map +1 -0
  161. package/dist/content/table/table.d.ts +76 -0
  162. package/dist/content/table/table.d.ts.map +1 -0
  163. package/dist/content/text/text.css?inline.cjs +2 -0
  164. package/dist/content/text/text.css?inline.cjs.map +1 -0
  165. package/dist/content/text/text.css?inline.js +6 -0
  166. package/dist/content/text/text.css?inline.js.map +1 -0
  167. package/dist/content/text/text.d.ts +55 -0
  168. package/dist/content/text/text.d.ts.map +1 -0
  169. package/dist/copy-command.cjs +17 -0
  170. package/dist/copy-command.cjs.map +1 -0
  171. package/dist/copy-command.js +55 -0
  172. package/dist/copy-command.js.map +1 -0
  173. package/dist/custom-elements.json +12641 -0
  174. package/dist/datagrid.cjs +435 -0
  175. package/dist/datagrid.cjs.map +1 -0
  176. package/dist/datagrid.js +764 -0
  177. package/dist/datagrid.js.map +1 -0
  178. package/dist/date-picker.cjs +133 -0
  179. package/dist/date-picker.cjs.map +1 -0
  180. package/dist/date-picker.js +315 -0
  181. package/dist/date-picker.js.map +1 -0
  182. package/dist/dialog.cjs +28 -0
  183. package/dist/dialog.cjs.map +1 -0
  184. package/dist/dialog.js +88 -0
  185. package/dist/dialog.js.map +1 -0
  186. package/dist/disclosure/accordion/accordion.css?inline.cjs +2 -0
  187. package/dist/disclosure/accordion/accordion.css?inline.cjs.map +1 -0
  188. package/dist/disclosure/accordion/accordion.css?inline.js +6 -0
  189. package/dist/disclosure/accordion/accordion.css?inline.js.map +1 -0
  190. package/dist/disclosure/accordion/accordion.d.ts +62 -0
  191. package/dist/disclosure/accordion/accordion.d.ts.map +1 -0
  192. package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs +2 -0
  193. package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs.map +1 -0
  194. package/dist/disclosure/accordion-item/accordion-item.css?inline.js +6 -0
  195. package/dist/disclosure/accordion-item/accordion-item.css?inline.js.map +1 -0
  196. package/dist/disclosure/accordion-item/accordion-item.d.ts +70 -0
  197. package/dist/disclosure/accordion-item/accordion-item.d.ts.map +1 -0
  198. package/dist/disclosure/index.d.ts +11 -0
  199. package/dist/disclosure/index.d.ts.map +1 -0
  200. package/dist/disclosure/tab-item/tab-item.css?inline.cjs +2 -0
  201. package/dist/disclosure/tab-item/tab-item.css?inline.cjs.map +1 -0
  202. package/dist/disclosure/tab-item/tab-item.css?inline.js +6 -0
  203. package/dist/disclosure/tab-item/tab-item.css?inline.js.map +1 -0
  204. package/dist/disclosure/tab-item/tab-item.d.ts +49 -0
  205. package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -0
  206. package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs +2 -0
  207. package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs.map +1 -0
  208. package/dist/disclosure/tab-panel/tab-panel.css?inline.js +6 -0
  209. package/dist/disclosure/tab-panel/tab-panel.css?inline.js.map +1 -0
  210. package/dist/disclosure/tab-panel/tab-panel.d.ts +33 -0
  211. package/dist/disclosure/tab-panel/tab-panel.d.ts.map +1 -0
  212. package/dist/disclosure/tabs/tabs.css?inline.cjs +2 -0
  213. package/dist/disclosure/tabs/tabs.css?inline.cjs.map +1 -0
  214. package/dist/disclosure/tabs/tabs.css?inline.js +6 -0
  215. package/dist/disclosure/tabs/tabs.css?inline.js.map +1 -0
  216. package/dist/disclosure/tabs/tabs.d.ts +75 -0
  217. package/dist/disclosure/tabs/tabs.d.ts.map +1 -0
  218. package/dist/drawer.cjs +32 -0
  219. package/dist/drawer.cjs.map +1 -0
  220. package/dist/drawer.js +199 -0
  221. package/dist/drawer.js.map +1 -0
  222. package/dist/errors.cjs +2 -0
  223. package/dist/errors.cjs.map +1 -0
  224. package/dist/errors.d.ts +9 -0
  225. package/dist/errors.d.ts.map +1 -0
  226. package/dist/errors.js +13 -0
  227. package/dist/errors.js.map +1 -0
  228. package/dist/feedback/alert/alert.css?inline.cjs +2 -0
  229. package/dist/feedback/alert/alert.css?inline.cjs.map +1 -0
  230. package/dist/feedback/alert/alert.css?inline.js +6 -0
  231. package/dist/feedback/alert/alert.css?inline.js.map +1 -0
  232. package/dist/feedback/alert/alert.d.ts +74 -0
  233. package/dist/feedback/alert/alert.d.ts.map +1 -0
  234. package/dist/feedback/async/async.css?inline.cjs +2 -0
  235. package/dist/feedback/async/async.css?inline.cjs.map +1 -0
  236. package/dist/feedback/async/async.css?inline.js +6 -0
  237. package/dist/feedback/async/async.css?inline.js.map +1 -0
  238. package/dist/feedback/async/async.d.ts +54 -0
  239. package/dist/feedback/async/async.d.ts.map +1 -0
  240. package/dist/feedback/badge/badge.css?inline.cjs +2 -0
  241. package/dist/feedback/badge/badge.css?inline.cjs.map +1 -0
  242. package/dist/feedback/badge/badge.css?inline.js +6 -0
  243. package/dist/feedback/badge/badge.css?inline.js.map +1 -0
  244. package/dist/feedback/badge/badge.d.ts +69 -0
  245. package/dist/feedback/badge/badge.d.ts.map +1 -0
  246. package/dist/feedback/chip/chip.css?inline.cjs +2 -0
  247. package/dist/feedback/chip/chip.css?inline.cjs.map +1 -0
  248. package/dist/feedback/chip/chip.css?inline.js +6 -0
  249. package/dist/feedback/chip/chip.css?inline.js.map +1 -0
  250. package/dist/feedback/chip/chip.d.ts +136 -0
  251. package/dist/feedback/chip/chip.d.ts.map +1 -0
  252. package/dist/feedback/index.d.ts +17 -0
  253. package/dist/feedback/index.d.ts.map +1 -0
  254. package/dist/feedback/password-strength/password-strength.css?inline.cjs +2 -0
  255. package/dist/feedback/password-strength/password-strength.css?inline.cjs.map +1 -0
  256. package/dist/feedback/password-strength/password-strength.css?inline.js +6 -0
  257. package/dist/feedback/password-strength/password-strength.css?inline.js.map +1 -0
  258. package/dist/feedback/password-strength/password-strength.d.ts +66 -0
  259. package/dist/feedback/password-strength/password-strength.d.ts.map +1 -0
  260. package/dist/feedback/progress/progress.css?inline.cjs +2 -0
  261. package/dist/feedback/progress/progress.css?inline.cjs.map +1 -0
  262. package/dist/feedback/progress/progress.css?inline.js +6 -0
  263. package/dist/feedback/progress/progress.css?inline.js.map +1 -0
  264. package/dist/feedback/progress/progress.d.ts +68 -0
  265. package/dist/feedback/progress/progress.d.ts.map +1 -0
  266. package/dist/feedback/skeleton/skeleton.css?inline.cjs +2 -0
  267. package/dist/feedback/skeleton/skeleton.css?inline.cjs.map +1 -0
  268. package/dist/feedback/skeleton/skeleton.css?inline.js +6 -0
  269. package/dist/feedback/skeleton/skeleton.css?inline.js.map +1 -0
  270. package/dist/feedback/skeleton/skeleton.d.ts +63 -0
  271. package/dist/feedback/skeleton/skeleton.d.ts.map +1 -0
  272. package/dist/feedback/toast/index.d.ts +2 -0
  273. package/dist/feedback/toast/index.d.ts.map +1 -0
  274. package/dist/feedback/toast/toast.css?inline.cjs +2 -0
  275. package/dist/feedback/toast/toast.css?inline.cjs.map +1 -0
  276. package/dist/feedback/toast/toast.css?inline.js +6 -0
  277. package/dist/feedback/toast/toast.css?inline.js.map +1 -0
  278. package/dist/feedback/toast/toast.d.ts +127 -0
  279. package/dist/feedback/toast/toast.d.ts.map +1 -0
  280. package/dist/file-input.cjs +70 -0
  281. package/dist/file-input.cjs.map +1 -0
  282. package/dist/file-input.js +209 -0
  283. package/dist/file-input.js.map +1 -0
  284. package/dist/form.cjs +11 -0
  285. package/dist/form.cjs.map +1 -0
  286. package/dist/form.js +56 -0
  287. package/dist/form.js.map +1 -0
  288. package/dist/grid-item.cjs +2 -0
  289. package/dist/grid-item.cjs.map +1 -0
  290. package/dist/grid-item.js +35 -0
  291. package/dist/grid-item.js.map +1 -0
  292. package/dist/grid.cjs +2 -0
  293. package/dist/grid.cjs.map +1 -0
  294. package/dist/grid.js +90 -0
  295. package/dist/grid.js.map +1 -0
  296. package/dist/headless/_internal.d.ts +17 -0
  297. package/dist/headless/_internal.d.ts.map +1 -0
  298. package/dist/headless/announcer.cjs +2 -0
  299. package/dist/headless/announcer.cjs.map +1 -0
  300. package/dist/headless/announcer.d.ts +25 -0
  301. package/dist/headless/announcer.d.ts.map +1 -0
  302. package/dist/headless/announcer.js +24 -0
  303. package/dist/headless/announcer.js.map +1 -0
  304. package/dist/headless/checkable.cjs +2 -0
  305. package/dist/headless/checkable.cjs.map +1 -0
  306. package/dist/headless/checkable.d.ts +42 -0
  307. package/dist/headless/checkable.d.ts.map +1 -0
  308. package/dist/headless/checkable.js +36 -0
  309. package/dist/headless/checkable.js.map +1 -0
  310. package/dist/headless/choice-field.cjs +2 -0
  311. package/dist/headless/choice-field.cjs.map +1 -0
  312. package/dist/headless/choice-field.d.ts +36 -0
  313. package/dist/headless/choice-field.d.ts.map +1 -0
  314. package/dist/headless/choice-field.js +42 -0
  315. package/dist/headless/choice-field.js.map +1 -0
  316. package/dist/headless/datagrid.cjs +2 -0
  317. package/dist/headless/datagrid.cjs.map +1 -0
  318. package/dist/headless/datagrid.d.ts +158 -0
  319. package/dist/headless/datagrid.d.ts.map +1 -0
  320. package/dist/headless/datagrid.js +55 -0
  321. package/dist/headless/datagrid.js.map +1 -0
  322. package/dist/headless/date-picker.cjs +2 -0
  323. package/dist/headless/date-picker.cjs.map +1 -0
  324. package/dist/headless/date-picker.d.ts +114 -0
  325. package/dist/headless/date-picker.d.ts.map +1 -0
  326. package/dist/headless/date-picker.js +184 -0
  327. package/dist/headless/date-picker.js.map +1 -0
  328. package/dist/headless/dialog-focus.cjs +2 -0
  329. package/dist/headless/dialog-focus.cjs.map +1 -0
  330. package/dist/headless/dialog-focus.d.ts +40 -0
  331. package/dist/headless/dialog-focus.d.ts.map +1 -0
  332. package/dist/headless/dialog-focus.js +22 -0
  333. package/dist/headless/dialog-focus.js.map +1 -0
  334. package/dist/headless/direction.cjs +2 -0
  335. package/dist/headless/direction.cjs.map +1 -0
  336. package/dist/headless/direction.d.ts +11 -0
  337. package/dist/headless/direction.d.ts.map +1 -0
  338. package/dist/headless/direction.js +14 -0
  339. package/dist/headless/direction.js.map +1 -0
  340. package/dist/headless/field-base.cjs +2 -0
  341. package/dist/headless/field-base.cjs.map +1 -0
  342. package/dist/headless/field-base.d.ts +148 -0
  343. package/dist/headless/field-base.d.ts.map +1 -0
  344. package/dist/headless/field-base.js +46 -0
  345. package/dist/headless/field-base.js.map +1 -0
  346. package/dist/headless/focus-trap.cjs +2 -0
  347. package/dist/headless/focus-trap.cjs.map +1 -0
  348. package/dist/headless/focus-trap.d.ts +45 -0
  349. package/dist/headless/focus-trap.d.ts.map +1 -0
  350. package/dist/headless/focus-trap.js +51 -0
  351. package/dist/headless/focus-trap.js.map +1 -0
  352. package/dist/headless/focus.cjs +2 -0
  353. package/dist/headless/focus.cjs.map +1 -0
  354. package/dist/headless/focus.d.ts +34 -0
  355. package/dist/headless/focus.d.ts.map +1 -0
  356. package/dist/headless/focus.js +34 -0
  357. package/dist/headless/focus.js.map +1 -0
  358. package/dist/headless/index.d.ts +28 -0
  359. package/dist/headless/index.d.ts.map +1 -0
  360. package/dist/headless/keyboard.cjs +2 -0
  361. package/dist/headless/keyboard.cjs.map +1 -0
  362. package/dist/headless/keyboard.d.ts +52 -0
  363. package/dist/headless/keyboard.d.ts.map +1 -0
  364. package/dist/headless/keyboard.js +29 -0
  365. package/dist/headless/keyboard.js.map +1 -0
  366. package/dist/headless/light-dom.cjs +2 -0
  367. package/dist/headless/light-dom.cjs.map +1 -0
  368. package/dist/headless/light-dom.d.ts +12 -0
  369. package/dist/headless/light-dom.d.ts.map +1 -0
  370. package/dist/headless/light-dom.js +6 -0
  371. package/dist/headless/light-dom.js.map +1 -0
  372. package/dist/headless/nav.cjs +2 -0
  373. package/dist/headless/nav.cjs.map +1 -0
  374. package/dist/headless/nav.d.ts +66 -0
  375. package/dist/headless/nav.d.ts.map +1 -0
  376. package/dist/headless/nav.js +115 -0
  377. package/dist/headless/nav.js.map +1 -0
  378. package/dist/headless/numbers.cjs +2 -0
  379. package/dist/headless/numbers.cjs.map +1 -0
  380. package/dist/headless/numbers.d.ts +14 -0
  381. package/dist/headless/numbers.d.ts.map +1 -0
  382. package/dist/headless/numbers.js +9 -0
  383. package/dist/headless/numbers.js.map +1 -0
  384. package/dist/headless/option-list.cjs +2 -0
  385. package/dist/headless/option-list.cjs.map +1 -0
  386. package/dist/headless/option-list.d.ts +107 -0
  387. package/dist/headless/option-list.d.ts.map +1 -0
  388. package/dist/headless/option-list.js +66 -0
  389. package/dist/headless/option-list.js.map +1 -0
  390. package/dist/headless/ore.cjs +2 -0
  391. package/dist/headless/ore.cjs.map +1 -0
  392. package/dist/headless/ore.d.ts +20 -0
  393. package/dist/headless/ore.d.ts.map +1 -0
  394. package/dist/headless/ore.js +9 -0
  395. package/dist/headless/ore.js.map +1 -0
  396. package/dist/headless/overlay.cjs +2 -0
  397. package/dist/headless/overlay.cjs.map +1 -0
  398. package/dist/headless/overlay.d.ts +62 -0
  399. package/dist/headless/overlay.d.ts.map +1 -0
  400. package/dist/headless/overlay.js +29 -0
  401. package/dist/headless/overlay.js.map +1 -0
  402. package/dist/headless/paginated-list.cjs +2 -0
  403. package/dist/headless/paginated-list.cjs.map +1 -0
  404. package/dist/headless/paginated-list.d.ts +42 -0
  405. package/dist/headless/paginated-list.d.ts.map +1 -0
  406. package/dist/headless/paginated-list.js +34 -0
  407. package/dist/headless/paginated-list.js.map +1 -0
  408. package/dist/headless/parse.cjs +2 -0
  409. package/dist/headless/parse.cjs.map +1 -0
  410. package/dist/headless/parse.d.ts +15 -0
  411. package/dist/headless/parse.d.ts.map +1 -0
  412. package/dist/headless/parse.js +9 -0
  413. package/dist/headless/parse.js.map +1 -0
  414. package/dist/headless/positioner.cjs +2 -0
  415. package/dist/headless/positioner.cjs.map +1 -0
  416. package/dist/headless/positioner.d.ts +40 -0
  417. package/dist/headless/positioner.d.ts.map +1 -0
  418. package/dist/headless/positioner.js +38 -0
  419. package/dist/headless/positioner.js.map +1 -0
  420. package/dist/headless/selection-control.cjs +2 -0
  421. package/dist/headless/selection-control.cjs.map +1 -0
  422. package/dist/headless/selection-control.d.ts +30 -0
  423. package/dist/headless/selection-control.d.ts.map +1 -0
  424. package/dist/headless/selection-control.js +44 -0
  425. package/dist/headless/selection-control.js.map +1 -0
  426. package/dist/headless/signals.cjs +2 -0
  427. package/dist/headless/signals.cjs.map +1 -0
  428. package/dist/headless/signals.d.ts +20 -0
  429. package/dist/headless/signals.d.ts.map +1 -0
  430. package/dist/headless/signals.js +12 -0
  431. package/dist/headless/signals.js.map +1 -0
  432. package/dist/headless/slider.cjs +2 -0
  433. package/dist/headless/slider.cjs.map +1 -0
  434. package/dist/headless/slider.d.ts +28 -0
  435. package/dist/headless/slider.d.ts.map +1 -0
  436. package/dist/headless/slider.js +40 -0
  437. package/dist/headless/slider.js.map +1 -0
  438. package/dist/headless/sort-control.cjs +2 -0
  439. package/dist/headless/sort-control.cjs.map +1 -0
  440. package/dist/headless/sort-control.d.ts +22 -0
  441. package/dist/headless/sort-control.d.ts.map +1 -0
  442. package/dist/headless/sort-control.js +36 -0
  443. package/dist/headless/sort-control.js.map +1 -0
  444. package/dist/headless/spinner.cjs +2 -0
  445. package/dist/headless/spinner.cjs.map +1 -0
  446. package/dist/headless/spinner.d.ts +19 -0
  447. package/dist/headless/spinner.d.ts.map +1 -0
  448. package/dist/headless/spinner.js +52 -0
  449. package/dist/headless/spinner.js.map +1 -0
  450. package/dist/headless/swipe.cjs +2 -0
  451. package/dist/headless/swipe.cjs.map +1 -0
  452. package/dist/headless/swipe.d.ts +38 -0
  453. package/dist/headless/swipe.d.ts.map +1 -0
  454. package/dist/headless/swipe.js +58 -0
  455. package/dist/headless/swipe.js.map +1 -0
  456. package/dist/headless/text-field.cjs +2 -0
  457. package/dist/headless/text-field.cjs.map +1 -0
  458. package/dist/headless/text-field.d.ts +45 -0
  459. package/dist/headless/text-field.d.ts.map +1 -0
  460. package/dist/headless/text-field.js +41 -0
  461. package/dist/headless/text-field.js.map +1 -0
  462. package/dist/headless/typeahead.cjs +2 -0
  463. package/dist/headless/typeahead.cjs.map +1 -0
  464. package/dist/headless/typeahead.d.ts +53 -0
  465. package/dist/headless/typeahead.d.ts.map +1 -0
  466. package/dist/headless/typeahead.js +23 -0
  467. package/dist/headless/typeahead.js.map +1 -0
  468. package/dist/headless.cjs +1 -0
  469. package/dist/headless.js +26 -0
  470. package/dist/icon.cjs +2 -0
  471. package/dist/icon.cjs.map +1 -0
  472. package/dist/icon.js +87 -0
  473. package/dist/icon.js.map +1 -0
  474. package/dist/index.cjs +1 -0
  475. package/dist/index.d.ts +9 -0
  476. package/dist/index.d.ts.map +1 -0
  477. package/dist/index.js +61 -0
  478. package/dist/input.cjs +67 -0
  479. package/dist/input.cjs.map +1 -0
  480. package/dist/input.js +184 -0
  481. package/dist/input.js.map +1 -0
  482. package/dist/inputs/button/button.css?inline.cjs +2 -0
  483. package/dist/inputs/button/button.css?inline.cjs.map +1 -0
  484. package/dist/inputs/button/button.css?inline.js +6 -0
  485. package/dist/inputs/button/button.css?inline.js.map +1 -0
  486. package/dist/inputs/button/button.d.ts +85 -0
  487. package/dist/inputs/button/button.d.ts.map +1 -0
  488. package/dist/inputs/button-group/button-group.css?inline.cjs +2 -0
  489. package/dist/inputs/button-group/button-group.css?inline.cjs.map +1 -0
  490. package/dist/inputs/button-group/button-group.css?inline.js +6 -0
  491. package/dist/inputs/button-group/button-group.css?inline.js.map +1 -0
  492. package/dist/inputs/button-group/button-group.d.ts +64 -0
  493. package/dist/inputs/button-group/button-group.d.ts.map +1 -0
  494. package/dist/inputs/calendar/calendar.css?inline.cjs +2 -0
  495. package/dist/inputs/calendar/calendar.css?inline.cjs.map +1 -0
  496. package/dist/inputs/calendar/calendar.css?inline.js +6 -0
  497. package/dist/inputs/calendar/calendar.css?inline.js.map +1 -0
  498. package/dist/inputs/calendar/calendar.d.ts +134 -0
  499. package/dist/inputs/calendar/calendar.d.ts.map +1 -0
  500. package/dist/inputs/checkbox/checkbox.css?inline.cjs +2 -0
  501. package/dist/inputs/checkbox/checkbox.css?inline.cjs.map +1 -0
  502. package/dist/inputs/checkbox/checkbox.css?inline.js +6 -0
  503. package/dist/inputs/checkbox/checkbox.css?inline.js.map +1 -0
  504. package/dist/inputs/checkbox/checkbox.d.ts +60 -0
  505. package/dist/inputs/checkbox/checkbox.d.ts.map +1 -0
  506. package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs +2 -0
  507. package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs.map +1 -0
  508. package/dist/inputs/checkbox-group/checkbox-group.css?inline.js +6 -0
  509. package/dist/inputs/checkbox-group/checkbox-group.css?inline.js.map +1 -0
  510. package/dist/inputs/checkbox-group/checkbox-group.d.ts +75 -0
  511. package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -0
  512. package/dist/inputs/combobox/combobox-options.cjs +2 -0
  513. package/dist/inputs/combobox/combobox-options.cjs.map +1 -0
  514. package/dist/inputs/combobox/combobox-options.d.ts +6 -0
  515. package/dist/inputs/combobox/combobox-options.d.ts.map +1 -0
  516. package/dist/inputs/combobox/combobox-options.js +26 -0
  517. package/dist/inputs/combobox/combobox-options.js.map +1 -0
  518. package/dist/inputs/combobox/combobox.css?inline.cjs +2 -0
  519. package/dist/inputs/combobox/combobox.css?inline.cjs.map +1 -0
  520. package/dist/inputs/combobox/combobox.css?inline.js +6 -0
  521. package/dist/inputs/combobox/combobox.css?inline.js.map +1 -0
  522. package/dist/inputs/combobox/combobox.d.ts +45 -0
  523. package/dist/inputs/combobox/combobox.d.ts.map +1 -0
  524. package/dist/inputs/combobox/combobox.types.d.ts +45 -0
  525. package/dist/inputs/combobox/combobox.types.d.ts.map +1 -0
  526. package/dist/inputs/datagrid/datagrid-column.cjs +2 -0
  527. package/dist/inputs/datagrid/datagrid-column.cjs.map +1 -0
  528. package/dist/inputs/datagrid/datagrid-column.d.ts +7 -0
  529. package/dist/inputs/datagrid/datagrid-column.d.ts.map +1 -0
  530. package/dist/inputs/datagrid/datagrid-column.js +31 -0
  531. package/dist/inputs/datagrid/datagrid-column.js.map +1 -0
  532. package/dist/inputs/datagrid/datagrid-controls.cjs +2 -0
  533. package/dist/inputs/datagrid/datagrid-controls.cjs.map +1 -0
  534. package/dist/inputs/datagrid/datagrid-controls.d.ts +98 -0
  535. package/dist/inputs/datagrid/datagrid-controls.d.ts.map +1 -0
  536. package/dist/inputs/datagrid/datagrid-controls.js +147 -0
  537. package/dist/inputs/datagrid/datagrid-controls.js.map +1 -0
  538. package/dist/inputs/datagrid/datagrid-nav.cjs +2 -0
  539. package/dist/inputs/datagrid/datagrid-nav.cjs.map +1 -0
  540. package/dist/inputs/datagrid/datagrid-nav.d.ts +33 -0
  541. package/dist/inputs/datagrid/datagrid-nav.d.ts.map +1 -0
  542. package/dist/inputs/datagrid/datagrid-nav.js +51 -0
  543. package/dist/inputs/datagrid/datagrid-nav.js.map +1 -0
  544. package/dist/inputs/datagrid/datagrid.css?inline.cjs +2 -0
  545. package/dist/inputs/datagrid/datagrid.css?inline.cjs.map +1 -0
  546. package/dist/inputs/datagrid/datagrid.css?inline.js +6 -0
  547. package/dist/inputs/datagrid/datagrid.css?inline.js.map +1 -0
  548. package/dist/inputs/datagrid/datagrid.d.ts +302 -0
  549. package/dist/inputs/datagrid/datagrid.d.ts.map +1 -0
  550. package/dist/inputs/date-picker/date-picker.css?inline.cjs +2 -0
  551. package/dist/inputs/date-picker/date-picker.css?inline.cjs.map +1 -0
  552. package/dist/inputs/date-picker/date-picker.css?inline.js +6 -0
  553. package/dist/inputs/date-picker/date-picker.css?inline.js.map +1 -0
  554. package/dist/inputs/date-picker/date-picker.d.ts +112 -0
  555. package/dist/inputs/date-picker/date-picker.d.ts.map +1 -0
  556. package/dist/inputs/file-input/file-input.css?inline.cjs +2 -0
  557. package/dist/inputs/file-input/file-input.css?inline.cjs.map +1 -0
  558. package/dist/inputs/file-input/file-input.css?inline.js +6 -0
  559. package/dist/inputs/file-input/file-input.css?inline.js.map +1 -0
  560. package/dist/inputs/file-input/file-input.d.ts +90 -0
  561. package/dist/inputs/file-input/file-input.d.ts.map +1 -0
  562. package/dist/inputs/form/form.css?inline.cjs +2 -0
  563. package/dist/inputs/form/form.css?inline.cjs.map +1 -0
  564. package/dist/inputs/form/form.css?inline.js +6 -0
  565. package/dist/inputs/form/form.css?inline.js.map +1 -0
  566. package/dist/inputs/form/form.d.ts +59 -0
  567. package/dist/inputs/form/form.d.ts.map +1 -0
  568. package/dist/inputs/index.d.ts +47 -0
  569. package/dist/inputs/index.d.ts.map +1 -0
  570. package/dist/inputs/input/input.css?inline.cjs +2 -0
  571. package/dist/inputs/input/input.css?inline.cjs.map +1 -0
  572. package/dist/inputs/input/input.css?inline.js +6 -0
  573. package/dist/inputs/input/input.css?inline.js.map +1 -0
  574. package/dist/inputs/input/input.d.ts +96 -0
  575. package/dist/inputs/input/input.d.ts.map +1 -0
  576. package/dist/inputs/number-input/number-input.css?inline.cjs +2 -0
  577. package/dist/inputs/number-input/number-input.css?inline.cjs.map +1 -0
  578. package/dist/inputs/number-input/number-input.css?inline.js +6 -0
  579. package/dist/inputs/number-input/number-input.css?inline.js.map +1 -0
  580. package/dist/inputs/number-input/number-input.d.ts +102 -0
  581. package/dist/inputs/number-input/number-input.d.ts.map +1 -0
  582. package/dist/inputs/otp-input/otp-input.css?inline.cjs +2 -0
  583. package/dist/inputs/otp-input/otp-input.css?inline.cjs.map +1 -0
  584. package/dist/inputs/otp-input/otp-input.css?inline.js +6 -0
  585. package/dist/inputs/otp-input/otp-input.css?inline.js.map +1 -0
  586. package/dist/inputs/otp-input/otp-input.d.ts +82 -0
  587. package/dist/inputs/otp-input/otp-input.d.ts.map +1 -0
  588. package/dist/inputs/radio/radio.css?inline.cjs +2 -0
  589. package/dist/inputs/radio/radio.css?inline.cjs.map +1 -0
  590. package/dist/inputs/radio/radio.css?inline.js +6 -0
  591. package/dist/inputs/radio/radio.css?inline.js.map +1 -0
  592. package/dist/inputs/radio/radio.d.ts +56 -0
  593. package/dist/inputs/radio/radio.d.ts.map +1 -0
  594. package/dist/inputs/radio-group/radio-group.css?inline.cjs +2 -0
  595. package/dist/inputs/radio-group/radio-group.css?inline.cjs.map +1 -0
  596. package/dist/inputs/radio-group/radio-group.css?inline.js +6 -0
  597. package/dist/inputs/radio-group/radio-group.css?inline.js.map +1 -0
  598. package/dist/inputs/radio-group/radio-group.d.ts +74 -0
  599. package/dist/inputs/radio-group/radio-group.d.ts.map +1 -0
  600. package/dist/inputs/rating/rating.css?inline.cjs +2 -0
  601. package/dist/inputs/rating/rating.css?inline.cjs.map +1 -0
  602. package/dist/inputs/rating/rating.css?inline.js +6 -0
  603. package/dist/inputs/rating/rating.css?inline.js.map +1 -0
  604. package/dist/inputs/rating/rating.d.ts +68 -0
  605. package/dist/inputs/rating/rating.d.ts.map +1 -0
  606. package/dist/inputs/select/select.css?inline.cjs +2 -0
  607. package/dist/inputs/select/select.css?inline.cjs.map +1 -0
  608. package/dist/inputs/select/select.css?inline.js +6 -0
  609. package/dist/inputs/select/select.css?inline.js.map +1 -0
  610. package/dist/inputs/select/select.d.ts +89 -0
  611. package/dist/inputs/select/select.d.ts.map +1 -0
  612. package/dist/inputs/shared/field-binding.cjs +2 -0
  613. package/dist/inputs/shared/field-binding.cjs.map +1 -0
  614. package/dist/inputs/shared/field-binding.d.ts +31 -0
  615. package/dist/inputs/shared/field-binding.d.ts.map +1 -0
  616. package/dist/inputs/shared/field-binding.js +31 -0
  617. package/dist/inputs/shared/field-binding.js.map +1 -0
  618. package/dist/inputs/shared/form-context.cjs +2 -0
  619. package/dist/inputs/shared/form-context.cjs.map +1 -0
  620. package/dist/inputs/shared/form-context.d.ts +49 -0
  621. package/dist/inputs/shared/form-context.d.ts.map +1 -0
  622. package/dist/inputs/shared/form-context.js +15 -0
  623. package/dist/inputs/shared/form-context.js.map +1 -0
  624. package/dist/inputs/shared/index.d.ts +5 -0
  625. package/dist/inputs/shared/index.d.ts.map +1 -0
  626. package/dist/inputs/shared/templates.cjs +11 -0
  627. package/dist/inputs/shared/templates.cjs.map +1 -0
  628. package/dist/inputs/shared/templates.d.ts +13 -0
  629. package/dist/inputs/shared/templates.d.ts.map +1 -0
  630. package/dist/inputs/shared/templates.js +18 -0
  631. package/dist/inputs/shared/templates.js.map +1 -0
  632. package/dist/inputs/shared/use-form-action.cjs +2 -0
  633. package/dist/inputs/shared/use-form-action.cjs.map +1 -0
  634. package/dist/inputs/shared/use-form-action.d.ts +17 -0
  635. package/dist/inputs/shared/use-form-action.d.ts.map +1 -0
  636. package/dist/inputs/shared/use-form-action.js +19 -0
  637. package/dist/inputs/shared/use-form-action.js.map +1 -0
  638. package/dist/inputs/slider/slider.css?inline.cjs +2 -0
  639. package/dist/inputs/slider/slider.css?inline.cjs.map +1 -0
  640. package/dist/inputs/slider/slider.css?inline.js +6 -0
  641. package/dist/inputs/slider/slider.css?inline.js.map +1 -0
  642. package/dist/inputs/slider/slider.d.ts +95 -0
  643. package/dist/inputs/slider/slider.d.ts.map +1 -0
  644. package/dist/inputs/switch/switch.css?inline.cjs +2 -0
  645. package/dist/inputs/switch/switch.css?inline.cjs.map +1 -0
  646. package/dist/inputs/switch/switch.css?inline.js +6 -0
  647. package/dist/inputs/switch/switch.css?inline.js.map +1 -0
  648. package/dist/inputs/switch/switch.d.ts +56 -0
  649. package/dist/inputs/switch/switch.d.ts.map +1 -0
  650. package/dist/inputs/textarea/textarea.css?inline.cjs +2 -0
  651. package/dist/inputs/textarea/textarea.css?inline.cjs.map +1 -0
  652. package/dist/inputs/textarea/textarea.css?inline.js +6 -0
  653. package/dist/inputs/textarea/textarea.css?inline.js.map +1 -0
  654. package/dist/inputs/textarea/textarea.d.ts +91 -0
  655. package/dist/inputs/textarea/textarea.d.ts.map +1 -0
  656. package/dist/inputs/time-picker/time-picker.css?inline.cjs +2 -0
  657. package/dist/inputs/time-picker/time-picker.css?inline.cjs.map +1 -0
  658. package/dist/inputs/time-picker/time-picker.css?inline.js +6 -0
  659. package/dist/inputs/time-picker/time-picker.css?inline.js.map +1 -0
  660. package/dist/inputs/time-picker/time-picker.d.ts +103 -0
  661. package/dist/inputs/time-picker/time-picker.d.ts.map +1 -0
  662. package/dist/layout/box/box.css?inline.cjs +2 -0
  663. package/dist/layout/box/box.css?inline.cjs.map +1 -0
  664. package/dist/layout/box/box.css?inline.js +6 -0
  665. package/dist/layout/box/box.css?inline.js.map +1 -0
  666. package/dist/layout/box/box.d.ts +52 -0
  667. package/dist/layout/box/box.d.ts.map +1 -0
  668. package/dist/layout/grid/grid.css?inline.cjs +2 -0
  669. package/dist/layout/grid/grid.css?inline.cjs.map +1 -0
  670. package/dist/layout/grid/grid.css?inline.js +6 -0
  671. package/dist/layout/grid/grid.css?inline.js.map +1 -0
  672. package/dist/layout/grid/grid.d.ts +105 -0
  673. package/dist/layout/grid/grid.d.ts.map +1 -0
  674. package/dist/layout/grid-item/grid-item.css?inline.cjs +2 -0
  675. package/dist/layout/grid-item/grid-item.css?inline.cjs.map +1 -0
  676. package/dist/layout/grid-item/grid-item.css?inline.js +6 -0
  677. package/dist/layout/grid-item/grid-item.css?inline.js.map +1 -0
  678. package/dist/layout/grid-item/grid-item.d.ts +54 -0
  679. package/dist/layout/grid-item/grid-item.d.ts.map +1 -0
  680. package/dist/layout/index.d.ts +11 -0
  681. package/dist/layout/index.d.ts.map +1 -0
  682. package/dist/layout/navbar/navbar.css?inline.cjs +2 -0
  683. package/dist/layout/navbar/navbar.css?inline.cjs.map +1 -0
  684. package/dist/layout/navbar/navbar.css?inline.js +6 -0
  685. package/dist/layout/navbar/navbar.css?inline.js.map +1 -0
  686. package/dist/layout/navbar/navbar.d.ts +153 -0
  687. package/dist/layout/navbar/navbar.d.ts.map +1 -0
  688. package/dist/layout/sidebar/sidebar-group.css?inline.cjs +2 -0
  689. package/dist/layout/sidebar/sidebar-group.css?inline.cjs.map +1 -0
  690. package/dist/layout/sidebar/sidebar-group.css?inline.js +6 -0
  691. package/dist/layout/sidebar/sidebar-group.css?inline.js.map +1 -0
  692. package/dist/layout/sidebar/sidebar-item.css?inline.cjs +2 -0
  693. package/dist/layout/sidebar/sidebar-item.css?inline.cjs.map +1 -0
  694. package/dist/layout/sidebar/sidebar-item.css?inline.js +6 -0
  695. package/dist/layout/sidebar/sidebar-item.css?inline.js.map +1 -0
  696. package/dist/layout/sidebar/sidebar.css?inline.cjs +2 -0
  697. package/dist/layout/sidebar/sidebar.css?inline.cjs.map +1 -0
  698. package/dist/layout/sidebar/sidebar.css?inline.js +6 -0
  699. package/dist/layout/sidebar/sidebar.css?inline.js.map +1 -0
  700. package/dist/layout/sidebar/sidebar.d.ts +226 -0
  701. package/dist/layout/sidebar/sidebar.d.ts.map +1 -0
  702. package/dist/menu.cjs +30 -0
  703. package/dist/menu.cjs.map +1 -0
  704. package/dist/menu.js +197 -0
  705. package/dist/menu.js.map +1 -0
  706. package/dist/navbar.cjs +68 -0
  707. package/dist/navbar.cjs.map +1 -0
  708. package/dist/navbar.js +283 -0
  709. package/dist/navbar.js.map +1 -0
  710. package/dist/number-input.cjs +40 -0
  711. package/dist/number-input.cjs.map +1 -0
  712. package/dist/number-input.js +141 -0
  713. package/dist/number-input.js.map +1 -0
  714. package/dist/ore/dist/_dev.cjs +2 -0
  715. package/dist/ore/dist/_dev.cjs.map +1 -0
  716. package/dist/ore/dist/_dev.js +12 -0
  717. package/dist/ore/dist/_dev.js.map +1 -0
  718. package/dist/ore/dist/aria.cjs +2 -0
  719. package/dist/ore/dist/aria.cjs.map +1 -0
  720. package/dist/ore/dist/aria.js +37 -0
  721. package/dist/ore/dist/aria.js.map +1 -0
  722. package/dist/ore/dist/base-element.cjs +2 -0
  723. package/dist/ore/dist/base-element.cjs.map +1 -0
  724. package/dist/ore/dist/base-element.js +146 -0
  725. package/dist/ore/dist/base-element.js.map +1 -0
  726. package/dist/ore/dist/context-bag.cjs +2 -0
  727. package/dist/ore/dist/context-bag.cjs.map +1 -0
  728. package/dist/ore/dist/context-bag.js +28 -0
  729. package/dist/ore/dist/context-bag.js.map +1 -0
  730. package/dist/ore/dist/context.cjs +2 -0
  731. package/dist/ore/dist/context.cjs.map +1 -0
  732. package/dist/ore/dist/context.js +38 -0
  733. package/dist/ore/dist/context.js.map +1 -0
  734. package/dist/ore/dist/define.cjs +2 -0
  735. package/dist/ore/dist/define.cjs.map +1 -0
  736. package/dist/ore/dist/define.js +27 -0
  737. package/dist/ore/dist/define.js.map +1 -0
  738. package/dist/ore/dist/directives/classMap.cjs +1 -0
  739. package/dist/ore/dist/directives/classMap.js +1 -0
  740. package/dist/ore/dist/directives/each.cjs +1 -0
  741. package/dist/ore/dist/directives/each.js +5 -0
  742. package/dist/ore/dist/directives/live.cjs +2 -0
  743. package/dist/ore/dist/directives/live.cjs.map +1 -0
  744. package/dist/ore/dist/directives/live.js +6 -0
  745. package/dist/ore/dist/directives/live.js.map +1 -0
  746. package/dist/ore/dist/directives/model.cjs +1 -0
  747. package/dist/ore/dist/directives/model.js +3 -0
  748. package/dist/ore/dist/directives/raw.cjs +2 -0
  749. package/dist/ore/dist/directives/raw.cjs.map +1 -0
  750. package/dist/ore/dist/directives/raw.js +35 -0
  751. package/dist/ore/dist/directives/raw.js.map +1 -0
  752. package/dist/ore/dist/directives/styleMap.cjs +2 -0
  753. package/dist/ore/dist/directives/styleMap.cjs.map +1 -0
  754. package/dist/ore/dist/directives/styleMap.js +20 -0
  755. package/dist/ore/dist/directives/styleMap.js.map +1 -0
  756. package/dist/ore/dist/directives/when.cjs +2 -0
  757. package/dist/ore/dist/directives/when.cjs.map +1 -0
  758. package/dist/ore/dist/directives/when.js +33 -0
  759. package/dist/ore/dist/directives/when.js.map +1 -0
  760. package/dist/ore/dist/directives.cjs +1 -0
  761. package/dist/ore/dist/directives.js +8 -0
  762. package/dist/ore/dist/errors.cjs +3 -0
  763. package/dist/ore/dist/errors.cjs.map +1 -0
  764. package/dist/ore/dist/errors.js +41 -0
  765. package/dist/ore/dist/errors.js.map +1 -0
  766. package/dist/ore/dist/host-bind.cjs +2 -0
  767. package/dist/ore/dist/host-bind.cjs.map +1 -0
  768. package/dist/ore/dist/host-bind.js +60 -0
  769. package/dist/ore/dist/host-bind.js.map +1 -0
  770. package/dist/ore/dist/observers/intersection-observe.cjs +2 -0
  771. package/dist/ore/dist/observers/intersection-observe.cjs.map +1 -0
  772. package/dist/ore/dist/observers/intersection-observe.js +12 -0
  773. package/dist/ore/dist/observers/intersection-observe.js.map +1 -0
  774. package/dist/ore/dist/observers/media-observe.cjs +1 -0
  775. package/dist/ore/dist/observers/media-observe.js +1 -0
  776. package/dist/ore/dist/observers/mutation-observe.cjs +1 -0
  777. package/dist/ore/dist/observers/mutation-observe.js +1 -0
  778. package/dist/ore/dist/observers/resize-observe.cjs +2 -0
  779. package/dist/ore/dist/observers/resize-observe.cjs.map +1 -0
  780. package/dist/ore/dist/observers/resize-observe.js +20 -0
  781. package/dist/ore/dist/observers/resize-observe.js.map +1 -0
  782. package/dist/ore/dist/observers.cjs +1 -0
  783. package/dist/ore/dist/observers.js +5 -0
  784. package/dist/ore/dist/props.cjs +2 -0
  785. package/dist/ore/dist/props.cjs.map +1 -0
  786. package/dist/ore/dist/props.js +54 -0
  787. package/dist/ore/dist/props.js.map +1 -0
  788. package/dist/ore/dist/runtime.cjs +2 -0
  789. package/dist/ore/dist/runtime.cjs.map +1 -0
  790. package/dist/ore/dist/runtime.js +33 -0
  791. package/dist/ore/dist/runtime.js.map +1 -0
  792. package/dist/ore/dist/slots.cjs +2 -0
  793. package/dist/ore/dist/slots.cjs.map +1 -0
  794. package/dist/ore/dist/slots.js +61 -0
  795. package/dist/ore/dist/slots.js.map +1 -0
  796. package/dist/ore/dist/testing/flush.cjs +2 -0
  797. package/dist/ore/dist/testing/flush.cjs.map +1 -0
  798. package/dist/ore/dist/testing/flush.js +11 -0
  799. package/dist/ore/dist/testing/flush.js.map +1 -0
  800. package/dist/ore/dist/testing/mount.cjs +2 -0
  801. package/dist/ore/dist/testing/mount.cjs.map +1 -0
  802. package/dist/ore/dist/testing/mount.js +94 -0
  803. package/dist/ore/dist/testing/mount.js.map +1 -0
  804. package/dist/ore/dist/testing/query.cjs +2 -0
  805. package/dist/ore/dist/testing/query.cjs.map +1 -0
  806. package/dist/ore/dist/testing/query.js +12 -0
  807. package/dist/ore/dist/testing/query.js.map +1 -0
  808. package/dist/ore/dist/testing/render-hook.cjs +1 -0
  809. package/dist/ore/dist/testing/render-hook.js +4 -0
  810. package/dist/ore/dist/testing/testing.cjs +1 -0
  811. package/dist/ore/dist/testing/testing.js +4 -0
  812. package/dist/ore/dist/testing/wait.cjs +1 -0
  813. package/dist/ore/dist/testing/wait.js +1 -0
  814. package/dist/ore/dist/testing.cjs +1 -0
  815. package/dist/ore/dist/testing.js +6 -0
  816. package/dist/ore/dist/types/bindings.cjs +2 -0
  817. package/dist/ore/dist/types/bindings.cjs.map +1 -0
  818. package/dist/ore/dist/types/bindings.js +15 -0
  819. package/dist/ore/dist/types/bindings.js.map +1 -0
  820. package/dist/ore/dist/types.cjs +2 -0
  821. package/dist/ore/dist/types.cjs.map +1 -0
  822. package/dist/ore/dist/types.js +15 -0
  823. package/dist/ore/dist/types.js.map +1 -0
  824. package/dist/ore/dist/utils/aria.cjs +2 -0
  825. package/dist/ore/dist/utils/aria.cjs.map +1 -0
  826. package/dist/ore/dist/utils/aria.js +6 -0
  827. package/dist/ore/dist/utils/aria.js.map +1 -0
  828. package/dist/ore/dist/utils/css.cjs +2 -0
  829. package/dist/ore/dist/utils/css.cjs.map +1 -0
  830. package/dist/ore/dist/utils/css.js +18 -0
  831. package/dist/ore/dist/utils/css.js.map +1 -0
  832. package/dist/ore/dist/utils/dom.cjs +2 -0
  833. package/dist/ore/dist/utils/dom.cjs.map +1 -0
  834. package/dist/ore/dist/utils/dom.js +47 -0
  835. package/dist/ore/dist/utils/dom.js.map +1 -0
  836. package/dist/ore/dist/utils/emit.cjs +2 -0
  837. package/dist/ore/dist/utils/emit.cjs.map +1 -0
  838. package/dist/ore/dist/utils/emit.js +16 -0
  839. package/dist/ore/dist/utils/emit.js.map +1 -0
  840. package/dist/ore/dist/utils/id.cjs +2 -0
  841. package/dist/ore/dist/utils/id.cjs.map +1 -0
  842. package/dist/ore/dist/utils/id.js +4 -0
  843. package/dist/ore/dist/utils/id.js.map +1 -0
  844. package/dist/otp-input.cjs +21 -0
  845. package/dist/otp-input.cjs.map +1 -0
  846. package/dist/otp-input.js +145 -0
  847. package/dist/otp-input.js.map +1 -0
  848. package/dist/overlay/dialog/dialog.css?inline.cjs +2 -0
  849. package/dist/overlay/dialog/dialog.css?inline.cjs.map +1 -0
  850. package/dist/overlay/dialog/dialog.css?inline.js +6 -0
  851. package/dist/overlay/dialog/dialog.css?inline.js.map +1 -0
  852. package/dist/overlay/dialog/dialog.d.ts +108 -0
  853. package/dist/overlay/dialog/dialog.d.ts.map +1 -0
  854. package/dist/overlay/drawer/drawer.css?inline.cjs +2 -0
  855. package/dist/overlay/drawer/drawer.css?inline.cjs.map +1 -0
  856. package/dist/overlay/drawer/drawer.css?inline.js +6 -0
  857. package/dist/overlay/drawer/drawer.css?inline.js.map +1 -0
  858. package/dist/overlay/drawer/drawer.d.ts +111 -0
  859. package/dist/overlay/drawer/drawer.d.ts.map +1 -0
  860. package/dist/overlay/index.d.ts +11 -0
  861. package/dist/overlay/index.d.ts.map +1 -0
  862. package/dist/overlay/menu/menu-item.css?inline.cjs +2 -0
  863. package/dist/overlay/menu/menu-item.css?inline.cjs.map +1 -0
  864. package/dist/overlay/menu/menu-item.css?inline.js +6 -0
  865. package/dist/overlay/menu/menu-item.css?inline.js.map +1 -0
  866. package/dist/overlay/menu/menu-separator.css?inline.cjs +2 -0
  867. package/dist/overlay/menu/menu-separator.css?inline.cjs.map +1 -0
  868. package/dist/overlay/menu/menu-separator.css?inline.js +6 -0
  869. package/dist/overlay/menu/menu-separator.css?inline.js.map +1 -0
  870. package/dist/overlay/menu/menu.css?inline.cjs +2 -0
  871. package/dist/overlay/menu/menu.css?inline.cjs.map +1 -0
  872. package/dist/overlay/menu/menu.css?inline.js +6 -0
  873. package/dist/overlay/menu/menu.css?inline.js.map +1 -0
  874. package/dist/overlay/menu/menu.d.ts +110 -0
  875. package/dist/overlay/menu/menu.d.ts.map +1 -0
  876. package/dist/overlay/popover/popover.css?inline.cjs +2 -0
  877. package/dist/overlay/popover/popover.css?inline.cjs.map +1 -0
  878. package/dist/overlay/popover/popover.css?inline.js +6 -0
  879. package/dist/overlay/popover/popover.css?inline.js.map +1 -0
  880. package/dist/overlay/popover/popover.d.ts +56 -0
  881. package/dist/overlay/popover/popover.d.ts.map +1 -0
  882. package/dist/overlay/shared/await-exit.cjs +2 -0
  883. package/dist/overlay/shared/await-exit.cjs.map +1 -0
  884. package/dist/overlay/shared/await-exit.d.ts +14 -0
  885. package/dist/overlay/shared/await-exit.d.ts.map +1 -0
  886. package/dist/overlay/shared/await-exit.js +18 -0
  887. package/dist/overlay/shared/await-exit.js.map +1 -0
  888. package/dist/overlay/shared/background-lock.cjs +2 -0
  889. package/dist/overlay/shared/background-lock.cjs.map +1 -0
  890. package/dist/overlay/shared/background-lock.d.ts +22 -0
  891. package/dist/overlay/shared/background-lock.d.ts.map +1 -0
  892. package/dist/overlay/shared/background-lock.js +25 -0
  893. package/dist/overlay/shared/background-lock.js.map +1 -0
  894. package/dist/overlay/shared/use-dialog.cjs +2 -0
  895. package/dist/overlay/shared/use-dialog.cjs.map +1 -0
  896. package/dist/overlay/shared/use-dialog.d.ts +76 -0
  897. package/dist/overlay/shared/use-dialog.d.ts.map +1 -0
  898. package/dist/overlay/shared/use-dialog.js +92 -0
  899. package/dist/overlay/shared/use-dialog.js.map +1 -0
  900. package/dist/overlay/shared/use-floating-trigger.cjs +2 -0
  901. package/dist/overlay/shared/use-floating-trigger.cjs.map +1 -0
  902. package/dist/overlay/shared/use-floating-trigger.d.ts +67 -0
  903. package/dist/overlay/shared/use-floating-trigger.d.ts.map +1 -0
  904. package/dist/overlay/shared/use-floating-trigger.js +128 -0
  905. package/dist/overlay/shared/use-floating-trigger.js.map +1 -0
  906. package/dist/overlay/tooltip/tooltip.css?inline.cjs +2 -0
  907. package/dist/overlay/tooltip/tooltip.css?inline.cjs.map +1 -0
  908. package/dist/overlay/tooltip/tooltip.css?inline.js +6 -0
  909. package/dist/overlay/tooltip/tooltip.css?inline.js.map +1 -0
  910. package/dist/overlay/tooltip/tooltip.d.ts +72 -0
  911. package/dist/overlay/tooltip/tooltip.d.ts.map +1 -0
  912. package/dist/pagination.cjs +63 -0
  913. package/dist/pagination.cjs.map +1 -0
  914. package/dist/pagination.js +113 -0
  915. package/dist/pagination.js.map +1 -0
  916. package/dist/password-strength.cjs +19 -0
  917. package/dist/password-strength.cjs.map +1 -0
  918. package/dist/password-strength.js +69 -0
  919. package/dist/password-strength.js.map +1 -0
  920. package/dist/popover.cjs +16 -0
  921. package/dist/popover.cjs.map +1 -0
  922. package/dist/popover.js +81 -0
  923. package/dist/popover.js.map +1 -0
  924. package/dist/progress.cjs +46 -0
  925. package/dist/progress.cjs.map +1 -0
  926. package/dist/progress.js +96 -0
  927. package/dist/progress.js.map +1 -0
  928. package/dist/radio-group.cjs +25 -0
  929. package/dist/radio-group.cjs.map +1 -0
  930. package/dist/radio-group.js +145 -0
  931. package/dist/radio-group.js.map +1 -0
  932. package/dist/radio.cjs +10 -0
  933. package/dist/radio.cjs.map +1 -0
  934. package/dist/radio.js +146 -0
  935. package/dist/radio.js.map +1 -0
  936. package/dist/rating.cjs +28 -0
  937. package/dist/rating.cjs.map +1 -0
  938. package/dist/rating.js +123 -0
  939. package/dist/rating.js.map +1 -0
  940. package/dist/refine.cjs +2705 -0
  941. package/dist/refine.cjs.map +1 -0
  942. package/dist/refine.iife.js +2705 -0
  943. package/dist/refine.iife.js.map +1 -0
  944. package/dist/refine.js +2705 -0
  945. package/dist/refine.js.map +1 -0
  946. package/dist/select.cjs +79 -0
  947. package/dist/select.cjs.map +1 -0
  948. package/dist/select.js +289 -0
  949. package/dist/select.js.map +1 -0
  950. package/dist/separator.cjs +27 -0
  951. package/dist/separator.cjs.map +1 -0
  952. package/dist/separator.js +47 -0
  953. package/dist/separator.js.map +1 -0
  954. package/dist/shared/index.d.ts +14 -0
  955. package/dist/shared/index.d.ts.map +1 -0
  956. package/dist/shared/prop-bundles.cjs +2 -0
  957. package/dist/shared/prop-bundles.cjs.map +1 -0
  958. package/dist/shared/prop-bundles.d.ts +45 -0
  959. package/dist/shared/prop-bundles.d.ts.map +1 -0
  960. package/dist/shared/prop-bundles.js +13 -0
  961. package/dist/shared/prop-bundles.js.map +1 -0
  962. package/dist/shared/size-presets.cjs +2 -0
  963. package/dist/shared/size-presets.cjs.map +1 -0
  964. package/dist/shared/size-presets.d.ts +101 -0
  965. package/dist/shared/size-presets.d.ts.map +1 -0
  966. package/dist/shared/size-presets.js +96 -0
  967. package/dist/shared/size-presets.js.map +1 -0
  968. package/dist/shared/types.d.ts +76 -0
  969. package/dist/shared/types.d.ts.map +1 -0
  970. package/dist/sidebar.cjs +123 -0
  971. package/dist/sidebar.cjs.map +1 -0
  972. package/dist/sidebar.js +344 -0
  973. package/dist/sidebar.js.map +1 -0
  974. package/dist/skeleton.cjs +10 -0
  975. package/dist/skeleton.cjs.map +1 -0
  976. package/dist/skeleton.js +59 -0
  977. package/dist/skeleton.js.map +1 -0
  978. package/dist/slider.cjs +27 -0
  979. package/dist/slider.cjs.map +1 -0
  980. package/dist/slider.js +219 -0
  981. package/dist/slider.js.map +1 -0
  982. package/dist/styles/animation.css +94 -0
  983. package/dist/styles/index.cjs +2 -0
  984. package/dist/styles/index.cjs.map +1 -0
  985. package/dist/styles/index.d.ts +41 -0
  986. package/dist/styles/index.d.ts.map +1 -0
  987. package/dist/styles/index.js +24 -0
  988. package/dist/styles/index.js.map +1 -0
  989. package/dist/styles/layer.css +19 -0
  990. package/dist/styles/mixins/accessibility.css.cjs +51 -0
  991. package/dist/styles/mixins/accessibility.css.cjs.map +1 -0
  992. package/dist/styles/mixins/accessibility.css.d.ts +80 -0
  993. package/dist/styles/mixins/accessibility.css.d.ts.map +1 -0
  994. package/dist/styles/mixins/accessibility.css.js +56 -0
  995. package/dist/styles/mixins/accessibility.css.js.map +1 -0
  996. package/dist/styles/mixins/animation.css.cjs +133 -0
  997. package/dist/styles/mixins/animation.css.cjs.map +1 -0
  998. package/dist/styles/mixins/animation.css.d.ts +43 -0
  999. package/dist/styles/mixins/animation.css.d.ts.map +1 -0
  1000. package/dist/styles/mixins/animation.css.js +166 -0
  1001. package/dist/styles/mixins/animation.css.js.map +1 -0
  1002. package/dist/styles/mixins/shape.css.cjs +66 -0
  1003. package/dist/styles/mixins/shape.css.cjs.map +1 -0
  1004. package/dist/styles/mixins/shape.css.d.ts +96 -0
  1005. package/dist/styles/mixins/shape.css.d.ts.map +1 -0
  1006. package/dist/styles/mixins/shape.css.js +98 -0
  1007. package/dist/styles/mixins/shape.css.js.map +1 -0
  1008. package/dist/styles/mixins/states.css.cjs +37 -0
  1009. package/dist/styles/mixins/states.css.cjs.map +1 -0
  1010. package/dist/styles/mixins/states.css.d.ts +27 -0
  1011. package/dist/styles/mixins/states.css.d.ts.map +1 -0
  1012. package/dist/styles/mixins/states.css.js +44 -0
  1013. package/dist/styles/mixins/states.css.js.map +1 -0
  1014. package/dist/styles/mixins/table-base.css.cjs +94 -0
  1015. package/dist/styles/mixins/table-base.css.cjs.map +1 -0
  1016. package/dist/styles/mixins/table-base.css.d.ts +24 -0
  1017. package/dist/styles/mixins/table-base.css.d.ts.map +1 -0
  1018. package/dist/styles/mixins/table-base.css.js +99 -0
  1019. package/dist/styles/mixins/table-base.css.js.map +1 -0
  1020. package/dist/styles/mixins/theme.css.cjs +80 -0
  1021. package/dist/styles/mixins/theme.css.cjs.map +1 -0
  1022. package/dist/styles/mixins/theme.css.d.ts +77 -0
  1023. package/dist/styles/mixins/theme.css.d.ts.map +1 -0
  1024. package/dist/styles/mixins/theme.css.js +98 -0
  1025. package/dist/styles/mixins/theme.css.js.map +1 -0
  1026. package/dist/styles/mixins/variants.css.cjs +55 -0
  1027. package/dist/styles/mixins/variants.css.cjs.map +1 -0
  1028. package/dist/styles/mixins/variants.css.d.ts +22 -0
  1029. package/dist/styles/mixins/variants.css.d.ts.map +1 -0
  1030. package/dist/styles/mixins/variants.css.js +60 -0
  1031. package/dist/styles/mixins/variants.css.js.map +1 -0
  1032. package/dist/styles/preflight.css +239 -0
  1033. package/dist/styles/styles.css +5 -0
  1034. package/dist/styles/theme.css +553 -0
  1035. package/dist/switch.cjs +10 -0
  1036. package/dist/switch.cjs.map +1 -0
  1037. package/dist/switch.js +79 -0
  1038. package/dist/switch.js.map +1 -0
  1039. package/dist/tab-item.cjs +17 -0
  1040. package/dist/tab-item.cjs.map +1 -0
  1041. package/dist/tab-item.js +62 -0
  1042. package/dist/tab-item.js.map +1 -0
  1043. package/dist/tab-panel.cjs +14 -0
  1044. package/dist/tab-panel.cjs.map +1 -0
  1045. package/dist/tab-panel.js +61 -0
  1046. package/dist/tab-panel.js.map +1 -0
  1047. package/dist/table.cjs +2 -0
  1048. package/dist/table.cjs.map +1 -0
  1049. package/dist/table.js +101 -0
  1050. package/dist/table.js.map +1 -0
  1051. package/dist/tabs.cjs +17 -0
  1052. package/dist/tabs.cjs.map +1 -0
  1053. package/dist/tabs.js +126 -0
  1054. package/dist/tabs.js.map +1 -0
  1055. package/dist/testing/index.d.ts +233 -0
  1056. package/dist/testing/index.d.ts.map +1 -0
  1057. package/dist/testing.cjs +2 -0
  1058. package/dist/testing.cjs.map +1 -0
  1059. package/dist/testing.js +44 -0
  1060. package/dist/testing.js.map +1 -0
  1061. package/dist/text.cjs +2 -0
  1062. package/dist/text.cjs.map +1 -0
  1063. package/dist/text.js +34 -0
  1064. package/dist/text.js.map +1 -0
  1065. package/dist/textarea.cjs +33 -0
  1066. package/dist/textarea.cjs.map +1 -0
  1067. package/dist/textarea.js +137 -0
  1068. package/dist/textarea.js.map +1 -0
  1069. package/dist/time-picker.cjs +98 -0
  1070. package/dist/time-picker.cjs.map +1 -0
  1071. package/dist/time-picker.js +261 -0
  1072. package/dist/time-picker.js.map +1 -0
  1073. package/dist/toast.cjs +69 -0
  1074. package/dist/toast.cjs.map +1 -0
  1075. package/dist/toast.js +316 -0
  1076. package/dist/toast.js.map +1 -0
  1077. package/dist/tooltip.cjs +15 -0
  1078. package/dist/tooltip.cjs.map +1 -0
  1079. package/dist/tooltip.js +121 -0
  1080. package/dist/tooltip.js.map +1 -0
  1081. package/dist/types/index.d.ts +2 -0
  1082. package/dist/types/index.d.ts.map +1 -0
  1083. package/dist/utils/css.cjs +2 -0
  1084. package/dist/utils/css.cjs.map +1 -0
  1085. package/dist/utils/css.d.ts +10 -0
  1086. package/dist/utils/css.d.ts.map +1 -0
  1087. package/dist/utils/css.js +10 -0
  1088. package/dist/utils/css.js.map +1 -0
  1089. package/dist/utils/index.d.ts +3 -0
  1090. package/dist/utils/index.d.ts.map +1 -0
  1091. package/dist/utils/link.cjs +2 -0
  1092. package/dist/utils/link.cjs.map +1 -0
  1093. package/dist/utils/link.d.ts +44 -0
  1094. package/dist/utils/link.d.ts.map +1 -0
  1095. package/dist/utils/link.js +19 -0
  1096. package/dist/utils/link.js.map +1 -0
  1097. package/package.json +464 -0
@@ -0,0 +1,41 @@
1
+ import { createCounterState as e, createField as t } from "./field-base.js";
2
+ import { syncedSignal as n } from "./signals.js";
3
+ import "@vielzeug/ripple";
4
+ //#region src/headless/text-field.ts
5
+ var r = (r) => {
6
+ let i = n(r.value, r.signal, (e) => String(e ?? "")), a = t(r), o = r.maxLength ? e({
7
+ maxLength: r.maxLength,
8
+ value: i
9
+ }) : null, s = (e) => {
10
+ e?.preventDefault?.(), i.value = "", r.onInput?.(e ?? new InputEvent("input", { bubbles: !0 }), ""), r.onChange?.(e ?? new Event("change", { bubbles: !0 }), ""), a.triggerValidation("change");
11
+ }, c = (e, t) => {
12
+ let n = [], o = (t, r) => {
13
+ e.addEventListener(t, r), n.push(() => e.removeEventListener(t, r));
14
+ };
15
+ r.onFocus && o("focus", (e) => r.onFocus(e)), o("input", (t) => {
16
+ t.stopPropagation(), r.onBeforeInput?.(t), i.value = e.value, r.onInput?.(t, e.value);
17
+ }), o("change", (t) => {
18
+ t.stopPropagation(), i.value = e.value, r.onChange?.(t, e.value), a.triggerValidation("change");
19
+ }), o("blur", (e) => {
20
+ r.onBlur?.(e), a.triggerValidation("blur");
21
+ });
22
+ let s = !1, c = () => {
23
+ if (!s) {
24
+ s = !0;
25
+ for (let e of n) e();
26
+ }
27
+ };
28
+ return t?.addEventListener("abort", c, { once: !0 }), c;
29
+ };
30
+ return {
31
+ ...a,
32
+ clear: s,
33
+ counter: o,
34
+ value: i,
35
+ wire: c
36
+ };
37
+ };
38
+ //#endregion
39
+ export { r as createTextField };
40
+
41
+ //# sourceMappingURL=text-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-field.js","names":[],"sources":["../../src/headless/text-field.ts"],"sourcesContent":["import { type Readable, type Signal } from '@vielzeug/ripple';\n\nimport { type CounterState, createCounterState, createField, type FieldHandle, type FieldOptions } from './field-base';\nimport { syncedSignal } from './signals';\n\n// ── Text field ────────────────────────────────────────────────────────────────\n\n/** Detach function returned by `wire()`. Call to remove element listeners. */\nexport type TextFieldDetach = () => void;\n\nexport type TextFieldOptions = FieldOptions & {\n maxLength?: Readable<number | undefined>;\n /**\n * Called synchronously before value extraction on every input event.\n * Use only for DOM side-effects (e.g. auto-resize measurement) that must\n * run before the reactive value is updated.\n */\n onBeforeInput?: (event: Event) => void;\n onBlur?: (event: FocusEvent) => void;\n onChange?: (event: Event, value: string) => void;\n onFocus?: (event: FocusEvent) => void;\n onInput?: (event: Event, value: string) => void;\n /** `AbortSignal` from the component lifecycle. The internal value-sync watcher is disposed on abort. */\n signal: AbortSignal;\n value: Readable<string | undefined>;\n};\n\nexport type TextFieldHandle = FieldHandle & {\n /** Clears the field value and fires synthetic input/change events. */\n clear: (event?: Event) => void;\n /**\n * Reactive counter state. Non-null when `maxLength` was provided; `null` otherwise.\n * Components should only render a counter element when this is non-null.\n */\n counter: Readable<CounterState> | null;\n /** The local mutable field value (two-way bound to the input element via `wire()`). */\n value: Signal<string>;\n /**\n * Attaches event listeners to the underlying input or textarea element.\n *\n * When `signal` is provided, the listeners are detached automatically when\n * the signal's controller calls `abort()`. Without a signal the returned\n * `TextFieldDetach` must be called manually.\n *\n * Safe to call multiple times — each call attaches a fresh set of listeners\n * and returns a distinct detach function. Calling detach multiple times is\n * a no-op (guarded internally).\n */\n wire: (el: HTMLInputElement | HTMLTextAreaElement, signal?: AbortSignal) => TextFieldDetach;\n};\n\nexport const createTextField = (options: TextFieldOptions): TextFieldHandle => {\n const value = syncedSignal(options.value, options.signal, (v) => String(v ?? ''));\n\n const field = createField(options);\n const counter = options.maxLength ? createCounterState({ maxLength: options.maxLength, value }) : null;\n\n const clear = (event?: Event): void => {\n event?.preventDefault?.();\n value.value = '';\n options.onInput?.(event ?? new InputEvent('input', { bubbles: true }), '');\n options.onChange?.(event ?? new Event('change', { bubbles: true }), '');\n field.triggerValidation('change');\n };\n\n const wire = (element: HTMLInputElement | HTMLTextAreaElement, signal?: AbortSignal): TextFieldDetach => {\n const cleanups: Array<() => void> = [];\n const on = (type: string, handler: EventListener): void => {\n element.addEventListener(type, handler);\n cleanups.push(() => element.removeEventListener(type, handler));\n };\n\n if (options.onFocus) {\n on('focus', (e) => options.onFocus!(e as FocusEvent));\n }\n\n on('input', (e) => {\n e.stopPropagation();\n options.onBeforeInput?.(e);\n value.value = element.value;\n options.onInput?.(e, element.value);\n });\n\n on('change', (e) => {\n e.stopPropagation();\n value.value = element.value;\n options.onChange?.(e, element.value);\n field.triggerValidation('change');\n });\n\n on('blur', (e) => {\n options.onBlur?.(e as FocusEvent);\n field.triggerValidation('blur');\n });\n\n let detached = false;\n const detach = (): void => {\n if (detached) return;\n\n detached = true;\n for (const dispose of cleanups) dispose();\n };\n\n signal?.addEventListener('abort', detach, { once: true });\n\n return detach;\n };\n\n return { ...field, clear, counter, value, wire };\n};\n"],"mappings":";;;;AAmDA,IAAa,KAAmB,MAA+C;CAC7E,IAAM,IAAQ,EAAa,EAAQ,OAAO,EAAQ,SAAS,MAAM,OAAO,KAAK,EAAE,CAAC,GAE1E,IAAQ,EAAY,CAAO,GAC3B,IAAU,EAAQ,YAAY,EAAmB;EAAE,WAAW,EAAQ;EAAW;CAAM,CAAC,IAAI,MAE5F,KAAS,MAAwB;EAKrC,AAJA,GAAO,iBAAiB,GACxB,EAAM,QAAQ,IACd,EAAQ,UAAU,KAAS,IAAI,WAAW,SAAS,EAAE,SAAS,GAAK,CAAC,GAAG,EAAE,GACzE,EAAQ,WAAW,KAAS,IAAI,MAAM,UAAU,EAAE,SAAS,GAAK,CAAC,GAAG,EAAE,GACtE,EAAM,kBAAkB,QAAQ;CAClC,GAEM,KAAQ,GAAiD,MAA0C;EACvG,IAAM,IAA8B,CAAC,GAC/B,KAAM,GAAc,MAAiC;GAEzD,AADA,EAAQ,iBAAiB,GAAM,CAAO,GACtC,EAAS,WAAW,EAAQ,oBAAoB,GAAM,CAAO,CAAC;EAChE;EAoBA,AAlBI,EAAQ,WACV,EAAG,UAAU,MAAM,EAAQ,QAAS,CAAe,CAAC,GAGtD,EAAG,UAAU,MAAM;GAIjB,AAHA,EAAE,gBAAgB,GAClB,EAAQ,gBAAgB,CAAC,GACzB,EAAM,QAAQ,EAAQ,OACtB,EAAQ,UAAU,GAAG,EAAQ,KAAK;EACpC,CAAC,GAED,EAAG,WAAW,MAAM;GAIlB,AAHA,EAAE,gBAAgB,GAClB,EAAM,QAAQ,EAAQ,OACtB,EAAQ,WAAW,GAAG,EAAQ,KAAK,GACnC,EAAM,kBAAkB,QAAQ;EAClC,CAAC,GAED,EAAG,SAAS,MAAM;GAEhB,AADA,EAAQ,SAAS,CAAe,GAChC,EAAM,kBAAkB,MAAM;EAChC,CAAC;EAED,IAAI,IAAW,IACT,UAAqB;GACrB,QAEJ;QAAW;IACX,KAAK,IAAM,KAAW,GAAU,EAAQ;GAD7B;EAEb;EAIA,OAFA,GAAQ,iBAAiB,SAAS,GAAQ,EAAE,MAAM,GAAK,CAAC,GAEjD;CACT;CAEA,OAAO;EAAE,GAAG;EAAO;EAAO;EAAS;EAAO;CAAK;AACjD"}
@@ -0,0 +1,2 @@
1
+ var e=e=>{let t=e.delay??500,n=``,r=null,i=()=>{n=``,r!==null&&(clearTimeout(r),r=null)};return e.signal?.addEventListener(`abort`,i,{once:!0}),{handleKeydown:a=>{if(a.key.length!==1||a.ctrlKey||a.altKey||a.metaKey)return!1;n+=a.key.toLowerCase(),r!==null&&clearTimeout(r),r=setTimeout(i,t);let o=e.getItems(),s=e.getIndex(),c=s>=0?s+1:0;for(let t=0;t<o.length;t++){let r=(c+t)%o.length;if(!e.isItemDisabled?.(o[r],r)&&e.getItemLabel(o[r],r).toLowerCase().startsWith(n))return e.onNavigate(r,a),!0}return!1},reset:i}};exports.createTypeahead=e;
2
+ //# sourceMappingURL=typeahead.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeahead.cjs","names":[],"sources":["../../src/headless/typeahead.ts"],"sourcesContent":["// ── Typeahead ─────────────────────────────────────────────────────────────────\n// Standalone typeahead primitive: accumulates printable keystrokes, then finds\n// the first enabled item whose label starts with the buffer.\n//\n// Extracted from nav.ts so it can be reused independently (e.g. combobox input).\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\nexport type TypeaheadOptions<T> = {\n /**\n * Milliseconds of inactivity before the buffer resets.\n * ARIA APG recommended window. Default: `500`.\n */\n delay?: number;\n /** Returns the current focused index (used to search forward from current + 1). */\n getIndex: () => number;\n /** Returns a plain-text label for the item at `index`. */\n getItemLabel: (item: T, index: number) => string;\n /** Returns all items in the current list. */\n getItems: () => T[];\n /** Returns `true` for items that should be skipped during typeahead search. */\n isItemDisabled?: (item: T, index: number) => boolean;\n /** Called when typeahead navigation lands on an item. */\n onNavigate: (index: number, event: KeyboardEvent) => void;\n /**\n * When provided, the pending reset timer is cancelled automatically when the\n * signal aborts (e.g. when the owning component disconnects).\n */\n signal?: AbortSignal;\n};\n\nexport type Typeahead = {\n /**\n * Process a keyboard event. Returns `true` if the event was consumed by\n * typeahead (a printable character matched or was buffered).\n */\n handleKeydown(event: KeyboardEvent): boolean;\n /** Reset the buffer immediately. Call on list close to clear stale input. */\n reset(): void;\n};\n\n// ── Implementation ────────────────────────────────────────────────────────────\n\n/**\n * Creates a standalone typeahead handler for keyboard-navigable lists.\n *\n * Accumulates printable keystrokes into a buffer; on each keystroke searches\n * for the first enabled item whose label starts with the buffer. Cycles past\n * the current item on repeated same-character presses. Buffer resets after\n * `delay` ms of inactivity (default 500 — the ARIA APG recommended window).\n *\n * @example\n * ```ts\n * const typeahead = createTypeahead({\n * getIndex: () => focusedIndex,\n * getItemLabel: (item) => item.label,\n * getItems: () => items,\n * onNavigate: (index) => { focusedIndex = index; },\n * });\n *\n * listEl.addEventListener('keydown', (e) => typeahead.handleKeydown(e));\n * ```\n */\nexport const createTypeahead = <T>(options: TypeaheadOptions<T>): Typeahead => {\n const delay = options.delay ?? 500;\n let _buffer = '';\n let _timer: ReturnType<typeof setTimeout> | null = null;\n\n const reset = (): void => {\n _buffer = '';\n\n if (_timer !== null) {\n clearTimeout(_timer);\n _timer = null;\n }\n };\n\n options.signal?.addEventListener('abort', reset, { once: true });\n\n const handleKeydown = (event: KeyboardEvent): boolean => {\n // Single printable character only; exclude modifier combos.\n if (event.key.length !== 1 || event.ctrlKey || event.altKey || event.metaKey) return false;\n\n _buffer += event.key.toLowerCase();\n\n if (_timer !== null) clearTimeout(_timer);\n\n _timer = setTimeout(reset, delay);\n\n const items = options.getItems();\n const current = options.getIndex();\n const startAfter = current >= 0 ? current + 1 : 0;\n\n for (let n = 0; n < items.length; n++) {\n const i = (startAfter + n) % items.length;\n\n if (options.isItemDisabled?.(items[i], i)) continue;\n\n if (options.getItemLabel(items[i], i).toLowerCase().startsWith(_buffer)) {\n options.onNavigate(i, event);\n\n return true;\n }\n }\n\n return false;\n };\n\n return { handleKeydown, reset };\n};\n"],"mappings":"AA+DA,IAAa,EAAsB,GAA4C,CAC7E,IAAM,EAAQ,EAAQ,OAAS,IAC3B,EAAU,GACV,EAA+C,KAE7C,MAAoB,CACxB,EAAU,GAEN,IAAW,OACb,aAAa,CAAM,EACnB,EAAS,KAEb,EAiCA,OA/BA,EAAQ,QAAQ,iBAAiB,QAAS,EAAO,CAAE,KAAM,EAAK,CAAC,EA+BxD,CAAE,cA7Bc,GAAkC,CAEvD,GAAI,EAAM,IAAI,SAAW,GAAK,EAAM,SAAW,EAAM,QAAU,EAAM,QAAS,MAAO,GAErF,GAAW,EAAM,IAAI,YAAY,EAE7B,IAAW,MAAM,aAAa,CAAM,EAExC,EAAS,WAAW,EAAO,CAAK,EAEhC,IAAM,EAAQ,EAAQ,SAAS,EACzB,EAAU,EAAQ,SAAS,EAC3B,EAAa,GAAW,EAAI,EAAU,EAAI,EAEhD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,IAAM,GAAK,EAAa,GAAK,EAAM,OAE/B,MAAQ,iBAAiB,EAAM,GAAI,CAAC,GAEpC,EAAQ,aAAa,EAAM,GAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAO,EAGpE,OAFA,EAAQ,WAAW,EAAG,CAAK,EAEpB,EAEX,CAEA,MAAO,EACT,EAEwB,OAAM,CAChC"}
@@ -0,0 +1,53 @@
1
+ export type TypeaheadOptions<T> = {
2
+ /**
3
+ * Milliseconds of inactivity before the buffer resets.
4
+ * ARIA APG recommended window. Default: `500`.
5
+ */
6
+ delay?: number;
7
+ /** Returns the current focused index (used to search forward from current + 1). */
8
+ getIndex: () => number;
9
+ /** Returns a plain-text label for the item at `index`. */
10
+ getItemLabel: (item: T, index: number) => string;
11
+ /** Returns all items in the current list. */
12
+ getItems: () => T[];
13
+ /** Returns `true` for items that should be skipped during typeahead search. */
14
+ isItemDisabled?: (item: T, index: number) => boolean;
15
+ /** Called when typeahead navigation lands on an item. */
16
+ onNavigate: (index: number, event: KeyboardEvent) => void;
17
+ /**
18
+ * When provided, the pending reset timer is cancelled automatically when the
19
+ * signal aborts (e.g. when the owning component disconnects).
20
+ */
21
+ signal?: AbortSignal;
22
+ };
23
+ export type Typeahead = {
24
+ /**
25
+ * Process a keyboard event. Returns `true` if the event was consumed by
26
+ * typeahead (a printable character matched or was buffered).
27
+ */
28
+ handleKeydown(event: KeyboardEvent): boolean;
29
+ /** Reset the buffer immediately. Call on list close to clear stale input. */
30
+ reset(): void;
31
+ };
32
+ /**
33
+ * Creates a standalone typeahead handler for keyboard-navigable lists.
34
+ *
35
+ * Accumulates printable keystrokes into a buffer; on each keystroke searches
36
+ * for the first enabled item whose label starts with the buffer. Cycles past
37
+ * the current item on repeated same-character presses. Buffer resets after
38
+ * `delay` ms of inactivity (default 500 — the ARIA APG recommended window).
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const typeahead = createTypeahead({
43
+ * getIndex: () => focusedIndex,
44
+ * getItemLabel: (item) => item.label,
45
+ * getItems: () => items,
46
+ * onNavigate: (index) => { focusedIndex = index; },
47
+ * });
48
+ *
49
+ * listEl.addEventListener('keydown', (e) => typeahead.handleKeydown(e));
50
+ * ```
51
+ */
52
+ export declare const createTypeahead: <T>(options: TypeaheadOptions<T>) => Typeahead;
53
+ //# sourceMappingURL=typeahead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeahead.d.ts","sourceRoot":"","sources":["../../src/headless/typeahead.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,0DAA0D;IAC1D,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;IACpB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,yDAAyD;IACzD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IAC7C,6EAA6E;IAC7E,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAIF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,KAAG,SA8CjE,CAAC"}
@@ -0,0 +1,23 @@
1
+ //#region src/headless/typeahead.ts
2
+ var e = (e) => {
3
+ let t = e.delay ?? 500, n = "", r = null, i = () => {
4
+ n = "", r !== null && (clearTimeout(r), r = null);
5
+ };
6
+ return e.signal?.addEventListener("abort", i, { once: !0 }), {
7
+ handleKeydown: (a) => {
8
+ if (a.key.length !== 1 || a.ctrlKey || a.altKey || a.metaKey) return !1;
9
+ n += a.key.toLowerCase(), r !== null && clearTimeout(r), r = setTimeout(i, t);
10
+ let o = e.getItems(), s = e.getIndex(), c = s >= 0 ? s + 1 : 0;
11
+ for (let t = 0; t < o.length; t++) {
12
+ let r = (c + t) % o.length;
13
+ if (!e.isItemDisabled?.(o[r], r) && e.getItemLabel(o[r], r).toLowerCase().startsWith(n)) return e.onNavigate(r, a), !0;
14
+ }
15
+ return !1;
16
+ },
17
+ reset: i
18
+ };
19
+ };
20
+ //#endregion
21
+ export { e as createTypeahead };
22
+
23
+ //# sourceMappingURL=typeahead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeahead.js","names":[],"sources":["../../src/headless/typeahead.ts"],"sourcesContent":["// ── Typeahead ─────────────────────────────────────────────────────────────────\n// Standalone typeahead primitive: accumulates printable keystrokes, then finds\n// the first enabled item whose label starts with the buffer.\n//\n// Extracted from nav.ts so it can be reused independently (e.g. combobox input).\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\nexport type TypeaheadOptions<T> = {\n /**\n * Milliseconds of inactivity before the buffer resets.\n * ARIA APG recommended window. Default: `500`.\n */\n delay?: number;\n /** Returns the current focused index (used to search forward from current + 1). */\n getIndex: () => number;\n /** Returns a plain-text label for the item at `index`. */\n getItemLabel: (item: T, index: number) => string;\n /** Returns all items in the current list. */\n getItems: () => T[];\n /** Returns `true` for items that should be skipped during typeahead search. */\n isItemDisabled?: (item: T, index: number) => boolean;\n /** Called when typeahead navigation lands on an item. */\n onNavigate: (index: number, event: KeyboardEvent) => void;\n /**\n * When provided, the pending reset timer is cancelled automatically when the\n * signal aborts (e.g. when the owning component disconnects).\n */\n signal?: AbortSignal;\n};\n\nexport type Typeahead = {\n /**\n * Process a keyboard event. Returns `true` if the event was consumed by\n * typeahead (a printable character matched or was buffered).\n */\n handleKeydown(event: KeyboardEvent): boolean;\n /** Reset the buffer immediately. Call on list close to clear stale input. */\n reset(): void;\n};\n\n// ── Implementation ────────────────────────────────────────────────────────────\n\n/**\n * Creates a standalone typeahead handler for keyboard-navigable lists.\n *\n * Accumulates printable keystrokes into a buffer; on each keystroke searches\n * for the first enabled item whose label starts with the buffer. Cycles past\n * the current item on repeated same-character presses. Buffer resets after\n * `delay` ms of inactivity (default 500 — the ARIA APG recommended window).\n *\n * @example\n * ```ts\n * const typeahead = createTypeahead({\n * getIndex: () => focusedIndex,\n * getItemLabel: (item) => item.label,\n * getItems: () => items,\n * onNavigate: (index) => { focusedIndex = index; },\n * });\n *\n * listEl.addEventListener('keydown', (e) => typeahead.handleKeydown(e));\n * ```\n */\nexport const createTypeahead = <T>(options: TypeaheadOptions<T>): Typeahead => {\n const delay = options.delay ?? 500;\n let _buffer = '';\n let _timer: ReturnType<typeof setTimeout> | null = null;\n\n const reset = (): void => {\n _buffer = '';\n\n if (_timer !== null) {\n clearTimeout(_timer);\n _timer = null;\n }\n };\n\n options.signal?.addEventListener('abort', reset, { once: true });\n\n const handleKeydown = (event: KeyboardEvent): boolean => {\n // Single printable character only; exclude modifier combos.\n if (event.key.length !== 1 || event.ctrlKey || event.altKey || event.metaKey) return false;\n\n _buffer += event.key.toLowerCase();\n\n if (_timer !== null) clearTimeout(_timer);\n\n _timer = setTimeout(reset, delay);\n\n const items = options.getItems();\n const current = options.getIndex();\n const startAfter = current >= 0 ? current + 1 : 0;\n\n for (let n = 0; n < items.length; n++) {\n const i = (startAfter + n) % items.length;\n\n if (options.isItemDisabled?.(items[i], i)) continue;\n\n if (options.getItemLabel(items[i], i).toLowerCase().startsWith(_buffer)) {\n options.onNavigate(i, event);\n\n return true;\n }\n }\n\n return false;\n };\n\n return { handleKeydown, reset };\n};\n"],"mappings":";AA+DA,IAAa,KAAsB,MAA4C;CAC7E,IAAM,IAAQ,EAAQ,SAAS,KAC3B,IAAU,IACV,IAA+C,MAE7C,UAAoB;EAGxB,AAFA,IAAU,IAEN,MAAW,SACb,aAAa,CAAM,GACnB,IAAS;CAEb;CAiCA,OA/BA,EAAQ,QAAQ,iBAAiB,SAAS,GAAO,EAAE,MAAM,GAAK,CAAC,GA+BxD;EAAE,gBA7Bc,MAAkC;GAEvD,IAAI,EAAM,IAAI,WAAW,KAAK,EAAM,WAAW,EAAM,UAAU,EAAM,SAAS,OAAO;GAMrF,AAJA,KAAW,EAAM,IAAI,YAAY,GAE7B,MAAW,QAAM,aAAa,CAAM,GAExC,IAAS,WAAW,GAAO,CAAK;GAEhC,IAAM,IAAQ,EAAQ,SAAS,GACzB,IAAU,EAAQ,SAAS,GAC3B,IAAa,KAAW,IAAI,IAAU,IAAI;GAEhD,KAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,KAAK;IACrC,IAAM,KAAK,IAAa,KAAK,EAAM;IAE/B,OAAQ,iBAAiB,EAAM,IAAI,CAAC,KAEpC,EAAQ,aAAa,EAAM,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAO,GAGpE,OAFA,EAAQ,WAAW,GAAG,CAAK,GAEpB;GAEX;GAEA,OAAO;EACT;EAEwB;CAAM;AAChC"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./headless/ore.cjs"),t=require("./headless/field-base.cjs"),n=require("./headless/signals.cjs"),r=require("./headless/text-field.cjs"),i=require("./headless/choice-field.cjs"),a=require("./headless/keyboard.cjs"),o=require("./headless/checkable.cjs"),s=require("./headless/typeahead.cjs"),c=require("./headless/nav.cjs"),l=require("./headless/overlay.cjs"),u=require("./headless/positioner.cjs"),d=require("./headless/option-list.cjs"),f=require("./headless/paginated-list.cjs"),p=require("./headless/numbers.cjs"),m=require("./headless/spinner.cjs"),h=require("./headless/slider.cjs"),g=require("./headless/swipe.cjs"),_=require("./headless/announcer.cjs"),v=require("./headless/date-picker.cjs"),y=require("./headless/dialog-focus.cjs"),b=require("./headless/light-dom.cjs"),x=require("./headless/selection-control.cjs"),S=require("./headless/sort-control.cjs"),C=require("./headless/datagrid.cjs"),w=require("./headless/parse.cjs");exports.announce=_.announce,exports.createCheckable=o.createCheckable,exports.createChoiceField=i.createChoiceField,exports.createDataGridControl=C.createDataGridControl,exports.createDatePickerControl=v.createDatePickerControl,exports.createDialogFocusControl=y.createDialogFocusControl,exports.createDropdownPositioner=u.createDropdownPositioner,exports.createErrorHelperState=t.createErrorHelperState,exports.createInteraction=a.createInteraction,exports.createListControl=c.createListControl,exports.createOptionList=d.createOptionList,exports.createOverlayControl=l.createOverlayControl,exports.createPaginatedList=f.createPaginatedList,exports.createSelectionControl=x.createSelectionControl,exports.createSliderControl=h.createSliderControl,exports.createSortControl=S.createSortControl,exports.createSpinnerControl=m.createSpinnerControl,exports.createSwipeControl=g.createSwipeControl,exports.createTextField=r.createTextField,exports.createTypeahead=s.createTypeahead,exports.dispatchKeyboardAction=a.dispatchKeyboardAction,exports.formatDisplayDate=v.formatDisplayDate,exports.getChoiceLabel=b.getChoiceLabel,exports.getLightChildrenByTag=b.getLightChildrenByTag,exports.lifecycleSignal=e.lifecycleSignal,exports.parseIso=v.parseIso,exports.parseStringTriggers=w.parseStringTriggers,exports.syncedSignal=n.syncedSignal,exports.toFiniteNumber=p.toFiniteNumber,exports.toFiniteNumberOr=p.toFiniteNumberOr,exports.toIsoString=v.toIsoString,exports.toPositiveStep=p.toPositiveStep;
@@ -0,0 +1,26 @@
1
+ import { lifecycleSignal as e } from "./headless/ore.js";
2
+ import { createErrorHelperState as t } from "./headless/field-base.js";
3
+ import { syncedSignal as n } from "./headless/signals.js";
4
+ import { createTextField as r } from "./headless/text-field.js";
5
+ import { createChoiceField as i } from "./headless/choice-field.js";
6
+ import { createInteraction as a, dispatchKeyboardAction as o } from "./headless/keyboard.js";
7
+ import { createCheckable as s } from "./headless/checkable.js";
8
+ import { createTypeahead as c } from "./headless/typeahead.js";
9
+ import { createListControl as l } from "./headless/nav.js";
10
+ import { createOverlayControl as u } from "./headless/overlay.js";
11
+ import { createDropdownPositioner as d } from "./headless/positioner.js";
12
+ import { createOptionList as f } from "./headless/option-list.js";
13
+ import { createPaginatedList as p } from "./headless/paginated-list.js";
14
+ import { toFiniteNumber as m, toFiniteNumberOr as h, toPositiveStep as g } from "./headless/numbers.js";
15
+ import { createSpinnerControl as _ } from "./headless/spinner.js";
16
+ import { createSliderControl as v } from "./headless/slider.js";
17
+ import { createSwipeControl as y } from "./headless/swipe.js";
18
+ import { announce as b } from "./headless/announcer.js";
19
+ import { createDatePickerControl as x, formatDisplayDate as S, parseIso as C, toIsoString as w } from "./headless/date-picker.js";
20
+ import { createDialogFocusControl as T } from "./headless/dialog-focus.js";
21
+ import { getChoiceLabel as E, getLightChildrenByTag as D } from "./headless/light-dom.js";
22
+ import { createSelectionControl as O } from "./headless/selection-control.js";
23
+ import { createSortControl as k } from "./headless/sort-control.js";
24
+ import { createDataGridControl as A } from "./headless/datagrid.js";
25
+ import { parseStringTriggers as j } from "./headless/parse.js";
26
+ export { b as announce, s as createCheckable, i as createChoiceField, A as createDataGridControl, x as createDatePickerControl, T as createDialogFocusControl, d as createDropdownPositioner, t as createErrorHelperState, a as createInteraction, l as createListControl, f as createOptionList, u as createOverlayControl, p as createPaginatedList, O as createSelectionControl, v as createSliderControl, k as createSortControl, _ as createSpinnerControl, y as createSwipeControl, r as createTextField, c as createTypeahead, o as dispatchKeyboardAction, S as formatDisplayDate, E as getChoiceLabel, D as getLightChildrenByTag, e as lifecycleSignal, C as parseIso, j as parseStringTriggers, n as syncedSignal, m as toFiniteNumber, h as toFiniteNumberOr, w as toIsoString, g as toPositiveStep };
package/dist/icon.cjs ADDED
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./_virtual/_rolldown/runtime.cjs"),t=require("./ore/dist/directives/raw.cjs");require("./ore/dist/directives.cjs");const n=require("./_dev.cjs"),r=require("./content/icon/icon.css?inline.cjs");let i=require("@vielzeug/ore"),a=require("@vielzeug/ripple"),o=require("lucide");o=e.__toESM(o,1);var s=16,c=2,l=24,u=new Set([`circle`,`clipPath`,`defs`,`ellipse`,`g`,`line`,`linearGradient`,`mask`,`path`,`polygon`,`polyline`,`radialGradient`,`rect`,`stop`,`symbol`,`use`]),d=/^[a-zA-Z][a-zA-Z0-9:_-]*$/,f=/^(on|xlink:|xml:|href$)/i,p=new Map(Object.entries(o.icons));function m(e){for(let[t,n]of Object.entries(e))p.set(t,n)}var h=e=>Object.entries(e).filter(([e])=>d.test(e)&&!f.test(e)).map(([e,t])=>`${e}="${String(t).replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}"`).join(` `),g=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``),_=e=>{if(e==null||e===``)return s;let t=Number(e);return Number.isFinite(t)&&t>0&&/^\d+(\.\d+)?$/.test(e.trim())?t:e},v=`ore-icon`;(0,i.define)(v,{props:{absoluteStrokeWidth:i.prop.bool(),label:i.prop.string(),name:i.prop.string(),size:{default:s,parse:_,reflect:!1},solid:i.prop.bool(),strokeWidth:i.prop.number(c)},setup(e,{bind:r}){return r({attr:{"aria-hidden":()=>(e.label.value??``).trim()?null:`true`,"aria-label":()=>(e.label.value??``).trim()||null,role:()=>(e.label.value??``).trim()?`img`:null},style:{"--_size-px":()=>{let t=e.size.value;return typeof t==`number`?`${t}px`:String(t)}}}),i.html`${t.raw((0,a.computed)(()=>{let t=(e.name.value??``).trim();if(!t)return``;let r=p.get(t)??p.get(g(t));if(!r)return n.warn(`ore-icon: icon not found: "${String(t).slice(0,64)}"`),``;let i=e.size.value,a=typeof i==`number`?i:l,o=e.absoluteStrokeWidth.value&&!e.solid.value?e.strokeWidth.value*(l/a):e.strokeWidth.value,s=r.filter(([e])=>u.has(e)).map(([e,t])=>{let n={};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);return`<${e} ${h(n)} />`}).join(``);return`<svg ${h({fill:e.solid.value?`currentColor`:`none`,part:`svg`,stroke:e.solid.value?`none`:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":e.solid.value?0:o,style:`width:100%;height:100%`,viewBox:`0 0 24 24`,xmlns:`http://www.w3.org/2000/svg`})}>${s}</svg>`}))}`},styles:[r.default]}),exports.ICON_TAG=v,exports.registerIcons=m;
2
+ //# sourceMappingURL=icon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.cjs","names":[],"sources":["../src/content/icon/icon.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { raw } from '@vielzeug/ore/directives';\nimport { computed } from '@vielzeug/ripple';\nimport * as lucideModule from 'lucide';\n\nimport { warn } from '../../_dev';\nimport styles from './icon.css?inline';\n\nexport type IconNode = Array<[string, Record<string, string | number | undefined>]>;\n\nconst DEFAULT_SIZE = 16;\nconst DEFAULT_STROKE_WIDTH = 2;\nconst LUCIDE_VIEWBOX_SIZE = 24;\n\n/**\n * Allowlisted SVG shape/structure element names. Only these tags are permitted\n * when building the SVG markup from an IconNode, preventing arbitrary element\n * injection (e.g. <script>, event-handler-bearing elements).\n */\nconst ALLOWED_SVG_TAGS = new Set([\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'g',\n 'line',\n 'linearGradient',\n 'mask',\n 'path',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'symbol',\n 'use',\n]);\n\n/**\n * Allowlisted SVG presentation / structural attribute names.\n * Event handler attributes (on*) and \"xlink:href\" are excluded.\n */\nconst ATTR_KEY_RE = /^[a-zA-Z][a-zA-Z0-9:_-]*$/;\nconst BLOCKED_ATTR_RE = /^(on|xlink:|xml:|href$)/i;\n\n// Sync registry seeded from lucide at module load; extend at any time via registerIcons()\nconst registry = new Map<string, IconNode>(\n Object.entries((lucideModule as unknown as { icons: Record<string, IconNode> }).icons),\n);\n\n/**\n * Register additional icons (or override existing ones) by name.\n * Keys may be kebab-case or PascalCase — both are accepted by `ore-icon`.\n */\nexport function registerIcons(icons: Record<string, IconNode>): void {\n for (const [name, node] of Object.entries(icons)) {\n registry.set(name, node);\n }\n}\n\nconst toAttrString = (attrs: Record<string, string | number>): string =>\n Object.entries(attrs)\n .filter(([k]) => ATTR_KEY_RE.test(k) && !BLOCKED_ATTR_RE.test(k))\n .map(\n ([k, v]) =>\n `${k}=\"${String(v).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;')}\"`,\n )\n .join(' ');\n\nconst toPascalCase = (value: string): string =>\n value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean)\n .map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase())\n .join('');\n\nconst parseSize = (value: string | null): number | string => {\n if (value == null || value === '') return DEFAULT_SIZE;\n\n const n = Number(value);\n\n return Number.isFinite(n) && n > 0 && /^\\d+(\\.\\d+)?$/.test(value.trim()) ? n : value;\n};\n\n/** Icon component properties */\nexport type OreIconProps = {\n /** Keep stroke width visually consistent when icon size changes */\n absoluteStrokeWidth?: boolean;\n /** Accessible text label. Decorative icons should omit this. */\n label?: string;\n /** Lucide icon name, e.g. `search` or `chevron-right` */\n name?: string;\n /** Icon width/height in px by default. Accepts CSS lengths. */\n size?: number | string;\n /** Render as a filled/solid shape instead of a stroked outline */\n solid?: boolean;\n /** SVG stroke width */\n strokeWidth?: number;\n};\n\n/**\n * Icon wrapper for consistent Lucide rendering across Block.\n *\n * @element ore-icon\n *\n * @attr {string} name - Lucide icon name, e.g. `search` or `chevron-right`\n * @attr {number|string} size - Width/height (default: 16)\n * @attr {number} stroke-width - SVG stroke width (default: 2)\n * @attr {boolean} absolute-stroke-width - Keep stroke width visually stable across icon sizes\n * @attr {boolean} solid - Render as filled shape instead of stroked outline\n * @attr {string} label - Accessible label; when omitted the icon is decorative\n *\n * @csspart svg - Internal SVG element\n *\n * @example\n * ```html\n * <ore-icon name=\"search\"></ore-icon>\n * <ore-icon name=\"chevron-right\" size=\"18\"></ore-icon>\n * <ore-icon name=\"trash-2\" label=\"Delete\"></ore-icon>\n * <ore-icon name=\"star\" solid></ore-icon>\n * ```\n */\nexport const ICON_TAG = 'ore-icon' as const;\ndefine<OreIconProps>(ICON_TAG, {\n props: {\n absoluteStrokeWidth: prop.bool(),\n label: prop.string(),\n name: prop.string(),\n size: { default: DEFAULT_SIZE as number | string, parse: parseSize, reflect: false },\n solid: prop.bool(),\n strokeWidth: prop.number(DEFAULT_STROKE_WIDTH),\n },\n setup(props, { bind }) {\n bind({\n attr: {\n 'aria-hidden': () => ((props.label.value ?? '').trim() ? null : 'true'),\n 'aria-label': () => (props.label.value ?? '').trim() || null,\n role: () => ((props.label.value ?? '').trim() ? 'img' : null),\n },\n style: {\n '--_size-px': () => {\n const s = props.size.value;\n\n return typeof s === 'number' ? `${s}px` : String(s);\n },\n },\n });\n\n const markup = computed(() => {\n const name = (props.name.value ?? '').trim();\n\n if (!name) return '';\n\n const iconNode = registry.get(name) ?? registry.get(toPascalCase(name));\n\n if (!iconNode) {\n warn(`ore-icon: icon not found: \"${String(name).slice(0, 64)}\"`);\n\n return '';\n }\n\n const size = props.size.value;\n const numericSize = typeof size === 'number' ? size : LUCIDE_VIEWBOX_SIZE;\n\n const strokeWidth =\n props.absoluteStrokeWidth.value && !props.solid.value\n ? props.strokeWidth.value! * (LUCIDE_VIEWBOX_SIZE / numericSize)\n : props.strokeWidth.value!;\n\n const nodes = iconNode\n .filter(([tag]) => ALLOWED_SVG_TAGS.has(tag))\n .map(([tag, tagAttrs]) => {\n const attrs: Record<string, string | number> = {};\n\n for (const [k, v] of Object.entries(tagAttrs)) {\n if (v !== undefined) attrs[k] = v;\n }\n\n return `<${tag} ${toAttrString(attrs)} />`;\n })\n .join('');\n\n const svgAttrs = toAttrString({\n fill: props.solid.value ? 'currentColor' : 'none',\n part: 'svg',\n stroke: props.solid.value ? 'none' : 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n 'stroke-width': props.solid.value ? 0 : strokeWidth,\n style: `width:100%;height:100%`,\n viewBox: '0 0 24 24',\n xmlns: 'http://www.w3.org/2000/svg',\n });\n\n return `<svg ${svgAttrs}>${nodes}</svg>`;\n });\n\n return html`${raw(markup)}`;\n },\n styles: [styles],\n});\n"],"mappings":"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"}
package/dist/icon.js ADDED
@@ -0,0 +1,87 @@
1
+ import { raw as e } from "./ore/dist/directives/raw.js";
2
+ import "./ore/dist/directives.js";
3
+ import { warn as t } from "./_dev.js";
4
+ import n from "./content/icon/icon.css?inline.js";
5
+ import { define as r, html as i, prop as a } from "@vielzeug/ore";
6
+ import { computed as o } from "@vielzeug/ripple";
7
+ import * as s from "lucide";
8
+ //#region src/content/icon/icon.ts
9
+ var c = 16, l = 2, u = 24, d = /* @__PURE__ */ new Set([
10
+ "circle",
11
+ "clipPath",
12
+ "defs",
13
+ "ellipse",
14
+ "g",
15
+ "line",
16
+ "linearGradient",
17
+ "mask",
18
+ "path",
19
+ "polygon",
20
+ "polyline",
21
+ "radialGradient",
22
+ "rect",
23
+ "stop",
24
+ "symbol",
25
+ "use"
26
+ ]), f = /^[a-zA-Z][a-zA-Z0-9:_-]*$/, p = /^(on|xlink:|xml:|href$)/i, m = new Map(Object.entries(s.icons));
27
+ function h(e) {
28
+ for (let [t, n] of Object.entries(e)) m.set(t, n);
29
+ }
30
+ var g = (e) => Object.entries(e).filter(([e]) => f.test(e) && !p.test(e)).map(([e, t]) => `${e}="${String(t).replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;")}"`).join(" "), _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").split(/[^a-zA-Z0-9]+/).filter(Boolean).map((e) => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join(""), v = (e) => {
31
+ if (e == null || e === "") return c;
32
+ let t = Number(e);
33
+ return Number.isFinite(t) && t > 0 && /^\d+(\.\d+)?$/.test(e.trim()) ? t : e;
34
+ }, y = "ore-icon";
35
+ r(y, {
36
+ props: {
37
+ absoluteStrokeWidth: a.bool(),
38
+ label: a.string(),
39
+ name: a.string(),
40
+ size: {
41
+ default: c,
42
+ parse: v,
43
+ reflect: !1
44
+ },
45
+ solid: a.bool(),
46
+ strokeWidth: a.number(l)
47
+ },
48
+ setup(n, { bind: r }) {
49
+ return r({
50
+ attr: {
51
+ "aria-hidden": () => (n.label.value ?? "").trim() ? null : "true",
52
+ "aria-label": () => (n.label.value ?? "").trim() || null,
53
+ role: () => (n.label.value ?? "").trim() ? "img" : null
54
+ },
55
+ style: { "--_size-px": () => {
56
+ let e = n.size.value;
57
+ return typeof e == "number" ? `${e}px` : String(e);
58
+ } }
59
+ }), i`${e(o(() => {
60
+ let e = (n.name.value ?? "").trim();
61
+ if (!e) return "";
62
+ let r = m.get(e) ?? m.get(_(e));
63
+ if (!r) return t(`ore-icon: icon not found: "${String(e).slice(0, 64)}"`), "";
64
+ let i = n.size.value, a = typeof i == "number" ? i : u, o = n.absoluteStrokeWidth.value && !n.solid.value ? n.strokeWidth.value * (u / a) : n.strokeWidth.value, s = r.filter(([e]) => d.has(e)).map(([e, t]) => {
65
+ let n = {};
66
+ for (let [e, r] of Object.entries(t)) r !== void 0 && (n[e] = r);
67
+ return `<${e} ${g(n)} />`;
68
+ }).join("");
69
+ return `<svg ${g({
70
+ fill: n.solid.value ? "currentColor" : "none",
71
+ part: "svg",
72
+ stroke: n.solid.value ? "none" : "currentColor",
73
+ "stroke-linecap": "round",
74
+ "stroke-linejoin": "round",
75
+ "stroke-width": n.solid.value ? 0 : o,
76
+ style: "width:100%;height:100%",
77
+ viewBox: "0 0 24 24",
78
+ xmlns: "http://www.w3.org/2000/svg"
79
+ })}>${s}</svg>`;
80
+ }))}`;
81
+ },
82
+ styles: [n]
83
+ });
84
+ //#endregion
85
+ export { y as ICON_TAG, h as registerIcons };
86
+
87
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","names":[],"sources":["../src/content/icon/icon.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { raw } from '@vielzeug/ore/directives';\nimport { computed } from '@vielzeug/ripple';\nimport * as lucideModule from 'lucide';\n\nimport { warn } from '../../_dev';\nimport styles from './icon.css?inline';\n\nexport type IconNode = Array<[string, Record<string, string | number | undefined>]>;\n\nconst DEFAULT_SIZE = 16;\nconst DEFAULT_STROKE_WIDTH = 2;\nconst LUCIDE_VIEWBOX_SIZE = 24;\n\n/**\n * Allowlisted SVG shape/structure element names. Only these tags are permitted\n * when building the SVG markup from an IconNode, preventing arbitrary element\n * injection (e.g. <script>, event-handler-bearing elements).\n */\nconst ALLOWED_SVG_TAGS = new Set([\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'g',\n 'line',\n 'linearGradient',\n 'mask',\n 'path',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'symbol',\n 'use',\n]);\n\n/**\n * Allowlisted SVG presentation / structural attribute names.\n * Event handler attributes (on*) and \"xlink:href\" are excluded.\n */\nconst ATTR_KEY_RE = /^[a-zA-Z][a-zA-Z0-9:_-]*$/;\nconst BLOCKED_ATTR_RE = /^(on|xlink:|xml:|href$)/i;\n\n// Sync registry seeded from lucide at module load; extend at any time via registerIcons()\nconst registry = new Map<string, IconNode>(\n Object.entries((lucideModule as unknown as { icons: Record<string, IconNode> }).icons),\n);\n\n/**\n * Register additional icons (or override existing ones) by name.\n * Keys may be kebab-case or PascalCase — both are accepted by `ore-icon`.\n */\nexport function registerIcons(icons: Record<string, IconNode>): void {\n for (const [name, node] of Object.entries(icons)) {\n registry.set(name, node);\n }\n}\n\nconst toAttrString = (attrs: Record<string, string | number>): string =>\n Object.entries(attrs)\n .filter(([k]) => ATTR_KEY_RE.test(k) && !BLOCKED_ATTR_RE.test(k))\n .map(\n ([k, v]) =>\n `${k}=\"${String(v).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;')}\"`,\n )\n .join(' ');\n\nconst toPascalCase = (value: string): string =>\n value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean)\n .map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase())\n .join('');\n\nconst parseSize = (value: string | null): number | string => {\n if (value == null || value === '') return DEFAULT_SIZE;\n\n const n = Number(value);\n\n return Number.isFinite(n) && n > 0 && /^\\d+(\\.\\d+)?$/.test(value.trim()) ? n : value;\n};\n\n/** Icon component properties */\nexport type OreIconProps = {\n /** Keep stroke width visually consistent when icon size changes */\n absoluteStrokeWidth?: boolean;\n /** Accessible text label. Decorative icons should omit this. */\n label?: string;\n /** Lucide icon name, e.g. `search` or `chevron-right` */\n name?: string;\n /** Icon width/height in px by default. Accepts CSS lengths. */\n size?: number | string;\n /** Render as a filled/solid shape instead of a stroked outline */\n solid?: boolean;\n /** SVG stroke width */\n strokeWidth?: number;\n};\n\n/**\n * Icon wrapper for consistent Lucide rendering across Block.\n *\n * @element ore-icon\n *\n * @attr {string} name - Lucide icon name, e.g. `search` or `chevron-right`\n * @attr {number|string} size - Width/height (default: 16)\n * @attr {number} stroke-width - SVG stroke width (default: 2)\n * @attr {boolean} absolute-stroke-width - Keep stroke width visually stable across icon sizes\n * @attr {boolean} solid - Render as filled shape instead of stroked outline\n * @attr {string} label - Accessible label; when omitted the icon is decorative\n *\n * @csspart svg - Internal SVG element\n *\n * @example\n * ```html\n * <ore-icon name=\"search\"></ore-icon>\n * <ore-icon name=\"chevron-right\" size=\"18\"></ore-icon>\n * <ore-icon name=\"trash-2\" label=\"Delete\"></ore-icon>\n * <ore-icon name=\"star\" solid></ore-icon>\n * ```\n */\nexport const ICON_TAG = 'ore-icon' as const;\ndefine<OreIconProps>(ICON_TAG, {\n props: {\n absoluteStrokeWidth: prop.bool(),\n label: prop.string(),\n name: prop.string(),\n size: { default: DEFAULT_SIZE as number | string, parse: parseSize, reflect: false },\n solid: prop.bool(),\n strokeWidth: prop.number(DEFAULT_STROKE_WIDTH),\n },\n setup(props, { bind }) {\n bind({\n attr: {\n 'aria-hidden': () => ((props.label.value ?? '').trim() ? null : 'true'),\n 'aria-label': () => (props.label.value ?? '').trim() || null,\n role: () => ((props.label.value ?? '').trim() ? 'img' : null),\n },\n style: {\n '--_size-px': () => {\n const s = props.size.value;\n\n return typeof s === 'number' ? `${s}px` : String(s);\n },\n },\n });\n\n const markup = computed(() => {\n const name = (props.name.value ?? '').trim();\n\n if (!name) return '';\n\n const iconNode = registry.get(name) ?? registry.get(toPascalCase(name));\n\n if (!iconNode) {\n warn(`ore-icon: icon not found: \"${String(name).slice(0, 64)}\"`);\n\n return '';\n }\n\n const size = props.size.value;\n const numericSize = typeof size === 'number' ? size : LUCIDE_VIEWBOX_SIZE;\n\n const strokeWidth =\n props.absoluteStrokeWidth.value && !props.solid.value\n ? props.strokeWidth.value! * (LUCIDE_VIEWBOX_SIZE / numericSize)\n : props.strokeWidth.value!;\n\n const nodes = iconNode\n .filter(([tag]) => ALLOWED_SVG_TAGS.has(tag))\n .map(([tag, tagAttrs]) => {\n const attrs: Record<string, string | number> = {};\n\n for (const [k, v] of Object.entries(tagAttrs)) {\n if (v !== undefined) attrs[k] = v;\n }\n\n return `<${tag} ${toAttrString(attrs)} />`;\n })\n .join('');\n\n const svgAttrs = toAttrString({\n fill: props.solid.value ? 'currentColor' : 'none',\n part: 'svg',\n stroke: props.solid.value ? 'none' : 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n 'stroke-width': props.solid.value ? 0 : strokeWidth,\n style: `width:100%;height:100%`,\n viewBox: '0 0 24 24',\n xmlns: 'http://www.w3.org/2000/svg',\n });\n\n return `<svg ${svgAttrs}>${nodes}</svg>`;\n });\n\n return html`${raw(markup)}`;\n },\n styles: [styles],\n});\n"],"mappings":"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"}
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./code-window.cjs"),t=require("./icon.cjs"),n=require("./copy-command.cjs"),r=require("./shared/prop-bundles.cjs"),i=require("./shared/size-presets.cjs"),a=require("./progress.cjs"),o=require("./errors.cjs"),s=require("./content/carousel/carousel-slide.cjs"),c=require("./carousel.cjs"),l=require("./avatar.cjs"),u=require("./breadcrumb.cjs"),d=require("./card.cjs"),f=require("./button-group.cjs"),p=require("./inputs/shared/form-context.cjs"),ee=require("./button.cjs"),te=require("./pagination.cjs"),m=require("./separator.cjs"),h=require("./table.cjs"),g=require("./text.cjs"),_=require("./accordion.cjs"),v=require("./tabs.cjs"),y=require("./accordion-item.cjs"),b=require("./tab-item.cjs"),x=require("./tab-panel.cjs"),S=require("./async.cjs"),C=require("./alert.cjs"),w=require("./badge.cjs"),T=require("./chip.cjs"),E=require("./password-strength.cjs"),D=require("./skeleton.cjs"),O=require("./toast.cjs"),k=require("./checkbox-group.cjs"),A=require("./checkbox.cjs"),j=require("./input.cjs"),M=require("./combobox.cjs"),N=require("./select.cjs"),ne=require("./popover.cjs"),P=require("./datagrid.cjs"),F=require("./calendar.cjs"),I=require("./date-picker.cjs"),L=require("./file-input.cjs"),R=require("./form.cjs"),z=require("./number-input.cjs"),B=require("./otp-input.cjs"),V=require("./radio-group.cjs"),H=require("./radio.cjs"),U=require("./rating.cjs"),W=require("./slider.cjs"),G=require("./switch.cjs"),K=require("./textarea.cjs"),q=require("./time-picker.cjs"),J=require("./box.cjs"),Y=require("./grid-item.cjs"),X=require("./grid.cjs"),Z=require("./navbar.cjs"),Q=require("./sidebar.cjs"),re=require("./dialog.cjs"),ie=require("./drawer.cjs"),$=require("./menu.cjs"),ae=require("./tooltip.cjs");exports.ACCORDION_CTX=_.ACCORDION_CTX,exports.ACCORDION_ITEM_TAG=y.ACCORDION_ITEM_TAG,exports.ACCORDION_TAG=_.ACCORDION_TAG,exports.ALERT_TAG=C.ALERT_TAG,exports.ASYNC_TAG=S.ASYNC_TAG,exports.AVATAR_GROUP_TAG=l.AVATAR_GROUP_TAG,exports.AVATAR_TAG=l.AVATAR_TAG,exports.BADGE_TAG=w.BADGE_TAG,exports.BOX_TAG=J.BOX_TAG,exports.BREADCRUMB_ITEM_TAG=u.BREADCRUMB_ITEM_TAG,exports.BREADCRUMB_TAG=u.BREADCRUMB_TAG,exports.BUTTON_GROUP_CTX=f.BUTTON_GROUP_CTX,exports.BUTTON_GROUP_TAG=f.BUTTON_GROUP_TAG,exports.BUTTON_TAG=ee.BUTTON_TAG,exports.CALENDAR_TAG=F.CALENDAR_TAG,exports.CARD_TAG=d.CARD_TAG,exports.CAROUSEL_SLIDE_TAG=s.CAROUSEL_SLIDE_TAG,exports.CAROUSEL_TAG=c.CAROUSEL_TAG,exports.CHECKBOX_GROUP_CTX=k.CHECKBOX_GROUP_CTX,exports.CHECKBOX_GROUP_TAG=k.CHECKBOX_GROUP_TAG,exports.CHECKBOX_TAG=A.CHECKBOX_TAG,exports.CHIP_TAG=T.CHIP_TAG,exports.CODE_WINDOW_TAG=e.CODE_WINDOW_TAG,exports.COMBOBOX_TAG=M.COMBOBOX_TAG,exports.CONTROL_SIZE_PRESET=i.CONTROL_SIZE_PRESET,exports.COPY_COMMAND_TAG=n.COPY_COMMAND_TAG,exports.DATAGRID_TAG=P.DATAGRID_TAG,exports.DATE_PICKER_TAG=I.DATE_PICKER_TAG,exports.DIALOG_TAG=re.DIALOG_TAG,exports.DRAWER_TAG=ie.DRAWER_TAG,exports.FIELD_SIZE_PRESET=i.FIELD_SIZE_PRESET,exports.FILE_INPUT_SIZE_PRESET=i.FILE_INPUT_SIZE_PRESET,exports.FILE_INPUT_TAG=L.FILE_INPUT_TAG,exports.FORM_CTX=p.FORM_CTX,exports.FORM_TAG=R.FORM_TAG,exports.GRID_ITEM_TAG=Y.GRID_ITEM_TAG,exports.GRID_TAG=X.GRID_TAG,exports.ICON_TAG=t.ICON_TAG,exports.INPUT_TAG=j.INPUT_TAG,exports.MENU_ITEM_TAG=$.MENU_ITEM_TAG,exports.MENU_TAG=$.MENU_TAG,exports.NAVBAR_CTX=Z.NAVBAR_CTX,exports.NAVBAR_ITEM_TAG=Z.NAVBAR_ITEM_TAG,exports.NAVBAR_TAG=Z.NAVBAR_TAG,exports.NUMBER_INPUT_TAG=z.NUMBER_INPUT_TAG,exports.OTP_INPUT_TAG=B.OTP_INPUT_TAG,exports.PAGINATION_TAG=te.PAGINATION_TAG,exports.PASSWORD_STRENGTH_TAG=E.PASSWORD_STRENGTH_TAG,exports.POPOVER_TAG=ne.POPOVER_TAG,exports.PROGRESS_TAG=a.PROGRESS_TAG,exports.RADIO_GROUP_CTX=V.RADIO_GROUP_CTX,exports.RADIO_GROUP_TAG=V.RADIO_GROUP_TAG,exports.RADIO_TAG=H.RADIO_TAG,exports.RATING_TAG=U.RATING_TAG,exports.RefineConfigError=o.RefineConfigError,exports.RefineError=o.RefineError,exports.SELECT_TAG=N.SELECT_TAG,exports.SEPARATOR_TAG=m.SEPARATOR_TAG,exports.SIDEBAR_CTX=Q.SIDEBAR_CTX,exports.SIDEBAR_GROUP_TAG=Q.SIDEBAR_GROUP_TAG,exports.SIDEBAR_ITEM_TAG=Q.SIDEBAR_ITEM_TAG,exports.SIDEBAR_TAG=Q.SIDEBAR_TAG,exports.SKELETON_TAG=D.SKELETON_TAG,exports.SLIDER_SIZE_PRESET=i.SLIDER_SIZE_PRESET,exports.SLIDER_TAG=W.SLIDER_TAG,exports.SWITCH_SIZE_PRESET=i.SWITCH_SIZE_PRESET,exports.SWITCH_TAG=G.SWITCH_TAG,exports.TABLE_TAG=h.TABLE_TAG,exports.TABS_CTX=v.TABS_CTX,exports.TABS_TAG=v.TABS_TAG,exports.TAB_ITEM_TAG=b.TAB_ITEM_TAG,exports.TAB_PANEL_TAG=x.TAB_PANEL_TAG,exports.TEXTAREA_SIZE_PRESET=i.TEXTAREA_SIZE_PRESET,exports.TEXTAREA_TAG=K.TEXTAREA_TAG,exports.TEXT_TAG=g.TEXT_TAG,exports.TIME_PICKER_TAG=q.TIME_PICKER_TAG,exports.TOAST_TAG=O.TOAST_TAG,exports.TOOLTIP_TAG=ae.TOOLTIP_TAG,exports.commonProps=r.commonProps,exports.createToastService=O.createToastService,exports.disablableBundle=r.disablableBundle,exports.elevatableBundle=r.elevatableBundle,exports.loadableBundle=r.loadableBundle,exports.registerIcons=t.registerIcons,exports.roundableBundle=r.roundableBundle,exports.sizableBundle=r.sizableBundle,exports.themableBundle=r.themableBundle,exports.toast=O.toast;
@@ -0,0 +1,9 @@
1
+ export * from './content';
2
+ export * from './disclosure';
3
+ export * from './errors';
4
+ export * from './feedback';
5
+ export * from './inputs';
6
+ export * from './layout';
7
+ export * from './overlay';
8
+ export * from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,61 @@
1
+ import { CODE_WINDOW_TAG as e } from "./code-window.js";
2
+ import { ICON_TAG as t, registerIcons as n } from "./icon.js";
3
+ import { COPY_COMMAND_TAG as r } from "./copy-command.js";
4
+ import { commonProps as i, disablableBundle as a, elevatableBundle as o, loadableBundle as s, roundableBundle as c, sizableBundle as l, themableBundle as u } from "./shared/prop-bundles.js";
5
+ import { CONTROL_SIZE_PRESET as d, FIELD_SIZE_PRESET as f, FILE_INPUT_SIZE_PRESET as p, SLIDER_SIZE_PRESET as m, SWITCH_SIZE_PRESET as h, TEXTAREA_SIZE_PRESET as g } from "./shared/size-presets.js";
6
+ import { PROGRESS_TAG as _ } from "./progress.js";
7
+ import { RefineConfigError as v, RefineError as y } from "./errors.js";
8
+ import { CAROUSEL_SLIDE_TAG as b } from "./content/carousel/carousel-slide.js";
9
+ import { CAROUSEL_TAG as x } from "./carousel.js";
10
+ import { AVATAR_GROUP_TAG as S, AVATAR_TAG as C } from "./avatar.js";
11
+ import { BREADCRUMB_ITEM_TAG as w, BREADCRUMB_TAG as T } from "./breadcrumb.js";
12
+ import { CARD_TAG as E } from "./card.js";
13
+ import { BUTTON_GROUP_CTX as D, BUTTON_GROUP_TAG as O } from "./button-group.js";
14
+ import { FORM_CTX as k } from "./inputs/shared/form-context.js";
15
+ import { BUTTON_TAG as A } from "./button.js";
16
+ import { PAGINATION_TAG as j } from "./pagination.js";
17
+ import { SEPARATOR_TAG as M } from "./separator.js";
18
+ import { TABLE_TAG as N } from "./table.js";
19
+ import { TEXT_TAG as P } from "./text.js";
20
+ import { ACCORDION_CTX as F, ACCORDION_TAG as I } from "./accordion.js";
21
+ import { TABS_CTX as L, TABS_TAG as R } from "./tabs.js";
22
+ import { ACCORDION_ITEM_TAG as z } from "./accordion-item.js";
23
+ import { TAB_ITEM_TAG as B } from "./tab-item.js";
24
+ import { TAB_PANEL_TAG as V } from "./tab-panel.js";
25
+ import { ASYNC_TAG as H } from "./async.js";
26
+ import { ALERT_TAG as U } from "./alert.js";
27
+ import { BADGE_TAG as W } from "./badge.js";
28
+ import { CHIP_TAG as G } from "./chip.js";
29
+ import { PASSWORD_STRENGTH_TAG as K } from "./password-strength.js";
30
+ import { SKELETON_TAG as q } from "./skeleton.js";
31
+ import { TOAST_TAG as J, createToastService as Y, toast as X } from "./toast.js";
32
+ import { CHECKBOX_GROUP_CTX as Z, CHECKBOX_GROUP_TAG as Q } from "./checkbox-group.js";
33
+ import { CHECKBOX_TAG as $ } from "./checkbox.js";
34
+ import { INPUT_TAG as ee } from "./input.js";
35
+ import { COMBOBOX_TAG as te } from "./combobox.js";
36
+ import { SELECT_TAG as ne } from "./select.js";
37
+ import { POPOVER_TAG as re } from "./popover.js";
38
+ import { DATAGRID_TAG as ie } from "./datagrid.js";
39
+ import { CALENDAR_TAG as ae } from "./calendar.js";
40
+ import { DATE_PICKER_TAG as oe } from "./date-picker.js";
41
+ import { FILE_INPUT_TAG as se } from "./file-input.js";
42
+ import { FORM_TAG as ce } from "./form.js";
43
+ import { NUMBER_INPUT_TAG as le } from "./number-input.js";
44
+ import { OTP_INPUT_TAG as ue } from "./otp-input.js";
45
+ import { RADIO_GROUP_CTX as de, RADIO_GROUP_TAG as fe } from "./radio-group.js";
46
+ import { RADIO_TAG as pe } from "./radio.js";
47
+ import { RATING_TAG as me } from "./rating.js";
48
+ import { SLIDER_TAG as he } from "./slider.js";
49
+ import { SWITCH_TAG as ge } from "./switch.js";
50
+ import { TEXTAREA_TAG as _e } from "./textarea.js";
51
+ import { TIME_PICKER_TAG as ve } from "./time-picker.js";
52
+ import { BOX_TAG as ye } from "./box.js";
53
+ import { GRID_ITEM_TAG as be } from "./grid-item.js";
54
+ import { GRID_TAG as xe } from "./grid.js";
55
+ import { NAVBAR_CTX as Se, NAVBAR_ITEM_TAG as Ce, NAVBAR_TAG as we } from "./navbar.js";
56
+ import { SIDEBAR_CTX as Te, SIDEBAR_GROUP_TAG as Ee, SIDEBAR_ITEM_TAG as De, SIDEBAR_TAG as Oe } from "./sidebar.js";
57
+ import { DIALOG_TAG as ke } from "./dialog.js";
58
+ import { DRAWER_TAG as Ae } from "./drawer.js";
59
+ import { MENU_ITEM_TAG as je, MENU_TAG as Me } from "./menu.js";
60
+ import { TOOLTIP_TAG as Ne } from "./tooltip.js";
61
+ export { F as ACCORDION_CTX, z as ACCORDION_ITEM_TAG, I as ACCORDION_TAG, U as ALERT_TAG, H as ASYNC_TAG, S as AVATAR_GROUP_TAG, C as AVATAR_TAG, W as BADGE_TAG, ye as BOX_TAG, w as BREADCRUMB_ITEM_TAG, T as BREADCRUMB_TAG, D as BUTTON_GROUP_CTX, O as BUTTON_GROUP_TAG, A as BUTTON_TAG, ae as CALENDAR_TAG, E as CARD_TAG, b as CAROUSEL_SLIDE_TAG, x as CAROUSEL_TAG, Z as CHECKBOX_GROUP_CTX, Q as CHECKBOX_GROUP_TAG, $ as CHECKBOX_TAG, G as CHIP_TAG, e as CODE_WINDOW_TAG, te as COMBOBOX_TAG, d as CONTROL_SIZE_PRESET, r as COPY_COMMAND_TAG, ie as DATAGRID_TAG, oe as DATE_PICKER_TAG, ke as DIALOG_TAG, Ae as DRAWER_TAG, f as FIELD_SIZE_PRESET, p as FILE_INPUT_SIZE_PRESET, se as FILE_INPUT_TAG, k as FORM_CTX, ce as FORM_TAG, be as GRID_ITEM_TAG, xe as GRID_TAG, t as ICON_TAG, ee as INPUT_TAG, je as MENU_ITEM_TAG, Me as MENU_TAG, Se as NAVBAR_CTX, Ce as NAVBAR_ITEM_TAG, we as NAVBAR_TAG, le as NUMBER_INPUT_TAG, ue as OTP_INPUT_TAG, j as PAGINATION_TAG, K as PASSWORD_STRENGTH_TAG, re as POPOVER_TAG, _ as PROGRESS_TAG, de as RADIO_GROUP_CTX, fe as RADIO_GROUP_TAG, pe as RADIO_TAG, me as RATING_TAG, v as RefineConfigError, y as RefineError, ne as SELECT_TAG, M as SEPARATOR_TAG, Te as SIDEBAR_CTX, Ee as SIDEBAR_GROUP_TAG, De as SIDEBAR_ITEM_TAG, Oe as SIDEBAR_TAG, q as SKELETON_TAG, m as SLIDER_SIZE_PRESET, he as SLIDER_TAG, h as SWITCH_SIZE_PRESET, ge as SWITCH_TAG, N as TABLE_TAG, L as TABS_CTX, R as TABS_TAG, B as TAB_ITEM_TAG, V as TAB_PANEL_TAG, g as TEXTAREA_SIZE_PRESET, _e as TEXTAREA_TAG, P as TEXT_TAG, ve as TIME_PICKER_TAG, J as TOAST_TAG, Ne as TOOLTIP_TAG, i as commonProps, Y as createToastService, a as disablableBundle, o as elevatableBundle, s as loadableBundle, n as registerIcons, c as roundableBundle, l as sizableBundle, u as themableBundle, X as toast };
package/dist/input.cjs ADDED
@@ -0,0 +1,67 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/directives/live.cjs");require("./ore/dist/directives.cjs");const t=require("./styles/mixins/shape.css.cjs"),n=require("./styles/mixins/theme.css.cjs"),r=require("./styles/index.cjs"),i=require("./shared/prop-bundles.cjs"),a=require("./shared/size-presets.cjs"),o=require("./headless/ore.cjs"),s=require("./headless/text-field.cjs"),c=require("./inputs/shared/form-context.cjs"),l=require("./inputs/input/input.css?inline.cjs");let u=require("@vielzeug/ore"),d=require("@vielzeug/ripple");var f=[`text`,`email`,`password`,`search`,`url`,`tel`,`number`,`date`,`time`,`datetime-local`,`month`,`week`],p=`ore-input`;(0,u.define)(p,{formAssociated:!0,props:{...i.themableBundle,...i.sizableBundle,...i.disablableBundle,...i.roundableBundle,autocomplete:u.prop.string(),clearable:u.prop.bool(!1),error:u.prop.string(),fullwidth:u.prop.bool(!1),helper:u.prop.string(),inputmode:u.prop.string(),label:u.prop.string(),"label-placement":u.prop.oneOf([`inset`,`outside`],`inset`),maxlength:u.prop.json(void 0),minlength:u.prop.json(void 0),name:u.prop.string(),pattern:u.prop.string(),placeholder:u.prop.string(),readonly:u.prop.bool(!1),ref:u.prop.json(void 0),required:u.prop.bool(!1),type:u.prop.oneOf(f,`text`),value:u.prop.string(),variant:u.prop.string()},setup(t,{bind:n,emit:r,onCleanup:i,onElement:a,slots:l}){let f=(0,u.inject)(c.FORM_CTX),p=c.useFormContext(n,t,f),m=(0,d.signal)(!1),h=(0,u.ref)(),g=(0,d.computed)(()=>!!t.label.value||l.has(`label`).value),_=o.lifecycleSignal(i),v=null,y=s.createTextField({disabled:p.disabled,error:t.error,getFormField:()=>v,hasLabel:g,helper:t.helper,label:t.label,labelPlacement:t[`label-placement`],maxLength:t.maxlength,onChange:(e,t)=>{r(`change`,{originalEvent:e,value:t})},onInput:(e,t)=>{r(`input`,{originalEvent:e,value:t})},prefix:`input`,signal:_,validateOn:f?.validateOn,value:t.value});v=(0,u.useField)({disabled:y.disabled,toFormValue:e=>e,value:y.value});let{ariaDescribedBy:b,ariaErrorMessage:x,ariaInvalid:S,ariaLabelledBy:C,assistiveId:w,clear:T,counter:E,errorId:D,errorText:O,fieldId:k,helperText:A,labelId:j,labelVisible:M,value:N,wire:P}=y;return a(h,e=>{P(e,_),t.ref.value?.(e);let n=(0,d.watch)(t.ref,t=>{t?.(e)});return()=>{n.dispose(),t.ref.value?.(null)}}),n({attr:{error:()=>O.value||void 0,"has-value":()=>N.value?!0:void 0,size:p.size,variant:p.variant}}),u.html`
2
+ <div class="input-wrapper" part="wrapper">
3
+ <label class="label" for="${k}" id="${j}" part="label" ?hidden="${()=>!M.value}"
4
+ ><slot name="label">${t.label}</slot></label
5
+ >
6
+ <div class="field" part="field">
7
+ <div class="input-row" part="input-row">
8
+ <slot name="prefix"></slot>
9
+ <input
10
+ part="input"
11
+ id="${k}"
12
+ :type="${()=>t.type.value===`password`&&m.value?`text`:t.type.value??`text`}"
13
+ :name="${t.name}"
14
+ :placeholder="${t.placeholder}"
15
+ :autocomplete="${t.autocomplete}"
16
+ :inputmode="${t.inputmode}"
17
+ :maxlength="${t.maxlength}"
18
+ :minlength="${t.minlength}"
19
+ :pattern="${t.pattern}"
20
+ ?disabled="${t.disabled}"
21
+ ?readonly="${t.readonly}"
22
+ ?required="${t.required}"
23
+ :value="${e.live(N)}"
24
+ :aria-labelledby="${C}"
25
+ :aria-describedby="${b}"
26
+ :aria-errormessage="${x}"
27
+ :aria-invalid="${S}"
28
+ ref="${h}" />
29
+ <slot name="suffix"></slot>
30
+ <button
31
+ class="pwd-toggle-btn"
32
+ part="pwd-toggle"
33
+ type="button"
34
+ :aria-label="${()=>m.value?`Hide password`:`Show password`}"
35
+ :aria-pressed="${()=>String(m.value)}"
36
+ :tabindex="${()=>t.type.value===`password`?`0`:`-1`}"
37
+ @click="${()=>{m.value=!m.value,h.value?.focus()}}">
38
+ ${()=>m.value?u.html`<ore-icon name="eye-off" size="14" stroke-width="2" aria-hidden="true"></ore-icon>`:u.html`<ore-icon name="eye" size="14" stroke-width="2" aria-hidden="true"></ore-icon>`}
39
+ </button>
40
+ <button
41
+ aria-label="Clear"
42
+ class="clear-btn"
43
+ part="clear"
44
+ type="button"
45
+ :tabindex="${()=>N.value?`0`:`-1`}"
46
+ @click="${e=>{T(e),h.value?.focus()}}">
47
+ <ore-icon aria-hidden="true" name="x" size="12" stroke-width="2.5"></ore-icon>
48
+ </button>
49
+ </div>
50
+ </div>
51
+ <div class="helper-text" aria-live="polite" id="${w}" part="helper" ?hidden="${()=>!!O.value||!A.value}">
52
+ <slot name="helper">${()=>A.value}</slot>
53
+ </div>
54
+ <div class="helper-text" id="${D}" role="alert" part="error" ?hidden="${()=>!O.value}">
55
+ <slot name="error">${()=>O.value}</slot>
56
+ </div>
57
+ <div
58
+ class="char-counter"
59
+ part="char-counter"
60
+ :data-near-limit="${()=>E?.value.counterNearLimit&&!E?.value.counterAtLimit?``:null}"
61
+ :data-at-limit="${()=>E?.value.counterAtLimit?``:null}"
62
+ ?hidden="${()=>!E}">
63
+ ${()=>E?.value.counterText??``}
64
+ </div>
65
+ </div>
66
+ `},shadow:{delegatesFocus:!0},styles:[...r.fieldMixins,t.sizeVariantMixin(a.FIELD_SIZE_PRESET),n.forcedColorsFocusMixin(`input`),l.default]}),exports.INPUT_TAG=p;
67
+ //# sourceMappingURL=input.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.cjs","names":[],"sources":["../src/inputs/input/input.ts"],"sourcesContent":["import { define, useField, html, inject, prop, ref } from '@vielzeug/ore';\nimport { live } from '@vielzeug/ore/directives';\nimport { computed, signal, watch } from '@vielzeug/ripple';\n\nimport type { TextFieldProps } from '../../shared';\nimport type { InputType, VisualVariant } from '../../types';\n\nimport { lifecycleSignal, createTextField } from '../../headless';\nimport { disablableBundle, FIELD_SIZE_PRESET, roundableBundle, sizableBundle, themableBundle } from '../../shared';\nimport '../../content/icon/icon';\nimport { fieldMixins, forcedColorsFocusMixin, sizeVariantMixin } from '../../styles';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\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 /** 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 {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 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 * ```\n */\nexport const INPUT_TAG = 'ore-input' as const;\ndefine<OreInputProps, OreInputEvents>(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 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.json(undefined as ((el: HTMLInputElement | null) => void) | null | undefined),\n required: 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, { bind, emit, onCleanup, onElement, slots }) {\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(bind, 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\n const abortSignal = lifecycleSignal(onCleanup);\n let _formField: { reportValidity(): void } | null = null;\n const tf = createTextField({\n disabled: fCtxProps.disabled,\n error: props.error,\n getFormField: () => _formField,\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 signal: abortSignal,\n validateOn: formCtx?.validateOn,\n value: props.value,\n });\n\n _formField = useField<string>({ disabled: tf.disabled, toFormValue: (v) => v, value: tf.value });\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 // Immediate fire for when the prop is already set on mount.\n props.ref.value?.(el);\n\n // Reactive watcher so that if props.ref is set *after* the inner\n // <input> mounts (e.g. parent sets it via a ref callback after render),\n // the new callback still receives the live element.\n const sub = watch(props.ref, (cb) => {\n cb?.(el);\n });\n\n return () => {\n sub.dispose();\n props.ref.value?.(null);\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: () => errorText.value || undefined,\n 'has-value': () => (fieldValue.value ? true : undefined),\n size: fCtxProps.size,\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=\"${props.disabled}\"\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 ref=\"${inputRef}\" />\n <slot name=\"suffix\"></slot>\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: [...fieldMixins, sizeVariantMixin(FIELD_SIZE_PRESET), forcedColorsFocusMixin('input'), componentStyles],\n});\n"],"mappings":"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"}