@cascivo/react 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. package/README.md +5 -4
  2. package/dist/accordion/accordion.js +1 -114
  3. package/dist/accordion/accordion.module.js +1 -10
  4. package/dist/action-sheet/action-sheet.css +1 -1
  5. package/dist/action-sheet/action-sheet.js +1 -91
  6. package/dist/action-sheet/action-sheet.module.js +1 -12
  7. package/dist/alert/alert.js +1 -55
  8. package/dist/alert/alert.module.js +1 -11
  9. package/dist/alert-dialog/alert-dialog.css +1 -1
  10. package/dist/alert-dialog/alert-dialog.js +1 -66
  11. package/dist/alert-dialog/alert-dialog.module.js +1 -11
  12. package/dist/app-shell/app-shell.css +1 -1
  13. package/dist/app-shell/app-shell.js +1 -85
  14. package/dist/app-shell/app-shell.module.js +1 -12
  15. package/dist/aspect-ratio/aspect-ratio.js +1 -20
  16. package/dist/aspect-ratio/aspect-ratio.module.js +1 -6
  17. package/dist/avatar/avatar.js +1 -57
  18. package/dist/avatar/avatar.module.js +1 -8
  19. package/dist/avatar-group/avatar-group.js +1 -24
  20. package/dist/avatar-group/avatar-group.module.js +1 -6
  21. package/dist/badge/badge.js +1 -22
  22. package/dist/badge/badge.module.js +1 -3
  23. package/dist/blockquote/blockquote.js +1 -16
  24. package/dist/blockquote/blockquote.module.js +1 -6
  25. package/dist/bottom-sheet/bottom-sheet.js +1 -111
  26. package/dist/bottom-sheet/bottom-sheet.module.js +1 -14
  27. package/dist/brand/logo/logo.css +1 -0
  28. package/dist/brand/logo/logo.js +1 -0
  29. package/dist/brand/logo/logo.module.js +2 -0
  30. package/dist/breadcrumb/breadcrumb.js +1 -28
  31. package/dist/breadcrumb/breadcrumb.module.js +1 -3
  32. package/dist/button/button.css +1 -1
  33. package/dist/button/button.js +1 -35
  34. package/dist/button/button.module.js +1 -6
  35. package/dist/button-group/button-group.js +1 -39
  36. package/dist/button-group/button-group.module.js +1 -3
  37. package/dist/calendar/calendar-date.js +1 -0
  38. package/dist/calendar/calendar.css +1 -1
  39. package/dist/calendar/calendar.js +1 -199
  40. package/dist/calendar/calendar.module.js +1 -14
  41. package/dist/card/card.js +1 -53
  42. package/dist/card/card.module.js +1 -12
  43. package/dist/carousel/carousel.css +1 -1
  44. package/dist/carousel/carousel.js +1 -138
  45. package/dist/carousel/carousel.module.js +1 -13
  46. package/dist/chat-bubble/chat-bubble.js +1 -31
  47. package/dist/chat-bubble/chat-bubble.module.js +1 -11
  48. package/dist/checkbox/checkbox.js +1 -39
  49. package/dist/checkbox/checkbox.module.js +1 -8
  50. package/dist/checkbox-card/checkbox-card.css +1 -1
  51. package/dist/checkbox-card/checkbox-card.js +1 -50
  52. package/dist/checkbox-card/checkbox-card.module.js +1 -11
  53. package/dist/code/code.js +1 -14
  54. package/dist/code/code.module.js +1 -3
  55. package/dist/code-snippet/code-snippet.js +2 -121
  56. package/dist/code-snippet/code-snippet.module.js +1 -17
  57. package/dist/code-snippet/highlight.js +1 -67
  58. package/dist/collapsible/collapsible.js +1 -47
  59. package/dist/collapsible/collapsible.module.js +1 -7
  60. package/dist/color-picker/color-picker.css +1 -1
  61. package/dist/color-picker/color-picker.js +1 -272
  62. package/dist/color-picker/color-picker.module.js +1 -18
  63. package/dist/color-picker/color.js +1 -0
  64. package/dist/combobox/combobox.css +1 -1
  65. package/dist/combobox/combobox.js +1 -170
  66. package/dist/combobox/combobox.module.js +1 -19
  67. package/dist/combobox/list-nav.js +1 -0
  68. package/dist/combobox/option-list.js +1 -0
  69. package/dist/command-menu/command-menu.js +1 -421
  70. package/dist/command-menu/command-menu.module.js +1 -34
  71. package/dist/comparison/comparison.js +1 -69
  72. package/dist/comparison/comparison.module.js +1 -9
  73. package/dist/contained-list/contained-list.js +1 -41
  74. package/dist/contained-list/contained-list.module.js +1 -11
  75. package/dist/context-menu/context-menu.js +1 -93
  76. package/dist/context-menu/context-menu.module.js +1 -7
  77. package/dist/copy-button/copy-button.js +1 -60
  78. package/dist/copy-button/copy-button.module.js +1 -6
  79. package/dist/data-list/data-list.js +1 -25
  80. package/dist/data-list/data-list.module.js +1 -8
  81. package/dist/data-table/column-filter.js +1 -0
  82. package/dist/data-table/column-layout.js +1 -0
  83. package/dist/data-table/data-table.css +1 -1
  84. package/dist/data-table/data-table.js +1 -398
  85. package/dist/data-table/data-table.module.js +1 -33
  86. package/dist/data-table/grid-keys.js +1 -0
  87. package/dist/data-table/row-group.js +1 -0
  88. package/dist/data-table/row-search.js +1 -0
  89. package/dist/data-table/row-sort.js +1 -0
  90. package/dist/data-table/to-csv.js +3 -0
  91. package/dist/data-table/virtual-window.js +1 -0
  92. package/dist/date-picker/date-picker.css +1 -1
  93. package/dist/date-picker/date-picker.js +1 -224
  94. package/dist/date-picker/date-picker.module.js +1 -23
  95. package/dist/date-picker/parse-date.js +1 -0
  96. package/dist/date-range-picker/date-range-picker.js +1 -196
  97. package/dist/date-range-picker/date-range-picker.module.js +1 -18
  98. package/dist/dock/dock.css +1 -1
  99. package/dist/dock/dock.js +1 -34
  100. package/dist/dock/dock.module.js +1 -8
  101. package/dist/drawer/drawer.js +1 -96
  102. package/dist/drawer/drawer.module.js +1 -13
  103. package/dist/dropdown/dropdown.css +1 -1
  104. package/dist/dropdown/dropdown.js +1 -110
  105. package/dist/dropdown/dropdown.module.js +1 -9
  106. package/dist/editable/editable.js +1 -76
  107. package/dist/editable/editable.module.js +1 -11
  108. package/dist/empty-state/empty-state.js +1 -32
  109. package/dist/empty-state/empty-state.module.js +1 -9
  110. package/dist/fab/fab.css +1 -1
  111. package/dist/fab/fab.js +1 -93
  112. package/dist/fab/fab.module.js +1 -12
  113. package/dist/field/field.css +1 -1
  114. package/dist/field/field.js +1 -53
  115. package/dist/field/field.module.js +1 -7
  116. package/dist/file-uploader/file-uploader.css +1 -1
  117. package/dist/file-uploader/file-uploader.js +1 -123
  118. package/dist/file-uploader/file-uploader.module.js +1 -18
  119. package/dist/filter/filter.css +1 -1
  120. package/dist/filter/filter.js +1 -35
  121. package/dist/filter/filter.module.js +1 -6
  122. package/dist/form/form.js +1 -95
  123. package/dist/form/form.module.js +1 -3
  124. package/dist/header/header.js +1 -44
  125. package/dist/header/header.module.js +1 -11
  126. package/dist/header-panel/header-panel.js +1 -72
  127. package/dist/header-panel/header-panel.module.js +1 -9
  128. package/dist/heading/heading.css +1 -1
  129. package/dist/heading/heading.js +1 -22
  130. package/dist/heading/heading.module.js +1 -3
  131. package/dist/hover-card/hover-card.css +1 -1
  132. package/dist/hover-card/hover-card.js +1 -84
  133. package/dist/hover-card/hover-card.module.js +1 -6
  134. package/dist/icon-button/icon-button.js +1 -19
  135. package/dist/icon-button/icon-button.module.js +1 -3
  136. package/dist/image/image.css +1 -1
  137. package/dist/image/image.js +1 -64
  138. package/dist/image/image.module.js +1 -9
  139. package/dist/index.d.ts +1521 -38
  140. package/dist/indicator/indicator.js +1 -16
  141. package/dist/indicator/indicator.module.js +1 -6
  142. package/dist/infinite-scroll/infinite-scroll.js +1 -49
  143. package/dist/infinite-scroll/infinite-scroll.module.js +1 -7
  144. package/dist/inline-loading/inline-loading.js +1 -74
  145. package/dist/inline-loading/inline-loading.module.js +1 -9
  146. package/dist/input/input.css +1 -1
  147. package/dist/input/input.js +1 -56
  148. package/dist/input/input.module.js +1 -9
  149. package/dist/input-group/input-group.css +1 -1
  150. package/dist/input-group/input-group.js +1 -39
  151. package/dist/input-group/input-group.module.js +1 -9
  152. package/dist/item/item.js +1 -50
  153. package/dist/item/item.module.js +1 -10
  154. package/dist/join/join.js +1 -12
  155. package/dist/join/join.module.js +1 -3
  156. package/dist/kbd/kbd.js +1 -14
  157. package/dist/kbd/kbd.module.js +1 -3
  158. package/dist/label/label.js +1 -23
  159. package/dist/label/label.module.js +1 -7
  160. package/dist/large-title-header/large-title-header.js +1 -38
  161. package/dist/large-title-header/large-title-header.module.js +1 -12
  162. package/dist/layouts/src/auto-grid/auto-grid.js +1 -17
  163. package/dist/layouts/src/auto-grid/auto-grid.module.js +1 -4
  164. package/dist/layouts/src/center/center.js +1 -16
  165. package/dist/layouts/src/center/center.module.js +1 -3
  166. package/dist/layouts/src/columns/columns.js +1 -21
  167. package/dist/layouts/src/columns/columns.module.js +1 -6
  168. package/dist/layouts/src/flex/flex.css +1 -1
  169. package/dist/layouts/src/flex/flex.js +1 -20
  170. package/dist/layouts/src/flex/flex.module.js +1 -3
  171. package/dist/layouts/src/grid/grid.css +1 -1
  172. package/dist/layouts/src/grid/grid.js +1 -55
  173. package/dist/layouts/src/grid/grid.module.js +1 -7
  174. package/dist/layouts/src/page-header/page-header.js +1 -31
  175. package/dist/layouts/src/page-header/page-header.module.js +1 -10
  176. package/dist/layouts/src/spacer/spacer.js +1 -17
  177. package/dist/layouts/src/spacer/spacer.module.js +1 -3
  178. package/dist/link/link.css +1 -1
  179. package/dist/link/link.js +1 -22
  180. package/dist/link/link.module.js +1 -3
  181. package/dist/list/list.js +1 -21
  182. package/dist/list/list.module.js +1 -6
  183. package/dist/log-viewer/log-viewer.css +1 -1
  184. package/dist/log-viewer/log-viewer.js +2 -184
  185. package/dist/log-viewer/log-viewer.module.js +1 -16
  186. package/dist/menu/menu.js +1 -126
  187. package/dist/menu/menu.module.js +1 -8
  188. package/dist/menu-button/menu-button.js +1 -92
  189. package/dist/menu-button/menu-button.module.js +1 -8
  190. package/dist/menubar/menubar.js +1 -103
  191. package/dist/menubar/menubar.module.js +1 -8
  192. package/dist/modal/modal.css +1 -1
  193. package/dist/modal/modal.js +1 -76
  194. package/dist/modal/modal.module.js +1 -12
  195. package/dist/multi-select/list-nav.js +1 -0
  196. package/dist/multi-select/multi-select.css +1 -1
  197. package/dist/multi-select/multi-select.js +1 -106
  198. package/dist/multi-select/multi-select.module.js +1 -15
  199. package/dist/multi-select/option-list.js +1 -0
  200. package/dist/native-select/native-select.css +1 -1
  201. package/dist/native-select/native-select.js +1 -37
  202. package/dist/native-select/native-select.module.js +1 -7
  203. package/dist/navigation-menu/navigation-menu.js +1 -99
  204. package/dist/navigation-menu/navigation-menu.module.js +1 -10
  205. package/dist/node/accordion/accordion.js +1 -114
  206. package/dist/node/accordion/accordion.module.js +1 -10
  207. package/dist/node/action-sheet/action-sheet.js +1 -91
  208. package/dist/node/action-sheet/action-sheet.module.js +1 -12
  209. package/dist/node/alert/alert.js +1 -55
  210. package/dist/node/alert/alert.module.js +1 -11
  211. package/dist/node/alert-dialog/alert-dialog.js +1 -66
  212. package/dist/node/alert-dialog/alert-dialog.module.js +1 -11
  213. package/dist/node/app-shell/app-shell.js +1 -85
  214. package/dist/node/app-shell/app-shell.module.js +1 -12
  215. package/dist/node/aspect-ratio/aspect-ratio.js +1 -20
  216. package/dist/node/aspect-ratio/aspect-ratio.module.js +1 -6
  217. package/dist/node/avatar/avatar.js +1 -57
  218. package/dist/node/avatar/avatar.module.js +1 -8
  219. package/dist/node/avatar-group/avatar-group.js +1 -24
  220. package/dist/node/avatar-group/avatar-group.module.js +1 -6
  221. package/dist/node/badge/badge.js +1 -22
  222. package/dist/node/badge/badge.module.js +1 -3
  223. package/dist/node/blockquote/blockquote.js +1 -16
  224. package/dist/node/blockquote/blockquote.module.js +1 -6
  225. package/dist/node/bottom-sheet/bottom-sheet.js +1 -111
  226. package/dist/node/bottom-sheet/bottom-sheet.module.js +1 -14
  227. package/dist/node/brand/logo/logo.js +1 -0
  228. package/dist/node/brand/logo/logo.module.js +1 -0
  229. package/dist/node/breadcrumb/breadcrumb.js +1 -28
  230. package/dist/node/breadcrumb/breadcrumb.module.js +1 -3
  231. package/dist/node/button/button.js +1 -35
  232. package/dist/node/button/button.module.js +1 -6
  233. package/dist/node/button-group/button-group.js +1 -39
  234. package/dist/node/button-group/button-group.module.js +1 -3
  235. package/dist/node/calendar/calendar-date.js +1 -0
  236. package/dist/node/calendar/calendar.js +1 -199
  237. package/dist/node/calendar/calendar.module.js +1 -14
  238. package/dist/node/card/card.js +1 -53
  239. package/dist/node/card/card.module.js +1 -12
  240. package/dist/node/carousel/carousel.js +1 -138
  241. package/dist/node/carousel/carousel.module.js +1 -13
  242. package/dist/node/chat-bubble/chat-bubble.js +1 -31
  243. package/dist/node/chat-bubble/chat-bubble.module.js +1 -11
  244. package/dist/node/checkbox/checkbox.js +1 -39
  245. package/dist/node/checkbox/checkbox.module.js +1 -8
  246. package/dist/node/checkbox-card/checkbox-card.js +1 -50
  247. package/dist/node/checkbox-card/checkbox-card.module.js +1 -11
  248. package/dist/node/code/code.js +1 -14
  249. package/dist/node/code/code.module.js +1 -3
  250. package/dist/node/code-snippet/code-snippet.js +2 -121
  251. package/dist/node/code-snippet/code-snippet.module.js +1 -17
  252. package/dist/node/code-snippet/highlight.js +1 -67
  253. package/dist/node/collapsible/collapsible.js +1 -47
  254. package/dist/node/collapsible/collapsible.module.js +1 -7
  255. package/dist/node/color-picker/color-picker.js +1 -272
  256. package/dist/node/color-picker/color-picker.module.js +1 -18
  257. package/dist/node/color-picker/color.js +1 -0
  258. package/dist/node/combobox/combobox.js +1 -170
  259. package/dist/node/combobox/combobox.module.js +1 -19
  260. package/dist/node/combobox/list-nav.js +1 -0
  261. package/dist/node/combobox/option-list.js +1 -0
  262. package/dist/node/command-menu/command-menu.js +1 -421
  263. package/dist/node/command-menu/command-menu.module.js +1 -34
  264. package/dist/node/comparison/comparison.js +1 -69
  265. package/dist/node/comparison/comparison.module.js +1 -9
  266. package/dist/node/contained-list/contained-list.js +1 -41
  267. package/dist/node/contained-list/contained-list.module.js +1 -11
  268. package/dist/node/context-menu/context-menu.js +1 -93
  269. package/dist/node/context-menu/context-menu.module.js +1 -7
  270. package/dist/node/copy-button/copy-button.js +1 -60
  271. package/dist/node/copy-button/copy-button.module.js +1 -6
  272. package/dist/node/data-list/data-list.js +1 -25
  273. package/dist/node/data-list/data-list.module.js +1 -8
  274. package/dist/node/data-table/column-filter.js +1 -0
  275. package/dist/node/data-table/column-layout.js +1 -0
  276. package/dist/node/data-table/data-table.js +1 -398
  277. package/dist/node/data-table/data-table.module.js +1 -33
  278. package/dist/node/data-table/grid-keys.js +1 -0
  279. package/dist/node/data-table/row-group.js +1 -0
  280. package/dist/node/data-table/row-search.js +1 -0
  281. package/dist/node/data-table/row-sort.js +1 -0
  282. package/dist/node/data-table/to-csv.js +3 -0
  283. package/dist/node/data-table/virtual-window.js +1 -0
  284. package/dist/node/date-picker/date-picker.js +1 -224
  285. package/dist/node/date-picker/date-picker.module.js +1 -23
  286. package/dist/node/date-picker/parse-date.js +1 -0
  287. package/dist/node/date-range-picker/date-range-picker.js +1 -196
  288. package/dist/node/date-range-picker/date-range-picker.module.js +1 -18
  289. package/dist/node/dock/dock.js +1 -34
  290. package/dist/node/dock/dock.module.js +1 -8
  291. package/dist/node/drawer/drawer.js +1 -96
  292. package/dist/node/drawer/drawer.module.js +1 -13
  293. package/dist/node/dropdown/dropdown.js +1 -110
  294. package/dist/node/dropdown/dropdown.module.js +1 -9
  295. package/dist/node/editable/editable.js +1 -76
  296. package/dist/node/editable/editable.module.js +1 -11
  297. package/dist/node/empty-state/empty-state.js +1 -32
  298. package/dist/node/empty-state/empty-state.module.js +1 -9
  299. package/dist/node/fab/fab.js +1 -93
  300. package/dist/node/fab/fab.module.js +1 -12
  301. package/dist/node/field/field.js +1 -53
  302. package/dist/node/field/field.module.js +1 -7
  303. package/dist/node/file-uploader/file-uploader.js +1 -123
  304. package/dist/node/file-uploader/file-uploader.module.js +1 -18
  305. package/dist/node/filter/filter.js +1 -35
  306. package/dist/node/filter/filter.module.js +1 -6
  307. package/dist/node/form/form.js +1 -95
  308. package/dist/node/form/form.module.js +1 -3
  309. package/dist/node/header/header.js +1 -44
  310. package/dist/node/header/header.module.js +1 -11
  311. package/dist/node/header-panel/header-panel.js +1 -72
  312. package/dist/node/header-panel/header-panel.module.js +1 -9
  313. package/dist/node/heading/heading.js +1 -22
  314. package/dist/node/heading/heading.module.js +1 -3
  315. package/dist/node/hover-card/hover-card.js +1 -84
  316. package/dist/node/hover-card/hover-card.module.js +1 -6
  317. package/dist/node/icon-button/icon-button.js +1 -19
  318. package/dist/node/icon-button/icon-button.module.js +1 -3
  319. package/dist/node/image/image.js +1 -64
  320. package/dist/node/image/image.module.js +1 -9
  321. package/dist/node/indicator/indicator.js +1 -16
  322. package/dist/node/indicator/indicator.module.js +1 -6
  323. package/dist/node/infinite-scroll/infinite-scroll.js +1 -49
  324. package/dist/node/infinite-scroll/infinite-scroll.module.js +1 -7
  325. package/dist/node/inline-loading/inline-loading.js +1 -74
  326. package/dist/node/inline-loading/inline-loading.module.js +1 -9
  327. package/dist/node/input/input.js +1 -56
  328. package/dist/node/input/input.module.js +1 -9
  329. package/dist/node/input-group/input-group.js +1 -39
  330. package/dist/node/input-group/input-group.module.js +1 -9
  331. package/dist/node/item/item.js +1 -50
  332. package/dist/node/item/item.module.js +1 -10
  333. package/dist/node/join/join.js +1 -12
  334. package/dist/node/join/join.module.js +1 -3
  335. package/dist/node/kbd/kbd.js +1 -14
  336. package/dist/node/kbd/kbd.module.js +1 -3
  337. package/dist/node/label/label.js +1 -23
  338. package/dist/node/label/label.module.js +1 -7
  339. package/dist/node/large-title-header/large-title-header.js +1 -38
  340. package/dist/node/large-title-header/large-title-header.module.js +1 -12
  341. package/dist/node/layouts/src/auto-grid/auto-grid.js +1 -17
  342. package/dist/node/layouts/src/auto-grid/auto-grid.module.js +1 -4
  343. package/dist/node/layouts/src/center/center.js +1 -16
  344. package/dist/node/layouts/src/center/center.module.js +1 -3
  345. package/dist/node/layouts/src/columns/columns.js +1 -21
  346. package/dist/node/layouts/src/columns/columns.module.js +1 -6
  347. package/dist/node/layouts/src/flex/flex.js +1 -20
  348. package/dist/node/layouts/src/flex/flex.module.js +1 -3
  349. package/dist/node/layouts/src/grid/grid.js +1 -55
  350. package/dist/node/layouts/src/grid/grid.module.js +1 -7
  351. package/dist/node/layouts/src/page-header/page-header.js +1 -31
  352. package/dist/node/layouts/src/page-header/page-header.module.js +1 -10
  353. package/dist/node/layouts/src/spacer/spacer.js +1 -17
  354. package/dist/node/layouts/src/spacer/spacer.module.js +1 -3
  355. package/dist/node/link/link.js +1 -22
  356. package/dist/node/link/link.module.js +1 -3
  357. package/dist/node/list/list.js +1 -21
  358. package/dist/node/list/list.module.js +1 -6
  359. package/dist/node/log-viewer/log-viewer.js +2 -184
  360. package/dist/node/log-viewer/log-viewer.module.js +1 -16
  361. package/dist/node/menu/menu.js +1 -126
  362. package/dist/node/menu/menu.module.js +1 -8
  363. package/dist/node/menu-button/menu-button.js +1 -92
  364. package/dist/node/menu-button/menu-button.module.js +1 -8
  365. package/dist/node/menubar/menubar.js +1 -103
  366. package/dist/node/menubar/menubar.module.js +1 -8
  367. package/dist/node/modal/modal.js +1 -76
  368. package/dist/node/modal/modal.module.js +1 -12
  369. package/dist/node/multi-select/list-nav.js +1 -0
  370. package/dist/node/multi-select/multi-select.js +1 -106
  371. package/dist/node/multi-select/multi-select.module.js +1 -15
  372. package/dist/node/multi-select/option-list.js +1 -0
  373. package/dist/node/native-select/native-select.js +1 -37
  374. package/dist/node/native-select/native-select.module.js +1 -7
  375. package/dist/node/navigation-menu/navigation-menu.js +1 -99
  376. package/dist/node/navigation-menu/navigation-menu.module.js +1 -10
  377. package/dist/node/notification/notification.js +1 -140
  378. package/dist/node/notification/notification.module.js +1 -11
  379. package/dist/node/number-input/number-input.js +1 -148
  380. package/dist/node/number-input/number-input.module.js +1 -12
  381. package/dist/node/otp-input/otp-input.js +1 -70
  382. package/dist/node/otp-input/otp-input.module.js +1 -6
  383. package/dist/node/overflow-menu/overflow-menu.js +1 -70
  384. package/dist/node/overflow-menu/overflow-menu.module.js +1 -7
  385. package/dist/node/pagination/pagination.js +1 -92
  386. package/dist/node/pagination/pagination.module.js +1 -11
  387. package/dist/node/password-input/password-input.js +1 -81
  388. package/dist/node/password-input/password-input.module.js +1 -11
  389. package/dist/node/popover/popover.js +1 -51
  390. package/dist/node/popover/popover.module.js +1 -6
  391. package/dist/node/popover/use-popover.js +1 -55
  392. package/dist/node/progress/progress.js +1 -16
  393. package/dist/node/progress/progress.module.js +1 -6
  394. package/dist/node/progress-bar/progress-bar.js +1 -42
  395. package/dist/node/progress-bar/progress-bar.module.js +1 -11
  396. package/dist/node/progress-circle/progress-circle.js +1 -46
  397. package/dist/node/progress-circle/progress-circle.module.js +1 -9
  398. package/dist/node/progress-indicator/progress-indicator.js +1 -34
  399. package/dist/node/progress-indicator/progress-indicator.module.js +1 -10
  400. package/dist/node/prose/prose.js +1 -13
  401. package/dist/node/prose/prose.module.js +1 -3
  402. package/dist/node/pull-to-refresh/pull-to-refresh.js +1 -82
  403. package/dist/node/pull-to-refresh/pull-to-refresh.module.js +1 -9
  404. package/dist/node/qr-code/encode.js +1 -583
  405. package/dist/node/qr-code/qr-code.js +1 -41
  406. package/dist/node/qr-code/qr-code.module.js +1 -6
  407. package/dist/node/radial-progress/radial-progress.js +1 -27
  408. package/dist/node/radial-progress/radial-progress.module.js +1 -6
  409. package/dist/node/radio/radio.js +1 -49
  410. package/dist/node/radio/radio.module.js +1 -9
  411. package/dist/node/radio-card/radio-card.js +1 -64
  412. package/dist/node/radio-card/radio-card.module.js +1 -11
  413. package/dist/node/rating-group/rating-group.js +1 -37
  414. package/dist/node/rating-group/rating-group.module.js +1 -6
  415. package/dist/node/react/src/index.js +1 -141
  416. package/dist/node/relative-time/relative-time.js +1 -66
  417. package/dist/node/relative-time/relative-time.module.js +1 -3
  418. package/dist/node/reorder-list/reorder-list.js +1 -143
  419. package/dist/node/reorder-list/reorder-list.module.js +1 -11
  420. package/dist/node/resizable/resizable.js +1 -80
  421. package/dist/node/resizable/resizable.module.js +1 -8
  422. package/dist/node/scroll-area/scroll-area.js +1 -38
  423. package/dist/node/scroll-area/scroll-area.module.js +1 -3
  424. package/dist/node/search/search.js +1 -96
  425. package/dist/node/search/search.module.js +1 -9
  426. package/dist/node/segmented-control/segmented-control.js +1 -43
  427. package/dist/node/segmented-control/segmented-control.module.js +1 -6
  428. package/dist/node/select/select.js +1 -73
  429. package/dist/node/select/select.module.js +1 -11
  430. package/dist/node/separator/separator.js +1 -19
  431. package/dist/node/separator/separator.module.js +1 -3
  432. package/dist/node/sheet/sheet.js +1 -49
  433. package/dist/node/sheet/sheet.module.js +1 -9
  434. package/dist/node/shell-header/shell-header.js +1 -169
  435. package/dist/node/shell-header/shell-header.module.js +1 -24
  436. package/dist/node/side-nav/side-nav.js +1 -334
  437. package/dist/node/side-nav/side-nav.module.js +1 -31
  438. package/dist/node/skeleton/skeleton.js +1 -23
  439. package/dist/node/skeleton/skeleton.module.js +1 -7
  440. package/dist/node/skip-nav/skip-nav.js +1 -28
  441. package/dist/node/skip-nav/skip-nav.module.js +1 -3
  442. package/dist/node/slider/slider.js +1 -30
  443. package/dist/node/slider/slider.module.js +1 -7
  444. package/dist/node/spinner/spinner.js +1 -18
  445. package/dist/node/spinner/spinner.module.js +1 -6
  446. package/dist/node/stack/stack.js +1 -17
  447. package/dist/node/stack/stack.module.js +1 -6
  448. package/dist/node/stat/stat.js +1 -41
  449. package/dist/node/stat/stat.module.js +1 -11
  450. package/dist/node/status/status.js +1 -25
  451. package/dist/node/status/status.module.js +1 -7
  452. package/dist/node/steps/steps.js +1 -35
  453. package/dist/node/steps/steps.module.js +1 -8
  454. package/dist/node/structured-list/structured-list.js +1 -102
  455. package/dist/node/structured-list/structured-list.module.js +1 -12
  456. package/dist/node/swap/swap.js +1 -36
  457. package/dist/node/swap/swap.module.js +1 -7
  458. package/dist/node/swipe-item/swipe-item.js +1 -62
  459. package/dist/node/swipe-item/swipe-item.module.js +1 -12
  460. package/dist/node/switcher/switcher.js +1 -32
  461. package/dist/node/switcher/switcher.module.js +1 -8
  462. package/dist/node/tabs/tabs.js +1 -98
  463. package/dist/node/tabs/tabs.module.js +1 -8
  464. package/dist/node/tag/tag.js +1 -33
  465. package/dist/node/tag/tag.module.js +1 -6
  466. package/dist/node/tags-input/tags-input.js +1 -68
  467. package/dist/node/tags-input/tags-input.module.js +1 -8
  468. package/dist/node/text/text.js +1 -16
  469. package/dist/node/text/text.module.js +1 -3
  470. package/dist/node/textarea/textarea.js +1 -58
  471. package/dist/node/textarea/textarea.module.js +1 -9
  472. package/dist/node/tile/tile.js +1 -39
  473. package/dist/node/tile/tile.module.js +1 -7
  474. package/dist/node/time-picker/time-picker.js +1 -64
  475. package/dist/node/time-picker/time-picker.module.js +1 -9
  476. package/dist/node/timeline/timeline.js +1 -55
  477. package/dist/node/timeline/timeline.module.js +1 -11
  478. package/dist/node/toast/toast.js +1 -85
  479. package/dist/node/toast/toast.module.js +1 -11
  480. package/dist/node/toc/toc.js +1 -43
  481. package/dist/node/toc/toc.module.js +1 -3
  482. package/dist/node/toc/use-toc-from-region.js +1 -18
  483. package/dist/node/toggle/toggle.js +1 -42
  484. package/dist/node/toggle/toggle.module.js +1 -8
  485. package/dist/node/toggle-group/toggle-group.js +1 -55
  486. package/dist/node/toggle-group/toggle-group.module.js +1 -6
  487. package/dist/node/toggletip/toggletip.js +1 -49
  488. package/dist/node/toggletip/toggletip.module.js +1 -7
  489. package/dist/node/tooltip/tooltip.js +1 -58
  490. package/dist/node/tooltip/tooltip.module.js +1 -6
  491. package/dist/node/tree-view/tree-view.js +1 -201
  492. package/dist/node/tree-view/tree-view.module.js +1 -13
  493. package/dist/node/user/user.js +1 -35
  494. package/dist/node/user/user.module.js +1 -9
  495. package/dist/node/virtual-list/virtual-list.js +1 -40
  496. package/dist/node/virtual-list/virtual-list.module.js +1 -7
  497. package/dist/node/visually-hidden/visually-hidden.js +1 -2
  498. package/dist/node/wheel-picker/wheel-picker.js +1 -84
  499. package/dist/node/wheel-picker/wheel-picker.module.js +1 -8
  500. package/dist/notification/notification.js +1 -140
  501. package/dist/notification/notification.module.js +1 -11
  502. package/dist/number-input/number-input.js +1 -148
  503. package/dist/number-input/number-input.module.js +1 -12
  504. package/dist/otp-input/otp-input.js +1 -70
  505. package/dist/otp-input/otp-input.module.js +1 -6
  506. package/dist/overflow-menu/overflow-menu.js +1 -70
  507. package/dist/overflow-menu/overflow-menu.module.js +1 -7
  508. package/dist/pagination/pagination.js +1 -92
  509. package/dist/pagination/pagination.module.js +1 -11
  510. package/dist/password-input/password-input.js +1 -81
  511. package/dist/password-input/password-input.module.js +1 -11
  512. package/dist/popover/popover.js +1 -51
  513. package/dist/popover/popover.module.js +1 -6
  514. package/dist/popover/use-popover.js +1 -55
  515. package/dist/progress/progress.css +1 -1
  516. package/dist/progress/progress.js +1 -16
  517. package/dist/progress/progress.module.js +1 -6
  518. package/dist/progress-bar/progress-bar.css +1 -1
  519. package/dist/progress-bar/progress-bar.js +1 -42
  520. package/dist/progress-bar/progress-bar.module.js +1 -11
  521. package/dist/progress-circle/progress-circle.js +1 -46
  522. package/dist/progress-circle/progress-circle.module.js +1 -9
  523. package/dist/progress-indicator/progress-indicator.css +1 -1
  524. package/dist/progress-indicator/progress-indicator.js +1 -34
  525. package/dist/progress-indicator/progress-indicator.module.js +1 -10
  526. package/dist/prose/prose.css +1 -1
  527. package/dist/prose/prose.js +1 -13
  528. package/dist/prose/prose.module.js +1 -3
  529. package/dist/pull-to-refresh/pull-to-refresh.js +1 -82
  530. package/dist/pull-to-refresh/pull-to-refresh.module.js +1 -9
  531. package/dist/qr-code/encode.js +1 -583
  532. package/dist/qr-code/qr-code.js +1 -41
  533. package/dist/qr-code/qr-code.module.js +1 -6
  534. package/dist/radial-progress/radial-progress.js +1 -27
  535. package/dist/radial-progress/radial-progress.module.js +1 -6
  536. package/dist/radio/radio.js +1 -49
  537. package/dist/radio/radio.module.js +1 -9
  538. package/dist/radio-card/radio-card.css +1 -1
  539. package/dist/radio-card/radio-card.js +1 -64
  540. package/dist/radio-card/radio-card.module.js +1 -11
  541. package/dist/rating-group/rating-group.js +1 -37
  542. package/dist/rating-group/rating-group.module.js +1 -6
  543. package/dist/react/src/index.js +1 -141
  544. package/dist/relative-time/relative-time.js +1 -66
  545. package/dist/relative-time/relative-time.module.js +1 -3
  546. package/dist/reorder-list/reorder-list.css +1 -1
  547. package/dist/reorder-list/reorder-list.js +1 -143
  548. package/dist/reorder-list/reorder-list.module.js +1 -11
  549. package/dist/resizable/resizable.js +1 -80
  550. package/dist/resizable/resizable.module.js +1 -8
  551. package/dist/scroll-area/scroll-area.css +1 -1
  552. package/dist/scroll-area/scroll-area.js +1 -38
  553. package/dist/scroll-area/scroll-area.module.js +1 -3
  554. package/dist/search/search.js +1 -96
  555. package/dist/search/search.module.js +1 -9
  556. package/dist/segmented-control/segmented-control.js +1 -43
  557. package/dist/segmented-control/segmented-control.module.js +1 -6
  558. package/dist/select/select.js +1 -73
  559. package/dist/select/select.module.js +1 -11
  560. package/dist/separator/separator.js +1 -19
  561. package/dist/separator/separator.module.js +1 -3
  562. package/dist/sheet/sheet.js +1 -49
  563. package/dist/sheet/sheet.module.js +1 -9
  564. package/dist/shell-header/shell-header.css +1 -1
  565. package/dist/shell-header/shell-header.js +1 -169
  566. package/dist/shell-header/shell-header.module.js +1 -24
  567. package/dist/side-nav/side-nav.css +1 -1
  568. package/dist/side-nav/side-nav.js +1 -334
  569. package/dist/side-nav/side-nav.module.js +1 -31
  570. package/dist/skeleton/skeleton.css +1 -1
  571. package/dist/skeleton/skeleton.js +1 -23
  572. package/dist/skeleton/skeleton.module.js +1 -7
  573. package/dist/skip-nav/skip-nav.js +1 -28
  574. package/dist/skip-nav/skip-nav.module.js +1 -3
  575. package/dist/slider/slider.js +1 -30
  576. package/dist/slider/slider.module.js +1 -7
  577. package/dist/spinner/spinner.css +1 -1
  578. package/dist/spinner/spinner.js +1 -18
  579. package/dist/spinner/spinner.module.js +1 -6
  580. package/dist/stack/stack.js +1 -17
  581. package/dist/stack/stack.module.js +1 -6
  582. package/dist/stat/stat.js +1 -41
  583. package/dist/stat/stat.module.js +1 -11
  584. package/dist/status/status.css +1 -1
  585. package/dist/status/status.js +1 -25
  586. package/dist/status/status.module.js +1 -7
  587. package/dist/steps/steps.css +1 -1
  588. package/dist/steps/steps.js +1 -35
  589. package/dist/steps/steps.module.js +1 -8
  590. package/dist/structured-list/structured-list.js +1 -102
  591. package/dist/structured-list/structured-list.module.js +1 -12
  592. package/dist/styles.css +401 -55
  593. package/dist/swap/swap.css +1 -1
  594. package/dist/swap/swap.js +1 -36
  595. package/dist/swap/swap.module.js +1 -7
  596. package/dist/swipe-item/swipe-item.js +1 -62
  597. package/dist/swipe-item/swipe-item.module.js +1 -12
  598. package/dist/switcher/switcher.js +1 -32
  599. package/dist/switcher/switcher.module.js +1 -8
  600. package/dist/tabs/tabs.js +1 -98
  601. package/dist/tabs/tabs.module.js +1 -8
  602. package/dist/tag/tag.js +1 -33
  603. package/dist/tag/tag.module.js +1 -6
  604. package/dist/tags-input/tags-input.js +1 -68
  605. package/dist/tags-input/tags-input.module.js +1 -8
  606. package/dist/text/text.css +1 -1
  607. package/dist/text/text.js +1 -16
  608. package/dist/text/text.module.js +1 -3
  609. package/dist/textarea/textarea.css +1 -1
  610. package/dist/textarea/textarea.js +1 -58
  611. package/dist/textarea/textarea.module.js +1 -9
  612. package/dist/tile/tile.css +1 -1
  613. package/dist/tile/tile.js +1 -39
  614. package/dist/tile/tile.module.js +1 -7
  615. package/dist/time-picker/time-picker.js +1 -64
  616. package/dist/time-picker/time-picker.module.js +1 -9
  617. package/dist/timeline/timeline.js +1 -55
  618. package/dist/timeline/timeline.module.js +1 -11
  619. package/dist/toast/toast.css +1 -1
  620. package/dist/toast/toast.js +1 -85
  621. package/dist/toast/toast.module.js +1 -11
  622. package/dist/toc/toc.css +1 -1
  623. package/dist/toc/toc.js +1 -43
  624. package/dist/toc/toc.module.js +1 -3
  625. package/dist/toc/use-toc-from-region.js +1 -18
  626. package/dist/toggle/toggle.js +1 -42
  627. package/dist/toggle/toggle.module.js +1 -8
  628. package/dist/toggle-group/toggle-group.js +1 -55
  629. package/dist/toggle-group/toggle-group.module.js +1 -6
  630. package/dist/toggletip/toggletip.js +1 -49
  631. package/dist/toggletip/toggletip.module.js +1 -7
  632. package/dist/tooltip/tooltip.css +1 -1
  633. package/dist/tooltip/tooltip.js +1 -58
  634. package/dist/tooltip/tooltip.module.js +1 -6
  635. package/dist/tree-view/tree-view.css +1 -1
  636. package/dist/tree-view/tree-view.js +1 -201
  637. package/dist/tree-view/tree-view.module.js +1 -13
  638. package/dist/user/user.js +1 -35
  639. package/dist/user/user.module.js +1 -9
  640. package/dist/virtual-list/virtual-list.js +1 -40
  641. package/dist/virtual-list/virtual-list.module.js +1 -7
  642. package/dist/visually-hidden/visually-hidden.js +1 -2
  643. package/dist/wheel-picker/wheel-picker.js +1 -84
  644. package/dist/wheel-picker/wheel-picker.module.js +1 -8
  645. package/package.json +4 -4
  646. package/readme.body.md +3 -2
@@ -1,47 +1 @@
1
- "use client";
2
-
3
- import e from "./collapsible.module.js";
4
- import { useId as t, useRef as n } from "react";
5
- import { cn as r, useControllableSignal as i, useSignalEffect as a, useSignals as o } from "@cascivo/core";
6
- import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
- //#region ../components/src/collapsible/collapsible.tsx
8
- function l({ open: l, defaultOpen: u = !1, onOpenChange: d, trigger: f, disabled: p = !1, className: m, children: h }) {
9
- o();
10
- let [g, _] = i({
11
- ...l === void 0 ? {} : { value: l },
12
- defaultValue: u,
13
- ...d ? { onChange: d } : {}
14
- }), v = t(), y = `${v}-content`, b = `${v}-trigger`, x = n(null), S = g.value;
15
- return a(() => {
16
- let e = x.current;
17
- e && e.open !== g.value && (e.open = g.value);
18
- }), /* @__PURE__ */ c("details", {
19
- ref: x,
20
- open: S,
21
- "data-state": S ? "open" : "closed",
22
- className: r(e.root, m),
23
- onToggle: (e) => {
24
- let t = e.currentTarget;
25
- t.open !== g.value && _(t.open), t.open !== g.value && (t.open = g.value);
26
- },
27
- children: [/* @__PURE__ */ s("summary", {
28
- id: b,
29
- "aria-controls": y,
30
- ...p ? { "aria-disabled": !0 } : {},
31
- "data-state": S ? "open" : "closed",
32
- className: e.trigger,
33
- onClick: (e) => {
34
- p && e.preventDefault();
35
- },
36
- children: f
37
- }), /* @__PURE__ */ s("div", {
38
- id: y,
39
- role: "region",
40
- "aria-labelledby": b,
41
- className: e.content,
42
- children: h
43
- })]
44
- });
45
- }
46
- //#endregion
47
- export { l as Collapsible };
1
+ "use client";import e from"./collapsible.module.js";import{useId as t,useRef as n}from"react";import{cn as r,useControllableSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{jsx as s,jsxs as c}from"react/jsx-runtime";function Collapsible({open:l,defaultOpen:u=!1,onOpenChange:d,trigger:f,disabled:p=!1,className:m,children:h}){o();let[g,_]=i({...l===void 0?{}:{value:l},defaultValue:u,...d?{onChange:d}:{}}),v=t(),y=`${v}-content`,b=`${v}-trigger`,x=n(null),S=g.value;return a(()=>{let e=x.current;e&&e.open!==g.value&&(e.open=g.value)}),c(`details`,{ref:x,open:S,"data-state":S?`open`:`closed`,className:r(e.root,m),onToggle:e=>{let t=e.currentTarget;t.open!==g.value&&_(t.open),t.open!==g.value&&(t.open=g.value)},children:[s(`summary`,{id:b,"aria-controls":y,...p?{"aria-disabled":!0}:{},"data-state":S?`open`:`closed`,className:e.trigger,onClick:e=>{p&&e.preventDefault()},children:f}),s(`div`,{id:y,role:`region`,"aria-labelledby":b,className:e.content,children:h})]})}export{Collapsible};
@@ -1,7 +1 @@
1
- var e = {
2
- root: "_root_13r7c_2",
3
- trigger: "_trigger_13r7c_6",
4
- content: "_content_13r7c_69"
5
- };
6
- //#endregion
7
- export { e as default };
1
+ var e={root:`_root_13r7c_2`,trigger:`_trigger_13r7c_6`,content:`_content_13r7c_69`};export{e as default};
@@ -1,272 +1 @@
1
- "use client";
2
-
3
- import e from "./color-picker.module.js";
4
- import { useId as t, useRef as n } from "react";
5
- import { cn as r, useControllableSignal as i, useSignal as a, useSignalEffect as o, useSignals as s } from "@cascivo/core";
6
- import { builtin as c, t as l } from "@cascivo/i18n";
7
- import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
8
- //#region ../components/src/color-picker/color-picker.tsx
9
- function p(e, t, n) {
10
- return Math.min(n, Math.max(t, e));
11
- }
12
- function m(e) {
13
- let t = e.trim().replace(/^#/, "");
14
- t.length === 3 && (t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2]), t.length === 4 && (t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2] + t[3] + t[3]);
15
- let n = parseInt(t.slice(0, 2), 16), r = parseInt(t.slice(2, 4), 16), i = parseInt(t.slice(4, 6), 16), a = t.length >= 8 ? parseInt(t.slice(6, 8), 16) / 255 : 1;
16
- return Number.isNaN(n) || Number.isNaN(r) || Number.isNaN(i) ? {
17
- r: 0,
18
- g: 0,
19
- b: 0,
20
- a: 1
21
- } : {
22
- r: n,
23
- g: r,
24
- b: i,
25
- a
26
- };
27
- }
28
- function h({ r: e, g: t, b: n, a: r }, i) {
29
- let a = (e) => p(Math.round(e), 0, 255).toString(16).padStart(2, "0"), o = `#${a(e)}${a(t)}${a(n)}`;
30
- return !i || r >= 1 ? o : o + a(r * 255);
31
- }
32
- function g({ r: e, g: t, b: n, a: r }) {
33
- let i = e / 255, a = t / 255, o = n / 255, s = Math.max(i, a, o), c = Math.min(i, a, o), l = s - c, u = 0;
34
- l !== 0 && (u = s === i ? (a - o) / l % 6 : s === a ? (o - i) / l + 2 : (i - a) / l + 4, u *= 60, u < 0 && (u += 360));
35
- let d = (s + c) / 2, f = l === 0 ? 0 : l / (1 - Math.abs(2 * d - 1));
36
- return {
37
- h: u,
38
- s: f * 100,
39
- l: d * 100,
40
- a: r
41
- };
42
- }
43
- function _({ h: e, s: t, l: n, a: r }) {
44
- let i = t / 100, a = n / 100, o = (1 - Math.abs(2 * a - 1)) * i, s = o * (1 - Math.abs(e / 60 % 2 - 1)), c = a - o / 2, l = 0, u = 0, d = 0;
45
- return e < 60 ? [l, u, d] = [
46
- o,
47
- s,
48
- 0
49
- ] : e < 120 ? [l, u, d] = [
50
- s,
51
- o,
52
- 0
53
- ] : e < 180 ? [l, u, d] = [
54
- 0,
55
- o,
56
- s
57
- ] : e < 240 ? [l, u, d] = [
58
- 0,
59
- s,
60
- o
61
- ] : e < 300 ? [l, u, d] = [
62
- s,
63
- 0,
64
- o
65
- ] : [l, u, d] = [
66
- o,
67
- 0,
68
- s
69
- ], {
70
- r: (l + c) * 255,
71
- g: (u + c) * 255,
72
- b: (d + c) * 255,
73
- a: r
74
- };
75
- }
76
- function v({ value: v, defaultValue: y, onValueChange: b, presets: x, alpha: S = !0, label: C, ariaLabel: w, disabled: T, size: E = "md", className: D, labels: O, id: k, "aria-labelledby": A, "aria-describedby": j, "aria-invalid": M }) {
77
- s();
78
- let N = t(), [P, F] = i({
79
- value: v,
80
- defaultValue: y ?? "#3b82f6",
81
- onChange: b
82
- }), I = n(null), L = a(!1), R = g(m(P.value)), z = (e) => {
83
- F(h(_(e), S));
84
- }, B = (e, t) => {
85
- let n = I.current;
86
- if (!n) return;
87
- let r = n.getBoundingClientRect(), i = p((e - r.left) / r.width, 0, 1), a = p((t - r.top) / r.height, 0, 1);
88
- z({
89
- h: R.h,
90
- s: i * 100,
91
- l: (1 - a) * 100,
92
- a: R.a
93
- });
94
- };
95
- o(() => {
96
- if (!L.value) return;
97
- let e = (e) => B(e.clientX, e.clientY), t = () => {
98
- L.value = !1;
99
- };
100
- return window.addEventListener("pointermove", e), window.addEventListener("pointerup", t), () => {
101
- window.removeEventListener("pointermove", e), window.removeEventListener("pointerup", t);
102
- };
103
- });
104
- let V = (e) => {
105
- let t = e.shiftKey ? 10 : 2, { s: n, l: r } = R;
106
- if (e.key === "ArrowLeft") n -= t;
107
- else if (e.key === "ArrowRight") n += t;
108
- else if (e.key === "ArrowUp") r += t;
109
- else if (e.key === "ArrowDown") r -= t;
110
- else return;
111
- e.preventDefault(), z({
112
- h: R.h,
113
- s: p(n, 0, 100),
114
- l: p(r, 0, 100),
115
- a: R.a
116
- });
117
- }, H = (e, t) => {
118
- !x || x.length === 0 || F(x[(t + e + x.length) % x.length]);
119
- }, U = typeof window < "u" ? window.EyeDropper : void 0, W = () => {
120
- U && new U().open().then((e) => F(e.sRGBHex));
121
- }, G = {
122
- hue: O?.hue ?? l(c.colorPicker.hue),
123
- alpha: O?.alpha ?? l(c.colorPicker.alpha),
124
- colorArea: O?.colorArea ?? l(c.colorPicker.colorArea),
125
- eyedropper: O?.eyedropper ?? l(c.colorPicker.eyedropper)
126
- }, K = h(m(P.value), !1), q = `hsl(${R.h} 100% 50%)`;
127
- return /* @__PURE__ */ f("div", {
128
- className: r(e.picker, D),
129
- "data-size": E,
130
- "data-disabled": T || void 0,
131
- children: [
132
- C && /* @__PURE__ */ d("span", {
133
- className: e.label,
134
- id: `${N}-label`,
135
- children: C
136
- }),
137
- /* @__PURE__ */ d("div", {
138
- ref: I,
139
- className: e.area,
140
- role: "slider",
141
- "aria-label": G.colorArea,
142
- "aria-valuetext": K,
143
- "aria-disabled": T || void 0,
144
- tabIndex: T ? -1 : 0,
145
- style: { background: q },
146
- onPointerDown: (e) => {
147
- T || (e.preventDefault(), L.value = !0, B(e.clientX, e.clientY));
148
- },
149
- onKeyDown: V,
150
- children: /* @__PURE__ */ d("span", {
151
- className: e.thumb,
152
- style: {
153
- insetInlineStart: `${R.s}%`,
154
- insetBlockStart: `${100 - R.l}%`,
155
- backgroundColor: K
156
- }
157
- })
158
- }),
159
- /* @__PURE__ */ f("div", {
160
- className: e.sliders,
161
- children: [
162
- /* @__PURE__ */ d("label", {
163
- className: e.srOnly,
164
- htmlFor: `${N}-hue`,
165
- children: G.hue
166
- }),
167
- /* @__PURE__ */ d("input", {
168
- id: `${N}-hue`,
169
- className: e.hue,
170
- type: "range",
171
- min: 0,
172
- max: 360,
173
- step: 1,
174
- value: Math.round(R.h),
175
- disabled: T,
176
- "aria-label": G.hue,
177
- onChange: (e) => z({
178
- h: Number(e.target.value),
179
- s: R.s,
180
- l: R.l,
181
- a: R.a
182
- })
183
- }),
184
- S && /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("label", {
185
- className: e.srOnly,
186
- htmlFor: `${N}-alpha`,
187
- children: G.alpha
188
- }), /* @__PURE__ */ d("input", {
189
- id: `${N}-alpha`,
190
- className: e.alpha,
191
- type: "range",
192
- min: 0,
193
- max: 1,
194
- step: .01,
195
- value: R.a,
196
- disabled: T,
197
- "aria-label": G.alpha,
198
- style: { "--cascivo-color-picker-solid": K },
199
- onChange: (e) => z({
200
- h: R.h,
201
- s: R.s,
202
- l: R.l,
203
- a: Number(e.target.value)
204
- })
205
- })] })
206
- ]
207
- }),
208
- x && x.length > 0 && /* @__PURE__ */ d("div", {
209
- className: e.presets,
210
- role: "group",
211
- "aria-label": G.colorArea,
212
- children: x.map((t, n) => /* @__PURE__ */ d("button", {
213
- type: "button",
214
- className: e.preset,
215
- style: { backgroundColor: t },
216
- "aria-label": t,
217
- "aria-pressed": t.toLowerCase() === P.value.toLowerCase(),
218
- disabled: T,
219
- onClick: () => F(t),
220
- onKeyDown: (e) => {
221
- e.key === "ArrowRight" ? (e.preventDefault(), H(1, n)) : e.key === "ArrowLeft" && (e.preventDefault(), H(-1, n));
222
- }
223
- }, t))
224
- }),
225
- /* @__PURE__ */ f("div", {
226
- className: e.row,
227
- children: [
228
- /* @__PURE__ */ d("span", {
229
- className: e.preview,
230
- style: { backgroundColor: P.value },
231
- "aria-hidden": "true"
232
- }),
233
- /* @__PURE__ */ d("input", {
234
- className: e.text,
235
- type: "text",
236
- value: P.value,
237
- disabled: T,
238
- id: k,
239
- "aria-labelledby": A,
240
- "aria-describedby": j,
241
- "aria-invalid": M,
242
- "aria-label": A === void 0 ? w ?? C ?? G.colorArea : void 0,
243
- onChange: (e) => F(e.target.value)
244
- }),
245
- U && /* @__PURE__ */ d("button", {
246
- type: "button",
247
- className: e.eyedropper,
248
- "aria-label": G.eyedropper,
249
- disabled: T,
250
- onClick: W,
251
- children: /* @__PURE__ */ d("svg", {
252
- width: "16",
253
- height: "16",
254
- viewBox: "0 0 24 24",
255
- fill: "none",
256
- "aria-hidden": "true",
257
- children: /* @__PURE__ */ d("path", {
258
- d: "m2 22 1-1h3l9-9M3 21v-3l9-9m1.5 1.5-2-2M19 2l3 3-9 9-3-3z",
259
- stroke: "currentColor",
260
- strokeWidth: "2",
261
- strokeLinecap: "round",
262
- strokeLinejoin: "round"
263
- })
264
- })
265
- })
266
- ]
267
- })
268
- ]
269
- });
270
- }
271
- //#endregion
272
- export { v as ColorPicker };
1
+ "use client";import{clamp as e,formatColor as t,hsvToRgb as n,parseColor as r,sameColor as i,toHex as a}from"./color.js";import o from"./color-picker.module.js";import{useId as s,useRef as c}from"react";import{cn as l,useControllableSignal as u,useRovingFocus as d,useSignal as f,useSignalEffect as p,useSignals as m}from"@cascivo/core";import{builtin as h,t as g}from"@cascivo/i18n";import{jsx as _,jsxs as v}from"react/jsx-runtime";var y=`#3b82f6`;function ColorPicker({id:b,value:x,defaultValue:S,onValueChange:C,presets:w,alpha:T=!0,format:E=`hex`,label:D,ariaLabel:O,disabled:k=!1,name:A,size:j=`md`,className:M,labels:N,"aria-labelledby":P,"aria-describedby":F,"aria-invalid":ee}){m();let I=s(),L=b??`${I}-hex`,R=c(null),z=f(!1),[B,V]=u({value:x,defaultValue:S??y,onChange:C}),H=f(r(B.peek())??{h:217,s:76,v:96,a:1}),U=c(B.peek()),W=B.value;if(W!==U.current&&!i(W,U.current)){let e=r(W);e&&(H.value=e),U.current=W}let G=H.value,K=t(G,E,T),q=a(n({...G,a:1}),!1),J=a(n({h:G.h,s:100,v:100,a:1}),!1),Y={hue:N?.hue??g(h.colorPicker.hue),alpha:N?.alpha??g(h.colorPicker.alpha),colorArea:N?.colorArea??g(h.colorPicker.colorArea),saturation:N?.saturation??g(h.colorPicker.saturation),brightness:N?.brightness??g(h.colorPicker.brightness),eyedropper:N?.eyedropper??g(h.colorPicker.eyedropper),presets:N?.presets??g(h.colorPicker.presets),hex:N?.hex??g(h.colorPicker.hex)};function commit(e){H.value=e;let n=t(e,E,T);U.current=n,V(n)}function setFromPointer(t,n){let r=R.current;if(!r)return;let i=r.getBoundingClientRect();if(i.width===0||i.height===0)return;let a=e((t-i.left)/i.width,0,1),o=e((n-i.top)/i.height,0,1);commit({...H.peek(),s:a*100,v:(1-o)*100})}p(()=>{if(!z.value)return;let onMove=e=>setFromPointer(e.clientX,e.clientY),onUp=()=>{z.value=!1};return window.addEventListener(`pointermove`,onMove),window.addEventListener(`pointerup`,onUp),()=>{window.removeEventListener(`pointermove`,onMove),window.removeEventListener(`pointerup`,onUp)}});let X=f(!1);p(()=>{X.value=typeof window<`u`&&typeof window.EyeDropper==`function`});async function pickFromScreen(){let e=window.EyeDropper;if(e)try{let t=r((await new e().open()).sRGBHex);t&&commit({...t,a:H.peek().a})}catch{}}let Z=f(null),Q=Z.value??(E===`hex`?K:a(n(G),T));function commitDraft(){let e=Z.peek();if(Z.value=null,e===null)return;let t=r(e);t&&commit(T?t:{...t,a:1})}let $=w??[],te=d({orientation:`horizontal`,loop:!0});return v(`div`,{className:l(o.wrapper,M),"data-size":j,"data-disabled":k||void 0,children:[D&&_(`label`,{className:o.label,htmlFor:L,children:D}),v(`div`,{ref:R,role:`group`,"aria-label":Y.colorArea,className:o.area,style:{background:J},onPointerDown:e=>{k||(e.preventDefault(),z.value=!0,setFromPointer(e.clientX,e.clientY))},children:[_(`input`,{type:`range`,className:o.axis,"aria-label":Y.saturation,min:0,max:100,step:1,value:Math.round(G.s),disabled:k,"aria-valuetext":`${Math.round(G.s)}%`,onChange:e=>commit({...H.peek(),s:Number(e.currentTarget.value)})}),_(`input`,{type:`range`,className:o.axis,"aria-label":Y.brightness,min:0,max:100,step:1,value:Math.round(G.v),disabled:k,"aria-valuetext":`${Math.round(G.v)}%`,onChange:e=>commit({...H.peek(),v:Number(e.currentTarget.value)})}),_(`span`,{className:o.thumb,style:{insetInlineStart:`${G.s}%`,insetBlockStart:`${100-G.v}%`,backgroundColor:q},"aria-hidden":`true`})]}),v(`div`,{className:o.sliders,children:[_(`input`,{type:`range`,className:l(o.slider,o.hue),"aria-label":Y.hue,min:0,max:360,step:1,value:Math.round(G.h),disabled:k,onChange:e=>commit({...H.peek(),h:Number(e.currentTarget.value)})}),T&&_(`input`,{type:`range`,className:l(o.slider,o.alpha),"aria-label":Y.alpha,min:0,max:100,step:1,value:Math.round(G.a*100),disabled:k,"aria-valuetext":`${Math.round(G.a*100)}%`,style:{"--cascivo-color-picker-alpha-to":q},onChange:e=>commit({...H.peek(),a:Number(e.currentTarget.value)/100})})]}),v(`div`,{className:o.row,children:[_(`span`,{className:o.preview,style:{backgroundColor:K},"aria-hidden":`true`}),_(`input`,{id:L,type:`text`,className:o.hex,value:Q,disabled:k,autoComplete:`off`,"aria-label":P?void 0:O??Y.hex,"aria-labelledby":P,"aria-describedby":F,"aria-invalid":ee,onChange:e=>{Z.value=e.currentTarget.value},onBlur:commitDraft,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),commitDraft()):e.key===`Escape`&&(Z.value=null)}}),X.value&&_(`button`,{type:`button`,className:o.eyedropper,"aria-label":Y.eyedropper,disabled:k,onClick:()=>void pickFromScreen(),children:_(`span`,{className:o.eyedropperGlyph,"aria-hidden":`true`})})]}),$.length>0&&_(`div`,{role:`group`,"aria-label":Y.presets,className:o.presets,children:$.map((e,t)=>{let n=te.getItemProps(t),a=i(e,K);return _(`button`,{ref:n.ref,type:`button`,className:o.preset,style:{backgroundColor:e},"aria-label":e,"aria-pressed":a,disabled:k,tabIndex:n.tabIndex,onKeyDown:n.onKeyDown,onFocus:n.onFocus,onClick:()=>{let t=r(e);t&&commit(T?t:{...t,a:1})}},e)})}),A!==void 0&&_(`input`,{type:`hidden`,name:A,value:K}),_(`span`,{className:o.srOnly,role:`status`,"aria-live":`polite`,children:g(h.colorPicker.value,{color:K})})]})}export{ColorPicker};
@@ -1,18 +1 @@
1
- var e = {
2
- picker: "_picker_1ehlq_2",
3
- label: "_label_1ehlq_27",
4
- srOnly: "_srOnly_1ehlq_34",
5
- area: "_area_1ehlq_46",
6
- thumb: "_thumb_1ehlq_63",
7
- sliders: "_sliders_1ehlq_74",
8
- hue: "_hue_1ehlq_80",
9
- alpha: "_alpha_1ehlq_81",
10
- presets: "_presets_1ehlq_136",
11
- preset: "_preset_1ehlq_136",
12
- row: "_row_1ehlq_161",
13
- preview: "_preview_1ehlq_167",
14
- text: "_text_1ehlq_175",
15
- eyedropper: "_eyedropper_1ehlq_193"
16
- };
17
- //#endregion
18
- export { e as default };
1
+ var e={wrapper:`_wrapper_1tef2_2`,label:`_label_1tef2_27`,srOnly:`_srOnly_1tef2_34`,area:`_area_1tef2_46`,axis:`_axis_1tef2_57`,thumb:`_thumb_1tef2_77`,sliders:`_sliders_1tef2_88`,slider:`_slider_1tef2_88`,hue:`_hue_1tef2_126`,alpha:`_alpha_1tef2_139`,presets:`_presets_1tef2_149`,preset:`_preset_1tef2_149`,row:`_row_1tef2_174`,preview:`_preview_1tef2_180`,hex:`_hex_1tef2_188`,eyedropper:`_eyedropper_1tef2_206`};export{e as default};
@@ -0,0 +1 @@
1
+ function clamp(e,t,r){return Math.min(r,Math.max(t,e))}function parseHex(e){let t=e.trim().replace(/^#/,``);if(!/^(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t))return null;let r=(e=>e.length<=4?e.split(``).map(e=>e+e).join(``):e)(t);return{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16),a:r.length>=8?parseInt(r.slice(6,8),16)/255:1}}function toHex({r:e,g:t,b:r,a:i},a){let part=e=>clamp(Math.round(e),0,255).toString(16).padStart(2,`0`),o=`#${part(e)}${part(t)}${part(r)}`;return a?o+part(i*255):o}function toRgbString({r:e,g:t,b:r,a:i},a){let n=e=>clamp(Math.round(e),0,255),o=`${n(e)} ${n(t)} ${n(r)}`;return a?`rgb(${o} / ${round(i,2)})`:`rgb(${o})`}function toHslString(e,t){let{h:r,s:i,l:a}=hsvToHsl(e),o=`${Math.round(r)} ${Math.round(i)}% ${Math.round(a)}%`;return t?`hsl(${o} / ${round(e.a,2)})`:`hsl(${o})`}function round(e,t){let r=10**t;return Math.round(e*r)/r}function rgbToHsv({r:e,g:t,b:r,a:i}){let a=e/255,o=t/255,s=r/255,c=Math.max(a,o,s),l=c-Math.min(a,o,s),u=0;return l!==0&&(u=c===a?(o-s)/l%6:c===o?(s-a)/l+2:(a-o)/l+4,u*=60,u<0&&(u+=360)),{h:u,s:c===0?0:l/c*100,v:c*100,a:i}}function hsvToRgb({h:e,s:t,v:r,a:i}){let a=clamp(t,0,100)/100,o=clamp(r,0,100)/100,s=(e%360+360)%360,c=o*a,l=c*(1-Math.abs(s/60%2-1)),u=o-c,d=0,f=0,p=0;return s<60?[d,f,p]=[c,l,0]:s<120?[d,f,p]=[l,c,0]:s<180?[d,f,p]=[0,c,l]:s<240?[d,f,p]=[0,l,c]:s<300?[d,f,p]=[l,0,c]:[d,f,p]=[c,0,l],{r:(d+u)*255,g:(f+u)*255,b:(p+u)*255,a:i}}function hsvToHsl({h:e,s:t,v:r,a:i}){let a=clamp(t,0,100)/100,o=clamp(r,0,100)/100,s=o*(1-a/2);return{h:e,s:(s===0||s===1?0:(o-s)/Math.min(s,1-s))*100,l:s*100,a:i}}function formatColor(e,t,r){return t===`rgb`?toRgbString(hsvToRgb(e),r):t===`hsl`?toHslString(e,r):toHex(hsvToRgb(e),r)}function parseColor(e){let t=e.trim(),r=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:\s*[/,]\s*([\d.%]+))?\s*\)$/i.exec(t);if(r)return rgbToHsv({r:Number(r[1]),g:Number(r[2]),b:Number(r[3]),a:parseAlpha(r[4])});let i=/^hsla?\(\s*([\d.]+)(?:deg)?[\s,]+([\d.]+)%[\s,]+([\d.]+)%(?:\s*[/,]\s*([\d.%]+))?\s*\)$/i.exec(t);if(i)return hslToHsv(Number(i[1]),Number(i[2]),Number(i[3]),parseAlpha(i[4]));let a=parseHex(t);return a?rgbToHsv(a):null}function parseAlpha(e){if(e===void 0)return 1;let t=e.endsWith(`%`)?Number(e.slice(0,-1))/100:Number(e);return Number.isNaN(t)?1:clamp(t,0,1)}function hslToHsv(e,t,r,i){let a=clamp(t,0,100)/100,o=clamp(r,0,100)/100,s=o+a*Math.min(o,1-o);return{h:e,s:s===0?0:2*(1-o/s)*100,v:s*100,a:i}}function sameColor(e,t){let r=parseColor(e),i=parseColor(t);if(!r||!i)return!1;let a=hsvToRgb(r),o=hsvToRgb(i);return Math.round(a.r)===Math.round(o.r)&&Math.round(a.g)===Math.round(o.g)&&Math.round(a.b)===Math.round(o.b)&&Math.round(a.a*255)===Math.round(o.a*255)}export{clamp,formatColor,hsvToRgb,parseColor,sameColor,toHex};
@@ -1,170 +1 @@
1
- "use client";
2
-
3
- import e from "./combobox.module.js";
4
- import { useId as t, useRef as n } from "react";
5
- import { cn as r, createMachine as i, focusElement as ee, useControllableSignal as a, useMachine as o, useSignal as s, useSignalEffect as c, useSignals as te } from "@cascivo/core";
6
- import { builtin as l, t as u } from "@cascivo/i18n";
7
- import { jsx as d, jsxs as f } from "react/jsx-runtime";
8
- //#region ../components/src/combobox/combobox.tsx
9
- var p = i({
10
- initial: "closed",
11
- states: {
12
- closed: { on: { OPEN: "open" } },
13
- open: { on: { CLOSE: "closed" } }
14
- }
15
- });
16
- function m(...e) {
17
- return e.filter(Boolean).join(" ") || void 0;
18
- }
19
- function h({ options: i, value: h, defaultValue: g, onValueChange: ne, clearable: _ = !1, searchable: v = !0, label: y, ariaLabel: b, hint: x, error: S, size: re = "md", disabled: C = !1, labels: w, className: T, id: E, "aria-labelledby": D, "aria-describedby": O, "aria-invalid": k }) {
20
- te();
21
- let [A, j] = o(p), M = t(), N = E ?? `cascade-combobox-${M}`, P = `${M}-listbox`, F = n(null), I = w?.placeholder ?? u(l.combobox.placeholder), L = w?.empty ?? u(l.combobox.empty), R = w?.clear ?? u(l.combobox.clear), z = w?.search ?? u(l.combobox.search), [B] = a({
22
- value: h,
23
- defaultValue: g
24
- }), V = s(""), H = s(0), U = A.value === "open", W = i.filter((e) => !v || !V.value ? !0 : e.label.toLowerCase().includes(V.value.toLowerCase())), G = i.find((e) => e.value === B.value);
25
- c(() => {
26
- if (!U) return;
27
- let e = (e) => {
28
- let t = document.getElementById(`${M}-root`);
29
- t && !t.contains(e.target) && j("CLOSE");
30
- };
31
- return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
32
- });
33
- let K = () => {
34
- C || (V.value = "", H.value = 0, j("OPEN"), setTimeout(() => ee(F.current), 0));
35
- }, q = () => {
36
- j("CLOSE"), V.value = "";
37
- }, J = ne, Y = (e) => {
38
- h === void 0 && (B.value = e), J?.(e), q();
39
- }, X = () => {
40
- h === void 0 && (B.value = void 0), J?.(void 0);
41
- }, Z = W.flatMap((e, t) => e.disabled ? [] : [t]), Q = (e) => {
42
- if (Z.length === 0) return;
43
- let t = Z[(Z.indexOf(H.value) + e + Z.length) % Z.length];
44
- t !== void 0 && (H.value = t);
45
- }, ie = (e) => {
46
- (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") && (e.preventDefault(), K());
47
- }, ae = (e) => {
48
- switch (e.key) {
49
- case "ArrowDown":
50
- e.preventDefault(), Q(1);
51
- break;
52
- case "ArrowUp":
53
- e.preventDefault(), Q(-1);
54
- break;
55
- case "Enter": {
56
- e.preventDefault();
57
- let t = W[H.value];
58
- t && !t.disabled && Y(t.value);
59
- break;
60
- }
61
- case "Escape":
62
- e.preventDefault(), q();
63
- break;
64
- case "Tab":
65
- q();
66
- break;
67
- }
68
- }, $ = (e) => `${M}-option-${e}`;
69
- return /* @__PURE__ */ f("div", {
70
- id: `${M}-root`,
71
- className: r(e.wrapper, T),
72
- "data-state": S ? "error" : A.value,
73
- "data-size": re,
74
- children: [
75
- y && /* @__PURE__ */ d("label", {
76
- className: e.label,
77
- htmlFor: N,
78
- children: y
79
- }),
80
- /* @__PURE__ */ f("div", {
81
- className: e.field,
82
- children: [/* @__PURE__ */ f("button", {
83
- id: N,
84
- type: "button",
85
- role: "combobox",
86
- "aria-expanded": U,
87
- "aria-controls": P,
88
- "aria-haspopup": "listbox",
89
- "aria-labelledby": D,
90
- "aria-label": b,
91
- "aria-activedescendant": U && H.value >= 0 ? $(H.value) : void 0,
92
- "aria-invalid": S ? !0 : k,
93
- "aria-describedby": m(S ? `${M}-error` : x ? `${M}-hint` : void 0, O),
94
- className: e.trigger,
95
- disabled: C,
96
- onKeyDown: ie,
97
- onClick: U ? q : K,
98
- children: [/* @__PURE__ */ d("span", {
99
- className: r(e.value, G ? void 0 : e.placeholder),
100
- children: G?.label ?? I
101
- }), /* @__PURE__ */ d("span", {
102
- className: e.chevron,
103
- "aria-hidden": "true"
104
- })]
105
- }), _ && B.value !== void 0 && /* @__PURE__ */ d("button", {
106
- type: "button",
107
- className: e.clear,
108
- "aria-label": R,
109
- onClick: (e) => {
110
- e.stopPropagation(), X();
111
- },
112
- children: "✕"
113
- })]
114
- }),
115
- /* @__PURE__ */ f("div", {
116
- role: "listbox",
117
- id: P,
118
- className: e.listbox,
119
- "data-state": U ? "open" : "closed",
120
- "aria-label": y,
121
- children: [v && U && /* @__PURE__ */ d("div", {
122
- className: e.searchWrapper,
123
- children: /* @__PURE__ */ d("input", {
124
- ref: F,
125
- type: "text",
126
- className: e.search,
127
- value: V.value,
128
- onChange: (e) => {
129
- V.value = e.target.value, H.value = 0;
130
- },
131
- onKeyDown: ae,
132
- "aria-label": z,
133
- autoComplete: "off"
134
- })
135
- }), W.length === 0 ? /* @__PURE__ */ d("div", {
136
- className: e.empty,
137
- children: L
138
- }) : W.map((t, n) => /* @__PURE__ */ d("div", {
139
- id: $(n),
140
- role: "option",
141
- "aria-selected": t.value === B.value,
142
- "aria-disabled": t.disabled || void 0,
143
- "data-state": n === H.value ? "active" : void 0,
144
- "data-disabled": t.disabled || void 0,
145
- className: e.option,
146
- onMouseEnter: () => {
147
- t.disabled || (H.value = n);
148
- },
149
- onClick: () => {
150
- t.disabled || Y(t.value);
151
- },
152
- children: t.label
153
- }, t.value))]
154
- }),
155
- S && /* @__PURE__ */ d("span", {
156
- id: `${M}-error`,
157
- className: e.error,
158
- role: "alert",
159
- children: S
160
- }),
161
- !S && x && /* @__PURE__ */ d("span", {
162
- id: `${M}-hint`,
163
- className: e.hint,
164
- children: x
165
- })
166
- ]
167
- });
168
- }
169
- //#endregion
170
- export { h as Combobox };
1
+ "use client";import{activeForValue as e,firstActive as t,lastActive as n,moveActive as r,pageActive as i}from"./list-nav.js";import{filterOptions as a,groupOptions as ee,highlightSegments as te,isNewLabel as o,orderByGroup as s,typeaheadIndex as ne}from"./option-list.js";import c from"./combobox.module.js";import{useId as re,useRef as l}from"react";import{DismissableLayer as ie,cn as u,focusElement as d,useControllableSignal as f,useSignal as p,useSignalEffect as ae,useSignals as oe,useTypeahead as se}from"@cascivo/core";import{builtin as m,t as h}from"@cascivo/i18n";import{jsx as g,jsxs as _}from"react/jsx-runtime";function mergeDescribedBy(...e){return e.filter(Boolean).join(` `)||void 0}function Combobox({options:v,value:ce,defaultValue:y,onValueChange:le,clearable:ue=!1,searchable:b=!0,label:x,ariaLabel:S,hint:C,error:w,size:de=`md`,disabled:T=!1,loading:E=!1,onSearchChange:D,filter:O,creatable:k=!1,onCreate:fe,name:A,required:pe,open:me,defaultOpen:he,onOpenChange:ge,labels:j,className:_e,id:ve,"aria-labelledby":M,"aria-describedby":N,"aria-invalid":P}){oe();let F=re(),I=ve??`cascade-combobox-${F}`,L=`${F}-listbox`,ye=`${F}-status`,optionId=e=>`${F}-option-${e}`,R=l(null),z=l(null),[be,B]=f({value:ce,defaultValue:y,onChange:le}),[V,H]=f({value:me,defaultValue:he??!1,onChange:ge}),U=p(``),W=p(-1),G=V.value,K=be.value,q=U.value,J=s(a(v,b?q:``,O)),Y=k&&q.trim()!==``&&o(v,q.trim()),X=Y?J.length:-1,xe=ee(J),Z=v.find(e=>e.value===K),Q=j?.placeholder??h(m.combobox.placeholder),Se=j?.empty??h(m.combobox.empty),Ce=j?.clear??h(m.combobox.clear),we=j?.loading??h(m.combobox.loading),createLabel=e=>j?.create?j.create.replaceAll(`{label}`,e):h(m.combobox.create,{label:e}),Te=mergeDescribedBy(w?`${F}-error`:C?`${F}-hint`:void 0,N);function openList(t=`value`){T||(W.value=t===`value`?e(J,K):-1,H(!0))}function closeList(e=!0){H(!1),U.value=``,W.value=-1,e&&d(R.current)}function select(e){B(e),closeList()}function clear(){B(void 0),U.value=``,D?.(``),d(R.current)}function activate(e){if(e===X&&Y){fe?.(q.trim()),closeList();return}let t=J[e];t&&!t.disabled&&select(t.value)}let Ee=se({onMatch:e=>{let t=G?J:v,n=ne(t,e,G?W.value:-1);if(n!==-1)if(G)W.value=n;else{let e=t[n];e&&B(e.value)}}});ae(()=>{let e=W.value;if(!V.value||e<0)return;let t=z.current?.querySelector(`#${CSS.escape(optionId(e))}`);t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`nearest`})});function handleKeyDown(e){if(T)return;let a=Y?[...J,{value:``,label:q}]:J;if(e.altKey&&e.key===`ArrowDown`){e.preventDefault(),G||openList(`none`);return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),G&&closeList();return}switch(e.key){case`ArrowDown`:e.preventDefault(),G?W.value=r(W.value,1,a):openList();break;case`ArrowUp`:e.preventDefault(),G?W.value=r(W.value,-1,a):openList();break;case`Home`:if(b||!G)break;e.preventDefault(),W.value=t(a);break;case`End`:if(b||!G)break;e.preventDefault(),W.value=n(a);break;case`PageDown`:if(!G)break;e.preventDefault(),W.value=i(W.value,1,a);break;case`PageUp`:if(!G)break;e.preventDefault(),W.value=i(W.value,-1,a);break;case`Enter`:if(!G)break;e.preventDefault(),W.value>=0&&activate(W.value);break;case` `:if(b)break;e.preventDefault(),G&&W.value>=0?activate(W.value):openList();break;case`Escape`:if(!G)break;e.preventDefault(),e.stopPropagation(),closeList();break;case`Tab`:G&&closeList(!1);break}!b&&e.key!==` `&&Ee.onKeyDown(e)}function renderOption(e,t){let n=e.value===K;return _(`div`,{id:optionId(t),role:`option`,"aria-selected":n,"aria-disabled":e.disabled||void 0,"data-state":t===W.value?`active`:void 0,"data-disabled":e.disabled||void 0,className:c.option,onMouseDown:e=>e.preventDefault(),onClick:()=>{e.disabled||select(e.value)},onMouseEnter:()=>{e.disabled||(W.value=t)},children:[g(`span`,{className:c.optionLabel,children:te(e.label,b?q:``).map((e,t)=>e.match?g(`mark`,{className:c.match,children:e.text},t):g(`span`,{children:e.text},t))}),g(`span`,{className:c.check,"aria-hidden":`true`})]},e.value)}let $={id:I,role:`combobox`,"aria-expanded":G,"aria-controls":L,"aria-haspopup":`listbox`,"aria-activedescendant":G&&W.value>=0?optionId(W.value):void 0,"aria-labelledby":M,"aria-label":S,"aria-invalid":w?!0:P,"aria-describedby":Te,"aria-required":pe||void 0,disabled:T,onKeyDown:handleKeyDown};return g(ie,{onDismiss:()=>G&&closeList(!1),children:_(`div`,{className:u(c.wrapper,_e),"data-state":w?`error`:G?`open`:`closed`,"data-size":de,children:[x&&g(`label`,{className:c.label,htmlFor:I,children:x}),_(`div`,{className:c.field,children:[b?g(`input`,{...$,ref:R,type:`text`,className:c.trigger,autoComplete:`off`,"aria-autocomplete":`list`,placeholder:Q,value:G?q:Z?.label??``,onChange:e=>{let n=e.currentTarget.value;U.value=n,D?.(n),G||H(!0);let r=s(a(v,n,O)),i=t(r);W.value=i===-1&&k&&n.trim()!==``&&o(v,n.trim())?r.length:i},onClick:()=>{G||openList()}}):g(`button`,{...$,ref:R,type:`button`,className:c.trigger,onClick:()=>G?closeList():openList(),children:g(`span`,{className:u(c.value,Z?void 0:c.placeholder),children:Z?.label??Q})}),ue&&K!==void 0&&!T&&g(`button`,{type:`button`,className:c.clear,"aria-label":Ce,onClick:e=>{e.stopPropagation(),clear()},children:g(`span`,{className:c.clearGlyph,"aria-hidden":`true`})}),g(`span`,{className:c.chevron,"aria-hidden":`true`})]}),A!==void 0&&g(`input`,{type:`hidden`,name:A,value:K??``}),_(`div`,{className:c.popup,"data-state":G?`open`:`closed`,children:[_(`div`,{ref:z,role:`listbox`,id:L,className:c.listbox,"aria-label":S??x??Q,"aria-busy":E||void 0,children:[xe.map(e=>e.label===void 0?e.entries.map(({option:e,index:t})=>renderOption(e,t)):_(`div`,{role:`group`,"aria-label":e.label,className:c.group,children:[g(`span`,{className:c.groupLabel,"aria-hidden":`true`,children:e.label}),e.entries.map(({option:e,index:t})=>renderOption(e,t))]},e.label)),Y&&g(`div`,{id:optionId(X),role:`option`,"aria-selected":!1,"data-state":X===W.value?`active`:void 0,className:u(c.option,c.create),onMouseDown:e=>e.preventDefault(),onClick:()=>activate(X),onMouseEnter:()=>{W.value=X},children:createLabel(q.trim())})]}),E?g(`div`,{className:c.empty,role:`status`,children:we}):J.length===0&&!Y?g(`div`,{className:c.empty,role:`status`,children:Se}):null]}),g(`span`,{id:ye,className:c.srOnly,role:`status`,"aria-live":`polite`,children:G&&!E?h(m.combobox.resultCount,{count:String(J.length)}):``}),w&&g(`span`,{id:`${F}-error`,className:c.error,role:`alert`,children:w}),!w&&C&&g(`span`,{id:`${F}-hint`,className:c.hint,children:C})]})})}export{Combobox};
@@ -1,19 +1 @@
1
- var e = {
2
- wrapper: "_wrapper_bu0jy_2",
3
- label: "_label_bu0jy_14",
4
- field: "_field_bu0jy_20",
5
- trigger: "_trigger_bu0jy_26",
6
- value: "_value_bu0jy_74",
7
- placeholder: "_placeholder_bu0jy_80",
8
- chevron: "_chevron_bu0jy_84",
9
- clear: "_clear_bu0jy_100",
10
- listbox: "_listbox_bu0jy_126",
11
- searchWrapper: "_searchWrapper_bu0jy_160",
12
- search: "_search_bu0jy_160",
13
- option: "_option_bu0jy_182",
14
- empty: "_empty_bu0jy_205",
15
- error: "_error_bu0jy_212",
16
- hint: "_hint_bu0jy_217"
17
- };
18
- //#endregion
19
- export { e as default };
1
+ var e={wrapper:`_wrapper_2bu0b_3`,label:`_label_2bu0b_23`,field:`_field_2bu0b_29`,trigger:`_trigger_2bu0b_35`,value:`_value_2bu0b_90`,placeholder:`_placeholder_2bu0b_96`,chevron:`_chevron_2bu0b_100`,clear:`_clear_2bu0b_120`,clearGlyph:`_clearGlyph_2bu0b_140`,popup:`_popup_2bu0b_158`,listbox:`_listbox_2bu0b_192`,group:`_group_2bu0b_196`,groupLabel:`_groupLabel_2bu0b_200`,option:`_option_2bu0b_211`,optionLabel:`_optionLabel_2bu0b_241`,match:`_match_2bu0b_248`,check:`_check_2bu0b_257`,create:`_create_2bu0b_275`,empty:`_empty_2bu0b_280`,error:`_error_2bu0b_287`,hint:`_hint_2bu0b_292`,srOnly:`_srOnly_2bu0b_297`};export{e as default};
@@ -0,0 +1 @@
1
+ function enabledIndexes(e){let t=[];return e.forEach((e,n)=>{e.disabled||t.push(n)}),t}function moveActive(e,t,n){let r=enabledIndexes(n);if(r.length===0)return-1;let i=r.indexOf(e);return i===-1?t>0?r[0]:r[r.length-1]:r[(i+t+r.length)%r.length]}function firstActive(e){return enabledIndexes(e)[0]??-1}function lastActive(e){let t=enabledIndexes(e);return t[t.length-1]??-1}function pageActive(e,t,n){let r=enabledIndexes(n);if(r.length===0)return-1;let i=r.indexOf(e),a=i===-1?t>0?-1:r.length:i;return r[Math.min(Math.max(a+t*10,0),r.length-1)]}function activeForValue(e,t){if(t!==void 0){let n=e.findIndex(e=>e.value===t&&!e.disabled);if(n!==-1)return n}return firstActive(e)}export{activeForValue,firstActive,lastActive,moveActive,pageActive};
@@ -0,0 +1 @@
1
+ function foldChar(e){return(e.normalize(`NFD`)[0]??e).toLowerCase()}function fold(e){return Array.from(e,foldChar)}function defaultMatch(e,t){let n=fold(t).join(``);return n===``?!0:fold(e.label).join(``).includes(n)||fold(e.value).join(``).includes(n)}function filterOptions(e,t,n){let r=n??defaultMatch;return t===``&&!n?e:e.filter(e=>r(e,t))}function highlightSegments(e,t){let n=fold(t).join(``);if(n===``)return[{text:e,match:!1}];let r=Array.from(e),i=fold(e).join(``).indexOf(n);if(i===-1)return[{text:e,match:!1}];let a=Array.from(t).length,o=[],s=r.slice(0,i).join(``),c=r.slice(i,i+a).join(``),l=r.slice(i+a).join(``);return s!==``&&o.push({text:s,match:!1}),o.push({text:c,match:!0}),l!==``&&o.push({text:l,match:!1}),o}function groupOptions(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=e.group,a=n.get(i);a||(a={label:i,entries:[]},n.set(i,a),t.push(a)),a.entries.push({option:e,index:r})}),t.sort((e,t)=>Number(e.label!==void 0)-Number(t.label!==void 0))}function orderByGroup(e){return groupOptions(e).flatMap(e=>e.entries.map(e=>e.option))}function isNewLabel(e,t){let n=fold(t).join(``);return n===``?!1:!e.some(e=>fold(e.label).join(``)===n)}function typeaheadIndex(e,t,n){let r=fold(t).join(``);if(r===``||e.length===0)return-1;let i=e.map((t,r)=>(n+1+r)%e.length),a=i.find(t=>{let n=e[t];return n&&!n.disabled&&fold(n.label).join(``).startsWith(r)});return a===void 0?i.find(t=>{let n=e[t];return n&&!n.disabled&&fold(n.label).join(``).includes(r)})??-1:a}export{filterOptions,groupOptions,highlightSegments,isNewLabel,orderByGroup,typeaheadIndex};