@vielzeug/refine 1.1.3 → 1.3.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 (799) hide show
  1. package/dist/accordion-item.cjs +4 -4
  2. package/dist/accordion-item.cjs.map +1 -1
  3. package/dist/accordion-item.js +41 -41
  4. package/dist/accordion-item.js.map +1 -1
  5. package/dist/accordion.cjs +1 -1
  6. package/dist/accordion.cjs.map +1 -1
  7. package/dist/accordion.js +21 -21
  8. package/dist/accordion.js.map +1 -1
  9. package/dist/alert.cjs +5 -5
  10. package/dist/alert.cjs.map +1 -1
  11. package/dist/alert.js +21 -21
  12. package/dist/alert.js.map +1 -1
  13. package/dist/async.cjs +10 -10
  14. package/dist/async.cjs.map +1 -1
  15. package/dist/async.js +27 -27
  16. package/dist/async.js.map +1 -1
  17. package/dist/avatar.cjs +2 -2
  18. package/dist/avatar.cjs.map +1 -1
  19. package/dist/avatar.js +30 -30
  20. package/dist/avatar.js.map +1 -1
  21. package/dist/badge.cjs +1 -1
  22. package/dist/badge.cjs.map +1 -1
  23. package/dist/badge.js +1 -1
  24. package/dist/box.cjs +1 -1
  25. package/dist/box.cjs.map +1 -1
  26. package/dist/box.js +1 -1
  27. package/dist/breadcrumb.cjs +2 -2
  28. package/dist/breadcrumb.cjs.map +1 -1
  29. package/dist/breadcrumb.js +20 -20
  30. package/dist/breadcrumb.js.map +1 -1
  31. package/dist/button-group.cjs +1 -1
  32. package/dist/button-group.cjs.map +1 -1
  33. package/dist/button-group.js +7 -7
  34. package/dist/button-group.js.map +1 -1
  35. package/dist/button.cjs +6 -6
  36. package/dist/button.cjs.map +1 -1
  37. package/dist/button.js +47 -45
  38. package/dist/button.js.map +1 -1
  39. package/dist/calendar.cjs +28 -28
  40. package/dist/calendar.cjs.map +1 -1
  41. package/dist/calendar.js +93 -91
  42. package/dist/calendar.js.map +1 -1
  43. package/dist/card.cjs +6 -6
  44. package/dist/card.cjs.map +1 -1
  45. package/dist/card.js +35 -34
  46. package/dist/card.js.map +1 -1
  47. package/dist/carousel.cjs +19 -19
  48. package/dist/carousel.cjs.map +1 -1
  49. package/dist/carousel.js +111 -111
  50. package/dist/carousel.js.map +1 -1
  51. package/dist/chat-message.cjs +47 -0
  52. package/dist/chat-message.cjs.map +1 -0
  53. package/dist/chat-message.js +121 -0
  54. package/dist/chat-message.js.map +1 -0
  55. package/dist/checkbox-group.cjs +9 -9
  56. package/dist/checkbox-group.cjs.map +1 -1
  57. package/dist/checkbox-group.js +54 -52
  58. package/dist/checkbox-group.js.map +1 -1
  59. package/dist/checkbox.cjs +4 -4
  60. package/dist/checkbox.cjs.map +1 -1
  61. package/dist/checkbox.js +39 -37
  62. package/dist/checkbox.js.map +1 -1
  63. package/dist/chip.cjs +14 -14
  64. package/dist/chip.cjs.map +1 -1
  65. package/dist/chip.js +43 -43
  66. package/dist/chip.js.map +1 -1
  67. package/dist/code-window.cjs +1 -1
  68. package/dist/code-window.cjs.map +1 -1
  69. package/dist/code-window.js +1 -1
  70. package/dist/combobox.cjs +25 -25
  71. package/dist/combobox.cjs.map +1 -1
  72. package/dist/combobox.js +181 -179
  73. package/dist/combobox.js.map +1 -1
  74. package/dist/command-palette.cjs +62 -0
  75. package/dist/command-palette.cjs.map +1 -0
  76. package/dist/command-palette.js +179 -0
  77. package/dist/command-palette.js.map +1 -0
  78. package/dist/content/avatar/{avatar-group.css?inline.cjs → avatar-group.css.cjs} +1 -1
  79. package/dist/content/avatar/avatar-group.css.cjs.map +1 -0
  80. package/dist/content/avatar/{avatar-group.css?inline.js → avatar-group.css.js} +1 -1
  81. package/dist/content/avatar/avatar-group.css.js.map +1 -0
  82. package/dist/content/avatar/{avatar.css?inline.cjs → avatar.css.cjs} +1 -1
  83. package/dist/content/avatar/avatar.css.cjs.map +1 -0
  84. package/dist/content/avatar/{avatar.css?inline.js → avatar.css.js} +1 -1
  85. package/dist/content/avatar/avatar.css.js.map +1 -0
  86. package/dist/content/breadcrumb/{breadcrumb-item.css?inline.cjs → breadcrumb-item.css.cjs} +1 -1
  87. package/dist/content/breadcrumb/breadcrumb-item.css.cjs.map +1 -0
  88. package/dist/content/breadcrumb/{breadcrumb-item.css?inline.js → breadcrumb-item.css.js} +1 -1
  89. package/dist/content/breadcrumb/breadcrumb-item.css.js.map +1 -0
  90. package/dist/content/breadcrumb/{breadcrumb.css?inline.cjs → breadcrumb.css.cjs} +1 -1
  91. package/dist/content/breadcrumb/breadcrumb.css.cjs.map +1 -0
  92. package/dist/content/breadcrumb/{breadcrumb.css?inline.js → breadcrumb.css.js} +1 -1
  93. package/dist/content/breadcrumb/breadcrumb.css.js.map +1 -0
  94. package/dist/content/card/card.css.cjs +2 -0
  95. package/dist/content/card/card.css.cjs.map +1 -0
  96. package/dist/content/card/card.css.js +6 -0
  97. package/dist/content/card/card.css.js.map +1 -0
  98. package/dist/content/carousel/carousel-slide.cjs +1 -1
  99. package/dist/content/carousel/carousel-slide.cjs.map +1 -1
  100. package/dist/content/carousel/{carousel-slide.css?inline.cjs → carousel-slide.css.cjs} +1 -1
  101. package/dist/content/carousel/carousel-slide.css.cjs.map +1 -0
  102. package/dist/content/carousel/{carousel-slide.css?inline.js → carousel-slide.css.js} +1 -1
  103. package/dist/content/carousel/carousel-slide.css.js.map +1 -0
  104. package/dist/content/carousel/carousel-slide.js +7 -7
  105. package/dist/content/carousel/carousel-slide.js.map +1 -1
  106. package/dist/content/carousel/{carousel.css?inline.cjs → carousel.css.cjs} +1 -1
  107. package/dist/content/carousel/carousel.css.cjs.map +1 -0
  108. package/dist/content/carousel/{carousel.css?inline.js → carousel.css.js} +1 -1
  109. package/dist/content/carousel/carousel.css.js.map +1 -0
  110. package/dist/content/chat-message/chat-message.css.cjs +2 -0
  111. package/dist/content/chat-message/chat-message.css.cjs.map +1 -0
  112. package/dist/content/chat-message/chat-message.css.js +6 -0
  113. package/dist/content/chat-message/chat-message.css.js.map +1 -0
  114. package/dist/content/chat-message/chat-message.d.ts +87 -0
  115. package/dist/content/chat-message/chat-message.d.ts.map +1 -0
  116. package/dist/content/code-window/{code-window.css?inline.cjs → code-window.css.cjs} +1 -1
  117. package/dist/content/code-window/code-window.css.cjs.map +1 -0
  118. package/dist/content/code-window/{code-window.css?inline.js → code-window.css.js} +1 -1
  119. package/dist/content/code-window/code-window.css.js.map +1 -0
  120. package/dist/content/copy-command/{copy-command.css?inline.cjs → copy-command.css.cjs} +1 -1
  121. package/dist/content/copy-command/copy-command.css.cjs.map +1 -0
  122. package/dist/content/copy-command/{copy-command.css?inline.js → copy-command.css.js} +1 -1
  123. package/dist/content/copy-command/copy-command.css.js.map +1 -0
  124. package/dist/content/icon/icon.css.cjs +2 -0
  125. package/dist/content/icon/icon.css.cjs.map +1 -0
  126. package/dist/content/icon/icon.css.js +6 -0
  127. package/dist/content/icon/icon.css.js.map +1 -0
  128. package/dist/content/index.d.ts +2 -0
  129. package/dist/content/index.d.ts.map +1 -1
  130. package/dist/content/pagination/{pagination.css?inline.cjs → pagination.css.cjs} +1 -1
  131. package/dist/content/pagination/pagination.css.cjs.map +1 -0
  132. package/dist/content/pagination/{pagination.css?inline.js → pagination.css.js} +1 -1
  133. package/dist/content/pagination/pagination.css.js.map +1 -0
  134. package/dist/content/separator/{separator.css?inline.cjs → separator.css.cjs} +1 -1
  135. package/dist/content/separator/separator.css.cjs.map +1 -0
  136. package/dist/content/separator/{separator.css?inline.js → separator.css.js} +1 -1
  137. package/dist/content/separator/separator.css.js.map +1 -0
  138. package/dist/content/table/{table.css?inline.cjs → table.css.cjs} +1 -1
  139. package/dist/content/table/table.css.cjs.map +1 -0
  140. package/dist/content/table/{table.css?inline.js → table.css.js} +1 -1
  141. package/dist/content/table/table.css.js.map +1 -0
  142. package/dist/content/text/{text.css?inline.cjs → text.css.cjs} +1 -1
  143. package/dist/content/text/text.css.cjs.map +1 -0
  144. package/dist/content/text/{text.css?inline.js → text.css.js} +1 -1
  145. package/dist/content/text/text.css.js.map +1 -0
  146. package/dist/copy-command.cjs +5 -5
  147. package/dist/copy-command.cjs.map +1 -1
  148. package/dist/copy-command.js +25 -25
  149. package/dist/copy-command.js.map +1 -1
  150. package/dist/custom-elements.json +4463 -3727
  151. package/dist/datagrid.cjs +109 -109
  152. package/dist/datagrid.cjs.map +1 -1
  153. package/dist/datagrid.js +194 -194
  154. package/dist/datagrid.js.map +1 -1
  155. package/dist/date-picker.cjs +40 -40
  156. package/dist/date-picker.cjs.map +1 -1
  157. package/dist/date-picker.js +116 -114
  158. package/dist/date-picker.js.map +1 -1
  159. package/dist/dialog.cjs +5 -5
  160. package/dist/dialog.cjs.map +1 -1
  161. package/dist/dialog.js +28 -28
  162. package/dist/dialog.js.map +1 -1
  163. package/dist/disclosure/accordion/{accordion.css?inline.cjs → accordion.css.cjs} +1 -1
  164. package/dist/disclosure/accordion/accordion.css.cjs.map +1 -0
  165. package/dist/disclosure/accordion/{accordion.css?inline.js → accordion.css.js} +1 -1
  166. package/dist/disclosure/accordion/accordion.css.js.map +1 -0
  167. package/dist/disclosure/accordion-item/{accordion-item.css?inline.cjs → accordion-item.css.cjs} +1 -1
  168. package/dist/disclosure/accordion-item/accordion-item.css.cjs.map +1 -0
  169. package/dist/disclosure/accordion-item/{accordion-item.css?inline.js → accordion-item.css.js} +1 -1
  170. package/dist/disclosure/accordion-item/accordion-item.css.js.map +1 -0
  171. package/dist/disclosure/tab-item/{tab-item.css?inline.cjs → tab-item.css.cjs} +1 -1
  172. package/dist/disclosure/tab-item/tab-item.css.cjs.map +1 -0
  173. package/dist/disclosure/tab-item/{tab-item.css?inline.js → tab-item.css.js} +1 -1
  174. package/dist/disclosure/tab-item/tab-item.css.js.map +1 -0
  175. package/dist/disclosure/tab-panel/{tab-panel.css?inline.cjs → tab-panel.css.cjs} +1 -1
  176. package/dist/disclosure/tab-panel/tab-panel.css.cjs.map +1 -0
  177. package/dist/disclosure/tab-panel/{tab-panel.css?inline.js → tab-panel.css.js} +1 -1
  178. package/dist/disclosure/tab-panel/tab-panel.css.js.map +1 -0
  179. package/dist/disclosure/tabs/{tabs.css?inline.cjs → tabs.css.cjs} +1 -1
  180. package/dist/disclosure/tabs/tabs.css.cjs.map +1 -0
  181. package/dist/disclosure/tabs/{tabs.css?inline.js → tabs.css.js} +1 -1
  182. package/dist/disclosure/tabs/tabs.css.js.map +1 -0
  183. package/dist/drawer.cjs +9 -9
  184. package/dist/drawer.cjs.map +1 -1
  185. package/dist/drawer.js +80 -80
  186. package/dist/drawer.js.map +1 -1
  187. package/dist/feedback/alert/{alert.css?inline.cjs → alert.css.cjs} +1 -1
  188. package/dist/feedback/alert/alert.css.cjs.map +1 -0
  189. package/dist/feedback/alert/{alert.css?inline.js → alert.css.js} +1 -1
  190. package/dist/feedback/alert/alert.css.js.map +1 -0
  191. package/dist/feedback/async/{async.css?inline.cjs → async.css.cjs} +1 -1
  192. package/dist/feedback/async/async.css.cjs.map +1 -0
  193. package/dist/feedback/async/{async.css?inline.js → async.css.js} +1 -1
  194. package/dist/feedback/async/async.css.js.map +1 -0
  195. package/dist/feedback/badge/{badge.css?inline.cjs → badge.css.cjs} +1 -1
  196. package/dist/feedback/badge/badge.css.cjs.map +1 -0
  197. package/dist/feedback/badge/{badge.css?inline.js → badge.css.js} +1 -1
  198. package/dist/feedback/badge/badge.css.js.map +1 -0
  199. package/dist/feedback/chip/{chip.css?inline.cjs → chip.css.cjs} +1 -1
  200. package/dist/feedback/chip/chip.css.cjs.map +1 -0
  201. package/dist/feedback/chip/{chip.css?inline.js → chip.css.js} +1 -1
  202. package/dist/feedback/chip/chip.css.js.map +1 -0
  203. package/dist/feedback/index.d.ts +2 -0
  204. package/dist/feedback/index.d.ts.map +1 -1
  205. package/dist/feedback/password-strength/{password-strength.css?inline.cjs → password-strength.css.cjs} +1 -1
  206. package/dist/feedback/password-strength/password-strength.css.cjs.map +1 -0
  207. package/dist/feedback/password-strength/{password-strength.css?inline.js → password-strength.css.js} +1 -1
  208. package/dist/feedback/password-strength/password-strength.css.js.map +1 -0
  209. package/dist/feedback/progress/{progress.css?inline.cjs → progress.css.cjs} +1 -1
  210. package/dist/feedback/progress/progress.css.cjs.map +1 -0
  211. package/dist/feedback/progress/{progress.css?inline.js → progress.css.js} +1 -1
  212. package/dist/feedback/progress/progress.css.js.map +1 -0
  213. package/dist/feedback/skeleton/{skeleton.css?inline.cjs → skeleton.css.cjs} +1 -1
  214. package/dist/feedback/skeleton/skeleton.css.cjs.map +1 -0
  215. package/dist/feedback/skeleton/{skeleton.css?inline.js → skeleton.css.js} +1 -1
  216. package/dist/feedback/skeleton/skeleton.css.js.map +1 -0
  217. package/dist/feedback/toast/toast.css.cjs +2 -0
  218. package/dist/feedback/toast/toast.css.cjs.map +1 -0
  219. package/dist/feedback/toast/toast.css.js +6 -0
  220. package/dist/feedback/toast/toast.css.js.map +1 -0
  221. package/dist/feedback/toast/toast.d.ts.map +1 -1
  222. package/dist/feedback/typing-indicator/typing-indicator.css.cjs +2 -0
  223. package/dist/feedback/typing-indicator/typing-indicator.css.cjs.map +1 -0
  224. package/dist/feedback/typing-indicator/typing-indicator.css.js +6 -0
  225. package/dist/feedback/typing-indicator/typing-indicator.css.js.map +1 -0
  226. package/dist/feedback/typing-indicator/typing-indicator.d.ts +42 -0
  227. package/dist/feedback/typing-indicator/typing-indicator.d.ts.map +1 -0
  228. package/dist/file-input.cjs +56 -34
  229. package/dist/file-input.cjs.map +1 -1
  230. package/dist/file-input.js +143 -104
  231. package/dist/file-input.js.map +1 -1
  232. package/dist/form.cjs +3 -3
  233. package/dist/form.cjs.map +1 -1
  234. package/dist/form.js +28 -25
  235. package/dist/form.js.map +1 -1
  236. package/dist/grid-item.cjs +1 -1
  237. package/dist/grid-item.cjs.map +1 -1
  238. package/dist/grid-item.js +19 -19
  239. package/dist/grid-item.js.map +1 -1
  240. package/dist/grid.cjs +1 -1
  241. package/dist/grid.cjs.map +1 -1
  242. package/dist/grid.js +48 -48
  243. package/dist/grid.js.map +1 -1
  244. package/dist/icon.cjs +1 -1
  245. package/dist/icon.cjs.map +1 -1
  246. package/dist/icon.js +26 -26
  247. package/dist/icon.js.map +1 -1
  248. package/dist/index.cjs +1 -1
  249. package/dist/index.js +52 -49
  250. package/dist/input.cjs +25 -25
  251. package/dist/input.cjs.map +1 -1
  252. package/dist/input.js +75 -73
  253. package/dist/input.js.map +1 -1
  254. package/dist/inputs/button/button.css.cjs +2 -0
  255. package/dist/inputs/button/button.css.cjs.map +1 -0
  256. package/dist/inputs/button/button.css.js +6 -0
  257. package/dist/inputs/button/button.css.js.map +1 -0
  258. package/dist/inputs/button/button.d.ts.map +1 -1
  259. package/dist/inputs/button-group/{button-group.css?inline.cjs → button-group.css.cjs} +1 -1
  260. package/dist/inputs/button-group/button-group.css.cjs.map +1 -0
  261. package/dist/inputs/button-group/{button-group.css?inline.js → button-group.css.js} +1 -1
  262. package/dist/inputs/button-group/button-group.css.js.map +1 -0
  263. package/dist/inputs/calendar/{calendar.css?inline.cjs → calendar.css.cjs} +1 -1
  264. package/dist/inputs/calendar/calendar.css.cjs.map +1 -0
  265. package/dist/inputs/calendar/{calendar.css?inline.js → calendar.css.js} +1 -1
  266. package/dist/inputs/calendar/calendar.css.js.map +1 -0
  267. package/dist/inputs/calendar/calendar.d.ts.map +1 -1
  268. package/dist/inputs/checkbox/{checkbox.css?inline.cjs → checkbox.css.cjs} +2 -2
  269. package/dist/inputs/checkbox/checkbox.css.cjs.map +1 -0
  270. package/dist/inputs/checkbox/{checkbox.css?inline.js → checkbox.css.js} +2 -2
  271. package/dist/inputs/checkbox/checkbox.css.js.map +1 -0
  272. package/dist/inputs/checkbox/checkbox.d.ts.map +1 -1
  273. package/dist/inputs/checkbox-group/{checkbox-group.css?inline.cjs → checkbox-group.css.cjs} +2 -2
  274. package/dist/inputs/checkbox-group/checkbox-group.css.cjs.map +1 -0
  275. package/dist/inputs/checkbox-group/{checkbox-group.css?inline.js → checkbox-group.css.js} +2 -2
  276. package/dist/inputs/checkbox-group/checkbox-group.css.js.map +1 -0
  277. package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -1
  278. package/dist/inputs/combobox/{combobox.css?inline.cjs → combobox.css.cjs} +1 -1
  279. package/dist/inputs/combobox/combobox.css.cjs.map +1 -0
  280. package/dist/inputs/combobox/{combobox.css?inline.js → combobox.css.js} +1 -1
  281. package/dist/inputs/combobox/combobox.css.js.map +1 -0
  282. package/dist/inputs/combobox/combobox.d.ts.map +1 -1
  283. package/dist/inputs/datagrid/{datagrid.css?inline.cjs → datagrid.css.cjs} +1 -1
  284. package/dist/inputs/datagrid/datagrid.css.cjs.map +1 -0
  285. package/dist/inputs/datagrid/{datagrid.css?inline.js → datagrid.css.js} +1 -1
  286. package/dist/inputs/datagrid/datagrid.css.js.map +1 -0
  287. package/dist/inputs/date-picker/{date-picker.css?inline.cjs → date-picker.css.cjs} +1 -1
  288. package/dist/inputs/date-picker/date-picker.css.cjs.map +1 -0
  289. package/dist/inputs/date-picker/{date-picker.css?inline.js → date-picker.css.js} +1 -1
  290. package/dist/inputs/date-picker/date-picker.css.js.map +1 -0
  291. package/dist/inputs/date-picker/date-picker.d.ts.map +1 -1
  292. package/dist/inputs/file-input/file-input.css.cjs +2 -0
  293. package/dist/inputs/file-input/file-input.css.cjs.map +1 -0
  294. package/dist/inputs/file-input/file-input.css.js +6 -0
  295. package/dist/inputs/file-input/file-input.css.js.map +1 -0
  296. package/dist/inputs/file-input/file-input.d.ts +9 -0
  297. package/dist/inputs/file-input/file-input.d.ts.map +1 -1
  298. package/dist/inputs/form/{form.css?inline.cjs → form.css.cjs} +1 -1
  299. package/dist/inputs/form/form.css.cjs.map +1 -0
  300. package/dist/inputs/form/{form.css?inline.js → form.css.js} +1 -1
  301. package/dist/inputs/form/form.css.js.map +1 -0
  302. package/dist/inputs/input/input.css.cjs +2 -0
  303. package/dist/inputs/input/input.css.cjs.map +1 -0
  304. package/dist/inputs/input/input.css.js +6 -0
  305. package/dist/inputs/input/input.css.js.map +1 -0
  306. package/dist/inputs/input/input.d.ts.map +1 -1
  307. package/dist/inputs/number-input/{number-input.css?inline.cjs → number-input.css.cjs} +1 -1
  308. package/dist/inputs/number-input/number-input.css.cjs.map +1 -0
  309. package/dist/inputs/number-input/{number-input.css?inline.js → number-input.css.js} +1 -1
  310. package/dist/inputs/number-input/number-input.css.js.map +1 -0
  311. package/dist/inputs/otp-input/{otp-input.css?inline.cjs → otp-input.css.cjs} +2 -2
  312. package/dist/inputs/otp-input/otp-input.css.cjs.map +1 -0
  313. package/dist/inputs/otp-input/{otp-input.css?inline.js → otp-input.css.js} +2 -2
  314. package/dist/inputs/otp-input/otp-input.css.js.map +1 -0
  315. package/dist/inputs/otp-input/otp-input.d.ts.map +1 -1
  316. package/dist/inputs/radio/{radio.css?inline.cjs → radio.css.cjs} +2 -2
  317. package/dist/inputs/radio/radio.css.cjs.map +1 -0
  318. package/dist/inputs/radio/{radio.css?inline.js → radio.css.js} +2 -2
  319. package/dist/inputs/radio/radio.css.js.map +1 -0
  320. package/dist/inputs/radio/radio.d.ts.map +1 -1
  321. package/dist/inputs/radio-group/{radio-group.css?inline.cjs → radio-group.css.cjs} +2 -2
  322. package/dist/inputs/radio-group/radio-group.css.cjs.map +1 -0
  323. package/dist/inputs/radio-group/{radio-group.css?inline.js → radio-group.css.js} +2 -2
  324. package/dist/inputs/radio-group/radio-group.css.js.map +1 -0
  325. package/dist/inputs/radio-group/radio-group.d.ts.map +1 -1
  326. package/dist/inputs/rating/{rating.css?inline.cjs → rating.css.cjs} +2 -2
  327. package/dist/inputs/rating/rating.css.cjs.map +1 -0
  328. package/dist/inputs/rating/{rating.css?inline.js → rating.css.js} +2 -2
  329. package/dist/inputs/rating/rating.css.js.map +1 -0
  330. package/dist/inputs/rating/rating.d.ts.map +1 -1
  331. package/dist/inputs/select/{select.css?inline.cjs → select.css.cjs} +1 -1
  332. package/dist/inputs/select/select.css.cjs.map +1 -0
  333. package/dist/inputs/select/{select.css?inline.js → select.css.js} +1 -1
  334. package/dist/inputs/select/select.css.js.map +1 -0
  335. package/dist/inputs/select/select.d.ts.map +1 -1
  336. package/dist/inputs/shared/field-binding.cjs +1 -1
  337. package/dist/inputs/shared/field-binding.cjs.map +1 -1
  338. package/dist/inputs/shared/field-binding.d.ts +1 -2
  339. package/dist/inputs/shared/field-binding.d.ts.map +1 -1
  340. package/dist/inputs/shared/field-binding.js +3 -2
  341. package/dist/inputs/shared/field-binding.js.map +1 -1
  342. package/dist/inputs/shared/form-context.cjs +1 -1
  343. package/dist/inputs/shared/form-context.cjs.map +1 -1
  344. package/dist/inputs/shared/form-context.d.ts +4 -4
  345. package/dist/inputs/shared/form-context.d.ts.map +1 -1
  346. package/dist/inputs/shared/form-context.js +10 -10
  347. package/dist/inputs/shared/form-context.js.map +1 -1
  348. package/dist/inputs/slider/{slider.css?inline.cjs → slider.css.cjs} +2 -2
  349. package/dist/inputs/slider/slider.css.cjs.map +1 -0
  350. package/dist/inputs/slider/{slider.css?inline.js → slider.css.js} +2 -2
  351. package/dist/inputs/slider/slider.css.js.map +1 -0
  352. package/dist/inputs/slider/slider.d.ts.map +1 -1
  353. package/dist/inputs/switch/{switch.css?inline.cjs → switch.css.cjs} +2 -2
  354. package/dist/inputs/switch/switch.css.cjs.map +1 -0
  355. package/dist/inputs/switch/{switch.css?inline.js → switch.css.js} +2 -2
  356. package/dist/inputs/switch/switch.css.js.map +1 -0
  357. package/dist/inputs/switch/switch.d.ts.map +1 -1
  358. package/dist/inputs/textarea/textarea.css.cjs +2 -0
  359. package/dist/inputs/textarea/textarea.css.cjs.map +1 -0
  360. package/dist/inputs/textarea/textarea.css.js +6 -0
  361. package/dist/inputs/textarea/textarea.css.js.map +1 -0
  362. package/dist/inputs/textarea/textarea.d.ts.map +1 -1
  363. package/dist/inputs/time-picker/{time-picker.css?inline.cjs → time-picker.css.cjs} +1 -1
  364. package/dist/inputs/time-picker/time-picker.css.cjs.map +1 -0
  365. package/dist/inputs/time-picker/{time-picker.css?inline.js → time-picker.css.js} +1 -1
  366. package/dist/inputs/time-picker/time-picker.css.js.map +1 -0
  367. package/dist/inputs/time-picker/time-picker.d.ts.map +1 -1
  368. package/dist/keymap/dist/_dev.cjs +2 -0
  369. package/dist/keymap/dist/_dev.cjs.map +1 -0
  370. package/dist/keymap/dist/_dev.js +4 -0
  371. package/dist/keymap/dist/_dev.js.map +1 -0
  372. package/dist/keymap/dist/format.cjs +1 -0
  373. package/dist/keymap/dist/format.js +1 -0
  374. package/dist/keymap/dist/index.cjs +1 -0
  375. package/dist/keymap/dist/index.js +4 -0
  376. package/dist/keymap/dist/keymap.cjs +2 -0
  377. package/dist/keymap/dist/keymap.cjs.map +1 -0
  378. package/dist/keymap/dist/keymap.js +221 -0
  379. package/dist/keymap/dist/keymap.js.map +1 -0
  380. package/dist/keymap/dist/layer.cjs +1 -0
  381. package/dist/keymap/dist/layer.js +1 -0
  382. package/dist/layout/box/{box.css?inline.cjs → box.css.cjs} +1 -1
  383. package/dist/layout/box/box.css.cjs.map +1 -0
  384. package/dist/layout/box/{box.css?inline.js → box.css.js} +1 -1
  385. package/dist/layout/box/box.css.js.map +1 -0
  386. package/dist/layout/grid/{grid.css?inline.cjs → grid.css.cjs} +1 -1
  387. package/dist/layout/grid/grid.css.cjs.map +1 -0
  388. package/dist/layout/grid/{grid.css?inline.js → grid.css.js} +1 -1
  389. package/dist/layout/grid/grid.css.js.map +1 -0
  390. package/dist/layout/grid-item/{grid-item.css?inline.cjs → grid-item.css.cjs} +1 -1
  391. package/dist/layout/grid-item/grid-item.css.cjs.map +1 -0
  392. package/dist/layout/grid-item/{grid-item.css?inline.js → grid-item.css.js} +1 -1
  393. package/dist/layout/grid-item/grid-item.css.js.map +1 -0
  394. package/dist/layout/navbar/navbar.css.cjs +2 -0
  395. package/dist/layout/navbar/navbar.css.cjs.map +1 -0
  396. package/dist/layout/navbar/navbar.css.js +6 -0
  397. package/dist/layout/navbar/navbar.css.js.map +1 -0
  398. package/dist/layout/navbar/navbar.d.ts.map +1 -1
  399. package/dist/layout/sidebar/{sidebar-group.css?inline.cjs → sidebar-group.css.cjs} +1 -1
  400. package/dist/layout/sidebar/sidebar-group.css.cjs.map +1 -0
  401. package/dist/layout/sidebar/{sidebar-group.css?inline.js → sidebar-group.css.js} +1 -1
  402. package/dist/layout/sidebar/sidebar-group.css.js.map +1 -0
  403. package/dist/layout/sidebar/{sidebar-item.css?inline.cjs → sidebar-item.css.cjs} +1 -1
  404. package/dist/layout/sidebar/sidebar-item.css.cjs.map +1 -0
  405. package/dist/layout/sidebar/{sidebar-item.css?inline.js → sidebar-item.css.js} +1 -1
  406. package/dist/layout/sidebar/sidebar-item.css.js.map +1 -0
  407. package/dist/layout/sidebar/sidebar.css.cjs +2 -0
  408. package/dist/layout/sidebar/sidebar.css.cjs.map +1 -0
  409. package/dist/layout/sidebar/sidebar.css.js +6 -0
  410. package/dist/layout/sidebar/sidebar.css.js.map +1 -0
  411. package/dist/layout/sidebar/sidebar.d.ts.map +1 -1
  412. package/dist/menu.cjs +5 -5
  413. package/dist/menu.cjs.map +1 -1
  414. package/dist/menu.js +85 -85
  415. package/dist/menu.js.map +1 -1
  416. package/dist/navbar.cjs +15 -15
  417. package/dist/navbar.cjs.map +1 -1
  418. package/dist/navbar.js +127 -127
  419. package/dist/navbar.js.map +1 -1
  420. package/dist/number-input.cjs +11 -11
  421. package/dist/number-input.cjs.map +1 -1
  422. package/dist/number-input.js +69 -69
  423. package/dist/number-input.js.map +1 -1
  424. package/dist/ore/dist/_dev.cjs.map +1 -1
  425. package/dist/ore/dist/_dev.js.map +1 -1
  426. package/dist/ore/dist/base-element.cjs +1 -1
  427. package/dist/ore/dist/base-element.cjs.map +1 -1
  428. package/dist/ore/dist/base-element.js +37 -35
  429. package/dist/ore/dist/base-element.js.map +1 -1
  430. package/dist/ore/dist/context.cjs +1 -1
  431. package/dist/ore/dist/context.cjs.map +1 -1
  432. package/dist/ore/dist/context.js +6 -33
  433. package/dist/ore/dist/context.js.map +1 -1
  434. package/dist/ore/dist/define.cjs.map +1 -1
  435. package/dist/ore/dist/define.js.map +1 -1
  436. package/dist/ore/dist/directives/raw.cjs +1 -1
  437. package/dist/ore/dist/directives/raw.cjs.map +1 -1
  438. package/dist/ore/dist/directives/raw.js +20 -17
  439. package/dist/ore/dist/directives/raw.js.map +1 -1
  440. package/dist/ore/dist/directives/when.cjs +1 -1
  441. package/dist/ore/dist/directives/when.cjs.map +1 -1
  442. package/dist/ore/dist/directives/when.js +29 -24
  443. package/dist/ore/dist/directives/when.js.map +1 -1
  444. package/dist/ore/dist/errors.cjs +2 -2
  445. package/dist/ore/dist/errors.cjs.map +1 -1
  446. package/dist/ore/dist/errors.js +12 -3
  447. package/dist/ore/dist/errors.js.map +1 -1
  448. package/dist/ore/dist/forms/context.cjs +2 -0
  449. package/dist/ore/dist/forms/context.cjs.map +1 -0
  450. package/dist/ore/dist/forms/context.js +6 -0
  451. package/dist/ore/dist/forms/context.js.map +1 -0
  452. package/dist/ore/dist/forms/field.cjs +2 -0
  453. package/dist/ore/dist/forms/field.cjs.map +1 -0
  454. package/dist/ore/dist/forms/field.js +35 -0
  455. package/dist/ore/dist/forms/field.js.map +1 -0
  456. package/dist/ore/dist/forms.cjs +1 -0
  457. package/dist/ore/dist/forms.js +3 -0
  458. package/dist/ore/dist/props.cjs +1 -1
  459. package/dist/ore/dist/props.cjs.map +1 -1
  460. package/dist/ore/dist/props.js +29 -27
  461. package/dist/ore/dist/props.js.map +1 -1
  462. package/dist/ore/dist/runtime.cjs +1 -1
  463. package/dist/ore/dist/runtime.cjs.map +1 -1
  464. package/dist/ore/dist/runtime.js +13 -23
  465. package/dist/ore/dist/runtime.js.map +1 -1
  466. package/dist/ore/dist/testing/render-hook.cjs +1 -1
  467. package/dist/ore/dist/testing/render-hook.js +0 -1
  468. package/dist/ore/dist/utils/dom.cjs +1 -1
  469. package/dist/ore/dist/utils/dom.cjs.map +1 -1
  470. package/dist/ore/dist/utils/dom.js +2 -6
  471. package/dist/ore/dist/utils/dom.js.map +1 -1
  472. package/dist/otp-input.cjs +9 -9
  473. package/dist/otp-input.cjs.map +1 -1
  474. package/dist/otp-input.js +70 -68
  475. package/dist/otp-input.js.map +1 -1
  476. package/dist/overlay/command-palette/command-palette-items.cjs +2 -0
  477. package/dist/overlay/command-palette/command-palette-items.cjs.map +1 -0
  478. package/dist/overlay/command-palette/command-palette-items.d.ts +22 -0
  479. package/dist/overlay/command-palette/command-palette-items.d.ts.map +1 -0
  480. package/dist/overlay/command-palette/command-palette-items.js +55 -0
  481. package/dist/overlay/command-palette/command-palette-items.js.map +1 -0
  482. package/dist/overlay/command-palette/command-palette.css.cjs +2 -0
  483. package/dist/overlay/command-palette/command-palette.css.cjs.map +1 -0
  484. package/dist/overlay/command-palette/command-palette.css.js +6 -0
  485. package/dist/overlay/command-palette/command-palette.css.js.map +1 -0
  486. package/dist/overlay/command-palette/command-palette.d.ts +72 -0
  487. package/dist/overlay/command-palette/command-palette.d.ts.map +1 -0
  488. package/dist/overlay/command-palette/command-palette.types.d.ts +76 -0
  489. package/dist/overlay/command-palette/command-palette.types.d.ts.map +1 -0
  490. package/dist/overlay/dialog/{dialog.css?inline.cjs → dialog.css.cjs} +1 -1
  491. package/dist/overlay/dialog/dialog.css.cjs.map +1 -0
  492. package/dist/overlay/dialog/{dialog.css?inline.js → dialog.css.js} +1 -1
  493. package/dist/overlay/dialog/dialog.css.js.map +1 -0
  494. package/dist/overlay/drawer/{drawer.css?inline.cjs → drawer.css.cjs} +1 -1
  495. package/dist/overlay/drawer/drawer.css.cjs.map +1 -0
  496. package/dist/overlay/drawer/{drawer.css?inline.js → drawer.css.js} +1 -1
  497. package/dist/overlay/drawer/drawer.css.js.map +1 -0
  498. package/dist/overlay/drawer/drawer.d.ts.map +1 -1
  499. package/dist/overlay/index.d.ts +2 -0
  500. package/dist/overlay/index.d.ts.map +1 -1
  501. package/dist/overlay/menu/{menu-item.css?inline.cjs → menu-item.css.cjs} +1 -1
  502. package/dist/overlay/menu/menu-item.css.cjs.map +1 -0
  503. package/dist/overlay/menu/{menu-item.css?inline.js → menu-item.css.js} +1 -1
  504. package/dist/overlay/menu/menu-item.css.js.map +1 -0
  505. package/dist/overlay/menu/{menu-separator.css?inline.cjs → menu-separator.css.cjs} +1 -1
  506. package/dist/overlay/menu/menu-separator.css.cjs.map +1 -0
  507. package/dist/overlay/menu/{menu-separator.css?inline.js → menu-separator.css.js} +1 -1
  508. package/dist/overlay/menu/menu-separator.css.js.map +1 -0
  509. package/dist/overlay/menu/menu.css.cjs +2 -0
  510. package/dist/overlay/menu/menu.css.cjs.map +1 -0
  511. package/dist/overlay/menu/menu.css.js +6 -0
  512. package/dist/overlay/menu/menu.css.js.map +1 -0
  513. package/dist/overlay/menu/menu.d.ts.map +1 -1
  514. package/dist/overlay/popover/{popover.css?inline.cjs → popover.css.cjs} +1 -1
  515. package/dist/overlay/popover/popover.css.cjs.map +1 -0
  516. package/dist/overlay/popover/{popover.css?inline.js → popover.css.js} +1 -1
  517. package/dist/overlay/popover/popover.css.js.map +1 -0
  518. package/dist/overlay/popover/popover.d.ts.map +1 -1
  519. package/dist/overlay/tooltip/{tooltip.css?inline.cjs → tooltip.css.cjs} +1 -1
  520. package/dist/overlay/tooltip/tooltip.css.cjs.map +1 -0
  521. package/dist/overlay/tooltip/{tooltip.css?inline.js → tooltip.css.js} +1 -1
  522. package/dist/overlay/tooltip/tooltip.css.js.map +1 -0
  523. package/dist/pagination.cjs +12 -12
  524. package/dist/pagination.cjs.map +1 -1
  525. package/dist/pagination.js +39 -38
  526. package/dist/pagination.js.map +1 -1
  527. package/dist/password-strength.cjs +8 -8
  528. package/dist/password-strength.cjs.map +1 -1
  529. package/dist/password-strength.js +34 -34
  530. package/dist/password-strength.js.map +1 -1
  531. package/dist/popover.cjs +4 -4
  532. package/dist/popover.cjs.map +1 -1
  533. package/dist/popover.js +30 -30
  534. package/dist/popover.js.map +1 -1
  535. package/dist/progress.cjs +1 -1
  536. package/dist/progress.cjs.map +1 -1
  537. package/dist/progress.js +30 -30
  538. package/dist/progress.js.map +1 -1
  539. package/dist/radio-group.cjs +11 -11
  540. package/dist/radio-group.cjs.map +1 -1
  541. package/dist/radio-group.js +67 -63
  542. package/dist/radio-group.js.map +1 -1
  543. package/dist/radio.cjs +4 -4
  544. package/dist/radio.cjs.map +1 -1
  545. package/dist/radio.js +69 -67
  546. package/dist/radio.js.map +1 -1
  547. package/dist/rating.cjs +4 -4
  548. package/dist/rating.cjs.map +1 -1
  549. package/dist/rating.js +57 -55
  550. package/dist/rating.js.map +1 -1
  551. package/dist/refine.cjs +753 -623
  552. package/dist/refine.cjs.map +1 -1
  553. package/dist/refine.iife.js +742 -612
  554. package/dist/refine.iife.js.map +1 -1
  555. package/dist/refine.js +777 -647
  556. package/dist/refine.js.map +1 -1
  557. package/dist/select.cjs +37 -37
  558. package/dist/select.cjs.map +1 -1
  559. package/dist/select.js +130 -128
  560. package/dist/select.js.map +1 -1
  561. package/dist/separator.cjs +1 -1
  562. package/dist/separator.cjs.map +1 -1
  563. package/dist/separator.js +1 -1
  564. package/dist/sidebar.cjs +22 -22
  565. package/dist/sidebar.cjs.map +1 -1
  566. package/dist/sidebar.js +135 -135
  567. package/dist/sidebar.js.map +1 -1
  568. package/dist/skeleton.cjs +2 -2
  569. package/dist/skeleton.cjs.map +1 -1
  570. package/dist/skeleton.js +28 -28
  571. package/dist/skeleton.js.map +1 -1
  572. package/dist/slider.cjs +13 -13
  573. package/dist/slider.cjs.map +1 -1
  574. package/dist/slider.js +142 -140
  575. package/dist/slider.js.map +1 -1
  576. package/dist/styles/mixins/animation.css.cjs +0 -3
  577. package/dist/styles/mixins/animation.css.cjs.map +1 -1
  578. package/dist/styles/mixins/animation.css.d.ts +12 -4
  579. package/dist/styles/mixins/animation.css.d.ts.map +1 -1
  580. package/dist/styles/mixins/animation.css.js +0 -3
  581. package/dist/styles/mixins/animation.css.js.map +1 -1
  582. package/dist/styles/mixins/variants.css.cjs.map +1 -1
  583. package/dist/styles/mixins/variants.css.d.ts +7 -2
  584. package/dist/styles/mixins/variants.css.d.ts.map +1 -1
  585. package/dist/styles/mixins/variants.css.js.map +1 -1
  586. package/dist/styles/theme.css +341 -132
  587. package/dist/switch.cjs +4 -4
  588. package/dist/switch.cjs.map +1 -1
  589. package/dist/switch.js +35 -33
  590. package/dist/switch.js.map +1 -1
  591. package/dist/tab-item.cjs +5 -5
  592. package/dist/tab-item.cjs.map +1 -1
  593. package/dist/tab-item.js +25 -25
  594. package/dist/tab-item.js.map +1 -1
  595. package/dist/tab-panel.cjs +6 -6
  596. package/dist/tab-panel.cjs.map +1 -1
  597. package/dist/tab-panel.js +24 -24
  598. package/dist/tab-panel.js.map +1 -1
  599. package/dist/table.cjs +1 -1
  600. package/dist/table.cjs.map +1 -1
  601. package/dist/table.js +36 -35
  602. package/dist/table.js.map +1 -1
  603. package/dist/tabs.cjs +3 -3
  604. package/dist/tabs.cjs.map +1 -1
  605. package/dist/tabs.js +61 -61
  606. package/dist/tabs.js.map +1 -1
  607. package/dist/text.cjs +1 -1
  608. package/dist/text.cjs.map +1 -1
  609. package/dist/text.js +16 -16
  610. package/dist/text.js.map +1 -1
  611. package/dist/textarea.cjs +15 -15
  612. package/dist/textarea.cjs.map +1 -1
  613. package/dist/textarea.js +67 -65
  614. package/dist/textarea.js.map +1 -1
  615. package/dist/time-picker.cjs +31 -31
  616. package/dist/time-picker.cjs.map +1 -1
  617. package/dist/time-picker.js +115 -113
  618. package/dist/time-picker.js.map +1 -1
  619. package/dist/toast.cjs +14 -14
  620. package/dist/toast.cjs.map +1 -1
  621. package/dist/toast.js +85 -85
  622. package/dist/toast.js.map +1 -1
  623. package/dist/tooltip.cjs +5 -5
  624. package/dist/tooltip.cjs.map +1 -1
  625. package/dist/tooltip.js +55 -55
  626. package/dist/tooltip.js.map +1 -1
  627. package/dist/typing-indicator.cjs +8 -0
  628. package/dist/typing-indicator.cjs.map +1 -0
  629. package/dist/typing-indicator.js +49 -0
  630. package/dist/typing-indicator.js.map +1 -0
  631. package/package.json +31 -8
  632. package/dist/content/avatar/avatar-group.css?inline.cjs.map +0 -1
  633. package/dist/content/avatar/avatar-group.css?inline.js.map +0 -1
  634. package/dist/content/avatar/avatar.css?inline.cjs.map +0 -1
  635. package/dist/content/avatar/avatar.css?inline.js.map +0 -1
  636. package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs.map +0 -1
  637. package/dist/content/breadcrumb/breadcrumb-item.css?inline.js.map +0 -1
  638. package/dist/content/breadcrumb/breadcrumb.css?inline.cjs.map +0 -1
  639. package/dist/content/breadcrumb/breadcrumb.css?inline.js.map +0 -1
  640. package/dist/content/card/card.css?inline.cjs +0 -2
  641. package/dist/content/card/card.css?inline.cjs.map +0 -1
  642. package/dist/content/card/card.css?inline.js +0 -6
  643. package/dist/content/card/card.css?inline.js.map +0 -1
  644. package/dist/content/carousel/carousel-slide.css?inline.cjs.map +0 -1
  645. package/dist/content/carousel/carousel-slide.css?inline.js.map +0 -1
  646. package/dist/content/carousel/carousel.css?inline.cjs.map +0 -1
  647. package/dist/content/carousel/carousel.css?inline.js.map +0 -1
  648. package/dist/content/code-window/code-window.css?inline.cjs.map +0 -1
  649. package/dist/content/code-window/code-window.css?inline.js.map +0 -1
  650. package/dist/content/copy-command/copy-command.css?inline.cjs.map +0 -1
  651. package/dist/content/copy-command/copy-command.css?inline.js.map +0 -1
  652. package/dist/content/icon/icon.css?inline.cjs +0 -2
  653. package/dist/content/icon/icon.css?inline.cjs.map +0 -1
  654. package/dist/content/icon/icon.css?inline.js +0 -6
  655. package/dist/content/icon/icon.css?inline.js.map +0 -1
  656. package/dist/content/pagination/pagination.css?inline.cjs.map +0 -1
  657. package/dist/content/pagination/pagination.css?inline.js.map +0 -1
  658. package/dist/content/separator/separator.css?inline.cjs.map +0 -1
  659. package/dist/content/separator/separator.css?inline.js.map +0 -1
  660. package/dist/content/table/table.css?inline.cjs.map +0 -1
  661. package/dist/content/table/table.css?inline.js.map +0 -1
  662. package/dist/content/text/text.css?inline.cjs.map +0 -1
  663. package/dist/content/text/text.css?inline.js.map +0 -1
  664. package/dist/disclosure/accordion/accordion.css?inline.cjs.map +0 -1
  665. package/dist/disclosure/accordion/accordion.css?inline.js.map +0 -1
  666. package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs.map +0 -1
  667. package/dist/disclosure/accordion-item/accordion-item.css?inline.js.map +0 -1
  668. package/dist/disclosure/tab-item/tab-item.css?inline.cjs.map +0 -1
  669. package/dist/disclosure/tab-item/tab-item.css?inline.js.map +0 -1
  670. package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs.map +0 -1
  671. package/dist/disclosure/tab-panel/tab-panel.css?inline.js.map +0 -1
  672. package/dist/disclosure/tabs/tabs.css?inline.cjs.map +0 -1
  673. package/dist/disclosure/tabs/tabs.css?inline.js.map +0 -1
  674. package/dist/feedback/alert/alert.css?inline.cjs.map +0 -1
  675. package/dist/feedback/alert/alert.css?inline.js.map +0 -1
  676. package/dist/feedback/async/async.css?inline.cjs.map +0 -1
  677. package/dist/feedback/async/async.css?inline.js.map +0 -1
  678. package/dist/feedback/badge/badge.css?inline.cjs.map +0 -1
  679. package/dist/feedback/badge/badge.css?inline.js.map +0 -1
  680. package/dist/feedback/chip/chip.css?inline.cjs.map +0 -1
  681. package/dist/feedback/chip/chip.css?inline.js.map +0 -1
  682. package/dist/feedback/password-strength/password-strength.css?inline.cjs.map +0 -1
  683. package/dist/feedback/password-strength/password-strength.css?inline.js.map +0 -1
  684. package/dist/feedback/progress/progress.css?inline.cjs.map +0 -1
  685. package/dist/feedback/progress/progress.css?inline.js.map +0 -1
  686. package/dist/feedback/skeleton/skeleton.css?inline.cjs.map +0 -1
  687. package/dist/feedback/skeleton/skeleton.css?inline.js.map +0 -1
  688. package/dist/feedback/toast/toast.css?inline.cjs +0 -2
  689. package/dist/feedback/toast/toast.css?inline.cjs.map +0 -1
  690. package/dist/feedback/toast/toast.css?inline.js +0 -6
  691. package/dist/feedback/toast/toast.css?inline.js.map +0 -1
  692. package/dist/inputs/button/button.css?inline.cjs +0 -2
  693. package/dist/inputs/button/button.css?inline.cjs.map +0 -1
  694. package/dist/inputs/button/button.css?inline.js +0 -6
  695. package/dist/inputs/button/button.css?inline.js.map +0 -1
  696. package/dist/inputs/button-group/button-group.css?inline.cjs.map +0 -1
  697. package/dist/inputs/button-group/button-group.css?inline.js.map +0 -1
  698. package/dist/inputs/calendar/calendar.css?inline.cjs.map +0 -1
  699. package/dist/inputs/calendar/calendar.css?inline.js.map +0 -1
  700. package/dist/inputs/checkbox/checkbox.css?inline.cjs.map +0 -1
  701. package/dist/inputs/checkbox/checkbox.css?inline.js.map +0 -1
  702. package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs.map +0 -1
  703. package/dist/inputs/checkbox-group/checkbox-group.css?inline.js.map +0 -1
  704. package/dist/inputs/combobox/combobox.css?inline.cjs.map +0 -1
  705. package/dist/inputs/combobox/combobox.css?inline.js.map +0 -1
  706. package/dist/inputs/datagrid/datagrid.css?inline.cjs.map +0 -1
  707. package/dist/inputs/datagrid/datagrid.css?inline.js.map +0 -1
  708. package/dist/inputs/date-picker/date-picker.css?inline.cjs.map +0 -1
  709. package/dist/inputs/date-picker/date-picker.css?inline.js.map +0 -1
  710. package/dist/inputs/file-input/file-input.css?inline.cjs +0 -2
  711. package/dist/inputs/file-input/file-input.css?inline.cjs.map +0 -1
  712. package/dist/inputs/file-input/file-input.css?inline.js +0 -6
  713. package/dist/inputs/file-input/file-input.css?inline.js.map +0 -1
  714. package/dist/inputs/form/form.css?inline.cjs.map +0 -1
  715. package/dist/inputs/form/form.css?inline.js.map +0 -1
  716. package/dist/inputs/input/input.css?inline.cjs +0 -2
  717. package/dist/inputs/input/input.css?inline.cjs.map +0 -1
  718. package/dist/inputs/input/input.css?inline.js +0 -6
  719. package/dist/inputs/input/input.css?inline.js.map +0 -1
  720. package/dist/inputs/number-input/number-input.css?inline.cjs.map +0 -1
  721. package/dist/inputs/number-input/number-input.css?inline.js.map +0 -1
  722. package/dist/inputs/otp-input/otp-input.css?inline.cjs.map +0 -1
  723. package/dist/inputs/otp-input/otp-input.css?inline.js.map +0 -1
  724. package/dist/inputs/radio/radio.css?inline.cjs.map +0 -1
  725. package/dist/inputs/radio/radio.css?inline.js.map +0 -1
  726. package/dist/inputs/radio-group/radio-group.css?inline.cjs.map +0 -1
  727. package/dist/inputs/radio-group/radio-group.css?inline.js.map +0 -1
  728. package/dist/inputs/rating/rating.css?inline.cjs.map +0 -1
  729. package/dist/inputs/rating/rating.css?inline.js.map +0 -1
  730. package/dist/inputs/select/select.css?inline.cjs.map +0 -1
  731. package/dist/inputs/select/select.css?inline.js.map +0 -1
  732. package/dist/inputs/slider/slider.css?inline.cjs.map +0 -1
  733. package/dist/inputs/slider/slider.css?inline.js.map +0 -1
  734. package/dist/inputs/switch/switch.css?inline.cjs.map +0 -1
  735. package/dist/inputs/switch/switch.css?inline.js.map +0 -1
  736. package/dist/inputs/textarea/textarea.css?inline.cjs +0 -2
  737. package/dist/inputs/textarea/textarea.css?inline.cjs.map +0 -1
  738. package/dist/inputs/textarea/textarea.css?inline.js +0 -6
  739. package/dist/inputs/textarea/textarea.css?inline.js.map +0 -1
  740. package/dist/inputs/time-picker/time-picker.css?inline.cjs.map +0 -1
  741. package/dist/inputs/time-picker/time-picker.css?inline.js.map +0 -1
  742. package/dist/layout/box/box.css?inline.cjs.map +0 -1
  743. package/dist/layout/box/box.css?inline.js.map +0 -1
  744. package/dist/layout/grid/grid.css?inline.cjs.map +0 -1
  745. package/dist/layout/grid/grid.css?inline.js.map +0 -1
  746. package/dist/layout/grid-item/grid-item.css?inline.cjs.map +0 -1
  747. package/dist/layout/grid-item/grid-item.css?inline.js.map +0 -1
  748. package/dist/layout/navbar/navbar.css?inline.cjs +0 -2
  749. package/dist/layout/navbar/navbar.css?inline.cjs.map +0 -1
  750. package/dist/layout/navbar/navbar.css?inline.js +0 -6
  751. package/dist/layout/navbar/navbar.css?inline.js.map +0 -1
  752. package/dist/layout/sidebar/sidebar-group.css?inline.cjs.map +0 -1
  753. package/dist/layout/sidebar/sidebar-group.css?inline.js.map +0 -1
  754. package/dist/layout/sidebar/sidebar-item.css?inline.cjs.map +0 -1
  755. package/dist/layout/sidebar/sidebar-item.css?inline.js.map +0 -1
  756. package/dist/layout/sidebar/sidebar.css?inline.cjs +0 -2
  757. package/dist/layout/sidebar/sidebar.css?inline.cjs.map +0 -1
  758. package/dist/layout/sidebar/sidebar.css?inline.js +0 -6
  759. package/dist/layout/sidebar/sidebar.css?inline.js.map +0 -1
  760. package/dist/ore/dist/aria.cjs +0 -2
  761. package/dist/ore/dist/aria.cjs.map +0 -1
  762. package/dist/ore/dist/aria.js +0 -37
  763. package/dist/ore/dist/aria.js.map +0 -1
  764. package/dist/ore/dist/context-bag.cjs +0 -2
  765. package/dist/ore/dist/context-bag.cjs.map +0 -1
  766. package/dist/ore/dist/context-bag.js +0 -28
  767. package/dist/ore/dist/context-bag.js.map +0 -1
  768. package/dist/ore/dist/host-bind.cjs +0 -2
  769. package/dist/ore/dist/host-bind.cjs.map +0 -1
  770. package/dist/ore/dist/host-bind.js +0 -60
  771. package/dist/ore/dist/host-bind.js.map +0 -1
  772. package/dist/ore/dist/slots.cjs +0 -2
  773. package/dist/ore/dist/slots.cjs.map +0 -1
  774. package/dist/ore/dist/slots.js +0 -61
  775. package/dist/ore/dist/slots.js.map +0 -1
  776. package/dist/ore/dist/utils/aria.cjs +0 -2
  777. package/dist/ore/dist/utils/aria.cjs.map +0 -1
  778. package/dist/ore/dist/utils/aria.js +0 -6
  779. package/dist/ore/dist/utils/aria.js.map +0 -1
  780. package/dist/ore/dist/utils/emit.cjs +0 -2
  781. package/dist/ore/dist/utils/emit.cjs.map +0 -1
  782. package/dist/ore/dist/utils/emit.js +0 -16
  783. package/dist/ore/dist/utils/emit.js.map +0 -1
  784. package/dist/overlay/dialog/dialog.css?inline.cjs.map +0 -1
  785. package/dist/overlay/dialog/dialog.css?inline.js.map +0 -1
  786. package/dist/overlay/drawer/drawer.css?inline.cjs.map +0 -1
  787. package/dist/overlay/drawer/drawer.css?inline.js.map +0 -1
  788. package/dist/overlay/menu/menu-item.css?inline.cjs.map +0 -1
  789. package/dist/overlay/menu/menu-item.css?inline.js.map +0 -1
  790. package/dist/overlay/menu/menu-separator.css?inline.cjs.map +0 -1
  791. package/dist/overlay/menu/menu-separator.css?inline.js.map +0 -1
  792. package/dist/overlay/menu/menu.css?inline.cjs +0 -2
  793. package/dist/overlay/menu/menu.css?inline.cjs.map +0 -1
  794. package/dist/overlay/menu/menu.css?inline.js +0 -6
  795. package/dist/overlay/menu/menu.css?inline.js.map +0 -1
  796. package/dist/overlay/popover/popover.css?inline.cjs.map +0 -1
  797. package/dist/overlay/popover/popover.css?inline.js.map +0 -1
  798. package/dist/overlay/tooltip/tooltip.css?inline.cjs.map +0 -1
  799. package/dist/overlay/tooltip/tooltip.css?inline.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.cjs","names":[],"sources":["../src/inputs/checkbox/checkbox.ts"],"sourcesContent":["import { define, useField, html, inject, prop } from '@vielzeug/ore';\nimport { computed } from '@vielzeug/ripple';\n\nimport type { CheckableProps, ComponentSize, ThemeColor } from '../../types';\n\nimport { type CheckableChangePayload, lifecycleSignal, createCheckable } from '../../headless';\nimport '../../content/icon/icon';\nimport { CONTROL_SIZE_PRESET, disablableBundle, sizableBundle, themableBundle } from '../../shared';\nimport {\n coarsePointerMixin,\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsFormControlMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport { CHECKBOX_GROUP_CTX } from '../checkbox-group/checkbox-group';\nimport { applyCheckableBinding } from '../shared/field-binding';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport { renderHelperRegion } from '../shared/templates';\nimport componentStyles from './checkbox.css?inline';\n\nexport type OreCheckboxEvents = {\n change: CheckableChangePayload;\n};\n\nexport type OreCheckboxProps = CheckableProps & {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interaction */\n disabled?: boolean;\n /** Error message (marks field as invalid) */\n error?: string;\n /** Helper text displayed below the checkbox */\n helper?: string;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Component size */\n size?: ComponentSize;\n};\n\n/**\n * A customizable checkbox component with theme colors, sizes, and indeterminate state support.\n *\n * @element ore-checkbox\n *\n * @attr {boolean} checked - Checked state\n * @attr {boolean} disabled - Disable checkbox interaction\n * @attr {boolean} indeterminate - Indeterminate (partially checked) state\n * @attr {string} value - Field value submitted with forms\n * @attr {string} name - Form field name\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - Checkbox size: 'sm' | 'md' | 'lg'\n * @attr {string} error - Error message (marks field as invalid)\n * @attr {string} helper - Helper text displayed below the checkbox\n *\n * @fires change - Emitted when checkbox is toggled. detail: { checked: boolean, value: string, originalEvent?: Event }\n *\n * @slot - Checkbox label text\n *\n * @cssprop --checkbox-size - Control size (width and height)\n * @cssprop --checkbox-radius - Control border radius\n * @cssprop --checkbox-bg - Unchecked background color\n * @cssprop --checkbox-border-color - Unchecked border color\n * @cssprop --checkbox-checked-bg - Checked/indeterminate background color\n * @cssprop --checkbox-color - Checkmark icon color\n * @cssprop --checkbox-font-size - Label font size\n * @part checkbox - The checkbox wrapper element\n * @part box - The visual checkbox box\n * @part label - The label element\n * @part helper-text - The helper/error text element\n *\n * @example\n * ```html\n * <ore-checkbox name=\"agree\" required>I agree to the terms</ore-checkbox>\n * <ore-checkbox checked color=\"primary\" size=\"lg\">Enabled by default</ore-checkbox>\n * <ore-checkbox error=\"This field is required\" helper=\"Check to continue\">Accept</ore-checkbox>\n * ```\n */\nexport const CHECKBOX_TAG = 'ore-checkbox' as const;\ndefine<OreCheckboxProps, OreCheckboxEvents>(CHECKBOX_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n checked: prop.bool(false),\n error: prop.string(),\n helper: prop.string(),\n indeterminate: prop.bool(false),\n name: prop.string(),\n value: prop.string('on'),\n },\n setup(props, { bind, emit, onCleanup }) {\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(bind, props, formCtx);\n const groupCtx = inject(CHECKBOX_GROUP_CTX);\n\n let _formField: { reportValidity(): void } | null = null;\n const checkable = createCheckable({\n checked: props.checked,\n clearIndeterminateFirst: true,\n disabled: computed(() => fCtxProps.disabled.value || Boolean(groupCtx?.disabled.value)),\n error: props.error,\n getFormField: () => _formField,\n group: groupCtx,\n helper: props.helper,\n indeterminate: props.indeterminate,\n onToggle: (payload) => {\n checkable.triggerValidation('change');\n\n // In a checkbox-group, the group owns change emission/state updates.\n // Emitting here would bubble to the group and toggle a second time.\n if (groupCtx) return;\n\n emit('change', payload);\n },\n prefix: 'checkbox',\n signal: lifecycleSignal(onCleanup),\n validateOn: formCtx?.validateOn,\n value: props.value,\n });\n\n _formField = useField<string | null>({\n disabled: checkable.disabled,\n toFormValue: (v) => v,\n value: checkable.checkableFormValue,\n });\n\n const {\n assistiveId,\n checked,\n disabled,\n errorText,\n handleClick,\n handleKeydown,\n helperText,\n indeterminate,\n labelId,\n } = checkable;\n\n applyCheckableBinding(\n bind,\n fCtxProps.size,\n { assistiveId, checked, disabled, errorText, handleClick, handleKeydown, helperText, indeterminate, labelId },\n 'checkbox',\n );\n\n return html`\n <div class=\"checkbox-wrapper\" part=\"checkbox\">\n <div class=\"box\" part=\"box\">\n <ore-icon class=\"checkmark\" name=\"check\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n <ore-icon class=\"dash\" name=\"minus\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n </div>\n </div>\n <span class=\"label\" part=\"label\" id=\"${labelId}\"><slot></slot></span>\n ${renderHelperRegion(assistiveId, errorText, helperText)}\n `;\n },\n styles: [\n colorThemeMixin,\n forcedColorsFormControlMixin,\n disabledStateMixin,\n coarsePointerMixin,\n sizeVariantMixin(CONTROL_SIZE_PRESET),\n componentStyles,\n ],\n});\n"],"mappings":"grBA8EA,IAAa,EAAe,4BACgB,EAAc,CACxD,eAAgB,GAChB,MAAO,CACL,GAAG,EAAA,eACH,GAAG,EAAA,cACH,GAAG,EAAA,iBACH,QAAS,EAAA,KAAK,KAAK,EAAK,EACxB,MAAO,EAAA,KAAK,OAAO,EACnB,OAAQ,EAAA,KAAK,OAAO,EACpB,cAAe,EAAA,KAAK,KAAK,EAAK,EAC9B,KAAM,EAAA,KAAK,OAAO,EAClB,MAAO,EAAA,KAAK,OAAO,IAAI,CACzB,EACA,MAAM,EAAO,CAAE,OAAM,OAAM,aAAa,CACtC,IAAM,GAAA,EAAA,EAAA,OAAA,CAAiB,EAAA,QAAQ,EACzB,EAAY,EAAA,eAAe,EAAM,EAAO,CAAO,EAC/C,GAAA,EAAA,EAAA,OAAA,CAAkB,EAAA,kBAAkB,EAEtC,EAAgD,KAC9C,EAAY,EAAA,gBAAgB,CAChC,QAAS,EAAM,QACf,wBAAyB,GACzB,UAAA,EAAA,EAAA,SAAA,KAAyB,EAAU,SAAS,OAAS,EAAQ,GAAU,SAAS,KAAM,EACtF,MAAO,EAAM,MACb,iBAAoB,EACpB,MAAO,EACP,OAAQ,EAAM,OACd,cAAe,EAAM,cACrB,SAAW,GAAY,CACrB,EAAU,kBAAkB,QAAQ,EAIhC,IAEJ,EAAK,SAAU,CAAO,CACxB,EACA,OAAQ,WACR,OAAQ,EAAA,gBAAgB,CAAS,EACjC,WAAY,GAAS,WACrB,MAAO,EAAM,KACf,CAAC,EAED,GAAA,EAAA,EAAA,SAAA,CAAqC,CACnC,SAAU,EAAU,SACpB,YAAc,GAAM,EACpB,MAAO,EAAU,kBACnB,CAAC,EAED,GAAM,CACJ,cACA,UACA,WACA,YACA,cACA,gBACA,aACA,gBACA,WACE,EASJ,OAPA,EAAA,sBACE,EACA,EAAU,KACV,CAAE,cAAa,UAAS,WAAU,YAAW,cAAa,gBAAe,aAAY,gBAAe,SAAQ,EAC5G,UACF,EAEO,EAAA,IAAI;;;;;;;6CAO8B,EAAQ;QAC7C,EAAA,mBAAmB,EAAa,EAAW,CAAU,EAAE;KAE7D,EACA,OAAQ,CACN,EAAA,gBACA,EAAA,6BACA,EAAA,mBACA,EAAA,mBACA,EAAA,iBAAiB,EAAA,mBAAmB,EACpC,EAAA,OACF,CACF,CAAC"}
1
+ {"version":3,"file":"checkbox.cjs","names":[],"sources":["../src/inputs/checkbox/checkbox.ts"],"sourcesContent":["import { define, html, inject, prop, onCleanup, useEmit } from '@vielzeug/ore';\nimport { useField } from '@vielzeug/ore/forms';\nimport { computed } from '@vielzeug/ripple';\n\nimport type { CheckableProps, ComponentSize, ThemeColor } from '../../types';\n\nimport { type CheckableChangePayload, lifecycleSignal, createCheckable } from '../../headless';\nimport '../../content/icon/icon';\nimport { CONTROL_SIZE_PRESET, disablableBundle, sizableBundle, themableBundle } from '../../shared';\nimport {\n coarsePointerMixin,\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsFormControlMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport { CHECKBOX_GROUP_CTX } from '../checkbox-group/checkbox-group';\nimport { applyCheckableBinding } from '../shared/field-binding';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport { renderHelperRegion } from '../shared/templates';\nimport componentStyles from './checkbox.css?inline';\n\nexport type OreCheckboxEvents = {\n change: CheckableChangePayload;\n};\n\nexport type OreCheckboxProps = CheckableProps & {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interaction */\n disabled?: boolean;\n /** Error message (marks field as invalid) */\n error?: string;\n /** Helper text displayed below the checkbox */\n helper?: string;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Component size */\n size?: ComponentSize;\n};\n\n/**\n * A customizable checkbox component with theme colors, sizes, and indeterminate state support.\n *\n * @element ore-checkbox\n *\n * @attr {boolean} checked - Checked state\n * @attr {boolean} disabled - Disable checkbox interaction\n * @attr {boolean} indeterminate - Indeterminate (partially checked) state\n * @attr {string} value - Field value submitted with forms\n * @attr {string} name - Form field name\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - Checkbox size: 'sm' | 'md' | 'lg'\n * @attr {string} error - Error message (marks field as invalid)\n * @attr {string} helper - Helper text displayed below the checkbox\n *\n * @fires change - Emitted when checkbox is toggled. detail: { checked: boolean, value: string, originalEvent?: Event }\n *\n * @slot - Checkbox label text\n *\n * @cssprop --checkbox-size - Control size (width and height)\n * @cssprop --checkbox-radius - Control border radius\n * @cssprop --checkbox-bg - Unchecked background color\n * @cssprop --checkbox-border-color - Unchecked border color\n * @cssprop --checkbox-checked-bg - Checked/indeterminate background color\n * @cssprop --checkbox-color - Checkmark icon color\n * @cssprop --checkbox-font-size - Label font size\n * @part checkbox - The checkbox wrapper element\n * @part box - The visual checkbox box\n * @part label - The label element\n * @part helper-text - The helper/error text element\n *\n * @example\n * ```html\n * <ore-checkbox name=\"agree\" required>I agree to the terms</ore-checkbox>\n * <ore-checkbox checked color=\"primary\" size=\"lg\">Enabled by default</ore-checkbox>\n * <ore-checkbox error=\"This field is required\" helper=\"Check to continue\">Accept</ore-checkbox>\n * ```\n */\nexport const CHECKBOX_TAG = 'ore-checkbox' as const;\ndefine<OreCheckboxProps>(CHECKBOX_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n checked: prop.bool(false),\n error: prop.string(),\n helper: prop.string(),\n indeterminate: prop.bool(false),\n name: prop.string(),\n value: prop.string('on'),\n },\n setup(props) {\n const emit = useEmit<OreCheckboxEvents>();\n\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(props, formCtx);\n const groupCtx = inject(CHECKBOX_GROUP_CTX);\n\n let _formField: { reportValidity(): void } | null = null;\n const checkable = createCheckable({\n checked: props.checked,\n clearIndeterminateFirst: true,\n disabled: computed(() => fCtxProps.disabled.value || Boolean(groupCtx?.disabled.value)),\n error: props.error,\n getFormField: () => _formField,\n group: groupCtx,\n helper: props.helper,\n indeterminate: props.indeterminate,\n onToggle: (payload) => {\n checkable.triggerValidation('change');\n\n // In a checkbox-group, the group owns change emission/state updates.\n // Emitting here would bubble to the group and toggle a second time.\n if (groupCtx) return;\n\n emit('change', payload);\n },\n prefix: 'checkbox',\n signal: lifecycleSignal(onCleanup),\n validateOn: formCtx?.validateOn,\n value: props.value,\n });\n\n _formField = useField<string | null>({\n disabled: checkable.disabled,\n toFormValue: (v) => v,\n value: checkable.checkableFormValue,\n });\n\n const {\n assistiveId,\n checked,\n disabled,\n errorText,\n handleClick,\n handleKeydown,\n helperText,\n indeterminate,\n labelId,\n } = checkable;\n\n applyCheckableBinding(\n fCtxProps.size,\n { assistiveId, checked, disabled, errorText, handleClick, handleKeydown, helperText, indeterminate, labelId },\n 'checkbox',\n );\n\n return html`\n <div class=\"checkbox-wrapper\" part=\"checkbox\">\n <div class=\"box\" part=\"box\">\n <ore-icon class=\"checkmark\" name=\"check\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n <ore-icon class=\"dash\" name=\"minus\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n </div>\n </div>\n <span class=\"label\" part=\"label\" id=\"${labelId}\"><slot></slot></span>\n ${renderHelperRegion(assistiveId, errorText, helperText)}\n `;\n },\n styles: [\n colorThemeMixin,\n forcedColorsFormControlMixin,\n disabledStateMixin,\n coarsePointerMixin,\n sizeVariantMixin(CONTROL_SIZE_PRESET),\n componentStyles,\n ],\n});\n"],"mappings":"uvBA+EA,IAAa,EAAe,4BACH,EAAc,CACrC,eAAgB,GAChB,MAAO,CACL,GAAG,EAAA,eACH,GAAG,EAAA,cACH,GAAG,EAAA,iBACH,QAAS,EAAA,KAAK,KAAK,EAAK,EACxB,MAAO,EAAA,KAAK,OAAO,EACnB,OAAQ,EAAA,KAAK,OAAO,EACpB,cAAe,EAAA,KAAK,KAAK,EAAK,EAC9B,KAAM,EAAA,KAAK,OAAO,EAClB,MAAO,EAAA,KAAK,OAAO,IAAI,CACzB,EACA,MAAM,EAAO,CACX,IAAM,GAAA,EAAA,EAAA,QAAA,CAAkC,EAElC,GAAA,EAAA,EAAA,OAAA,CAAiB,EAAA,QAAQ,EACzB,EAAY,EAAA,eAAe,EAAO,CAAO,EACzC,GAAA,EAAA,EAAA,OAAA,CAAkB,EAAA,kBAAkB,EAEtC,EAAgD,KAC9C,EAAY,EAAA,gBAAgB,CAChC,QAAS,EAAM,QACf,wBAAyB,GACzB,UAAA,EAAA,EAAA,SAAA,KAAyB,EAAU,SAAS,OAAS,EAAQ,GAAU,SAAS,KAAM,EACtF,MAAO,EAAM,MACb,iBAAoB,EACpB,MAAO,EACP,OAAQ,EAAM,OACd,cAAe,EAAM,cACrB,SAAW,GAAY,CACrB,EAAU,kBAAkB,QAAQ,EAIhC,IAEJ,EAAK,SAAU,CAAO,CACxB,EACA,OAAQ,WACR,OAAQ,EAAA,gBAAgB,EAAA,SAAS,EACjC,WAAY,GAAS,WACrB,MAAO,EAAM,KACf,CAAC,EAED,EAAa,EAAA,SAAwB,CACnC,SAAU,EAAU,SACpB,YAAc,GAAM,EACpB,MAAO,EAAU,kBACnB,CAAC,EAED,GAAM,CACJ,cACA,UACA,WACA,YACA,cACA,gBACA,aACA,gBACA,WACE,EAQJ,OANA,EAAA,sBACE,EAAU,KACV,CAAE,cAAa,UAAS,WAAU,YAAW,cAAa,gBAAe,aAAY,gBAAe,SAAQ,EAC5G,UACF,EAEO,EAAA,IAAI;;;;;;;6CAO8B,EAAQ;QAC7C,EAAA,mBAAmB,EAAa,EAAW,CAAU,EAAE;KAE7D,EACA,OAAQ,CACN,EAAA,gBACA,EAAA,6BACA,EAAA,mBACA,EAAA,mBACA,EAAA,iBAAiB,EAAA,mBAAmB,EACpC,EAAA,OACF,CACF,CAAC"}
package/dist/checkbox.js CHANGED
@@ -6,63 +6,65 @@ import { disablableBundle as a, sizableBundle as o, themableBundle as s } from "
6
6
  import { CONTROL_SIZE_PRESET as c } from "./shared/size-presets.js";
7
7
  import { lifecycleSignal as l } from "./headless/ore.js";
8
8
  import { createCheckable as u } from "./headless/checkable.js";
9
- import { applyCheckableBinding as d } from "./inputs/shared/field-binding.js";
10
- import { FORM_CTX as f, useFormContext as p } from "./inputs/shared/form-context.js";
11
- import { renderHelperRegion as m } from "./inputs/shared/templates.js";
12
- import { CHECKBOX_GROUP_CTX as h } from "./checkbox-group.js";
13
- import g from "./inputs/checkbox/checkbox.css?inline.js";
14
- import { define as _, html as v, inject as y, prop as b, useField as x } from "@vielzeug/ore";
15
- import { computed as S } from "@vielzeug/ripple";
9
+ import { useField as d } from "./ore/dist/forms/field.js";
10
+ import "./ore/dist/forms.js";
11
+ import { applyCheckableBinding as f } from "./inputs/shared/field-binding.js";
12
+ import { FORM_CTX as p, useFormContext as m } from "./inputs/shared/form-context.js";
13
+ import { renderHelperRegion as h } from "./inputs/shared/templates.js";
14
+ import { CHECKBOX_GROUP_CTX as g } from "./checkbox-group.js";
15
+ import _ from "./inputs/checkbox/checkbox.css.js";
16
+ import { define as v, html as y, inject as b, onCleanup as x, prop as S, useEmit as C } from "@vielzeug/ore";
17
+ import { computed as w } from "@vielzeug/ripple";
16
18
  //#region src/inputs/checkbox/checkbox.ts
17
- var C = "ore-checkbox";
18
- _(C, {
19
+ var T = "ore-checkbox";
20
+ v(T, {
19
21
  formAssociated: !0,
20
22
  props: {
21
23
  ...s,
22
24
  ...o,
23
25
  ...a,
24
- checked: b.bool(!1),
25
- error: b.string(),
26
- helper: b.string(),
27
- indeterminate: b.bool(!1),
28
- name: b.string(),
29
- value: b.string("on")
26
+ checked: S.bool(!1),
27
+ error: S.string(),
28
+ helper: S.string(),
29
+ indeterminate: S.bool(!1),
30
+ name: S.string(),
31
+ value: S.string("on")
30
32
  },
31
- setup(e, { bind: t, emit: n, onCleanup: r }) {
32
- let i = y(f), a = p(t, e, i), o = y(h), s = null, c = u({
33
+ setup(e) {
34
+ let t = C(), n = b(p), r = m(e, n), i = b(g), a = null, o = u({
33
35
  checked: e.checked,
34
36
  clearIndeterminateFirst: !0,
35
- disabled: S(() => a.disabled.value || !!o?.disabled.value),
37
+ disabled: w(() => r.disabled.value || !!i?.disabled.value),
36
38
  error: e.error,
37
- getFormField: () => s,
38
- group: o,
39
+ getFormField: () => a,
40
+ group: i,
39
41
  helper: e.helper,
40
42
  indeterminate: e.indeterminate,
41
43
  onToggle: (e) => {
42
- c.triggerValidation("change"), !o && n("change", e);
44
+ o.triggerValidation("change"), !i && t("change", e);
43
45
  },
44
46
  prefix: "checkbox",
45
- signal: l(r),
46
- validateOn: i?.validateOn,
47
+ signal: l(x),
48
+ validateOn: n?.validateOn,
47
49
  value: e.value
48
50
  });
49
- s = x({
50
- disabled: c.disabled,
51
+ a = d({
52
+ disabled: o.disabled,
51
53
  toFormValue: (e) => e,
52
- value: c.checkableFormValue
54
+ value: o.checkableFormValue
53
55
  });
54
- let { assistiveId: g, checked: _, disabled: b, errorText: C, handleClick: w, handleKeydown: T, helperText: E, indeterminate: D, labelId: O } = c;
55
- return d(t, a.size, {
56
- assistiveId: g,
57
- checked: _,
58
- disabled: b,
59
- errorText: C,
60
- handleClick: w,
56
+ let { assistiveId: s, checked: c, disabled: _, errorText: v, handleClick: S, handleKeydown: T, helperText: E, indeterminate: D, labelId: O } = o;
57
+ return f(r.size, {
58
+ assistiveId: s,
59
+ checked: c,
60
+ disabled: _,
61
+ errorText: v,
62
+ handleClick: S,
61
63
  handleKeydown: T,
62
64
  helperText: E,
63
65
  indeterminate: D,
64
66
  labelId: O
65
- }, "checkbox"), v`
67
+ }, "checkbox"), y`
66
68
  <div class="checkbox-wrapper" part="checkbox">
67
69
  <div class="box" part="box">
68
70
  <ore-icon class="checkmark" name="check" size="14" stroke-width="2" aria-hidden="true"></ore-icon>
@@ -70,7 +72,7 @@ _(C, {
70
72
  </div>
71
73
  </div>
72
74
  <span class="label" part="label" id="${O}"><slot></slot></span>
73
- ${m(g, C, E)}
75
+ ${h(s, v, E)}
74
76
  `;
75
77
  },
76
78
  styles: [
@@ -79,10 +81,10 @@ _(C, {
79
81
  n,
80
82
  e,
81
83
  t(c),
82
- g
84
+ _
83
85
  ]
84
86
  });
85
87
  //#endregion
86
- export { C as CHECKBOX_TAG };
88
+ export { T as CHECKBOX_TAG };
87
89
 
88
90
  //# sourceMappingURL=checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":[],"sources":["../src/inputs/checkbox/checkbox.ts"],"sourcesContent":["import { define, useField, html, inject, prop } from '@vielzeug/ore';\nimport { computed } from '@vielzeug/ripple';\n\nimport type { CheckableProps, ComponentSize, ThemeColor } from '../../types';\n\nimport { type CheckableChangePayload, lifecycleSignal, createCheckable } from '../../headless';\nimport '../../content/icon/icon';\nimport { CONTROL_SIZE_PRESET, disablableBundle, sizableBundle, themableBundle } from '../../shared';\nimport {\n coarsePointerMixin,\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsFormControlMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport { CHECKBOX_GROUP_CTX } from '../checkbox-group/checkbox-group';\nimport { applyCheckableBinding } from '../shared/field-binding';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport { renderHelperRegion } from '../shared/templates';\nimport componentStyles from './checkbox.css?inline';\n\nexport type OreCheckboxEvents = {\n change: CheckableChangePayload;\n};\n\nexport type OreCheckboxProps = CheckableProps & {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interaction */\n disabled?: boolean;\n /** Error message (marks field as invalid) */\n error?: string;\n /** Helper text displayed below the checkbox */\n helper?: string;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Component size */\n size?: ComponentSize;\n};\n\n/**\n * A customizable checkbox component with theme colors, sizes, and indeterminate state support.\n *\n * @element ore-checkbox\n *\n * @attr {boolean} checked - Checked state\n * @attr {boolean} disabled - Disable checkbox interaction\n * @attr {boolean} indeterminate - Indeterminate (partially checked) state\n * @attr {string} value - Field value submitted with forms\n * @attr {string} name - Form field name\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - Checkbox size: 'sm' | 'md' | 'lg'\n * @attr {string} error - Error message (marks field as invalid)\n * @attr {string} helper - Helper text displayed below the checkbox\n *\n * @fires change - Emitted when checkbox is toggled. detail: { checked: boolean, value: string, originalEvent?: Event }\n *\n * @slot - Checkbox label text\n *\n * @cssprop --checkbox-size - Control size (width and height)\n * @cssprop --checkbox-radius - Control border radius\n * @cssprop --checkbox-bg - Unchecked background color\n * @cssprop --checkbox-border-color - Unchecked border color\n * @cssprop --checkbox-checked-bg - Checked/indeterminate background color\n * @cssprop --checkbox-color - Checkmark icon color\n * @cssprop --checkbox-font-size - Label font size\n * @part checkbox - The checkbox wrapper element\n * @part box - The visual checkbox box\n * @part label - The label element\n * @part helper-text - The helper/error text element\n *\n * @example\n * ```html\n * <ore-checkbox name=\"agree\" required>I agree to the terms</ore-checkbox>\n * <ore-checkbox checked color=\"primary\" size=\"lg\">Enabled by default</ore-checkbox>\n * <ore-checkbox error=\"This field is required\" helper=\"Check to continue\">Accept</ore-checkbox>\n * ```\n */\nexport const CHECKBOX_TAG = 'ore-checkbox' as const;\ndefine<OreCheckboxProps, OreCheckboxEvents>(CHECKBOX_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n checked: prop.bool(false),\n error: prop.string(),\n helper: prop.string(),\n indeterminate: prop.bool(false),\n name: prop.string(),\n value: prop.string('on'),\n },\n setup(props, { bind, emit, onCleanup }) {\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(bind, props, formCtx);\n const groupCtx = inject(CHECKBOX_GROUP_CTX);\n\n let _formField: { reportValidity(): void } | null = null;\n const checkable = createCheckable({\n checked: props.checked,\n clearIndeterminateFirst: true,\n disabled: computed(() => fCtxProps.disabled.value || Boolean(groupCtx?.disabled.value)),\n error: props.error,\n getFormField: () => _formField,\n group: groupCtx,\n helper: props.helper,\n indeterminate: props.indeterminate,\n onToggle: (payload) => {\n checkable.triggerValidation('change');\n\n // In a checkbox-group, the group owns change emission/state updates.\n // Emitting here would bubble to the group and toggle a second time.\n if (groupCtx) return;\n\n emit('change', payload);\n },\n prefix: 'checkbox',\n signal: lifecycleSignal(onCleanup),\n validateOn: formCtx?.validateOn,\n value: props.value,\n });\n\n _formField = useField<string | null>({\n disabled: checkable.disabled,\n toFormValue: (v) => v,\n value: checkable.checkableFormValue,\n });\n\n const {\n assistiveId,\n checked,\n disabled,\n errorText,\n handleClick,\n handleKeydown,\n helperText,\n indeterminate,\n labelId,\n } = checkable;\n\n applyCheckableBinding(\n bind,\n fCtxProps.size,\n { assistiveId, checked, disabled, errorText, handleClick, handleKeydown, helperText, indeterminate, labelId },\n 'checkbox',\n );\n\n return html`\n <div class=\"checkbox-wrapper\" part=\"checkbox\">\n <div class=\"box\" part=\"box\">\n <ore-icon class=\"checkmark\" name=\"check\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n <ore-icon class=\"dash\" name=\"minus\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n </div>\n </div>\n <span class=\"label\" part=\"label\" id=\"${labelId}\"><slot></slot></span>\n ${renderHelperRegion(assistiveId, errorText, helperText)}\n `;\n },\n styles: [\n colorThemeMixin,\n forcedColorsFormControlMixin,\n disabledStateMixin,\n coarsePointerMixin,\n sizeVariantMixin(CONTROL_SIZE_PRESET),\n componentStyles,\n ],\n});\n"],"mappings":";;;;;;;;;;;;;;;;AA8EA,IAAa,IAAe;AAC5B,EAA4C,GAAc;CACxD,gBAAgB;CAChB,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAG;EACH,SAAS,EAAK,KAAK,EAAK;EACxB,OAAO,EAAK,OAAO;EACnB,QAAQ,EAAK,OAAO;EACpB,eAAe,EAAK,KAAK,EAAK;EAC9B,MAAM,EAAK,OAAO;EAClB,OAAO,EAAK,OAAO,IAAI;CACzB;CACA,MAAM,GAAO,EAAE,SAAM,SAAM,gBAAa;EACtC,IAAM,IAAU,EAAO,CAAQ,GACzB,IAAY,EAAe,GAAM,GAAO,CAAO,GAC/C,IAAW,EAAO,CAAkB,GAEtC,IAAgD,MAC9C,IAAY,EAAgB;GAChC,SAAS,EAAM;GACf,yBAAyB;GACzB,UAAU,QAAe,EAAU,SAAS,SAAS,EAAQ,GAAU,SAAS,KAAM;GACtF,OAAO,EAAM;GACb,oBAAoB;GACpB,OAAO;GACP,QAAQ,EAAM;GACd,eAAe,EAAM;GACrB,WAAW,MAAY;IACrB,EAAU,kBAAkB,QAAQ,GAIhC,MAEJ,EAAK,UAAU,CAAO;GACxB;GACA,QAAQ;GACR,QAAQ,EAAgB,CAAS;GACjC,YAAY,GAAS;GACrB,OAAO,EAAM;EACf,CAAC;EAED,IAAa,EAAwB;GACnC,UAAU,EAAU;GACpB,cAAc,MAAM;GACpB,OAAO,EAAU;EACnB,CAAC;EAED,IAAM,EACJ,gBACA,YACA,aACA,cACA,gBACA,kBACA,eACA,kBACA,eACE;EASJ,OAPA,EACE,GACA,EAAU,MACV;GAAE;GAAa;GAAS;GAAU;GAAW;GAAa;GAAe;GAAY;GAAe;EAAQ,GAC5G,UACF,GAEO,CAAI;;;;;;;6CAO8B,EAAQ;QAC7C,EAAmB,GAAa,GAAW,CAAU,EAAE;;CAE7D;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA,EAAiB,CAAmB;EACpC;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../src/inputs/checkbox/checkbox.ts"],"sourcesContent":["import { define, html, inject, prop, onCleanup, useEmit } from '@vielzeug/ore';\nimport { useField } from '@vielzeug/ore/forms';\nimport { computed } from '@vielzeug/ripple';\n\nimport type { CheckableProps, ComponentSize, ThemeColor } from '../../types';\n\nimport { type CheckableChangePayload, lifecycleSignal, createCheckable } from '../../headless';\nimport '../../content/icon/icon';\nimport { CONTROL_SIZE_PRESET, disablableBundle, sizableBundle, themableBundle } from '../../shared';\nimport {\n coarsePointerMixin,\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsFormControlMixin,\n sizeVariantMixin,\n} from '../../styles';\nimport { CHECKBOX_GROUP_CTX } from '../checkbox-group/checkbox-group';\nimport { applyCheckableBinding } from '../shared/field-binding';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport { renderHelperRegion } from '../shared/templates';\nimport componentStyles from './checkbox.css?inline';\n\nexport type OreCheckboxEvents = {\n change: CheckableChangePayload;\n};\n\nexport type OreCheckboxProps = CheckableProps & {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interaction */\n disabled?: boolean;\n /** Error message (marks field as invalid) */\n error?: string;\n /** Helper text displayed below the checkbox */\n helper?: string;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Component size */\n size?: ComponentSize;\n};\n\n/**\n * A customizable checkbox component with theme colors, sizes, and indeterminate state support.\n *\n * @element ore-checkbox\n *\n * @attr {boolean} checked - Checked state\n * @attr {boolean} disabled - Disable checkbox interaction\n * @attr {boolean} indeterminate - Indeterminate (partially checked) state\n * @attr {string} value - Field value submitted with forms\n * @attr {string} name - Form field name\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - Checkbox size: 'sm' | 'md' | 'lg'\n * @attr {string} error - Error message (marks field as invalid)\n * @attr {string} helper - Helper text displayed below the checkbox\n *\n * @fires change - Emitted when checkbox is toggled. detail: { checked: boolean, value: string, originalEvent?: Event }\n *\n * @slot - Checkbox label text\n *\n * @cssprop --checkbox-size - Control size (width and height)\n * @cssprop --checkbox-radius - Control border radius\n * @cssprop --checkbox-bg - Unchecked background color\n * @cssprop --checkbox-border-color - Unchecked border color\n * @cssprop --checkbox-checked-bg - Checked/indeterminate background color\n * @cssprop --checkbox-color - Checkmark icon color\n * @cssprop --checkbox-font-size - Label font size\n * @part checkbox - The checkbox wrapper element\n * @part box - The visual checkbox box\n * @part label - The label element\n * @part helper-text - The helper/error text element\n *\n * @example\n * ```html\n * <ore-checkbox name=\"agree\" required>I agree to the terms</ore-checkbox>\n * <ore-checkbox checked color=\"primary\" size=\"lg\">Enabled by default</ore-checkbox>\n * <ore-checkbox error=\"This field is required\" helper=\"Check to continue\">Accept</ore-checkbox>\n * ```\n */\nexport const CHECKBOX_TAG = 'ore-checkbox' as const;\ndefine<OreCheckboxProps>(CHECKBOX_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n checked: prop.bool(false),\n error: prop.string(),\n helper: prop.string(),\n indeterminate: prop.bool(false),\n name: prop.string(),\n value: prop.string('on'),\n },\n setup(props) {\n const emit = useEmit<OreCheckboxEvents>();\n\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(props, formCtx);\n const groupCtx = inject(CHECKBOX_GROUP_CTX);\n\n let _formField: { reportValidity(): void } | null = null;\n const checkable = createCheckable({\n checked: props.checked,\n clearIndeterminateFirst: true,\n disabled: computed(() => fCtxProps.disabled.value || Boolean(groupCtx?.disabled.value)),\n error: props.error,\n getFormField: () => _formField,\n group: groupCtx,\n helper: props.helper,\n indeterminate: props.indeterminate,\n onToggle: (payload) => {\n checkable.triggerValidation('change');\n\n // In a checkbox-group, the group owns change emission/state updates.\n // Emitting here would bubble to the group and toggle a second time.\n if (groupCtx) return;\n\n emit('change', payload);\n },\n prefix: 'checkbox',\n signal: lifecycleSignal(onCleanup),\n validateOn: formCtx?.validateOn,\n value: props.value,\n });\n\n _formField = useField<string | null>({\n disabled: checkable.disabled,\n toFormValue: (v) => v,\n value: checkable.checkableFormValue,\n });\n\n const {\n assistiveId,\n checked,\n disabled,\n errorText,\n handleClick,\n handleKeydown,\n helperText,\n indeterminate,\n labelId,\n } = checkable;\n\n applyCheckableBinding(\n fCtxProps.size,\n { assistiveId, checked, disabled, errorText, handleClick, handleKeydown, helperText, indeterminate, labelId },\n 'checkbox',\n );\n\n return html`\n <div class=\"checkbox-wrapper\" part=\"checkbox\">\n <div class=\"box\" part=\"box\">\n <ore-icon class=\"checkmark\" name=\"check\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n <ore-icon class=\"dash\" name=\"minus\" size=\"14\" stroke-width=\"2\" aria-hidden=\"true\"></ore-icon>\n </div>\n </div>\n <span class=\"label\" part=\"label\" id=\"${labelId}\"><slot></slot></span>\n ${renderHelperRegion(assistiveId, errorText, helperText)}\n `;\n },\n styles: [\n colorThemeMixin,\n forcedColorsFormControlMixin,\n disabledStateMixin,\n coarsePointerMixin,\n sizeVariantMixin(CONTROL_SIZE_PRESET),\n componentStyles,\n ],\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;AA+EA,IAAa,IAAe;AAC5B,EAAyB,GAAc;CACrC,gBAAgB;CAChB,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAG;EACH,SAAS,EAAK,KAAK,EAAK;EACxB,OAAO,EAAK,OAAO;EACnB,QAAQ,EAAK,OAAO;EACpB,eAAe,EAAK,KAAK,EAAK;EAC9B,MAAM,EAAK,OAAO;EAClB,OAAO,EAAK,OAAO,IAAI;CACzB;CACA,MAAM,GAAO;EACX,IAAM,IAAO,EAA2B,GAElC,IAAU,EAAO,CAAQ,GACzB,IAAY,EAAe,GAAO,CAAO,GACzC,IAAW,EAAO,CAAkB,GAEtC,IAAgD,MAC9C,IAAY,EAAgB;GAChC,SAAS,EAAM;GACf,yBAAyB;GACzB,UAAU,QAAe,EAAU,SAAS,SAAS,EAAQ,GAAU,SAAS,KAAM;GACtF,OAAO,EAAM;GACb,oBAAoB;GACpB,OAAO;GACP,QAAQ,EAAM;GACd,eAAe,EAAM;GACrB,WAAW,MAAY;IACrB,EAAU,kBAAkB,QAAQ,GAIhC,MAEJ,EAAK,UAAU,CAAO;GACxB;GACA,QAAQ;GACR,QAAQ,EAAgB,CAAS;GACjC,YAAY,GAAS;GACrB,OAAO,EAAM;EACf,CAAC;EAED,IAAa,EAAwB;GACnC,UAAU,EAAU;GACpB,cAAc,MAAM;GACpB,OAAO,EAAU;EACnB,CAAC;EAED,IAAM,EACJ,gBACA,YACA,aACA,cACA,gBACA,kBACA,eACA,kBACA,eACE;EAQJ,OANA,EACE,EAAU,MACV;GAAE;GAAa;GAAS;GAAU;GAAW;GAAa;GAAe;GAAY;GAAe;EAAQ,GAC5G,UACF,GAEO,CAAI;;;;;;;6CAO8B,EAAQ;QAC7C,EAAmB,GAAa,GAAW,CAAU,EAAE;;CAE7D;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA,EAAiB,CAAmB;EACpC;CACF;AACF,CAAC"}
package/dist/chip.cjs CHANGED
@@ -1,42 +1,42 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/shape.css.cjs"),t=require("./styles/mixins/states.css.cjs"),n=require("./styles/mixins/theme.css.cjs"),r=require("./feedback/chip/chip.css?inline.cjs");let i=require("@vielzeug/ore"),a=require("@vielzeug/ripple");var o=`ore-chip`;(0,i.define)(o,{props:{checked:{default:void 0,parse:e=>e==null?void 0:e!==`false`,reflect:!1},color:i.prop.string(),"default-checked":i.prop.bool(!1),disabled:i.prop.bool(!1),label:i.prop.string(),mode:i.prop.oneOf([`static`,`removable`,`selectable`,`action`],`static`),rounded:i.prop.string(),size:i.prop.string(),value:i.prop.string(),variant:i.prop.string()},setup(e,{bind:t,el:n,emit:r}){let o=(0,a.signal)(e.checked.value!==void 0),s=(0,a.signal)(!o.value&&e[`default-checked`].value);(0,a.watch)(e.checked,e=>{e!==void 0&&(o.value=!0)});let c=(0,a.computed)(()=>e.mode.value===`selectable`?o.value?e.checked.value??!1:s.value:!1);t({attr:{checked:()=>e.mode.value===`selectable`&&c.value?!0:void 0}});function l(t){e.disabled.value||r(`remove`,{originalEvent:t,value:e.value.value})}function u(t){if(t.stopPropagation(),e.disabled.value)return;let n=!c.value;o.value||(s.value=n),r(`change`,{checked:n,originalEvent:t,value:e.value.value})}function d(t){e.disabled.value||r(`click`,{originalEvent:t,value:e.value.value})}let f=()=>i.html`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/shape.css.cjs"),t=require("./styles/mixins/states.css.cjs"),n=require("./styles/mixins/theme.css.cjs"),r=require("./feedback/chip/chip.css.cjs");let i=require("@vielzeug/ore"),a=require("@vielzeug/ripple");var o=`ore-chip`;(0,i.define)(o,{props:{checked:{default:void 0,parse:e=>e==null?void 0:e!==`false`,reflect:!1},color:i.prop.string(),"default-checked":i.prop.bool(!1),disabled:i.prop.bool(!1),label:i.prop.string(),mode:i.prop.oneOf([`static`,`removable`,`selectable`,`action`],`static`),rounded:i.prop.string(),size:i.prop.string(),value:i.prop.string(),variant:i.prop.string()},setup(e){let t=(0,i.useEmit)(),n=(0,a.signal)(e.checked.value!==void 0),r=(0,a.signal)(!n.value&&e[`default-checked`].value);(0,a.watch)(e.checked,e=>{e!==void 0&&(n.value=!0)});let o=(0,a.computed)(()=>e.mode.value===`selectable`?n.value?e.checked.value??!1:r.value:!1);(0,i.bind)({attr:{checked:()=>e.mode.value===`selectable`&&o.value?!0:void 0}});function s(n){e.disabled.value||t(`remove`,{originalEvent:n,value:e.value.value})}function c(i){if(i.stopPropagation(),e.disabled.value)return;let a=!o.value;n.value||(r.value=a),t(`change`,{checked:a,originalEvent:i,value:e.value.value})}function l(n){e.disabled.value||t(`click`,{originalEvent:n,value:e.value.value})}let u=()=>i.html`
2
2
  <slot name="icon"></slot>
3
3
  <span class="label"><slot></slot></span>
4
- `,p=()=>{let t=e.label.value||e.value.value;return t?`Remove ${t}`:`Remove`},m=()=>i.html`
4
+ `,d=()=>{let t=e.label.value||e.value.value;return t?`Remove ${t}`:`Remove`},f=()=>i.html`
5
5
  <button
6
6
  class="remove-btn"
7
7
  part="remove-btn"
8
8
  type="button"
9
- :aria-label="${p}"
9
+ :aria-label="${d}"
10
10
  ?hidden="${()=>e.mode.value!==`removable`}"
11
11
  :disabled="${e.disabled}"
12
- @click="${l}">
12
+ @click="${s}">
13
13
  <ore-icon name="x" size="12" stroke-width="2.5" aria-hidden="true"></ore-icon>
14
14
  </button>
15
- `,h=()=>i.html`
15
+ `,p=()=>i.html`
16
16
  <button
17
17
  class="chip-btn"
18
18
  part="chip-btn"
19
19
  type="button"
20
20
  role="checkbox"
21
- :aria-checked="${()=>String(c.value)}"
21
+ :aria-checked="${()=>String(o.value)}"
22
22
  :aria-label="${e.label}"
23
23
  :disabled="${e.disabled}"
24
- @click="${u}">
25
- <span class="chip" part="chip"> ${f()} </span>
24
+ @click="${c}">
25
+ <span class="chip" part="chip"> ${u()} </span>
26
26
  </button>
27
- `,g=()=>i.html`
27
+ `,m=()=>i.html`
28
28
  <button
29
29
  class="chip-btn"
30
30
  part="chip-btn"
31
31
  type="button"
32
32
  :aria-label="${e.label}"
33
33
  :disabled="${e.disabled}"
34
- @click="${d}">
35
- <span class="chip" part="chip"> ${f()} </span>
34
+ @click="${l}">
35
+ <span class="chip" part="chip"> ${u()} </span>
36
36
  </button>
37
- `,_=()=>i.html` <span class="chip" part="chip"> ${f()} </span> `,v=()=>i.html`
38
- <span class="chip" part="chip"> ${f()} ${m()} </span>
37
+ `,h=()=>i.html` <span class="chip" part="chip"> ${u()} </span> `,g=()=>i.html`
38
+ <span class="chip" part="chip"> ${u()} ${f()} </span>
39
39
  `;return i.html`
40
- ${()=>{let t=e.mode.value;return t===`selectable`?h():t===`action`?g():t===`removable`?v():_()}}
40
+ ${()=>{let t=e.mode.value;return t===`selectable`?p():t===`action`?m():t===`removable`?g():h()}}
41
41
  `},styles:[n.colorThemeMixin,t.disabledStateMixin,e.roundedVariantMixin,e.sizeVariantMixin({lg:{"--_font-size":`var(--text-sm)`,"--_gap":`var(--size-1-5)`,"--_padding-x":`var(--size-3)`,"--_padding-y":`var(--size-1)`},sm:{"--_font-size":`var(--text-xs)`,"--_gap":`var(--size-0-5)`,"--_padding-x":`var(--size-2-5)`,"--_padding-y":`var(--size-px)`}}),n.forcedColorsMixin,r.default]}),exports.CHIP_TAG=o;
42
42
  //# sourceMappingURL=chip.cjs.map
package/dist/chip.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chip.cjs","names":[],"sources":["../src/feedback/chip/chip.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { computed, signal, watch } from '@vielzeug/ripple';\n\nimport type { ComponentSize, RoundedSize, ThemeColor, VisualVariant } from '../../types';\n\nimport '../../content/icon/icon';\nimport {\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsMixin,\n roundedVariantMixin,\n sizeVariantMixin,\n} from '../../styles';\n// ============================================\n// Styles\n// ============================================\nimport componentStyles from './chip.css?inline';\n\n// ============================================\n// Types\n// ============================================\n\n/** Chip component properties */\ntype ChipBaseProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interactions */\n disabled?: boolean;\n /** Accessible label (required for icon-only chips) */\n label?: string;\n /** Border radius override */\n rounded?: RoundedSize | '';\n /** Component size */\n size?: ComponentSize;\n /** Value associated with this chip — included in emitted event detail */\n value?: string;\n /** Visual style variant */\n variant?: Exclude<VisualVariant, 'text' | 'frost'>;\n};\n\ntype OreChipMode = 'static' | 'removable' | 'selectable' | 'action';\n\n/** Read-only presentation chip */\ntype StaticChipProps = {\n mode?: Extract<OreChipMode, 'static'>;\n};\n\n/** Removable chip mode */\ntype RemovableChipProps = {\n mode: Extract<OreChipMode, 'removable'>;\n};\n\n/** Selectable chip mode */\ntype SelectableChipProps = {\n /** Controlled checked state for `mode=\"selectable\"` */\n checked?: boolean | undefined;\n /** Initial checked state for uncontrolled `mode=\"selectable\"` */\n 'default-checked'?: boolean;\n mode: Extract<OreChipMode, 'selectable'>;\n};\n\n/** Action chip mode — behaves like a button, fires a click event without maintaining state */\ntype ActionChipProps = {\n mode: Extract<OreChipMode, 'action'>;\n};\n\ntype OreChipComponentProps = ChipBaseProps & {\n checked?: boolean | undefined;\n 'default-checked'?: boolean;\n mode?: OreChipMode;\n};\n\nexport type OreChipEvents = {\n change: { checked: boolean; originalEvent: Event; value: string | undefined };\n click: { originalEvent: MouseEvent; value: string | undefined };\n remove: { originalEvent: MouseEvent; value: string | undefined };\n};\n\nexport type OreChipProps = ChipBaseProps &\n (StaticChipProps | RemovableChipProps | SelectableChipProps | ActionChipProps);\n\n/**\n * A compact, styled label element. Supports icons, a remove button, colors, sizes, and variants.\n * Commonly used to represent tags, filters, or selected options in a multiselect field.\n *\n * @element ore-chip\n *\n * @attr {string} label - Accessible label (required for icon-only chips)\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost'\n * @attr {string} size - Component size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} mode - Interaction mode: 'static' | 'removable' | 'selectable' | 'action'\n * @attr {boolean} disabled - Disable the chip\n * @attr {string} value - Value included in emitted event detail\n * @attr {boolean} checked - Controlled checked state for selectable chips\n * @attr {boolean} default-checked - Initial checked state for uncontrolled selectable chips\n *\n * @fires remove - Fired when the remove button is clicked. detail: { value: string, originalEvent: MouseEvent }\n * @fires change - Fired when a selectable chip toggles. detail: { checked: boolean, value: string, originalEvent: Event }\n * @fires click - Fired when an action chip is clicked. detail: { value: string, originalEvent: MouseEvent }\n *\n * @slot - Chip label text\n * @slot icon - Leading icon or decoration\n *\n * @cssprop --chip-bg - Background color\n * @cssprop --chip-color - Text color\n * @cssprop --chip-border-color - Border color\n * @cssprop --chip-radius - Border radius\n * @cssprop --chip-font-size - Font size\n * @cssprop --chip-font-weight - Font weight\n * @cssprop --chip-padding-x - Horizontal padding\n * @cssprop --chip-padding-y - Vertical padding\n * @cssprop --chip-gap - Gap between icon, label and remove button\n * @cssprop --chip-hover-bg - Background on hover (interactive modes)\n * @cssprop --chip-hover-color - Text color on hover (interactive modes)\n * @cssprop --chip-hover-border-color - Border color on hover (interactive modes)\n * @cssprop --chip-active-bg - Background when pressed (interactive modes)\n * @cssprop --chip-active-color - Text color when pressed (interactive modes)\n * @cssprop --chip-remove-bg - Remove button background (bordered/outline variants)\n * @cssprop --chip-remove-color - Remove button icon color (bordered/outline variants)\n * @cssprop --chip-remove-hover-bg - Remove button background on hover\n *\n * @part remove-btn - Remove action button.\n * @part chip-btn - Shadow part for the `chip-btn` element.\n * @part chip - Shadow part for the `chip` element.\n * @example\n * ```html\n * <!-- Static chip (read-only) -->\n * <ore-chip color=\"primary\">Design</ore-chip>\n *\n * <!-- Removable chip -->\n * <ore-chip color=\"success\" variant=\"flat\" mode=\"removable\" value=\"ts\">\n * TypeScript\n * </ore-chip>\n *\n * <!-- Selectable chip (controlled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Selectable chip (uncontrolled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" default-checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Action chip (acts like a button) -->\n * <ore-chip color=\"warning\" mode=\"action\" value=\"add\">\n * <svg slot=\"icon\" ...></svg>\n * Add Item\n * </ore-chip>\n *\n * <!-- Icon-only chip -->\n * <ore-chip color=\"error\" mode=\"action\" label=\"Delete\">\n * <svg slot=\"icon\" ...></svg>\n * </ore-chip>\n * ```\n */\nexport const CHIP_TAG = 'ore-chip' as const;\ndefine<OreChipComponentProps, OreChipEvents>(CHIP_TAG, {\n props: {\n checked: {\n default: undefined as OreChipComponentProps['checked'],\n parse: (value: string | null) => (value == null ? undefined : value !== 'false'),\n reflect: false,\n },\n color: prop.string<ThemeColor>(),\n 'default-checked': prop.bool(false),\n disabled: prop.bool(false),\n label: prop.string(),\n mode: prop.oneOf(['static', 'removable', 'selectable', 'action'] as const, 'static'),\n rounded: prop.string<RoundedSize | ''>(),\n size: prop.string<ComponentSize>(),\n value: prop.string(),\n variant: prop.string<Exclude<VisualVariant, 'text' | 'frost'>>(),\n },\n\n setup(props, { bind, el: _el, emit }) {\n // ============================================\n // State Management\n // ============================================\n // Once a checked prop is provided, treat the chip as controlled for the rest of its lifecycle.\n const isControlled = signal(props.checked.value !== undefined);\n // Internal tracking for uncontrolled selectable chips; seeded from default-checked.\n const checkedState = signal(!isControlled.value && props['default-checked'].value);\n\n watch(props.checked, (value) => {\n if (value !== undefined) {\n isControlled.value = true;\n }\n });\n\n // Effective checked value — reactive to checked prop changes in controlled mode.\n const isChecked = computed(() => {\n if (props.mode.value !== 'selectable') return false;\n\n if (isControlled.value) {\n return props.checked.value ?? false;\n }\n\n return checkedState.value;\n });\n\n bind({\n attr: {\n checked: () => (props.mode.value === 'selectable' && isChecked.value ? true : undefined),\n },\n });\n // ============================================\n // Event Handlers\n // ============================================\n function handleRemove(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('remove', { originalEvent: e, value: props.value.value });\n }\n\n function handleSelectableActivate(e: MouseEvent) {\n e.stopPropagation();\n\n if (props.disabled.value) return;\n\n const nextChecked = !isChecked.value;\n\n if (!isControlled.value) {\n checkedState.value = nextChecked;\n }\n\n emit('change', { checked: nextChecked, originalEvent: e, value: props.value.value });\n }\n\n function handleActionClick(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('click', { originalEvent: e, value: props.value.value });\n }\n\n // ============================================\n // Template Helpers\n // ============================================\n const renderChipContent = () => html`\n <slot name=\"icon\"></slot>\n <span class=\"label\"><slot></slot></span>\n `;\n\n const removeBtnLabel = () => {\n const label = props.label.value || props.value.value;\n\n return label ? `Remove ${label}` : 'Remove';\n };\n\n const renderRemoveButton = () => html`\n <button\n class=\"remove-btn\"\n part=\"remove-btn\"\n type=\"button\"\n :aria-label=\"${removeBtnLabel}\"\n ?hidden=\"${() => props.mode.value !== 'removable'}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleRemove}\">\n <ore-icon name=\"x\" size=\"12\" stroke-width=\"2.5\" aria-hidden=\"true\"></ore-icon>\n </button>\n `;\n\n const renderSelectableChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n role=\"checkbox\"\n :aria-checked=\"${() => String(isChecked.value)}\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleSelectableActivate}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderActionChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleActionClick}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderStaticChip = () => html` <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span> `;\n\n const renderRemovableChip = () => html`\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} ${renderRemoveButton()} </span>\n `;\n\n // ============================================\n // Render\n // ============================================\n return html`\n ${() => {\n const mode = props.mode.value;\n\n if (mode === 'selectable') return renderSelectableChip();\n\n if (mode === 'action') return renderActionChip();\n\n if (mode === 'removable') return renderRemovableChip();\n\n return renderStaticChip();\n }}\n `;\n },\n styles: [\n colorThemeMixin,\n disabledStateMixin,\n roundedVariantMixin,\n sizeVariantMixin({\n lg: {\n '--_font-size': 'var(--text-sm)',\n '--_gap': 'var(--size-1-5)',\n '--_padding-x': 'var(--size-3)',\n '--_padding-y': 'var(--size-1)',\n },\n sm: {\n '--_font-size': 'var(--text-xs)',\n '--_gap': 'var(--size-0-5)',\n '--_padding-x': 'var(--size-2-5)',\n '--_padding-y': 'var(--size-px)',\n },\n }),\n forcedColorsMixin,\n componentStyles,\n ],\n});\n"],"mappings":"yTA8JA,IAAa,EAAW,wBACqB,EAAU,CACrD,MAAO,CACL,QAAS,CACP,QAAS,IAAA,GACT,MAAQ,GAA0B,GAAS,KAAO,IAAA,GAAY,IAAU,QACxE,QAAS,EACX,EACA,MAAO,EAAA,KAAK,OAAmB,EAC/B,kBAAmB,EAAA,KAAK,KAAK,EAAK,EAClC,SAAU,EAAA,KAAK,KAAK,EAAK,EACzB,MAAO,EAAA,KAAK,OAAO,EACnB,KAAM,EAAA,KAAK,MAAM,CAAC,SAAU,YAAa,aAAc,QAAQ,EAAY,QAAQ,EACnF,QAAS,EAAA,KAAK,OAAyB,EACvC,KAAM,EAAA,KAAK,OAAsB,EACjC,MAAO,EAAA,KAAK,OAAO,EACnB,QAAS,EAAA,KAAK,OAAiD,CACjE,EAEA,MAAM,EAAO,CAAE,OAAM,GAAI,EAAK,QAAQ,CAKpC,IAAM,GAAA,EAAA,EAAA,OAAA,CAAsB,EAAM,QAAQ,QAAU,IAAA,EAAS,EAEvD,GAAA,EAAA,EAAA,OAAA,CAAsB,CAAC,EAAa,OAAS,EAAM,kBAAkB,CAAC,KAAK,GAEjF,EAAA,EAAA,MAAA,CAAM,EAAM,QAAU,GAAU,CAC1B,IAAU,IAAA,KACZ,EAAa,MAAQ,GAEzB,CAAC,EAGD,IAAM,GAAA,EAAA,EAAA,SAAA,KACA,EAAM,KAAK,QAAU,aAErB,EAAa,MACR,EAAM,QAAQ,OAAS,GAGzB,EAAa,MAN0B,EAO/C,EAED,EAAK,CACH,KAAM,CACJ,YAAgB,EAAM,KAAK,QAAU,cAAgB,EAAU,MAAQ,GAAO,IAAA,EAChF,CACF,CAAC,EAID,SAAS,EAAa,EAAe,CAC/B,EAAM,SAAS,OAEnB,EAAK,SAAU,CAAE,cAAe,EAAG,MAAO,EAAM,MAAM,KAAM,CAAC,CAC/D,CAEA,SAAS,EAAyB,EAAe,CAG/C,GAFA,EAAE,gBAAgB,EAEd,EAAM,SAAS,MAAO,OAE1B,IAAM,EAAc,CAAC,EAAU,MAE1B,EAAa,QAChB,EAAa,MAAQ,GAGvB,EAAK,SAAU,CAAE,QAAS,EAAa,cAAe,EAAG,MAAO,EAAM,MAAM,KAAM,CAAC,CACrF,CAEA,SAAS,EAAkB,EAAe,CACpC,EAAM,SAAS,OAEnB,EAAK,QAAS,CAAE,cAAe,EAAG,MAAO,EAAM,MAAM,KAAM,CAAC,CAC9D,CAKA,IAAM,MAA0B,EAAA,IAAI;;;MAK9B,MAAuB,CAC3B,IAAM,EAAQ,EAAM,MAAM,OAAS,EAAM,MAAM,MAE/C,OAAO,EAAQ,UAAU,IAAU,QACrC,EAEM,MAA2B,EAAA,IAAI;;;;;uBAKlB,EAAe;uBACb,EAAM,KAAK,QAAU,YAAY;qBACrC,EAAM,SAAS;kBAClB,EAAa;;;MAKrB,MAA6B,EAAA,IAAI;;;;;;6BAMZ,OAAO,EAAU,KAAK,EAAE;uBAChC,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAyB;0CACD,EAAkB,EAAE;;MAIpD,MAAyB,EAAA,IAAI;;;;;uBAKhB,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAkB;0CACM,EAAkB,EAAE;;MAIpD,MAAyB,EAAA,IAAI,oCAAoC,EAAkB,EAAE,WAErF,MAA4B,EAAA,IAAI;wCACF,EAAkB,EAAE,GAAG,EAAmB,EAAE;MAMhF,MAAO,GAAA,IAAI;YACD,CACN,IAAM,EAAO,EAAM,KAAK,MAQxB,OANI,IAAS,aAAqB,EAAqB,EAEnD,IAAS,SAAiB,EAAiB,EAE3C,IAAS,YAAoB,EAAoB,EAE9C,EAAiB,CAC1B,EAAE;KAEN,EACA,OAAQ,CACN,EAAA,gBACA,EAAA,mBACA,EAAA,oBACA,EAAA,iBAAiB,CACf,GAAI,CACF,eAAgB,iBAChB,SAAU,kBACV,eAAgB,gBAChB,eAAgB,eAClB,EACA,GAAI,CACF,eAAgB,iBAChB,SAAU,kBACV,eAAgB,kBAChB,eAAgB,gBAClB,CACF,CAAC,EACD,EAAA,kBACA,EAAA,OACF,CACF,CAAC"}
1
+ {"version":3,"file":"chip.cjs","names":[],"sources":["../src/feedback/chip/chip.ts"],"sourcesContent":["import { define, html, prop, bind, useEmit } from '@vielzeug/ore';\nimport { computed, signal, watch } from '@vielzeug/ripple';\n\nimport type { ComponentSize, RoundedSize, ThemeColor, VisualVariant } from '../../types';\n\nimport '../../content/icon/icon';\nimport {\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsMixin,\n roundedVariantMixin,\n sizeVariantMixin,\n} from '../../styles';\n// ============================================\n// Styles\n// ============================================\nimport componentStyles from './chip.css?inline';\n\n// ============================================\n// Types\n// ============================================\n\n/** Chip component properties */\ntype ChipBaseProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interactions */\n disabled?: boolean;\n /** Accessible label (required for icon-only chips) */\n label?: string;\n /** Border radius override */\n rounded?: RoundedSize | '';\n /** Component size */\n size?: ComponentSize;\n /** Value associated with this chip — included in emitted event detail */\n value?: string;\n /** Visual style variant */\n variant?: Exclude<VisualVariant, 'text' | 'frost'>;\n};\n\ntype OreChipMode = 'static' | 'removable' | 'selectable' | 'action';\n\n/** Read-only presentation chip */\ntype StaticChipProps = {\n mode?: Extract<OreChipMode, 'static'>;\n};\n\n/** Removable chip mode */\ntype RemovableChipProps = {\n mode: Extract<OreChipMode, 'removable'>;\n};\n\n/** Selectable chip mode */\ntype SelectableChipProps = {\n /** Controlled checked state for `mode=\"selectable\"` */\n checked?: boolean | undefined;\n /** Initial checked state for uncontrolled `mode=\"selectable\"` */\n 'default-checked'?: boolean;\n mode: Extract<OreChipMode, 'selectable'>;\n};\n\n/** Action chip mode — behaves like a button, fires a click event without maintaining state */\ntype ActionChipProps = {\n mode: Extract<OreChipMode, 'action'>;\n};\n\ntype OreChipComponentProps = ChipBaseProps & {\n checked?: boolean | undefined;\n 'default-checked'?: boolean;\n mode?: OreChipMode;\n};\n\nexport type OreChipEvents = {\n change: { checked: boolean; originalEvent: Event; value: string | undefined };\n click: { originalEvent: MouseEvent; value: string | undefined };\n remove: { originalEvent: MouseEvent; value: string | undefined };\n};\n\nexport type OreChipProps = ChipBaseProps &\n (StaticChipProps | RemovableChipProps | SelectableChipProps | ActionChipProps);\n\n/**\n * A compact, styled label element. Supports icons, a remove button, colors, sizes, and variants.\n * Commonly used to represent tags, filters, or selected options in a multiselect field.\n *\n * @element ore-chip\n *\n * @attr {string} label - Accessible label (required for icon-only chips)\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost'\n * @attr {string} size - Component size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} mode - Interaction mode: 'static' | 'removable' | 'selectable' | 'action'\n * @attr {boolean} disabled - Disable the chip\n * @attr {string} value - Value included in emitted event detail\n * @attr {boolean} checked - Controlled checked state for selectable chips\n * @attr {boolean} default-checked - Initial checked state for uncontrolled selectable chips\n *\n * @fires remove - Fired when the remove button is clicked. detail: { value: string, originalEvent: MouseEvent }\n * @fires change - Fired when a selectable chip toggles. detail: { checked: boolean, value: string, originalEvent: Event }\n * @fires click - Fired when an action chip is clicked. detail: { value: string, originalEvent: MouseEvent }\n *\n * @slot - Chip label text\n * @slot icon - Leading icon or decoration\n *\n * @cssprop --chip-bg - Background color\n * @cssprop --chip-color - Text color\n * @cssprop --chip-border-color - Border color\n * @cssprop --chip-radius - Border radius\n * @cssprop --chip-font-size - Font size\n * @cssprop --chip-font-weight - Font weight\n * @cssprop --chip-padding-x - Horizontal padding\n * @cssprop --chip-padding-y - Vertical padding\n * @cssprop --chip-gap - Gap between icon, label and remove button\n * @cssprop --chip-hover-bg - Background on hover (interactive modes)\n * @cssprop --chip-hover-color - Text color on hover (interactive modes)\n * @cssprop --chip-hover-border-color - Border color on hover (interactive modes)\n * @cssprop --chip-active-bg - Background when pressed (interactive modes)\n * @cssprop --chip-active-color - Text color when pressed (interactive modes)\n * @cssprop --chip-remove-bg - Remove button background (bordered/outline variants)\n * @cssprop --chip-remove-color - Remove button icon color (bordered/outline variants)\n * @cssprop --chip-remove-hover-bg - Remove button background on hover\n *\n * @part remove-btn - Remove action button.\n * @part chip-btn - Shadow part for the `chip-btn` element.\n * @part chip - Shadow part for the `chip` element.\n * @example\n * ```html\n * <!-- Static chip (read-only) -->\n * <ore-chip color=\"primary\">Design</ore-chip>\n *\n * <!-- Removable chip -->\n * <ore-chip color=\"success\" variant=\"flat\" mode=\"removable\" value=\"ts\">\n * TypeScript\n * </ore-chip>\n *\n * <!-- Selectable chip (controlled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Selectable chip (uncontrolled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" default-checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Action chip (acts like a button) -->\n * <ore-chip color=\"warning\" mode=\"action\" value=\"add\">\n * <svg slot=\"icon\" ...></svg>\n * Add Item\n * </ore-chip>\n *\n * <!-- Icon-only chip -->\n * <ore-chip color=\"error\" mode=\"action\" label=\"Delete\">\n * <svg slot=\"icon\" ...></svg>\n * </ore-chip>\n * ```\n */\nexport const CHIP_TAG = 'ore-chip' as const;\ndefine<OreChipComponentProps>(CHIP_TAG, {\n props: {\n checked: {\n default: undefined as OreChipComponentProps['checked'],\n parse: (value: string | null) => (value == null ? undefined : value !== 'false'),\n reflect: false,\n },\n color: prop.string<ThemeColor>(),\n 'default-checked': prop.bool(false),\n disabled: prop.bool(false),\n label: prop.string(),\n mode: prop.oneOf(['static', 'removable', 'selectable', 'action'] as const, 'static'),\n rounded: prop.string<RoundedSize | ''>(),\n size: prop.string<ComponentSize>(),\n value: prop.string(),\n variant: prop.string<Exclude<VisualVariant, 'text' | 'frost'>>(),\n },\n\n setup(props) {\n const emit = useEmit<OreChipEvents>();\n\n // ============================================\n // State Management\n // ============================================\n // Once a checked prop is provided, treat the chip as controlled for the rest of its lifecycle.\n const isControlled = signal(props.checked.value !== undefined);\n // Internal tracking for uncontrolled selectable chips; seeded from default-checked.\n const checkedState = signal(!isControlled.value && props['default-checked'].value);\n\n watch(props.checked, (value) => {\n if (value !== undefined) {\n isControlled.value = true;\n }\n });\n\n // Effective checked value — reactive to checked prop changes in controlled mode.\n const isChecked = computed(() => {\n if (props.mode.value !== 'selectable') return false;\n\n if (isControlled.value) {\n return props.checked.value ?? false;\n }\n\n return checkedState.value;\n });\n\n bind({\n attr: {\n checked: () => (props.mode.value === 'selectable' && isChecked.value ? true : undefined),\n },\n });\n // ============================================\n // Event Handlers\n // ============================================\n function handleRemove(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('remove', { originalEvent: e, value: props.value.value });\n }\n\n function handleSelectableActivate(e: MouseEvent) {\n e.stopPropagation();\n\n if (props.disabled.value) return;\n\n const nextChecked = !isChecked.value;\n\n if (!isControlled.value) {\n checkedState.value = nextChecked;\n }\n\n emit('change', { checked: nextChecked, originalEvent: e, value: props.value.value });\n }\n\n function handleActionClick(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('click', { originalEvent: e, value: props.value.value });\n }\n\n // ============================================\n // Template Helpers\n // ============================================\n const renderChipContent = () => html`\n <slot name=\"icon\"></slot>\n <span class=\"label\"><slot></slot></span>\n `;\n\n const removeBtnLabel = () => {\n const label = props.label.value || props.value.value;\n\n return label ? `Remove ${label}` : 'Remove';\n };\n\n const renderRemoveButton = () => html`\n <button\n class=\"remove-btn\"\n part=\"remove-btn\"\n type=\"button\"\n :aria-label=\"${removeBtnLabel}\"\n ?hidden=\"${() => props.mode.value !== 'removable'}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleRemove}\">\n <ore-icon name=\"x\" size=\"12\" stroke-width=\"2.5\" aria-hidden=\"true\"></ore-icon>\n </button>\n `;\n\n const renderSelectableChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n role=\"checkbox\"\n :aria-checked=\"${() => String(isChecked.value)}\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleSelectableActivate}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderActionChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleActionClick}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderStaticChip = () => html` <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span> `;\n\n const renderRemovableChip = () => html`\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} ${renderRemoveButton()} </span>\n `;\n\n // ============================================\n // Render\n // ============================================\n return html`\n ${() => {\n const mode = props.mode.value;\n\n if (mode === 'selectable') return renderSelectableChip();\n\n if (mode === 'action') return renderActionChip();\n\n if (mode === 'removable') return renderRemovableChip();\n\n return renderStaticChip();\n }}\n `;\n },\n styles: [\n colorThemeMixin,\n disabledStateMixin,\n roundedVariantMixin,\n sizeVariantMixin({\n lg: {\n '--_font-size': 'var(--text-sm)',\n '--_gap': 'var(--size-1-5)',\n '--_padding-x': 'var(--size-3)',\n '--_padding-y': 'var(--size-1)',\n },\n sm: {\n '--_font-size': 'var(--text-xs)',\n '--_gap': 'var(--size-0-5)',\n '--_padding-x': 'var(--size-2-5)',\n '--_padding-y': 'var(--size-px)',\n },\n }),\n forcedColorsMixin,\n componentStyles,\n ],\n});\n"],"mappings":"kTA8JA,IAAa,EAAW,wBACM,EAAU,CACtC,MAAO,CACL,QAAS,CACP,QAAS,IAAA,GACT,MAAQ,GAA0B,GAAS,KAAO,IAAA,GAAY,IAAU,QACxE,QAAS,EACX,EACA,MAAO,EAAA,KAAK,OAAmB,EAC/B,kBAAmB,EAAA,KAAK,KAAK,EAAK,EAClC,SAAU,EAAA,KAAK,KAAK,EAAK,EACzB,MAAO,EAAA,KAAK,OAAO,EACnB,KAAM,EAAA,KAAK,MAAM,CAAC,SAAU,YAAa,aAAc,QAAQ,EAAY,QAAQ,EACnF,QAAS,EAAA,KAAK,OAAyB,EACvC,KAAM,EAAA,KAAK,OAAsB,EACjC,MAAO,EAAA,KAAK,OAAO,EACnB,QAAS,EAAA,KAAK,OAAiD,CACjE,EAEA,MAAM,EAAO,CACX,IAAM,GAAA,EAAA,EAAA,QAAA,CAA8B,EAM9B,GAAA,EAAA,EAAA,OAAA,CAAsB,EAAM,QAAQ,QAAU,IAAA,EAAS,EAEvD,GAAA,EAAA,EAAA,OAAA,CAAsB,CAAC,EAAa,OAAS,EAAM,kBAAkB,CAAC,KAAK,GAEjF,EAAA,EAAA,MAAA,CAAM,EAAM,QAAU,GAAU,CAC1B,IAAU,IAAA,KACZ,EAAa,MAAQ,GAEzB,CAAC,EAGD,IAAM,GAAA,EAAA,EAAA,SAAA,KACA,EAAM,KAAK,QAAU,aAErB,EAAa,MACR,EAAM,QAAQ,OAAS,GAGzB,EAAa,MAN0B,EAO/C,GAED,EAAA,EAAA,KAAA,CAAK,CACH,KAAM,CACJ,YAAgB,EAAM,KAAK,QAAU,cAAgB,EAAU,MAAQ,GAAO,IAAA,EAChF,CACF,CAAC,EAID,SAAS,EAAa,EAAe,CAC/B,EAAM,SAAS,OAEnB,EAAK,SAAU,CAAE,cAAe,EAAG,MAAO,EAAM,MAAM,KAAM,CAAC,CAC/D,CAEA,SAAS,EAAyB,EAAe,CAG/C,GAFA,EAAE,gBAAgB,EAEd,EAAM,SAAS,MAAO,OAE1B,IAAM,EAAc,CAAC,EAAU,MAE1B,EAAa,QAChB,EAAa,MAAQ,GAGvB,EAAK,SAAU,CAAE,QAAS,EAAa,cAAe,EAAG,MAAO,EAAM,MAAM,KAAM,CAAC,CACrF,CAEA,SAAS,EAAkB,EAAe,CACpC,EAAM,SAAS,OAEnB,EAAK,QAAS,CAAE,cAAe,EAAG,MAAO,EAAM,MAAM,KAAM,CAAC,CAC9D,CAKA,IAAM,MAA0B,EAAA,IAAI;;;MAK9B,MAAuB,CAC3B,IAAM,EAAQ,EAAM,MAAM,OAAS,EAAM,MAAM,MAE/C,OAAO,EAAQ,UAAU,IAAU,QACrC,EAEM,MAA2B,EAAA,IAAI;;;;;uBAKlB,EAAe;uBACb,EAAM,KAAK,QAAU,YAAY;qBACrC,EAAM,SAAS;kBAClB,EAAa;;;MAKrB,MAA6B,EAAA,IAAI;;;;;;6BAMZ,OAAO,EAAU,KAAK,EAAE;uBAChC,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAyB;0CACD,EAAkB,EAAE;;MAIpD,MAAyB,EAAA,IAAI;;;;;uBAKhB,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAkB;0CACM,EAAkB,EAAE;;MAIpD,MAAyB,EAAA,IAAI,oCAAoC,EAAkB,EAAE,WAErF,MAA4B,EAAA,IAAI;wCACF,EAAkB,EAAE,GAAG,EAAmB,EAAE;MAMhF,MAAO,GAAA,IAAI;YACD,CACN,IAAM,EAAO,EAAM,KAAK,MAQxB,OANI,IAAS,aAAqB,EAAqB,EAEnD,IAAS,SAAiB,EAAiB,EAE3C,IAAS,YAAoB,EAAoB,EAE9C,EAAiB,CAC1B,EAAE;KAEN,EACA,OAAQ,CACN,EAAA,gBACA,EAAA,mBACA,EAAA,oBACA,EAAA,iBAAiB,CACf,GAAI,CACF,eAAgB,iBAChB,SAAU,kBACV,eAAgB,gBAChB,eAAgB,eAClB,EACA,GAAI,CACF,eAAgB,iBAChB,SAAU,kBACV,eAAgB,kBAChB,eAAgB,gBAClB,CACF,CAAC,EACD,EAAA,kBACA,EAAA,OACF,CACF,CAAC"}
package/dist/chip.js CHANGED
@@ -1,68 +1,68 @@
1
1
  import { roundedVariantMixin as e, sizeVariantMixin as t } from "./styles/mixins/shape.css.js";
2
2
  import { disabledStateMixin as n } from "./styles/mixins/states.css.js";
3
3
  import { colorThemeMixin as r, forcedColorsMixin as i } from "./styles/mixins/theme.css.js";
4
- import a from "./feedback/chip/chip.css?inline.js";
5
- import { define as o, html as s, prop as c } from "@vielzeug/ore";
6
- import { computed as l, signal as u, watch as d } from "@vielzeug/ripple";
4
+ import a from "./feedback/chip/chip.css.js";
5
+ import { bind as o, define as s, html as c, prop as l, useEmit as u } from "@vielzeug/ore";
6
+ import { computed as d, signal as f, watch as p } from "@vielzeug/ripple";
7
7
  //#region src/feedback/chip/chip.ts
8
- var f = "ore-chip";
9
- o(f, {
8
+ var m = "ore-chip";
9
+ s(m, {
10
10
  props: {
11
11
  checked: {
12
12
  default: void 0,
13
13
  parse: (e) => e == null ? void 0 : e !== "false",
14
14
  reflect: !1
15
15
  },
16
- color: c.string(),
17
- "default-checked": c.bool(!1),
18
- disabled: c.bool(!1),
19
- label: c.string(),
20
- mode: c.oneOf([
16
+ color: l.string(),
17
+ "default-checked": l.bool(!1),
18
+ disabled: l.bool(!1),
19
+ label: l.string(),
20
+ mode: l.oneOf([
21
21
  "static",
22
22
  "removable",
23
23
  "selectable",
24
24
  "action"
25
25
  ], "static"),
26
- rounded: c.string(),
27
- size: c.string(),
28
- value: c.string(),
29
- variant: c.string()
26
+ rounded: l.string(),
27
+ size: l.string(),
28
+ value: l.string(),
29
+ variant: l.string()
30
30
  },
31
- setup(e, { bind: t, el: n, emit: r }) {
32
- let i = u(e.checked.value !== void 0), a = u(!i.value && e["default-checked"].value);
33
- d(e.checked, (e) => {
34
- e !== void 0 && (i.value = !0);
31
+ setup(e) {
32
+ let t = u(), n = f(e.checked.value !== void 0), r = f(!n.value && e["default-checked"].value);
33
+ p(e.checked, (e) => {
34
+ e !== void 0 && (n.value = !0);
35
35
  });
36
- let o = l(() => e.mode.value === "selectable" ? i.value ? e.checked.value ?? !1 : a.value : !1);
37
- t({ attr: { checked: () => e.mode.value === "selectable" && o.value ? !0 : void 0 } });
38
- function c(t) {
39
- e.disabled.value || r("remove", {
40
- originalEvent: t,
36
+ let i = d(() => e.mode.value === "selectable" ? n.value ? e.checked.value ?? !1 : r.value : !1);
37
+ o({ attr: { checked: () => e.mode.value === "selectable" && i.value ? !0 : void 0 } });
38
+ function a(n) {
39
+ e.disabled.value || t("remove", {
40
+ originalEvent: n,
41
41
  value: e.value.value
42
42
  });
43
43
  }
44
- function f(t) {
45
- if (t.stopPropagation(), e.disabled.value) return;
46
- let n = !o.value;
47
- i.value || (a.value = n), r("change", {
48
- checked: n,
49
- originalEvent: t,
44
+ function s(a) {
45
+ if (a.stopPropagation(), e.disabled.value) return;
46
+ let o = !i.value;
47
+ n.value || (r.value = o), t("change", {
48
+ checked: o,
49
+ originalEvent: a,
50
50
  value: e.value.value
51
51
  });
52
52
  }
53
- function p(t) {
54
- e.disabled.value || r("click", {
55
- originalEvent: t,
53
+ function l(n) {
54
+ e.disabled.value || t("click", {
55
+ originalEvent: n,
56
56
  value: e.value.value
57
57
  });
58
58
  }
59
- let m = () => s`
59
+ let m = () => c`
60
60
  <slot name="icon"></slot>
61
61
  <span class="label"><slot></slot></span>
62
62
  `, h = () => {
63
63
  let t = e.label.value || e.value.value;
64
64
  return t ? `Remove ${t}` : "Remove";
65
- }, g = () => s`
65
+ }, g = () => c`
66
66
  <button
67
67
  class="remove-btn"
68
68
  part="remove-btn"
@@ -70,35 +70,35 @@ o(f, {
70
70
  :aria-label="${h}"
71
71
  ?hidden="${() => e.mode.value !== "removable"}"
72
72
  :disabled="${e.disabled}"
73
- @click="${c}">
73
+ @click="${a}">
74
74
  <ore-icon name="x" size="12" stroke-width="2.5" aria-hidden="true"></ore-icon>
75
75
  </button>
76
- `, _ = () => s`
76
+ `, _ = () => c`
77
77
  <button
78
78
  class="chip-btn"
79
79
  part="chip-btn"
80
80
  type="button"
81
81
  role="checkbox"
82
- :aria-checked="${() => String(o.value)}"
82
+ :aria-checked="${() => String(i.value)}"
83
83
  :aria-label="${e.label}"
84
84
  :disabled="${e.disabled}"
85
- @click="${f}">
85
+ @click="${s}">
86
86
  <span class="chip" part="chip"> ${m()} </span>
87
87
  </button>
88
- `, v = () => s`
88
+ `, v = () => c`
89
89
  <button
90
90
  class="chip-btn"
91
91
  part="chip-btn"
92
92
  type="button"
93
93
  :aria-label="${e.label}"
94
94
  :disabled="${e.disabled}"
95
- @click="${p}">
95
+ @click="${l}">
96
96
  <span class="chip" part="chip"> ${m()} </span>
97
97
  </button>
98
- `, y = () => s` <span class="chip" part="chip"> ${m()} </span> `, b = () => s`
98
+ `, y = () => c` <span class="chip" part="chip"> ${m()} </span> `, b = () => c`
99
99
  <span class="chip" part="chip"> ${m()} ${g()} </span>
100
100
  `;
101
- return s`
101
+ return c`
102
102
  ${() => {
103
103
  let t = e.mode.value;
104
104
  return t === "selectable" ? _() : t === "action" ? v() : t === "removable" ? b() : y();
@@ -128,6 +128,6 @@ o(f, {
128
128
  ]
129
129
  });
130
130
  //#endregion
131
- export { f as CHIP_TAG };
131
+ export { m as CHIP_TAG };
132
132
 
133
133
  //# sourceMappingURL=chip.js.map
package/dist/chip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chip.js","names":[],"sources":["../src/feedback/chip/chip.ts"],"sourcesContent":["import { define, html, prop } from '@vielzeug/ore';\nimport { computed, signal, watch } from '@vielzeug/ripple';\n\nimport type { ComponentSize, RoundedSize, ThemeColor, VisualVariant } from '../../types';\n\nimport '../../content/icon/icon';\nimport {\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsMixin,\n roundedVariantMixin,\n sizeVariantMixin,\n} from '../../styles';\n// ============================================\n// Styles\n// ============================================\nimport componentStyles from './chip.css?inline';\n\n// ============================================\n// Types\n// ============================================\n\n/** Chip component properties */\ntype ChipBaseProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interactions */\n disabled?: boolean;\n /** Accessible label (required for icon-only chips) */\n label?: string;\n /** Border radius override */\n rounded?: RoundedSize | '';\n /** Component size */\n size?: ComponentSize;\n /** Value associated with this chip — included in emitted event detail */\n value?: string;\n /** Visual style variant */\n variant?: Exclude<VisualVariant, 'text' | 'frost'>;\n};\n\ntype OreChipMode = 'static' | 'removable' | 'selectable' | 'action';\n\n/** Read-only presentation chip */\ntype StaticChipProps = {\n mode?: Extract<OreChipMode, 'static'>;\n};\n\n/** Removable chip mode */\ntype RemovableChipProps = {\n mode: Extract<OreChipMode, 'removable'>;\n};\n\n/** Selectable chip mode */\ntype SelectableChipProps = {\n /** Controlled checked state for `mode=\"selectable\"` */\n checked?: boolean | undefined;\n /** Initial checked state for uncontrolled `mode=\"selectable\"` */\n 'default-checked'?: boolean;\n mode: Extract<OreChipMode, 'selectable'>;\n};\n\n/** Action chip mode — behaves like a button, fires a click event without maintaining state */\ntype ActionChipProps = {\n mode: Extract<OreChipMode, 'action'>;\n};\n\ntype OreChipComponentProps = ChipBaseProps & {\n checked?: boolean | undefined;\n 'default-checked'?: boolean;\n mode?: OreChipMode;\n};\n\nexport type OreChipEvents = {\n change: { checked: boolean; originalEvent: Event; value: string | undefined };\n click: { originalEvent: MouseEvent; value: string | undefined };\n remove: { originalEvent: MouseEvent; value: string | undefined };\n};\n\nexport type OreChipProps = ChipBaseProps &\n (StaticChipProps | RemovableChipProps | SelectableChipProps | ActionChipProps);\n\n/**\n * A compact, styled label element. Supports icons, a remove button, colors, sizes, and variants.\n * Commonly used to represent tags, filters, or selected options in a multiselect field.\n *\n * @element ore-chip\n *\n * @attr {string} label - Accessible label (required for icon-only chips)\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost'\n * @attr {string} size - Component size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} mode - Interaction mode: 'static' | 'removable' | 'selectable' | 'action'\n * @attr {boolean} disabled - Disable the chip\n * @attr {string} value - Value included in emitted event detail\n * @attr {boolean} checked - Controlled checked state for selectable chips\n * @attr {boolean} default-checked - Initial checked state for uncontrolled selectable chips\n *\n * @fires remove - Fired when the remove button is clicked. detail: { value: string, originalEvent: MouseEvent }\n * @fires change - Fired when a selectable chip toggles. detail: { checked: boolean, value: string, originalEvent: Event }\n * @fires click - Fired when an action chip is clicked. detail: { value: string, originalEvent: MouseEvent }\n *\n * @slot - Chip label text\n * @slot icon - Leading icon or decoration\n *\n * @cssprop --chip-bg - Background color\n * @cssprop --chip-color - Text color\n * @cssprop --chip-border-color - Border color\n * @cssprop --chip-radius - Border radius\n * @cssprop --chip-font-size - Font size\n * @cssprop --chip-font-weight - Font weight\n * @cssprop --chip-padding-x - Horizontal padding\n * @cssprop --chip-padding-y - Vertical padding\n * @cssprop --chip-gap - Gap between icon, label and remove button\n * @cssprop --chip-hover-bg - Background on hover (interactive modes)\n * @cssprop --chip-hover-color - Text color on hover (interactive modes)\n * @cssprop --chip-hover-border-color - Border color on hover (interactive modes)\n * @cssprop --chip-active-bg - Background when pressed (interactive modes)\n * @cssprop --chip-active-color - Text color when pressed (interactive modes)\n * @cssprop --chip-remove-bg - Remove button background (bordered/outline variants)\n * @cssprop --chip-remove-color - Remove button icon color (bordered/outline variants)\n * @cssprop --chip-remove-hover-bg - Remove button background on hover\n *\n * @part remove-btn - Remove action button.\n * @part chip-btn - Shadow part for the `chip-btn` element.\n * @part chip - Shadow part for the `chip` element.\n * @example\n * ```html\n * <!-- Static chip (read-only) -->\n * <ore-chip color=\"primary\">Design</ore-chip>\n *\n * <!-- Removable chip -->\n * <ore-chip color=\"success\" variant=\"flat\" mode=\"removable\" value=\"ts\">\n * TypeScript\n * </ore-chip>\n *\n * <!-- Selectable chip (controlled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Selectable chip (uncontrolled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" default-checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Action chip (acts like a button) -->\n * <ore-chip color=\"warning\" mode=\"action\" value=\"add\">\n * <svg slot=\"icon\" ...></svg>\n * Add Item\n * </ore-chip>\n *\n * <!-- Icon-only chip -->\n * <ore-chip color=\"error\" mode=\"action\" label=\"Delete\">\n * <svg slot=\"icon\" ...></svg>\n * </ore-chip>\n * ```\n */\nexport const CHIP_TAG = 'ore-chip' as const;\ndefine<OreChipComponentProps, OreChipEvents>(CHIP_TAG, {\n props: {\n checked: {\n default: undefined as OreChipComponentProps['checked'],\n parse: (value: string | null) => (value == null ? undefined : value !== 'false'),\n reflect: false,\n },\n color: prop.string<ThemeColor>(),\n 'default-checked': prop.bool(false),\n disabled: prop.bool(false),\n label: prop.string(),\n mode: prop.oneOf(['static', 'removable', 'selectable', 'action'] as const, 'static'),\n rounded: prop.string<RoundedSize | ''>(),\n size: prop.string<ComponentSize>(),\n value: prop.string(),\n variant: prop.string<Exclude<VisualVariant, 'text' | 'frost'>>(),\n },\n\n setup(props, { bind, el: _el, emit }) {\n // ============================================\n // State Management\n // ============================================\n // Once a checked prop is provided, treat the chip as controlled for the rest of its lifecycle.\n const isControlled = signal(props.checked.value !== undefined);\n // Internal tracking for uncontrolled selectable chips; seeded from default-checked.\n const checkedState = signal(!isControlled.value && props['default-checked'].value);\n\n watch(props.checked, (value) => {\n if (value !== undefined) {\n isControlled.value = true;\n }\n });\n\n // Effective checked value — reactive to checked prop changes in controlled mode.\n const isChecked = computed(() => {\n if (props.mode.value !== 'selectable') return false;\n\n if (isControlled.value) {\n return props.checked.value ?? false;\n }\n\n return checkedState.value;\n });\n\n bind({\n attr: {\n checked: () => (props.mode.value === 'selectable' && isChecked.value ? true : undefined),\n },\n });\n // ============================================\n // Event Handlers\n // ============================================\n function handleRemove(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('remove', { originalEvent: e, value: props.value.value });\n }\n\n function handleSelectableActivate(e: MouseEvent) {\n e.stopPropagation();\n\n if (props.disabled.value) return;\n\n const nextChecked = !isChecked.value;\n\n if (!isControlled.value) {\n checkedState.value = nextChecked;\n }\n\n emit('change', { checked: nextChecked, originalEvent: e, value: props.value.value });\n }\n\n function handleActionClick(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('click', { originalEvent: e, value: props.value.value });\n }\n\n // ============================================\n // Template Helpers\n // ============================================\n const renderChipContent = () => html`\n <slot name=\"icon\"></slot>\n <span class=\"label\"><slot></slot></span>\n `;\n\n const removeBtnLabel = () => {\n const label = props.label.value || props.value.value;\n\n return label ? `Remove ${label}` : 'Remove';\n };\n\n const renderRemoveButton = () => html`\n <button\n class=\"remove-btn\"\n part=\"remove-btn\"\n type=\"button\"\n :aria-label=\"${removeBtnLabel}\"\n ?hidden=\"${() => props.mode.value !== 'removable'}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleRemove}\">\n <ore-icon name=\"x\" size=\"12\" stroke-width=\"2.5\" aria-hidden=\"true\"></ore-icon>\n </button>\n `;\n\n const renderSelectableChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n role=\"checkbox\"\n :aria-checked=\"${() => String(isChecked.value)}\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleSelectableActivate}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderActionChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleActionClick}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderStaticChip = () => html` <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span> `;\n\n const renderRemovableChip = () => html`\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} ${renderRemoveButton()} </span>\n `;\n\n // ============================================\n // Render\n // ============================================\n return html`\n ${() => {\n const mode = props.mode.value;\n\n if (mode === 'selectable') return renderSelectableChip();\n\n if (mode === 'action') return renderActionChip();\n\n if (mode === 'removable') return renderRemovableChip();\n\n return renderStaticChip();\n }}\n `;\n },\n styles: [\n colorThemeMixin,\n disabledStateMixin,\n roundedVariantMixin,\n sizeVariantMixin({\n lg: {\n '--_font-size': 'var(--text-sm)',\n '--_gap': 'var(--size-1-5)',\n '--_padding-x': 'var(--size-3)',\n '--_padding-y': 'var(--size-1)',\n },\n sm: {\n '--_font-size': 'var(--text-xs)',\n '--_gap': 'var(--size-0-5)',\n '--_padding-x': 'var(--size-2-5)',\n '--_padding-y': 'var(--size-px)',\n },\n }),\n forcedColorsMixin,\n componentStyles,\n ],\n});\n"],"mappings":";;;;;;;AA8JA,IAAa,IAAW;AACxB,EAA6C,GAAU;CACrD,OAAO;EACL,SAAS;GACP,SAAS,KAAA;GACT,QAAQ,MAA0B,KAAS,OAAO,KAAA,IAAY,MAAU;GACxE,SAAS;EACX;EACA,OAAO,EAAK,OAAmB;EAC/B,mBAAmB,EAAK,KAAK,EAAK;EAClC,UAAU,EAAK,KAAK,EAAK;EACzB,OAAO,EAAK,OAAO;EACnB,MAAM,EAAK,MAAM;GAAC;GAAU;GAAa;GAAc;EAAQ,GAAY,QAAQ;EACnF,SAAS,EAAK,OAAyB;EACvC,MAAM,EAAK,OAAsB;EACjC,OAAO,EAAK,OAAO;EACnB,SAAS,EAAK,OAAiD;CACjE;CAEA,MAAM,GAAO,EAAE,SAAM,IAAI,GAAK,WAAQ;EAKpC,IAAM,IAAe,EAAO,EAAM,QAAQ,UAAU,KAAA,CAAS,GAEvD,IAAe,EAAO,CAAC,EAAa,SAAS,EAAM,kBAAkB,CAAC,KAAK;EAEjF,EAAM,EAAM,UAAU,MAAU;GAC9B,AAAI,MAAU,KAAA,MACZ,EAAa,QAAQ;EAEzB,CAAC;EAGD,IAAM,IAAY,QACZ,EAAM,KAAK,UAAU,eAErB,EAAa,QACR,EAAM,QAAQ,SAAS,KAGzB,EAAa,QAN0B,EAO/C;EAED,EAAK,EACH,MAAM,EACJ,eAAgB,EAAM,KAAK,UAAU,gBAAgB,EAAU,QAAQ,KAAO,KAAA,EAChF,EACF,CAAC;EAID,SAAS,EAAa,GAAe;GAC/B,EAAM,SAAS,SAEnB,EAAK,UAAU;IAAE,eAAe;IAAG,OAAO,EAAM,MAAM;GAAM,CAAC;EAC/D;EAEA,SAAS,EAAyB,GAAe;GAG/C,IAFA,EAAE,gBAAgB,GAEd,EAAM,SAAS,OAAO;GAE1B,IAAM,IAAc,CAAC,EAAU;GAM/B,AAJK,EAAa,UAChB,EAAa,QAAQ,IAGvB,EAAK,UAAU;IAAE,SAAS;IAAa,eAAe;IAAG,OAAO,EAAM,MAAM;GAAM,CAAC;EACrF;EAEA,SAAS,EAAkB,GAAe;GACpC,EAAM,SAAS,SAEnB,EAAK,SAAS;IAAE,eAAe;IAAG,OAAO,EAAM,MAAM;GAAM,CAAC;EAC9D;EAKA,IAAM,UAA0B,CAAI;;;OAK9B,UAAuB;GAC3B,IAAM,IAAQ,EAAM,MAAM,SAAS,EAAM,MAAM;GAE/C,OAAO,IAAQ,UAAU,MAAU;EACrC,GAEM,UAA2B,CAAI;;;;;uBAKlB,EAAe;yBACb,EAAM,KAAK,UAAU,YAAY;qBACrC,EAAM,SAAS;kBAClB,EAAa;;;OAKrB,UAA6B,CAAI;;;;;;+BAMZ,OAAO,EAAU,KAAK,EAAE;uBAChC,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAyB;0CACD,EAAkB,EAAE;;OAIpD,UAAyB,CAAI;;;;;uBAKhB,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAkB;0CACM,EAAkB,EAAE;;OAIpD,UAAyB,CAAI,oCAAoC,EAAkB,EAAE,YAErF,UAA4B,CAAI;wCACF,EAAkB,EAAE,GAAG,EAAmB,EAAE;;EAMhF,OAAO,CAAI;cACD;GACN,IAAM,IAAO,EAAM,KAAK;GAQxB,OANI,MAAS,eAAqB,EAAqB,IAEnD,MAAS,WAAiB,EAAiB,IAE3C,MAAS,cAAoB,EAAoB,IAE9C,EAAiB;EAC1B,EAAE;;CAEN;CACA,QAAQ;EACN;EACA;EACA;EACA,EAAiB;GACf,IAAI;IACF,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,gBAAgB;GAClB;GACA,IAAI;IACF,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,gBAAgB;GAClB;EACF,CAAC;EACD;EACA;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"chip.js","names":[],"sources":["../src/feedback/chip/chip.ts"],"sourcesContent":["import { define, html, prop, bind, useEmit } from '@vielzeug/ore';\nimport { computed, signal, watch } from '@vielzeug/ripple';\n\nimport type { ComponentSize, RoundedSize, ThemeColor, VisualVariant } from '../../types';\n\nimport '../../content/icon/icon';\nimport {\n colorThemeMixin,\n disabledStateMixin,\n forcedColorsMixin,\n roundedVariantMixin,\n sizeVariantMixin,\n} from '../../styles';\n// ============================================\n// Styles\n// ============================================\nimport componentStyles from './chip.css?inline';\n\n// ============================================\n// Types\n// ============================================\n\n/** Chip component properties */\ntype ChipBaseProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interactions */\n disabled?: boolean;\n /** Accessible label (required for icon-only chips) */\n label?: string;\n /** Border radius override */\n rounded?: RoundedSize | '';\n /** Component size */\n size?: ComponentSize;\n /** Value associated with this chip — included in emitted event detail */\n value?: string;\n /** Visual style variant */\n variant?: Exclude<VisualVariant, 'text' | 'frost'>;\n};\n\ntype OreChipMode = 'static' | 'removable' | 'selectable' | 'action';\n\n/** Read-only presentation chip */\ntype StaticChipProps = {\n mode?: Extract<OreChipMode, 'static'>;\n};\n\n/** Removable chip mode */\ntype RemovableChipProps = {\n mode: Extract<OreChipMode, 'removable'>;\n};\n\n/** Selectable chip mode */\ntype SelectableChipProps = {\n /** Controlled checked state for `mode=\"selectable\"` */\n checked?: boolean | undefined;\n /** Initial checked state for uncontrolled `mode=\"selectable\"` */\n 'default-checked'?: boolean;\n mode: Extract<OreChipMode, 'selectable'>;\n};\n\n/** Action chip mode — behaves like a button, fires a click event without maintaining state */\ntype ActionChipProps = {\n mode: Extract<OreChipMode, 'action'>;\n};\n\ntype OreChipComponentProps = ChipBaseProps & {\n checked?: boolean | undefined;\n 'default-checked'?: boolean;\n mode?: OreChipMode;\n};\n\nexport type OreChipEvents = {\n change: { checked: boolean; originalEvent: Event; value: string | undefined };\n click: { originalEvent: MouseEvent; value: string | undefined };\n remove: { originalEvent: MouseEvent; value: string | undefined };\n};\n\nexport type OreChipProps = ChipBaseProps &\n (StaticChipProps | RemovableChipProps | SelectableChipProps | ActionChipProps);\n\n/**\n * A compact, styled label element. Supports icons, a remove button, colors, sizes, and variants.\n * Commonly used to represent tags, filters, or selected options in a multiselect field.\n *\n * @element ore-chip\n *\n * @attr {string} label - Accessible label (required for icon-only chips)\n * @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost'\n * @attr {string} size - Component size: 'sm' | 'md' | 'lg'\n * @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'\n * @attr {string} mode - Interaction mode: 'static' | 'removable' | 'selectable' | 'action'\n * @attr {boolean} disabled - Disable the chip\n * @attr {string} value - Value included in emitted event detail\n * @attr {boolean} checked - Controlled checked state for selectable chips\n * @attr {boolean} default-checked - Initial checked state for uncontrolled selectable chips\n *\n * @fires remove - Fired when the remove button is clicked. detail: { value: string, originalEvent: MouseEvent }\n * @fires change - Fired when a selectable chip toggles. detail: { checked: boolean, value: string, originalEvent: Event }\n * @fires click - Fired when an action chip is clicked. detail: { value: string, originalEvent: MouseEvent }\n *\n * @slot - Chip label text\n * @slot icon - Leading icon or decoration\n *\n * @cssprop --chip-bg - Background color\n * @cssprop --chip-color - Text color\n * @cssprop --chip-border-color - Border color\n * @cssprop --chip-radius - Border radius\n * @cssprop --chip-font-size - Font size\n * @cssprop --chip-font-weight - Font weight\n * @cssprop --chip-padding-x - Horizontal padding\n * @cssprop --chip-padding-y - Vertical padding\n * @cssprop --chip-gap - Gap between icon, label and remove button\n * @cssprop --chip-hover-bg - Background on hover (interactive modes)\n * @cssprop --chip-hover-color - Text color on hover (interactive modes)\n * @cssprop --chip-hover-border-color - Border color on hover (interactive modes)\n * @cssprop --chip-active-bg - Background when pressed (interactive modes)\n * @cssprop --chip-active-color - Text color when pressed (interactive modes)\n * @cssprop --chip-remove-bg - Remove button background (bordered/outline variants)\n * @cssprop --chip-remove-color - Remove button icon color (bordered/outline variants)\n * @cssprop --chip-remove-hover-bg - Remove button background on hover\n *\n * @part remove-btn - Remove action button.\n * @part chip-btn - Shadow part for the `chip-btn` element.\n * @part chip - Shadow part for the `chip` element.\n * @example\n * ```html\n * <!-- Static chip (read-only) -->\n * <ore-chip color=\"primary\">Design</ore-chip>\n *\n * <!-- Removable chip -->\n * <ore-chip color=\"success\" variant=\"flat\" mode=\"removable\" value=\"ts\">\n * TypeScript\n * </ore-chip>\n *\n * <!-- Selectable chip (controlled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Selectable chip (uncontrolled) -->\n * <ore-chip color=\"info\" variant=\"flat\" mode=\"selectable\" default-checked value=\"ui\">\n * UI\n * </ore-chip>\n *\n * <!-- Action chip (acts like a button) -->\n * <ore-chip color=\"warning\" mode=\"action\" value=\"add\">\n * <svg slot=\"icon\" ...></svg>\n * Add Item\n * </ore-chip>\n *\n * <!-- Icon-only chip -->\n * <ore-chip color=\"error\" mode=\"action\" label=\"Delete\">\n * <svg slot=\"icon\" ...></svg>\n * </ore-chip>\n * ```\n */\nexport const CHIP_TAG = 'ore-chip' as const;\ndefine<OreChipComponentProps>(CHIP_TAG, {\n props: {\n checked: {\n default: undefined as OreChipComponentProps['checked'],\n parse: (value: string | null) => (value == null ? undefined : value !== 'false'),\n reflect: false,\n },\n color: prop.string<ThemeColor>(),\n 'default-checked': prop.bool(false),\n disabled: prop.bool(false),\n label: prop.string(),\n mode: prop.oneOf(['static', 'removable', 'selectable', 'action'] as const, 'static'),\n rounded: prop.string<RoundedSize | ''>(),\n size: prop.string<ComponentSize>(),\n value: prop.string(),\n variant: prop.string<Exclude<VisualVariant, 'text' | 'frost'>>(),\n },\n\n setup(props) {\n const emit = useEmit<OreChipEvents>();\n\n // ============================================\n // State Management\n // ============================================\n // Once a checked prop is provided, treat the chip as controlled for the rest of its lifecycle.\n const isControlled = signal(props.checked.value !== undefined);\n // Internal tracking for uncontrolled selectable chips; seeded from default-checked.\n const checkedState = signal(!isControlled.value && props['default-checked'].value);\n\n watch(props.checked, (value) => {\n if (value !== undefined) {\n isControlled.value = true;\n }\n });\n\n // Effective checked value — reactive to checked prop changes in controlled mode.\n const isChecked = computed(() => {\n if (props.mode.value !== 'selectable') return false;\n\n if (isControlled.value) {\n return props.checked.value ?? false;\n }\n\n return checkedState.value;\n });\n\n bind({\n attr: {\n checked: () => (props.mode.value === 'selectable' && isChecked.value ? true : undefined),\n },\n });\n // ============================================\n // Event Handlers\n // ============================================\n function handleRemove(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('remove', { originalEvent: e, value: props.value.value });\n }\n\n function handleSelectableActivate(e: MouseEvent) {\n e.stopPropagation();\n\n if (props.disabled.value) return;\n\n const nextChecked = !isChecked.value;\n\n if (!isControlled.value) {\n checkedState.value = nextChecked;\n }\n\n emit('change', { checked: nextChecked, originalEvent: e, value: props.value.value });\n }\n\n function handleActionClick(e: MouseEvent) {\n if (props.disabled.value) return;\n\n emit('click', { originalEvent: e, value: props.value.value });\n }\n\n // ============================================\n // Template Helpers\n // ============================================\n const renderChipContent = () => html`\n <slot name=\"icon\"></slot>\n <span class=\"label\"><slot></slot></span>\n `;\n\n const removeBtnLabel = () => {\n const label = props.label.value || props.value.value;\n\n return label ? `Remove ${label}` : 'Remove';\n };\n\n const renderRemoveButton = () => html`\n <button\n class=\"remove-btn\"\n part=\"remove-btn\"\n type=\"button\"\n :aria-label=\"${removeBtnLabel}\"\n ?hidden=\"${() => props.mode.value !== 'removable'}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleRemove}\">\n <ore-icon name=\"x\" size=\"12\" stroke-width=\"2.5\" aria-hidden=\"true\"></ore-icon>\n </button>\n `;\n\n const renderSelectableChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n role=\"checkbox\"\n :aria-checked=\"${() => String(isChecked.value)}\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleSelectableActivate}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderActionChip = () => html`\n <button\n class=\"chip-btn\"\n part=\"chip-btn\"\n type=\"button\"\n :aria-label=\"${props.label}\"\n :disabled=\"${props.disabled}\"\n @click=\"${handleActionClick}\">\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span>\n </button>\n `;\n\n const renderStaticChip = () => html` <span class=\"chip\" part=\"chip\"> ${renderChipContent()} </span> `;\n\n const renderRemovableChip = () => html`\n <span class=\"chip\" part=\"chip\"> ${renderChipContent()} ${renderRemoveButton()} </span>\n `;\n\n // ============================================\n // Render\n // ============================================\n return html`\n ${() => {\n const mode = props.mode.value;\n\n if (mode === 'selectable') return renderSelectableChip();\n\n if (mode === 'action') return renderActionChip();\n\n if (mode === 'removable') return renderRemovableChip();\n\n return renderStaticChip();\n }}\n `;\n },\n styles: [\n colorThemeMixin,\n disabledStateMixin,\n roundedVariantMixin,\n sizeVariantMixin({\n lg: {\n '--_font-size': 'var(--text-sm)',\n '--_gap': 'var(--size-1-5)',\n '--_padding-x': 'var(--size-3)',\n '--_padding-y': 'var(--size-1)',\n },\n sm: {\n '--_font-size': 'var(--text-xs)',\n '--_gap': 'var(--size-0-5)',\n '--_padding-x': 'var(--size-2-5)',\n '--_padding-y': 'var(--size-px)',\n },\n }),\n forcedColorsMixin,\n componentStyles,\n ],\n});\n"],"mappings":";;;;;;;AA8JA,IAAa,IAAW;AACxB,EAA8B,GAAU;CACtC,OAAO;EACL,SAAS;GACP,SAAS,KAAA;GACT,QAAQ,MAA0B,KAAS,OAAO,KAAA,IAAY,MAAU;GACxE,SAAS;EACX;EACA,OAAO,EAAK,OAAmB;EAC/B,mBAAmB,EAAK,KAAK,EAAK;EAClC,UAAU,EAAK,KAAK,EAAK;EACzB,OAAO,EAAK,OAAO;EACnB,MAAM,EAAK,MAAM;GAAC;GAAU;GAAa;GAAc;EAAQ,GAAY,QAAQ;EACnF,SAAS,EAAK,OAAyB;EACvC,MAAM,EAAK,OAAsB;EACjC,OAAO,EAAK,OAAO;EACnB,SAAS,EAAK,OAAiD;CACjE;CAEA,MAAM,GAAO;EACX,IAAM,IAAO,EAAuB,GAM9B,IAAe,EAAO,EAAM,QAAQ,UAAU,KAAA,CAAS,GAEvD,IAAe,EAAO,CAAC,EAAa,SAAS,EAAM,kBAAkB,CAAC,KAAK;EAEjF,EAAM,EAAM,UAAU,MAAU;GAC9B,AAAI,MAAU,KAAA,MACZ,EAAa,QAAQ;EAEzB,CAAC;EAGD,IAAM,IAAY,QACZ,EAAM,KAAK,UAAU,eAErB,EAAa,QACR,EAAM,QAAQ,SAAS,KAGzB,EAAa,QAN0B,EAO/C;EAED,EAAK,EACH,MAAM,EACJ,eAAgB,EAAM,KAAK,UAAU,gBAAgB,EAAU,QAAQ,KAAO,KAAA,EAChF,EACF,CAAC;EAID,SAAS,EAAa,GAAe;GAC/B,EAAM,SAAS,SAEnB,EAAK,UAAU;IAAE,eAAe;IAAG,OAAO,EAAM,MAAM;GAAM,CAAC;EAC/D;EAEA,SAAS,EAAyB,GAAe;GAG/C,IAFA,EAAE,gBAAgB,GAEd,EAAM,SAAS,OAAO;GAE1B,IAAM,IAAc,CAAC,EAAU;GAM/B,AAJK,EAAa,UAChB,EAAa,QAAQ,IAGvB,EAAK,UAAU;IAAE,SAAS;IAAa,eAAe;IAAG,OAAO,EAAM,MAAM;GAAM,CAAC;EACrF;EAEA,SAAS,EAAkB,GAAe;GACpC,EAAM,SAAS,SAEnB,EAAK,SAAS;IAAE,eAAe;IAAG,OAAO,EAAM,MAAM;GAAM,CAAC;EAC9D;EAKA,IAAM,UAA0B,CAAI;;;OAK9B,UAAuB;GAC3B,IAAM,IAAQ,EAAM,MAAM,SAAS,EAAM,MAAM;GAE/C,OAAO,IAAQ,UAAU,MAAU;EACrC,GAEM,UAA2B,CAAI;;;;;uBAKlB,EAAe;yBACb,EAAM,KAAK,UAAU,YAAY;qBACrC,EAAM,SAAS;kBAClB,EAAa;;;OAKrB,UAA6B,CAAI;;;;;;+BAMZ,OAAO,EAAU,KAAK,EAAE;uBAChC,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAyB;0CACD,EAAkB,EAAE;;OAIpD,UAAyB,CAAI;;;;;uBAKhB,EAAM,MAAM;qBACd,EAAM,SAAS;kBAClB,EAAkB;0CACM,EAAkB,EAAE;;OAIpD,UAAyB,CAAI,oCAAoC,EAAkB,EAAE,YAErF,UAA4B,CAAI;wCACF,EAAkB,EAAE,GAAG,EAAmB,EAAE;;EAMhF,OAAO,CAAI;cACD;GACN,IAAM,IAAO,EAAM,KAAK;GAQxB,OANI,MAAS,eAAqB,EAAqB,IAEnD,MAAS,WAAiB,EAAiB,IAE3C,MAAS,cAAoB,EAAoB,IAE9C,EAAiB;EAC1B,EAAE;;CAEN;CACA,QAAQ;EACN;EACA;EACA;EACA,EAAiB;GACf,IAAI;IACF,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,gBAAgB;GAClB;GACA,IAAI;IACF,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,gBAAgB;GAClB;EACF,CAAC;EACD;EACA;CACF;AACF,CAAC"}
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/directives/when.cjs");require("./ore/dist/directives.cjs");const t=require("./content/code-window/code-window.css?inline.cjs");let n=require("@vielzeug/ore"),r=require("@vielzeug/ripple");var i=`ore-code-window`;(0,n.define)(i,{props:{filename:n.prop.string(),lang:n.prop.string(`ts`),title:n.prop.string(`MCP tool call`),variant:n.prop.oneOf([`code`,`chat`],`code`)},setup(t){let i=(0,r.computed)(()=>t.variant.value===`code`),a=(0,r.computed)(()=>!!t.filename.value);return n.html`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ore/dist/directives/when.cjs");require("./ore/dist/directives.cjs");const t=require("./content/code-window/code-window.css.cjs");let n=require("@vielzeug/ore"),r=require("@vielzeug/ripple");var i=`ore-code-window`;(0,n.define)(i,{props:{filename:n.prop.string(),lang:n.prop.string(`ts`),title:n.prop.string(`MCP tool call`),variant:n.prop.oneOf([`code`,`chat`],`code`)},setup(t){let i=(0,r.computed)(()=>t.variant.value===`code`),a=(0,r.computed)(()=>!!t.filename.value);return n.html`
2
2
  <div class="window" part="window">
3
3
  <div class="header" part="header">
4
4
  ${e.when(i,()=>n.html`