@vjdesigns/vjdesigns-ui 2.4.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +45 -1
  3. package/dist/ai/llms-full.txt +141 -76
  4. package/dist/ai/registry.json +125 -61
  5. package/dist/components/data-display/Accordion/Accordion.cjs.js +1 -1
  6. package/dist/components/data-display/Accordion/Accordion.mjs +22 -22
  7. package/dist/components/data-display/Accordion/Accordion.module.css.mjs +1 -2
  8. package/dist/components/data-display/Avatar/Avatar.cjs.js +1 -1
  9. package/dist/components/data-display/Avatar/Avatar.mjs +92 -92
  10. package/dist/components/data-display/Avatar/Avatar.module.css.mjs +1 -2
  11. package/dist/components/data-display/Badge/Badge.cjs.js +1 -1
  12. package/dist/components/data-display/Badge/Badge.mjs +2 -2
  13. package/dist/components/data-display/Badge/Badge.module.css.mjs +1 -2
  14. package/dist/components/data-display/Card/Card.cjs.js +1 -1
  15. package/dist/components/data-display/Card/Card.mjs +2 -2
  16. package/dist/components/data-display/Card/Card.module.css.mjs +1 -2
  17. package/dist/components/data-display/Carousel/Carousel.cjs.js +1 -1
  18. package/dist/components/data-display/Carousel/Carousel.mjs +42 -42
  19. package/dist/components/data-display/Carousel/Carousel.module.css.mjs +1 -2
  20. package/dist/components/data-display/Chat/Chat.cjs.js +1 -1
  21. package/dist/components/data-display/Chat/Chat.mjs +114 -118
  22. package/dist/components/data-display/Chat/Chat.module.css.mjs +1 -2
  23. package/dist/components/data-display/Chat/streams.mjs +1 -2
  24. package/dist/components/data-display/Chip/Chip.cjs.js +1 -1
  25. package/dist/components/data-display/Chip/Chip.mjs +50 -54
  26. package/dist/components/data-display/Chip/Chip.module.css.mjs +1 -2
  27. package/dist/components/data-display/CodeBlock/CodeBlock.cjs.js +4 -4
  28. package/dist/components/data-display/CodeBlock/CodeBlock.mjs +113 -113
  29. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.mjs +1 -2
  30. package/dist/components/data-display/CodeBlock/tokenize.mjs +1 -2
  31. package/dist/components/data-display/DataGrid/DataGrid.cjs.js +1 -1
  32. package/dist/components/data-display/DataGrid/DataGrid.d.ts +59 -3
  33. package/dist/components/data-display/DataGrid/DataGrid.mjs +382 -272
  34. package/dist/components/data-display/DataGrid/DataGrid.module.css.cjs.js +1 -1
  35. package/dist/components/data-display/DataGrid/DataGrid.module.css.mjs +29 -26
  36. package/dist/components/data-display/DataGrid/dataGridUtils.cjs.js +1 -1
  37. package/dist/components/data-display/DataGrid/dataGridUtils.d.ts +18 -0
  38. package/dist/components/data-display/DataGrid/dataGridUtils.mjs +100 -32
  39. package/dist/components/data-display/EmptyState/EmptyState.cjs.js +1 -1
  40. package/dist/components/data-display/EmptyState/EmptyState.mjs +53 -53
  41. package/dist/components/data-display/EmptyState/EmptyState.module.css.mjs +1 -2
  42. package/dist/components/data-display/Image/Image.cjs.js +1 -1
  43. package/dist/components/data-display/Image/Image.mjs +6 -6
  44. package/dist/components/data-display/Image/Image.module.css.mjs +1 -2
  45. package/dist/components/data-display/List/List.cjs.js +1 -1
  46. package/dist/components/data-display/List/List.mjs +68 -68
  47. package/dist/components/data-display/List/List.module.css.mjs +1 -2
  48. package/dist/components/data-display/Stat/Stat.cjs.js +1 -1
  49. package/dist/components/data-display/Stat/Stat.mjs +112 -112
  50. package/dist/components/data-display/Stat/Stat.module.css.mjs +1 -2
  51. package/dist/components/data-display/Table/Table.cjs.js +1 -1
  52. package/dist/components/data-display/Table/Table.mjs +187 -183
  53. package/dist/components/data-display/Table/Table.module.css.mjs +1 -2
  54. package/dist/components/data-display/Table/useTable.cjs.js +1 -1
  55. package/dist/components/data-display/Table/useTable.mjs +2 -2
  56. package/dist/components/data-display/Timeline/Timeline.cjs.js +1 -1
  57. package/dist/components/data-display/Timeline/Timeline.mjs +64 -64
  58. package/dist/components/data-display/Timeline/Timeline.module.css.mjs +1 -2
  59. package/dist/components/data-display/TreeView/TreeView.cjs.js +1 -1
  60. package/dist/components/data-display/TreeView/TreeView.mjs +107 -119
  61. package/dist/components/data-display/TreeView/TreeView.module.css.mjs +1 -2
  62. package/dist/components/data-display/TreeView/treeUtils.mjs +1 -2
  63. package/dist/components/data-display/VirtualList/VirtualList.cjs.js +1 -1
  64. package/dist/components/data-display/VirtualList/VirtualList.mjs +2 -2
  65. package/dist/components/data-display/VirtualList/VirtualList.module.css.mjs +1 -2
  66. package/dist/components/feedback/Alert/Alert.cjs.js +1 -1
  67. package/dist/components/feedback/Alert/Alert.mjs +56 -56
  68. package/dist/components/feedback/Alert/Alert.module.css.mjs +1 -2
  69. package/dist/components/feedback/Banner/Banner.cjs.js +1 -1
  70. package/dist/components/feedback/Banner/Banner.mjs +48 -48
  71. package/dist/components/feedback/Banner/Banner.module.css.mjs +1 -2
  72. package/dist/components/feedback/ErrorSummary/ErrorSummary.cjs.js +1 -1
  73. package/dist/components/feedback/ErrorSummary/ErrorSummary.mjs +10 -10
  74. package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.mjs +1 -2
  75. package/dist/components/feedback/Progress/Progress.cjs.js +1 -1
  76. package/dist/components/feedback/Progress/Progress.mjs +2 -2
  77. package/dist/components/feedback/Progress/Progress.module.css.mjs +1 -2
  78. package/dist/components/feedback/Skeleton/Skeleton.cjs.js +1 -1
  79. package/dist/components/feedback/Skeleton/Skeleton.mjs +73 -73
  80. package/dist/components/feedback/Skeleton/Skeleton.module.css.mjs +1 -2
  81. package/dist/components/feedback/Spinner/Spinner.cjs.js +1 -1
  82. package/dist/components/feedback/Spinner/Spinner.mjs +29 -29
  83. package/dist/components/feedback/Spinner/Spinner.module.css.mjs +1 -2
  84. package/dist/components/feedback/Toast/Toast.cjs.js +1 -1
  85. package/dist/components/feedback/Toast/Toast.mjs +42 -42
  86. package/dist/components/feedback/Toast/Toast.module.css.mjs +1 -2
  87. package/dist/components/feedback/Toast/ToastItem.cjs.js +1 -1
  88. package/dist/components/feedback/Toast/ToastItem.mjs +10 -10
  89. package/dist/components/feedback/Toast/ToastProvider.cjs.js +1 -1
  90. package/dist/components/feedback/Toast/ToastProvider.mjs +11 -11
  91. package/dist/components/feedback/Toast/ToastViewport.cjs.js +1 -1
  92. package/dist/components/feedback/Toast/ToastViewport.mjs +30 -30
  93. package/dist/components/feedback/Toast/toastStore.mjs +1 -2
  94. package/dist/components/feedback/Toast/toastTiming.cjs.js +1 -1
  95. package/dist/components/feedback/Toast/toastTiming.mjs +2 -2
  96. package/dist/components/feedback/Toast/useToast.cjs.js +1 -1
  97. package/dist/components/feedback/Toast/useToast.mjs +2 -2
  98. package/dist/components/feedback/Toast/useToastAnnouncer.cjs.js +1 -1
  99. package/dist/components/feedback/Toast/useToastAnnouncer.mjs +2 -2
  100. package/dist/components/forms/CheckBox/CheckBox.cjs.js +1 -1
  101. package/dist/components/forms/CheckBox/CheckBox.mjs +2 -2
  102. package/dist/components/forms/CheckBox/CheckBox.module.css.mjs +1 -2
  103. package/dist/components/forms/ColorPicker/ColorInput.cjs.js +1 -1
  104. package/dist/components/forms/ColorPicker/ColorInput.mjs +43 -43
  105. package/dist/components/forms/ColorPicker/ColorPicker.cjs.js +1 -1
  106. package/dist/components/forms/ColorPicker/ColorPicker.mjs +153 -153
  107. package/dist/components/forms/ColorPicker/ColorPicker.module.css.mjs +1 -2
  108. package/dist/components/forms/ColorPicker/colorUtils.mjs +1 -2
  109. package/dist/components/forms/Combobox/Combobox.cjs.js +1 -1
  110. package/dist/components/forms/Combobox/Combobox.mjs +200 -213
  111. package/dist/components/forms/Combobox/Combobox.module.css.mjs +1 -2
  112. package/dist/components/forms/Combobox/ComboboxPopup.cjs.js +1 -1
  113. package/dist/components/forms/Combobox/ComboboxPopup.mjs +164 -121
  114. package/dist/components/forms/Combobox/comboboxUtils.cjs.js +1 -1
  115. package/dist/components/forms/Combobox/comboboxUtils.d.ts +4 -1
  116. package/dist/components/forms/Combobox/comboboxUtils.mjs +21 -20
  117. package/dist/components/forms/DatePicker/Calendar.cjs.js +1 -1
  118. package/dist/components/forms/DatePicker/Calendar.mjs +60 -66
  119. package/dist/components/forms/DatePicker/Calendar.module.css.mjs +1 -2
  120. package/dist/components/forms/DatePicker/DatePicker.cjs.js +1 -1
  121. package/dist/components/forms/DatePicker/DatePicker.mjs +72 -74
  122. package/dist/components/forms/DatePicker/DatePicker.module.css.mjs +1 -2
  123. package/dist/components/forms/DatePicker/DateRangePicker.cjs.js +1 -1
  124. package/dist/components/forms/DatePicker/DateRangePicker.mjs +117 -117
  125. package/dist/components/forms/DatePicker/DateRangePicker.module.css.mjs +1 -2
  126. package/dist/components/forms/DatePicker/dateUtils.mjs +1 -2
  127. package/dist/components/forms/DatePicker/index.d.ts +1 -1
  128. package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.js +1 -1
  129. package/dist/components/forms/DateTimePicker/DateTimePicker.mjs +19 -19
  130. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +1 -2
  131. package/dist/components/forms/Field/Field.cjs.js +1 -1
  132. package/dist/components/forms/Field/Field.mjs +14 -14
  133. package/dist/components/forms/Field/Field.module.css.mjs +1 -2
  134. package/dist/components/forms/Field/FieldContext.cjs.js +1 -1
  135. package/dist/components/forms/Field/FieldContext.mjs +2 -2
  136. package/dist/components/forms/FileUpload/FileUpload.cjs.js +1 -1
  137. package/dist/components/forms/FileUpload/FileUpload.mjs +250 -255
  138. package/dist/components/forms/FileUpload/FileUpload.module.css.mjs +1 -2
  139. package/dist/components/forms/Input/Input.cjs.js +1 -1
  140. package/dist/components/forms/Input/Input.mjs +35 -35
  141. package/dist/components/forms/Input/Input.module.css.mjs +1 -2
  142. package/dist/components/forms/NumberInput/NumberInput.cjs.js +1 -1
  143. package/dist/components/forms/NumberInput/NumberInput.mjs +137 -142
  144. package/dist/components/forms/NumberInput/NumberInput.module.css.mjs +1 -2
  145. package/dist/components/forms/PasswordInput/PasswordInput.cjs.js +1 -1
  146. package/dist/components/forms/PasswordInput/PasswordInput.mjs +142 -142
  147. package/dist/components/forms/PasswordInput/PasswordInput.module.css.mjs +1 -2
  148. package/dist/components/forms/PinInput/PinInput.cjs.js +1 -1
  149. package/dist/components/forms/PinInput/PinInput.mjs +12 -12
  150. package/dist/components/forms/PinInput/PinInput.module.css.mjs +1 -2
  151. package/dist/components/forms/Radio/Radio.cjs.js +1 -1
  152. package/dist/components/forms/Radio/Radio.mjs +2 -2
  153. package/dist/components/forms/Radio/Radio.module.css.mjs +1 -2
  154. package/dist/components/forms/Rating/Rating.cjs.js +1 -1
  155. package/dist/components/forms/Rating/Rating.mjs +110 -109
  156. package/dist/components/forms/Rating/Rating.module.css.mjs +1 -2
  157. package/dist/components/forms/SearchInput/SearchInput.cjs.js +1 -1
  158. package/dist/components/forms/SearchInput/SearchInput.mjs +118 -126
  159. package/dist/components/forms/SearchInput/SearchInput.module.css.mjs +1 -2
  160. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.js +1 -1
  161. package/dist/components/forms/SegmentedControl/SegmentedControl.mjs +46 -43
  162. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.js +1 -1
  163. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +2 -3
  164. package/dist/components/forms/Select/Select.cjs.js +1 -1
  165. package/dist/components/forms/Select/Select.mjs +2 -2
  166. package/dist/components/forms/Select/Select.module.css.mjs +1 -2
  167. package/dist/components/forms/Slider/Slider.cjs.js +1 -1
  168. package/dist/components/forms/Slider/Slider.mjs +2 -2
  169. package/dist/components/forms/Slider/Slider.module.css.mjs +1 -2
  170. package/dist/components/forms/Switch/Switch.cjs.js +1 -1
  171. package/dist/components/forms/Switch/Switch.mjs +39 -39
  172. package/dist/components/forms/Switch/Switch.module.css.mjs +1 -2
  173. package/dist/components/forms/TagInput/TagInput.cjs.js +1 -1
  174. package/dist/components/forms/TagInput/TagInput.mjs +197 -203
  175. package/dist/components/forms/TagInput/TagInput.module.css.mjs +1 -2
  176. package/dist/components/forms/Textarea/Textarea.cjs.js +1 -1
  177. package/dist/components/forms/Textarea/Textarea.mjs +59 -59
  178. package/dist/components/forms/Textarea/Textarea.module.css.mjs +1 -2
  179. package/dist/components/forms/TimePicker/TimePicker.cjs.js +1 -1
  180. package/dist/components/forms/TimePicker/TimePicker.mjs +65 -67
  181. package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -2
  182. package/dist/components/forms/TimePicker/index.d.ts +1 -0
  183. package/dist/components/forms/TimePicker/timeUtils.cjs.js +1 -1
  184. package/dist/components/forms/TimePicker/timeUtils.d.ts +4 -1
  185. package/dist/components/forms/TimePicker/timeUtils.mjs +43 -38
  186. package/dist/components/forms/ToggleGroup/ToggleGroup.cjs.js +1 -1
  187. package/dist/components/forms/ToggleGroup/ToggleGroup.mjs +10 -10
  188. package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.mjs +1 -2
  189. package/dist/components/layout/Box/Box.mjs +1 -2
  190. package/dist/components/layout/Box/Box.module.css.mjs +1 -2
  191. package/dist/components/layout/Container/Container.mjs +1 -2
  192. package/dist/components/layout/Container/Container.module.css.mjs +1 -2
  193. package/dist/components/layout/Divider/Divider.mjs +1 -2
  194. package/dist/components/layout/Divider/Divider.module.css.mjs +1 -2
  195. package/dist/components/layout/Flex/Flex.cjs.js +1 -1
  196. package/dist/components/layout/Flex/Flex.mjs +12 -13
  197. package/dist/components/layout/Flex/Flex.module.css.mjs +1 -2
  198. package/dist/components/layout/Grid/Grid.cjs.js +1 -1
  199. package/dist/components/layout/Grid/Grid.mjs +20 -21
  200. package/dist/components/layout/Grid/Grid.module.css.mjs +1 -2
  201. package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -1
  202. package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +17 -17
  203. package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +1 -2
  204. package/dist/components/layout/ScrollArea/ScrollArea.cjs.js +1 -1
  205. package/dist/components/layout/ScrollArea/ScrollArea.mjs +2 -2
  206. package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +1 -2
  207. package/dist/components/layout/Stack/Stack.cjs.js +1 -1
  208. package/dist/components/layout/Stack/Stack.mjs +8 -9
  209. package/dist/components/layout/Stack/Stack.module.css.mjs +1 -2
  210. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.cjs.js +1 -1
  211. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.mjs +41 -41
  212. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.mjs +1 -2
  213. package/dist/components/navigation/ContextMenu/ContextMenu.cjs.js +1 -1
  214. package/dist/components/navigation/ContextMenu/ContextMenu.mjs +48 -48
  215. package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +1 -2
  216. package/dist/components/navigation/Link/Link.cjs.js +1 -1
  217. package/dist/components/navigation/Link/Link.mjs +6 -7
  218. package/dist/components/navigation/Link/Link.module.css.mjs +1 -2
  219. package/dist/components/navigation/Menu/Menu.cjs.js +1 -1
  220. package/dist/components/navigation/Menu/Menu.mjs +11 -11
  221. package/dist/components/navigation/Menu/Menu.module.css.mjs +1 -2
  222. package/dist/components/navigation/Menu/MenuContent.cjs.js +1 -1
  223. package/dist/components/navigation/Menu/MenuContent.mjs +46 -46
  224. package/dist/components/navigation/Menu/MenuContext.cjs.js +1 -1
  225. package/dist/components/navigation/Menu/MenuContext.mjs +2 -2
  226. package/dist/components/navigation/Menu/MenuItem.cjs.js +1 -1
  227. package/dist/components/navigation/Menu/MenuItem.mjs +35 -39
  228. package/dist/components/navigation/Menu/MenuSub.cjs.js +1 -1
  229. package/dist/components/navigation/Menu/MenuSub.mjs +16 -20
  230. package/dist/components/navigation/Menu/useMenuRoot.cjs.js +1 -1
  231. package/dist/components/navigation/Menu/useMenuRoot.mjs +2 -2
  232. package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -1
  233. package/dist/components/navigation/Navbar/Navbar.mjs +111 -111
  234. package/dist/components/navigation/Navbar/Navbar.module.css.mjs +1 -2
  235. package/dist/components/navigation/Pagination/Pagination.cjs.js +1 -1
  236. package/dist/components/navigation/Pagination/Pagination.mjs +31 -35
  237. package/dist/components/navigation/Pagination/Pagination.module.css.mjs +1 -2
  238. package/dist/components/navigation/Sidebar/Sidebar.cjs.js +1 -1
  239. package/dist/components/navigation/Sidebar/Sidebar.mjs +52 -52
  240. package/dist/components/navigation/Sidebar/Sidebar.module.css.mjs +1 -2
  241. package/dist/components/navigation/Sidebar/SidebarContext.cjs.js +1 -1
  242. package/dist/components/navigation/Sidebar/SidebarContext.mjs +2 -2
  243. package/dist/components/navigation/Sidebar/SidebarParts.cjs.js +1 -1
  244. package/dist/components/navigation/Sidebar/SidebarParts.mjs +76 -80
  245. package/dist/components/navigation/SkipLink/SkipLink.cjs.js +1 -1
  246. package/dist/components/navigation/SkipLink/SkipLink.mjs +12 -12
  247. package/dist/components/navigation/SkipLink/SkipLink.module.css.mjs +1 -2
  248. package/dist/components/navigation/Stepper/Stepper.cjs.js +1 -1
  249. package/dist/components/navigation/Stepper/Stepper.mjs +46 -46
  250. package/dist/components/navigation/Stepper/Stepper.module.css.mjs +1 -2
  251. package/dist/components/navigation/Tabs/Tabs.cjs.js +1 -1
  252. package/dist/components/navigation/Tabs/Tabs.mjs +2 -2
  253. package/dist/components/navigation/Tabs/Tabs.module.css.mjs +1 -2
  254. package/dist/components/overlays/CommandPalette/CommandPalette.cjs.js +1 -1
  255. package/dist/components/overlays/CommandPalette/CommandPalette.mjs +206 -206
  256. package/dist/components/overlays/CommandPalette/CommandPalette.module.css.mjs +1 -2
  257. package/dist/components/overlays/CommandPalette/CommandPaletteContext.cjs.js +1 -1
  258. package/dist/components/overlays/CommandPalette/CommandPaletteContext.mjs +2 -2
  259. package/dist/components/overlays/CommandPalette/CommandPaletteParts.cjs.js +1 -1
  260. package/dist/components/overlays/CommandPalette/CommandPaletteParts.mjs +104 -104
  261. package/dist/components/overlays/CommandPalette/commandPaletteUtils.cjs.js +1 -1
  262. package/dist/components/overlays/CommandPalette/commandPaletteUtils.mjs +62 -60
  263. package/dist/components/overlays/Drawer/Drawer.cjs.js +1 -1
  264. package/dist/components/overlays/Drawer/Drawer.mjs +31 -31
  265. package/dist/components/overlays/Drawer/Drawer.module.css.mjs +1 -2
  266. package/dist/components/overlays/Drawer/DrawerContent.cjs.js +1 -1
  267. package/dist/components/overlays/Drawer/DrawerContent.mjs +99 -99
  268. package/dist/components/overlays/Drawer/DrawerContext.cjs.js +1 -1
  269. package/dist/components/overlays/Drawer/DrawerContext.mjs +2 -2
  270. package/dist/components/overlays/Drawer/DrawerParts.cjs.js +1 -1
  271. package/dist/components/overlays/Drawer/DrawerParts.mjs +18 -18
  272. package/dist/components/overlays/Drawer/internal.mjs +1 -2
  273. package/dist/components/overlays/Drawer/useDragToClose.cjs.js +1 -1
  274. package/dist/components/overlays/Drawer/useDragToClose.mjs +2 -2
  275. package/dist/components/overlays/HoverCard/HoverCard.cjs.js +1 -1
  276. package/dist/components/overlays/HoverCard/HoverCard.mjs +31 -31
  277. package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +1 -2
  278. package/dist/components/overlays/Modal/ConfirmModal.cjs.js +1 -1
  279. package/dist/components/overlays/Modal/ConfirmModal.mjs +21 -23
  280. package/dist/components/overlays/Modal/Modal.cjs.js +1 -1
  281. package/dist/components/overlays/Modal/Modal.mjs +47 -47
  282. package/dist/components/overlays/Modal/Modal.module.css.mjs +1 -2
  283. package/dist/components/overlays/Modal/ModalContent.cjs.js +1 -1
  284. package/dist/components/overlays/Modal/ModalContent.mjs +24 -24
  285. package/dist/components/overlays/Modal/ModalContext.cjs.js +1 -1
  286. package/dist/components/overlays/Modal/ModalContext.mjs +2 -2
  287. package/dist/components/overlays/Modal/useScrollRegion.cjs.js +1 -1
  288. package/dist/components/overlays/Modal/useScrollRegion.mjs +2 -2
  289. package/dist/components/overlays/Popover/Popover.cjs.js +1 -1
  290. package/dist/components/overlays/Popover/Popover.mjs +40 -40
  291. package/dist/components/overlays/Popover/Popover.module.css.mjs +1 -2
  292. package/dist/components/overlays/Popover/PopoverContent.cjs.js +1 -1
  293. package/dist/components/overlays/Popover/PopoverContent.mjs +39 -39
  294. package/dist/components/overlays/Popover/PopoverContext.cjs.js +1 -1
  295. package/dist/components/overlays/Popover/PopoverContext.mjs +2 -2
  296. package/dist/components/overlays/Tooltip/Tooltip.cjs.js +1 -1
  297. package/dist/components/overlays/Tooltip/Tooltip.mjs +100 -95
  298. package/dist/components/overlays/Tooltip/Tooltip.module.css.mjs +1 -2
  299. package/dist/components/primitives/Button/Button.cjs.js +1 -1
  300. package/dist/components/primitives/Button/Button.mjs +59 -63
  301. package/dist/components/primitives/Button/Button.module.css.mjs +1 -2
  302. package/dist/components/primitives/Icon/Icon.cjs.js +1 -1
  303. package/dist/components/primitives/Icon/Icon.mjs +5 -6
  304. package/dist/components/primitives/Icon/Icon.module.css.mjs +1 -2
  305. package/dist/components/primitives/Icon/IconSvg.mjs +1 -2
  306. package/dist/components/primitives/Icon/icons.mjs +1 -2
  307. package/dist/components/primitives/Kbd/Kbd.cjs.js +1 -1
  308. package/dist/components/primitives/Kbd/Kbd.mjs +30 -30
  309. package/dist/components/primitives/Kbd/Kbd.module.css.mjs +1 -2
  310. package/dist/components/primitives/Typography/Typography.mjs +1 -2
  311. package/dist/components/primitives/Typography/Typography.module.css.mjs +1 -2
  312. package/dist/components/utilities/LocaleProvider/LocaleProvider.cjs.js +1 -1
  313. package/dist/components/utilities/LocaleProvider/LocaleProvider.mjs +11 -11
  314. package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +1 -2
  315. package/dist/components/utilities/Portal/Portal.cjs.js +1 -1
  316. package/dist/components/utilities/Portal/Portal.mjs +2 -2
  317. package/dist/components/utilities/Theme/Theme.cjs.js +1 -1
  318. package/dist/components/utilities/Theme/Theme.mjs +13 -13
  319. package/dist/components/utilities/Theme/Theme.module.css.mjs +1 -2
  320. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.mjs +1 -2
  321. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.mjs +1 -2
  322. package/dist/hooks/elementSource.cjs.js +1 -1
  323. package/dist/hooks/elementSource.mjs +4 -3
  324. package/dist/hooks/useClipboard.cjs.js +1 -1
  325. package/dist/hooks/useClipboard.mjs +2 -2
  326. package/dist/hooks/useControllableState.cjs.js +1 -1
  327. package/dist/hooks/useControllableState.mjs +2 -2
  328. package/dist/hooks/useDisclosure.cjs.js +1 -1
  329. package/dist/hooks/useDisclosure.mjs +2 -2
  330. package/dist/hooks/useDismiss.cjs.js +1 -1
  331. package/dist/hooks/useDismiss.mjs +2 -2
  332. package/dist/hooks/useElementObservers.cjs.js +1 -1
  333. package/dist/hooks/useElementObservers.mjs +2 -2
  334. package/dist/hooks/useEnvironment.cjs.js +1 -1
  335. package/dist/hooks/useEnvironment.mjs +2 -2
  336. package/dist/hooks/useFloatingPosition.cjs.js +1 -1
  337. package/dist/hooks/useFloatingPosition.mjs +2 -2
  338. package/dist/hooks/useFocusTrap.cjs.js +1 -1
  339. package/dist/hooks/useFocusTrap.mjs +4 -15
  340. package/dist/hooks/useFormReset.cjs.js +1 -1
  341. package/dist/hooks/useFormReset.mjs +2 -2
  342. package/dist/hooks/useFormValidation.cjs.js +1 -1
  343. package/dist/hooks/useFormValidation.mjs +2 -2
  344. package/dist/hooks/useHotkeys.cjs.js +1 -1
  345. package/dist/hooks/useHotkeys.mjs +2 -2
  346. package/dist/hooks/useInertOutside.cjs.js +1 -1
  347. package/dist/hooks/useInertOutside.mjs +5 -9
  348. package/dist/hooks/useMediaQuery.cjs.js +1 -1
  349. package/dist/hooks/useMediaQuery.mjs +2 -2
  350. package/dist/hooks/useMergedRef.cjs.js +1 -1
  351. package/dist/hooks/useMergedRef.mjs +2 -2
  352. package/dist/hooks/useOverlayLayer.cjs.js +1 -1
  353. package/dist/hooks/useOverlayLayer.mjs +3 -3
  354. package/dist/hooks/useResponsiveValue.cjs.js +1 -1
  355. package/dist/hooks/useResponsiveValue.mjs +2 -2
  356. package/dist/hooks/useScrollLock.cjs.js +1 -1
  357. package/dist/hooks/useScrollLock.mjs +2 -2
  358. package/dist/hooks/useStorage.cjs.js +1 -1
  359. package/dist/hooks/useStorage.mjs +2 -2
  360. package/dist/hooks/useTiming.cjs.js +1 -1
  361. package/dist/hooks/useTiming.mjs +10 -15
  362. package/dist/hooks/useVirtualizer.cjs.js +1 -1
  363. package/dist/hooks/useVirtualizer.d.ts +13 -0
  364. package/dist/hooks/useVirtualizer.mjs +93 -54
  365. package/dist/i18n/en.cjs.js +1 -1
  366. package/dist/i18n/en.mjs +194 -4
  367. package/dist/i18n/merge.mjs +1 -2
  368. package/dist/i18n/plural.mjs +1 -2
  369. package/dist/i18n/types.d.ts +240 -0
  370. package/dist/index.cjs.js +1 -1
  371. package/dist/index.mjs +114 -114
  372. package/dist/locales/ar.cjs.js +1 -1
  373. package/dist/locales/ar.mjs +230 -4
  374. package/dist/locales/bn.cjs.js +1 -1
  375. package/dist/locales/bn.mjs +167 -4
  376. package/dist/locales/cs.cjs.js +1 -1
  377. package/dist/locales/cs.mjs +212 -4
  378. package/dist/locales/da.cjs.js +1 -1
  379. package/dist/locales/da.mjs +194 -4
  380. package/dist/locales/de.cjs.js +1 -1
  381. package/dist/locales/de.mjs +194 -4
  382. package/dist/locales/el.cjs.js +1 -1
  383. package/dist/locales/el.mjs +194 -4
  384. package/dist/locales/es.cjs.js +1 -1
  385. package/dist/locales/es.mjs +194 -4
  386. package/dist/locales/fa.cjs.js +1 -1
  387. package/dist/locales/fa.mjs +167 -4
  388. package/dist/locales/fi.cjs.js +1 -1
  389. package/dist/locales/fi.mjs +194 -4
  390. package/dist/locales/fr.cjs.js +1 -1
  391. package/dist/locales/fr.mjs +194 -4
  392. package/dist/locales/he.cjs.js +1 -1
  393. package/dist/locales/he.mjs +203 -4
  394. package/dist/locales/hi.cjs.js +1 -1
  395. package/dist/locales/hi.mjs +194 -4
  396. package/dist/locales/hu.cjs.js +1 -1
  397. package/dist/locales/hu.mjs +167 -4
  398. package/dist/locales/id.cjs.js +1 -1
  399. package/dist/locales/id.mjs +167 -4
  400. package/dist/locales/it.cjs.js +1 -1
  401. package/dist/locales/it.mjs +194 -4
  402. package/dist/locales/ja.cjs.js +1 -1
  403. package/dist/locales/ja.mjs +167 -4
  404. package/dist/locales/ko.cjs.js +1 -1
  405. package/dist/locales/ko.mjs +167 -4
  406. package/dist/locales/nb.cjs.js +1 -1
  407. package/dist/locales/nb.mjs +194 -4
  408. package/dist/locales/nl.cjs.js +1 -1
  409. package/dist/locales/nl.mjs +194 -4
  410. package/dist/locales/pl.cjs.js +1 -1
  411. package/dist/locales/pl.mjs +212 -4
  412. package/dist/locales/pt-BR.cjs.js +1 -1
  413. package/dist/locales/pt-BR.mjs +194 -4
  414. package/dist/locales/ro.cjs.js +1 -1
  415. package/dist/locales/ro.mjs +203 -4
  416. package/dist/locales/ru.cjs.js +1 -1
  417. package/dist/locales/ru.mjs +212 -4
  418. package/dist/locales/sv.cjs.js +1 -1
  419. package/dist/locales/sv.mjs +194 -4
  420. package/dist/locales/th.cjs.js +1 -1
  421. package/dist/locales/th.mjs +167 -4
  422. package/dist/locales/tr.cjs.js +1 -1
  423. package/dist/locales/tr.mjs +167 -4
  424. package/dist/locales/uk.cjs.js +1 -1
  425. package/dist/locales/uk.mjs +212 -4
  426. package/dist/locales/ur.cjs.js +1 -1
  427. package/dist/locales/ur.mjs +194 -4
  428. package/dist/locales/vi.cjs.js +1 -1
  429. package/dist/locales/vi.mjs +167 -4
  430. package/dist/locales/zh-Hans.cjs.js +1 -1
  431. package/dist/locales/zh-Hans.mjs +167 -4
  432. package/dist/locales/zh-Hant.cjs.js +1 -1
  433. package/dist/locales/zh-Hant.mjs +167 -4
  434. package/dist/types/common.mjs +1 -2
  435. package/dist/utils/announce.cjs.js +1 -1
  436. package/dist/utils/announce.mjs +3 -4
  437. package/dist/utils/brandPalette.mjs +1 -2
  438. package/dist/utils/clipboard.mjs +1 -2
  439. package/dist/utils/cx.mjs +1 -2
  440. package/dist/utils/fillSlot.cjs.js +1 -1
  441. package/dist/utils/fillSlot.mjs +2 -2
  442. package/dist/utils/flattenChildren.mjs +1 -2
  443. package/dist/utils/hotkeys.mjs +1 -2
  444. package/dist/utils/intl.cjs.js +1 -0
  445. package/dist/utils/intl.d.ts +10 -0
  446. package/dist/utils/intl.mjs +15 -0
  447. package/dist/utils/refs.mjs +1 -2
  448. package/dist/utils/responsive.mjs +1 -2
  449. package/dist/utils/slot.mjs +1 -2
  450. package/dist/utils/validators.mjs +1 -2
  451. package/dist/vjdesigns-ui.css +1 -1
  452. package/dist/vjdesigns-ui.css.d.ts +2 -0
  453. package/package.json +103 -90
@@ -1 +1 @@
1
- const e=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),t=require("../../../utils/cx.cjs.js"),n=require("../../../utils/flattenChildren.cjs.js"),r=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),i=require("../../primitives/Button/Button.cjs.js"),a=require("../../primitives/Icon/icons.cjs.js"),o=require("../../primitives/Icon/Icon.cjs.js"),s=require("./Carousel.module.css.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u={none:s.default.radiusNone,xs:s.default.radiusXs,sm:s.default.radiusSm,md:s.default.radiusMd,lg:s.default.radiusLg,xl:s.default.radiusXl,"2xl":s.default.radius2xl,pill:s.default.radiusPill},d={overlay:s.default.overlay,bottom:s.default.bottom},f=[`base`,`sm`,`md`,`lg`,`xl`,`2xl`];function p(e,t,n,r){if(n===void 0)return;if(typeof n!=`object`||!n){e[`--_${t}-base`]=r(n);return}let i=n,a;for(let n of f){let o=i[n];if(o===void 0)continue;let s=r(o);s!==a&&(e[`--_${t}-${n}`]=s),a=s}}var m=e=>e===0?`0%`:`var(--space-${e})`,h=(0,c.createContext)(null),ee=(0,c.createContext)(null),g=(e,t,n)=>Math.min(Math.max(e,t),n),_=`(prefers-reduced-motion: reduce)`;function v(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(_).matches}function te(){let[e,t]=(0,c.useState)(v);return(0,c.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(_),n=()=>t(e.matches);return n(),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var ne=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function y(e){let t=Array.from(e.children).filter(e=>e instanceof HTMLElement&&e.hasAttribute(`data-carousel-slide`));if(t.length===0)return null;let n=getComputedStyle(e),r=n.direction===`rtl`,i=parseFloat(n.paddingInlineStart)||0,a=e.getBoundingClientRect(),o=r?a.right-i:a.left+i,s=r?a.left+i:a.right-i,c=Math.abs(e.scrollLeft),l=Math.max(0,e.scrollWidth-e.clientWidth),u=[],d=[],f=[];for(let e of t){let t=e.getBoundingClientRect(),n=r?o-t.right:t.left-o;u.push(g(Math.round(c+n),0,l));let i=Math.max(t.left,r?s:o),a=Math.min(t.right,r?o:s)-i;d.push(a>1),f.push(a>=t.width-1)}let p=u.findIndex(e=>e>=l-1);p===-1&&(p=t.length-1);let m=0,h=1/0;return u.forEach((e,t)=>{let n=Math.abs(e-c);n<h-.5&&(h=n,m=t)}),{sign:r?-1:1,targets:u,lastStart:p,current:m,visible:d,fully:f}}function b({children:f,index:_,defaultIndex:b=0,onIndexChange:x,slidesPerView:S=1,gap:re=4,loop:C=!1,indicators:ie=!1,autoplay:w=!1,interval:T=5e3,controlsPlacement:E=`overlay`,radius:ae=`lg`,labels:oe,className:se,style:ce,onFocus:le,onPointerEnter:ue,onPointerLeave:de,...fe}){let D=e.useMessages().carousel,O=(0,c.useMemo)(()=>({...D,...oe}),[D,oe]),pe=n.flattenChildren(f),k=pe.length,[me,he]=(0,c.useState)(b),A=_!==void 0,j=A?_:me,M=(0,c.useRef)(j);M.current=j;let N=(0,c.useRef)(x);N.current=x;let P=(0,c.useId)(),F=(0,c.useRef)(null),I=(0,c.useRef)(null),L=(0,c.useRef)(null),R=(0,c.useRef)(null),z=(0,c.useRef)(j),B=(0,c.useRef)(null),[ge,_e]=(0,c.useState)([]),[ve,ye]=(0,c.useState)(Math.max(0,k-1)),[V,be]=(0,c.useState)([0,0]),xe=te(),[H,U]=(0,c.useState)(()=>w&&!v()),[Se,W]=(0,c.useState)(!1);(0,c.useEffect)(()=>{U(w&&!xe)},[w,xe]);let G=Math.max(0,Math.min(ve,k-1)),K=g(j,0,G),q=(0,c.useCallback)(e=>{e!==M.current&&(A||he(e),N.current?.(e))},[A]),J=(0,c.useCallback)(e=>{let t=F.current;if(!t)return null;let n=y(t);if(!n)return null;let r=document.activeElement;if(r&&r!==t&&t.contains(r)){let e=Array.from(t.children).filter(e=>e.hasAttribute(`data-carousel-slide`)).findIndex(e=>e.contains(r));e!==-1&&!n.visible[e]&&t.focus({preventScroll:!0})}if(_e(e=>ne(e,n.visible)?e:n.visible),ye(n.lastStart),e){let e=n.fully.indexOf(!0),t=n.fully.lastIndexOf(!0),r=e===-1?[n.current,n.current]:[e,Math.max(e,t)];be(e=>e[0]===r[0]&&e[1]===r[1]?e:r)}return n},[]),Y=(0,c.useCallback)((e,t=!1)=>{let n=F.current;if(!n)return;let r=y(n);if(!r)return;let i=g(e,0,r.targets.length-1);z.current=i,n.scrollTo({left:r.sign*r.targets[i],behavior:t||v()?`instant`:`smooth`})},[]),X=(0,c.useCallback)(e=>{let t=g(e,0,G);A||Y(t),q(t)},[q,A,G,Y]),Z=(0,c.useCallback)((e,t)=>{let n=K+e;return n<0?t?G:null:n>G?t?0:null:n},[K,G]);(0,c.useLayoutEffect)(()=>{J(!0)&&M.current>0&&Y(M.current,!0)},[]),(0,c.useLayoutEffect)(()=>{J(!0)},[k,J]),(0,c.useEffect)(()=>{let e=F.current;if(!e||typeof ResizeObserver>`u`)return;let t=e.clientWidth,n=new ResizeObserver(()=>{let n=J(!0);if(!n||e.clientWidth===t)return;t=e.clientWidth;let r=g(M.current,0,Math.max(0,n.lastStart));Y(r,!0),q(r)});return n.observe(e),()=>n.disconnect()},[q,J,Y]),(0,c.useEffect)(()=>{A&&j!==K&&N.current?.(K)},[A,j,K]),(0,c.useEffect)(()=>{K!==z.current&&Y(K)},[K,Y]),(0,c.useEffect)(()=>{let e=F.current;if(!e)return;let t=0,n,r=`onscrollend`in window,i=()=>{let e=J(!0);e&&(z.current=e.current,q(e.current))},a=()=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>J(!1)),r||(clearTimeout(n),n=setTimeout(i,150))};return e.addEventListener(`scroll`,a,{passive:!0}),r&&e.addEventListener(`scrollend`,i),()=>{cancelAnimationFrame(t),clearTimeout(n),e.removeEventListener(`scroll`,a),e.removeEventListener(`scrollend`,i)}},[q,J]);let Ce=!C&&K<=0,we=!C&&K>=G;(0,c.useLayoutEffect)(()=>{let e=document.activeElement,t=!e||e===document.body,n=(n,r,i)=>!r?.disabled||!(e===r||t&&B.current===n)?!1:(B.current=null,i&&!i.disabled?i.focus():F.current?.focus(),!0);n(`prev`,I.current,L.current)||n(`next`,L.current,I.current)},[Ce,we,k]);let Te=e=>({onFocus:()=>{B.current=e},onBlur:e=>{e.relatedTarget&&(B.current=null)}}),Ee=e=>{let t=Z(e,C);t!==null&&X(t)},De=w&&H&&!Se&&k>1;(0,c.useEffect)(()=>{if(!De)return;let e=setTimeout(()=>{let e=Z(1,!0);e!==null&&X(e)},T);return()=>clearTimeout(e)},[De,T,K,Z,X]);let Oe=e=>{if(le?.(e),!w||!H)return;let t=e.target,n=!0;try{n=t.matches(`:focus-visible`)}catch{}if(!n)return;let r=e.currentTarget,i=e.relatedTarget instanceof Node&&r.contains(e.relatedTarget);t===R.current&&i||U(!1)},ke=e=>{ue?.(e),e.pointerType===`mouse`&&W(!0)},Ae=e=>{de?.(e),W(!1)},je=e=>{if(e.target!==e.currentTarget)return;let t=getComputedStyle(e.currentTarget).direction===`rtl`,n=null;switch(e.key){case`ArrowRight`:n=Z(t?-1:1,C);break;case`ArrowLeft`:n=Z(t?1:-1,C);break;case`Home`:n=0;break;case`End`:n=G;break;default:return}e.preventDefault(),n!==null&&X(n)},Me=e=>{let t=e.currentTarget;if(e.target===t)return;let n=e.target.closest(`[data-carousel-slide]`);if(!n||n.parentElement!==t)return;let r=y(t),i=Number(n.dataset.index);r&&!r.fully[i]&&n.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:v()?`instant`:`smooth`})},Q={};p(Q,`spv`,S,e=>String(e)),p(Q,`gap`,re,m);let Ne=(0,c.useMemo)(()=>({count:k,visible:ge,labels:O}),[k,ge,O]),Pe=g(Math.max(K,V[0]),0,Math.max(0,k-1)),Fe=g(Math.max(Pe,K+(V[1]-V[0])),0,Math.max(0,k-1)),Ie=k>0?O.status(Pe+1,Fe+1,k):``,$=E===`overlay`?`soft`:`outline`;return(0,l.jsxs)(`section`,{"aria-roledescription":`carousel`,...fe,className:t.cx(s.default.root,d[E],u[ae],se),style:{...Q,...ce},"data-placement":E,onFocus:Oe,onPointerEnter:ke,onPointerLeave:Ae,children:[w&&(0,l.jsx)(i.IconButton,{ref:R,className:t.cx(s.default.control,s.default.rotation),variant:$,tone:`neutral`,"aria-label":H?O.stop:O.start,onClick:()=>U(e=>!e),children:H?(0,l.jsx)(a.PauseIcon,{}):(0,l.jsx)(a.PlayIcon,{})}),(0,l.jsx)(i.IconButton,{ref:I,className:t.cx(s.default.control,s.default.prev),variant:$,tone:`neutral`,"aria-label":O.previous,"aria-controls":P,disabled:Ce||k<2,...Te(`prev`),onClick:()=>Ee(-1),children:(0,l.jsx)(o.Icon,{name:`chevron-left`,className:s.default.directional})}),(0,l.jsx)(i.IconButton,{ref:L,className:t.cx(s.default.control,s.default.next),variant:$,tone:`neutral`,"aria-label":O.next,"aria-controls":P,disabled:we||k<2,...Te(`next`),onClick:()=>Ee(1),children:(0,l.jsx)(o.Icon,{name:`chevron-right`,className:s.default.directional})}),(0,l.jsxs)(`div`,{className:s.default.slides,children:[(0,l.jsx)(r.VisuallyHidden,{"aria-live":w&&H?`off`:`polite`,"aria-atomic":`true`,"data-carousel-status":``,children:Ie}),(0,l.jsx)(`div`,{ref:F,id:P,className:s.default.viewport,role:`group`,"aria-label":O.slides,tabIndex:0,onKeyDown:je,onFocus:Me,children:(0,l.jsx)(h.Provider,{value:Ne,children:pe.map((e,t)=>(0,l.jsx)(ee.Provider,{value:t,children:e},e.key??t))})})]}),ie&&k>1&&(0,l.jsx)(`div`,{className:s.default.indicators,role:`group`,"aria-label":O.indicators,children:Array.from({length:G+1},(e,t)=>(0,l.jsx)(`button`,{type:`button`,className:s.default.dot,"aria-label":O.goTo(t+1,k),"aria-current":t===K?`true`:void 0,"aria-controls":P,onClick:()=>X(t)},t))})]})}function x({label:e,className:n,children:r,"aria-label":i,"aria-labelledby":a,...o}){let u=(0,c.useContext)(h),d=(0,c.useContext)(ee)??0,f=u?.count??1,p=u?.visible[d]===!1,m=a?void 0:i??e??(u?u.labels.slide(d+1,f):void 0);return(0,l.jsx)(`div`,{role:`group`,"aria-roledescription":`slide`,"aria-label":m,"aria-labelledby":a,...o,className:t.cx(s.default.slide,n),"data-carousel-slide":``,"data-index":d,"data-hidden":p?``:void 0,inert:p,children:r})}var S=Object.assign(b,{Slide:x});exports.Carousel=S,exports.CarouselSlide=x;
1
+ "use client";const e=require("../../../utils/cx.cjs.js"),t=require("../../../utils/flattenChildren.cjs.js"),n=require("../../primitives/Button/Button.cjs.js"),r=require("../../primitives/Icon/Icon.cjs.js"),i=require("../../primitives/Icon/icons.cjs.js"),a=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),o=require("./Carousel.module.css.cjs.js"),s=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u={none:o.default.radiusNone,xs:o.default.radiusXs,sm:o.default.radiusSm,md:o.default.radiusMd,lg:o.default.radiusLg,xl:o.default.radiusXl,"2xl":o.default.radius2xl,pill:o.default.radiusPill},d={overlay:o.default.overlay,bottom:o.default.bottom},f=[`base`,`sm`,`md`,`lg`,`xl`,`2xl`];function p(e,t,n,r){if(n===void 0)return;if(typeof n!=`object`||!n){e[`--_${t}-base`]=r(n);return}let i=n,a;for(let n of f){let o=i[n];if(o===void 0)continue;let s=r(o);s!==a&&(e[`--_${t}-${n}`]=s),a=s}}var m=e=>e===0?`0%`:`var(--space-${e})`,h=(0,c.createContext)(null),ee=(0,c.createContext)(null),g=(e,t,n)=>Math.min(Math.max(e,t),n),_=`(prefers-reduced-motion: reduce)`;function v(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(_).matches}function te(){let[e,t]=(0,c.useState)(v);return(0,c.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(_),n=()=>t(e.matches);return n(),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var ne=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function y(e){let t=Array.from(e.children).filter(e=>e instanceof HTMLElement&&e.hasAttribute(`data-carousel-slide`));if(t.length===0)return null;let n=getComputedStyle(e),r=n.direction===`rtl`,i=parseFloat(n.paddingInlineStart)||0,a=e.getBoundingClientRect(),o=r?a.right-i:a.left+i,s=r?a.left+i:a.right-i,c=Math.abs(e.scrollLeft),l=Math.max(0,e.scrollWidth-e.clientWidth),u=[],d=[],f=[];for(let e of t){let t=e.getBoundingClientRect(),n=r?o-t.right:t.left-o;u.push(g(Math.round(c+n),0,l));let i=Math.max(t.left,r?s:o),a=Math.min(t.right,r?o:s)-i;d.push(a>1),f.push(a>=t.width-1)}let p=u.findIndex(e=>e>=l-1);p===-1&&(p=t.length-1);let m=0,h=1/0;return u.forEach((e,t)=>{let n=Math.abs(e-c);n<h-.5&&(h=n,m=t)}),{sign:r?-1:1,targets:u,lastStart:p,current:m,visible:d,fully:f}}function b({children:f,index:_,defaultIndex:b=0,onIndexChange:x,slidesPerView:S=1,gap:re=4,loop:C=!1,indicators:ie=!1,autoplay:w=!1,interval:T=5e3,controlsPlacement:E=`overlay`,radius:ae=`lg`,labels:oe,className:se,style:ce,onFocus:le,onPointerEnter:ue,onPointerLeave:de,...fe}){let D=s.useMessages().carousel,O=(0,c.useMemo)(()=>({...D,...oe}),[D,oe]),pe=t.flattenChildren(f),k=pe.length,[me,he]=(0,c.useState)(b),A=_!==void 0,j=A?_:me,M=(0,c.useRef)(j);M.current=j;let N=(0,c.useRef)(x);N.current=x;let P=(0,c.useId)(),F=(0,c.useRef)(null),I=(0,c.useRef)(null),L=(0,c.useRef)(null),R=(0,c.useRef)(null),z=(0,c.useRef)(j),B=(0,c.useRef)(null),[ge,_e]=(0,c.useState)([]),[ve,ye]=(0,c.useState)(Math.max(0,k-1)),[V,be]=(0,c.useState)([0,0]),xe=te(),[H,U]=(0,c.useState)(()=>w&&!v()),[Se,W]=(0,c.useState)(!1);(0,c.useEffect)(()=>{U(w&&!xe)},[w,xe]);let G=Math.max(0,Math.min(ve,k-1)),K=g(j,0,G),q=(0,c.useCallback)(e=>{e!==M.current&&(A||he(e),N.current?.(e))},[A]),J=(0,c.useCallback)(e=>{let t=F.current;if(!t)return null;let n=y(t);if(!n)return null;let r=document.activeElement;if(r&&r!==t&&t.contains(r)){let e=Array.from(t.children).filter(e=>e.hasAttribute(`data-carousel-slide`)).findIndex(e=>e.contains(r));e!==-1&&!n.visible[e]&&t.focus({preventScroll:!0})}if(_e(e=>ne(e,n.visible)?e:n.visible),ye(n.lastStart),e){let e=n.fully.indexOf(!0),t=n.fully.lastIndexOf(!0),r=e===-1?[n.current,n.current]:[e,Math.max(e,t)];be(e=>e[0]===r[0]&&e[1]===r[1]?e:r)}return n},[]),Y=(0,c.useCallback)((e,t=!1)=>{let n=F.current;if(!n)return;let r=y(n);if(!r)return;let i=g(e,0,r.targets.length-1);z.current=i,n.scrollTo({left:r.sign*r.targets[i],behavior:t||v()?`instant`:`smooth`})},[]),X=(0,c.useCallback)(e=>{let t=g(e,0,G);A||Y(t),q(t)},[q,A,G,Y]),Z=(0,c.useCallback)((e,t)=>{let n=K+e;return n<0?t?G:null:n>G?t?0:null:n},[K,G]);(0,c.useLayoutEffect)(()=>{J(!0)&&M.current>0&&Y(M.current,!0)},[]),(0,c.useLayoutEffect)(()=>{J(!0)},[k,J]),(0,c.useEffect)(()=>{let e=F.current;if(!e||typeof ResizeObserver>`u`)return;let t=e.clientWidth,n=new ResizeObserver(()=>{let n=J(!0);if(!n||e.clientWidth===t)return;t=e.clientWidth;let r=g(M.current,0,Math.max(0,n.lastStart));Y(r,!0),q(r)});return n.observe(e),()=>n.disconnect()},[q,J,Y]),(0,c.useEffect)(()=>{A&&j!==K&&N.current?.(K)},[A,j,K]),(0,c.useEffect)(()=>{K!==z.current&&Y(K)},[K,Y]),(0,c.useEffect)(()=>{let e=F.current;if(!e)return;let t=0,n,r=`onscrollend`in window,i=()=>{let e=J(!0);e&&(z.current=e.current,q(e.current))},a=()=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>J(!1)),r||(clearTimeout(n),n=setTimeout(i,150))};return e.addEventListener(`scroll`,a,{passive:!0}),r&&e.addEventListener(`scrollend`,i),()=>{cancelAnimationFrame(t),clearTimeout(n),e.removeEventListener(`scroll`,a),e.removeEventListener(`scrollend`,i)}},[q,J]);let Ce=!C&&K<=0,we=!C&&K>=G;(0,c.useLayoutEffect)(()=>{let e=document.activeElement,t=!e||e===document.body,n=(n,r,i)=>!r?.disabled||!(e===r||t&&B.current===n)?!1:(B.current=null,i&&!i.disabled?i.focus():F.current?.focus(),!0);n(`prev`,I.current,L.current)||n(`next`,L.current,I.current)},[Ce,we,k]);let Te=e=>({onFocus:()=>{B.current=e},onBlur:e=>{e.relatedTarget&&(B.current=null)}}),Ee=e=>{let t=Z(e,C);t!==null&&X(t)},De=w&&H&&!Se&&k>1;(0,c.useEffect)(()=>{if(!De)return;let e=setTimeout(()=>{let e=Z(1,!0);e!==null&&X(e)},T);return()=>clearTimeout(e)},[De,T,K,Z,X]);let Oe=e=>{if(le?.(e),!w||!H)return;let t=e.target,n=!0;try{n=t.matches(`:focus-visible`)}catch{}if(!n)return;let r=e.currentTarget,i=e.relatedTarget instanceof Node&&r.contains(e.relatedTarget);t===R.current&&i||U(!1)},ke=e=>{ue?.(e),e.pointerType===`mouse`&&W(!0)},Ae=e=>{de?.(e),W(!1)},je=e=>{if(e.target!==e.currentTarget)return;let t=getComputedStyle(e.currentTarget).direction===`rtl`,n=null;switch(e.key){case`ArrowRight`:n=Z(t?-1:1,C);break;case`ArrowLeft`:n=Z(t?1:-1,C);break;case`Home`:n=0;break;case`End`:n=G;break;default:return}e.preventDefault(),n!==null&&X(n)},Me=e=>{let t=e.currentTarget;if(e.target===t)return;let n=e.target.closest(`[data-carousel-slide]`);if(!n||n.parentElement!==t)return;let r=y(t),i=Number(n.dataset.index);r&&!r.fully[i]&&n.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:v()?`instant`:`smooth`})},Q={};p(Q,`spv`,S,e=>String(e)),p(Q,`gap`,re,m);let Ne=(0,c.useMemo)(()=>({count:k,visible:ge,labels:O}),[k,ge,O]),Pe=g(Math.max(K,V[0]),0,Math.max(0,k-1)),Fe=g(Math.max(Pe,K+(V[1]-V[0])),0,Math.max(0,k-1)),Ie=k>0?O.status(Pe+1,Fe+1,k):``,$=E===`overlay`?`soft`:`outline`;return(0,l.jsxs)(`section`,{"aria-roledescription":`carousel`,...fe,className:e.cx(o.default.root,d[E],u[ae],se),style:{...Q,...ce},"data-placement":E,onFocus:Oe,onPointerEnter:ke,onPointerLeave:Ae,children:[w&&(0,l.jsx)(n.IconButton,{ref:R,className:e.cx(o.default.control,o.default.rotation),variant:$,tone:`neutral`,"aria-label":H?O.stop:O.start,onClick:()=>U(e=>!e),children:H?(0,l.jsx)(i.PauseIcon,{}):(0,l.jsx)(i.PlayIcon,{})}),(0,l.jsx)(n.IconButton,{ref:I,className:e.cx(o.default.control,o.default.prev),variant:$,tone:`neutral`,"aria-label":O.previous,"aria-controls":P,disabled:Ce||k<2,...Te(`prev`),onClick:()=>Ee(-1),children:(0,l.jsx)(r.Icon,{name:`chevron-left`,className:o.default.directional})}),(0,l.jsx)(n.IconButton,{ref:L,className:e.cx(o.default.control,o.default.next),variant:$,tone:`neutral`,"aria-label":O.next,"aria-controls":P,disabled:we||k<2,...Te(`next`),onClick:()=>Ee(1),children:(0,l.jsx)(r.Icon,{name:`chevron-right`,className:o.default.directional})}),(0,l.jsxs)(`div`,{className:o.default.slides,children:[(0,l.jsx)(a.VisuallyHidden,{"aria-live":w&&H?`off`:`polite`,"aria-atomic":`true`,"data-carousel-status":``,children:Ie}),(0,l.jsx)(`div`,{ref:F,id:P,className:o.default.viewport,role:`group`,"aria-label":O.slides,tabIndex:0,onKeyDown:je,onFocus:Me,children:(0,l.jsx)(h.Provider,{value:Ne,children:pe.map((e,t)=>(0,l.jsx)(ee.Provider,{value:t,children:e},e.key??t))})})]}),ie&&k>1&&(0,l.jsx)(`div`,{className:o.default.indicators,role:`group`,"aria-label":O.indicators,children:Array.from({length:G+1},(e,t)=>(0,l.jsx)(`button`,{type:`button`,className:o.default.dot,"aria-label":O.goTo(t+1,k),"aria-current":t===K?`true`:void 0,"aria-controls":P,onClick:()=>X(t)},t))})]})}function x({label:t,className:n,children:r,"aria-label":i,"aria-labelledby":a,...s}){let u=(0,c.useContext)(h),d=(0,c.useContext)(ee)??0,f=u?.count??1,p=u?.visible[d]===!1,m=a?void 0:i??t??(u?u.labels.slide(d+1,f):void 0);return(0,l.jsx)(`div`,{role:`group`,"aria-roledescription":`slide`,"aria-label":m,"aria-labelledby":a,...s,className:e.cx(o.default.slide,n),"data-carousel-slide":``,"data-index":d,"data-hidden":p?``:void 0,inert:p,children:r})}var S=Object.assign(b,{Slide:x});exports.Carousel=S,exports.CarouselSlide=x;
@@ -1,26 +1,27 @@
1
- import { useMessages as e } from "../../utilities/LocaleProvider/LocaleProvider.mjs";
2
- import { cx as t } from "../../../utils/cx.mjs";
3
- import { flattenChildren as n } from "../../../utils/flattenChildren.mjs";
4
- import { VisuallyHidden as r } from "../../utilities/VisuallyHidden/VisuallyHidden.mjs";
5
- import { IconButton as i } from "../../primitives/Button/Button.mjs";
6
- import { PauseIcon as a, PlayIcon as o } from "../../primitives/Icon/icons.mjs";
7
- import { Icon as s } from "../../primitives/Icon/Icon.mjs";
8
- import c from "./Carousel.module.css.mjs";
1
+ "use client";
2
+ import { cx as e } from "../../../utils/cx.mjs";
3
+ import { flattenChildren as t } from "../../../utils/flattenChildren.mjs";
4
+ import { IconButton as n } from "../../primitives/Button/Button.mjs";
5
+ import { Icon as r } from "../../primitives/Icon/Icon.mjs";
6
+ import { PauseIcon as i, PlayIcon as a } from "../../primitives/Icon/icons.mjs";
7
+ import { VisuallyHidden as o } from "../../utilities/VisuallyHidden/VisuallyHidden.mjs";
8
+ import s from "./Carousel.module.css.mjs";
9
+ import { useMessages as c } from "../../utilities/LocaleProvider/LocaleProvider.mjs";
9
10
  import { createContext as l, useCallback as u, useContext as d, useEffect as f, useId as p, useLayoutEffect as m, useMemo as h, useRef as g, useState as _ } from "react";
10
11
  import { jsx as v, jsxs as ee } from "react/jsx-runtime";
11
- //#region src/components/data-display/Carousel/Carousel.tsx
12
+ // src/components/data-display/Carousel/Carousel.tsx
12
13
  var te = {
13
- none: c.radiusNone,
14
- xs: c.radiusXs,
15
- sm: c.radiusSm,
16
- md: c.radiusMd,
17
- lg: c.radiusLg,
18
- xl: c.radiusXl,
19
- "2xl": c.radius2xl,
20
- pill: c.radiusPill
14
+ none: s.radiusNone,
15
+ xs: s.radiusXs,
16
+ sm: s.radiusSm,
17
+ md: s.radiusMd,
18
+ lg: s.radiusLg,
19
+ xl: s.radiusXl,
20
+ "2xl": s.radius2xl,
21
+ pill: s.radiusPill
21
22
  }, ne = {
22
- overlay: c.overlay,
23
- bottom: c.bottom
23
+ overlay: s.overlay,
24
+ bottom: s.bottom
24
25
  }, y = [
25
26
  "base",
26
27
  "sm",
@@ -82,10 +83,10 @@ function C(e) {
82
83
  };
83
84
  }
84
85
  function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slidesPerView: le = 1, gap: w = 4, loop: T = !1, indicators: ue = !1, autoplay: E = !1, interval: de = 5e3, controlsPlacement: D = "overlay", radius: fe = "lg", labels: pe, className: me, style: he, onFocus: ge, onPointerEnter: _e, onPointerLeave: ve, ...ye }) {
85
- let O = e().carousel, k = h(() => ({
86
+ let O = c().carousel, k = h(() => ({
86
87
  ...O,
87
88
  ...pe
88
- }), [O, pe]), be = n(l), A = be.length, [xe, Se] = _(y), j = d !== void 0, M = j ? d : xe, N = g(M);
89
+ }), [O, pe]), be = t(l), A = be.length, [xe, Se] = _(y), j = d !== void 0, M = j ? d : xe, N = g(M);
89
90
  N.current = M;
90
91
  let P = g(x);
91
92
  P.current = x;
@@ -263,7 +264,7 @@ function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slid
263
264
  return /* @__PURE__ */ ee("section", {
264
265
  "aria-roledescription": "carousel",
265
266
  ...ye,
266
- className: t(c.root, ne[D], te[fe], me),
267
+ className: e(s.root, ne[D], te[fe], me),
267
268
  style: {
268
269
  ...Z,
269
270
  ...he
@@ -273,18 +274,18 @@ function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slid
273
274
  onPointerEnter: Re,
274
275
  onPointerLeave: ze,
275
276
  children: [
276
- E && /* @__PURE__ */ v(i, {
277
+ E && /* @__PURE__ */ v(n, {
277
278
  ref: Ce,
278
- className: t(c.control, c.rotation),
279
+ className: e(s.control, s.rotation),
279
280
  variant: $,
280
281
  tone: "neutral",
281
282
  "aria-label": H ? k.stop : k.start,
282
283
  onClick: () => U((e) => !e),
283
- children: v(H ? a : o, {})
284
+ children: v(H ? i : a, {})
284
285
  }),
285
- /* @__PURE__ */ v(i, {
286
+ /* @__PURE__ */ v(n, {
286
287
  ref: L,
287
- className: t(c.control, c.prev),
288
+ className: e(s.control, s.prev),
288
289
  variant: $,
289
290
  tone: "neutral",
290
291
  "aria-label": k.previous,
@@ -292,14 +293,14 @@ function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slid
292
293
  disabled: Me || A < 2,
293
294
  ...Pe("prev"),
294
295
  onClick: () => Fe(-1),
295
- children: /* @__PURE__ */ v(s, {
296
+ children: /* @__PURE__ */ v(r, {
296
297
  name: "chevron-left",
297
- className: c.directional
298
+ className: s.directional
298
299
  })
299
300
  }),
300
- /* @__PURE__ */ v(i, {
301
+ /* @__PURE__ */ v(n, {
301
302
  ref: R,
302
- className: t(c.control, c.next),
303
+ className: e(s.control, s.next),
303
304
  variant: $,
304
305
  tone: "neutral",
305
306
  "aria-label": k.next,
@@ -307,14 +308,14 @@ function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slid
307
308
  disabled: Ne || A < 2,
308
309
  ...Pe("next"),
309
310
  onClick: () => Fe(1),
310
- children: /* @__PURE__ */ v(s, {
311
+ children: /* @__PURE__ */ v(r, {
311
312
  name: "chevron-right",
312
- className: c.directional
313
+ className: s.directional
313
314
  })
314
315
  }),
315
316
  /* @__PURE__ */ ee("div", {
316
- className: c.slides,
317
- children: [/* @__PURE__ */ v(r, {
317
+ className: s.slides,
318
+ children: [/* @__PURE__ */ v(o, {
318
319
  "aria-live": E && H ? "off" : "polite",
319
320
  "aria-atomic": "true",
320
321
  "data-carousel-status": "",
@@ -322,7 +323,7 @@ function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slid
322
323
  }), /* @__PURE__ */ v("div", {
323
324
  ref: I,
324
325
  id: F,
325
- className: c.viewport,
326
+ className: s.viewport,
326
327
  role: "group",
327
328
  "aria-label": k.slides,
328
329
  tabIndex: 0,
@@ -338,12 +339,12 @@ function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slid
338
339
  })]
339
340
  }),
340
341
  ue && A > 1 && /* @__PURE__ */ v("div", {
341
- className: c.indicators,
342
+ className: s.indicators,
342
343
  role: "group",
343
344
  "aria-label": k.indicators,
344
345
  children: Array.from({ length: W + 1 }, (e, t) => /* @__PURE__ */ v("button", {
345
346
  type: "button",
346
- className: c.dot,
347
+ className: s.dot,
347
348
  "aria-label": k.goTo(t + 1, A),
348
349
  "aria-current": t === G ? "true" : void 0,
349
350
  "aria-controls": F,
@@ -353,15 +354,15 @@ function le({ children: l, index: d, defaultIndex: y = 0, onIndexChange: x, slid
353
354
  ]
354
355
  });
355
356
  }
356
- function w({ label: e, className: n, children: r, "aria-label": i, "aria-labelledby": a, ...o }) {
357
- let s = d(ae), l = d(oe) ?? 0, u = s?.count ?? 1, f = s?.visible[l] === !1, p = a ? void 0 : i ?? e ?? (s ? s.labels.slide(l + 1, u) : void 0);
357
+ function w({ label: t, className: n, children: r, "aria-label": i, "aria-labelledby": a, ...o }) {
358
+ let c = d(ae), l = d(oe) ?? 0, u = c?.count ?? 1, f = c?.visible[l] === !1, p = a ? void 0 : i ?? t ?? (c ? c.labels.slide(l + 1, u) : void 0);
358
359
  return /* @__PURE__ */ v("div", {
359
360
  role: "group",
360
361
  "aria-roledescription": "slide",
361
362
  "aria-label": p,
362
363
  "aria-labelledby": a,
363
364
  ...o,
364
- className: t(c.slide, n),
365
+ className: e(s.slide, n),
365
366
  "data-carousel-slide": "",
366
367
  "data-index": l,
367
368
  "data-hidden": f ? "" : void 0,
@@ -370,5 +371,4 @@ function w({ label: e, className: n, children: r, "aria-label": i, "aria-labelle
370
371
  });
371
372
  }
372
373
  var T = Object.assign(le, { Slide: w });
373
- //#endregion
374
374
  export { T as Carousel, w as CarouselSlide };
@@ -1,4 +1,4 @@
1
- //#region src/components/data-display/Carousel/Carousel.module.css
1
+ // src/components/data-display/Carousel/Carousel.module.css
2
2
  var e = "_root_53pdn_31", t = "_radiusNone_53pdn_155", n = "_radiusXs_53pdn_157", r = "_radiusSm_53pdn_159", i = "_radiusMd_53pdn_161", a = "_radiusLg_53pdn_163", o = "_radiusXl_53pdn_165", s = "_radius2xl_53pdn_167", c = "_radiusPill_53pdn_169", l = "_overlay_53pdn_175", u = "_control_53pdn_191", d = "_prev_53pdn_205", f = "_next_53pdn_215", p = "_rotation_53pdn_225", m = "_indicators_53pdn_237", h = "_bottom_53pdn_247", g = "_slides_53pdn_285", _ = "_viewport_53pdn_297", v = "_slide_53pdn_285", y = "_directional_53pdn_405", b = "_dot_53pdn_435", x = {
3
3
  root: e,
4
4
  radiusNone: t,
@@ -22,5 +22,4 @@ var e = "_root_53pdn_31", t = "_radiusNone_53pdn_155", n = "_radiusXs_53pdn_157"
22
22
  directional: y,
23
23
  dot: b
24
24
  };
25
- //#endregion
26
25
  export { h as bottom, u as control, x as default, y as directional, b as dot, m as indicators, f as next, l as overlay, d as prev, s as radius2xl, a as radiusLg, i as radiusMd, t as radiusNone, c as radiusPill, r as radiusSm, o as radiusXl, n as radiusXs, e as root, p as rotation, v as slide, g as slides, _ as viewport };
@@ -1 +1 @@
1
- const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),n=require("../../../hooks/useClipboard.cjs.js"),r=require("../../../hooks/useEnvironment.cjs.js"),i=require("../../../utils/cx.cjs.js"),a=require("../../../utils/announce.cjs.js"),o=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),s=require("../../primitives/Button/Button.cjs.js"),c=require("../../primitives/Icon/Icon.cjs.js"),l=require("../../layout/ScrollArea/ScrollArea.cjs.js"),ee=require("../../forms/Textarea/Textarea.cjs.js"),u=require("./Chat.module.css.cjs.js");let d=require("react"),f=require("react/jsx-runtime");var te=48,ne=typeof window<`u`?d.useLayoutEffect:d.useEffect;function re(e){return e!=null&&typeof e[Symbol.asyncIterator]==`function`}var ie=()=>(0,f.jsx)(c.Icon,{children:(0,f.jsx)(`rect`,{x:`7`,y:`7`,width:`10`,height:`10`,rx:`2`,fill:`currentColor`,stroke:`none`})}),p=({messages:p,defaultMessages:ae,onMessagesChange:oe,onSend:m,onStop:se,onError:h,draft:ce,defaultDraft:le,onDraftChange:ue,suggestions:g,emptyState:de,renderContent:_,assistantName:fe,assistantAvatar:pe,userAvatar:v,copyable:y=!0,disclaimer:b,placeholder:me,maxLength:x,disabled:S=!1,labels:he,className:ge,"aria-label":_e,...C})=>{let w={...t.useMessages().chat,...he},T=fe??w.assistant,ve=r.useReducedMotion(),E=(0,d.useId)(),D=`${E}-hint`,[O,k]=e.useControllableState({value:p,defaultValue:ae??[],onChange:oe}),A=(0,d.useRef)(O),j=(0,d.useRef)(O);O!==j.current&&(j.current=O,A.current=O);let M=(0,d.useCallback)(e=>{let t=e(A.current);A.current=t,k(t)},[k]),N=(0,d.useCallback)((e,t)=>M(n=>n.map(n=>n.id===e?{...n,...t}:n)),[M]),P=(0,d.useRef)(0),F=()=>`${E}-${++P.current}`,[I,L]=e.useControllableState({value:ce,defaultValue:le??``,onChange:ue}),[R,z]=(0,d.useState)(!1),B=(0,d.useRef)(null),V=(0,d.useRef)(null),H=(0,d.useRef)(m);H.current=m;let U=(0,d.useRef)(h);U.current=h,(0,d.useEffect)(()=>()=>B.current?.abort(),[]);let W=(0,d.useRef)(null),G=(0,d.useRef)(!0),[ye,K]=(0,d.useState)(!0),be=()=>{let e=W.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<=te;G.current=t,K(t)};ne(()=>{let e=W.current;e&&G.current&&(e.scrollTop=e.scrollHeight)},[O]);let xe=()=>{let e=W.current;e&&(G.current=!0,K(!0),e.scrollTo({top:e.scrollHeight,behavior:ve?`auto`:`smooth`}),V.current?.focus())},q=async(e,t)=>{let n=F();M(()=>[...e,{id:n,role:`assistant`,content:``,status:`streaming`}]),G.current=!0,K(!0),z(!0),a.announce(w.typing(T));let r=new AbortController;B.current=r;let i=``;try{let o=await H.current?.(t,{messages:e,signal:r.signal});if(typeof o==`string`)i=o;else if(re(o))for await(let e of o){if(r.signal.aborted)break;i+=e,N(n,{content:i})}else if(!r.signal.aborted){M(e=>e.filter(e=>e.id!==n));return}if(r.signal.aborted)throw r.signal.reason;N(n,{content:i,status:`done`}),a.announce(`${w.assistantSaid(T)} ${i}`)}catch(e){r.signal.aborted?(N(n,{content:i,status:`stopped`}),a.announce(w.stopped)):(U.current?.(e),N(n,{content:i,status:`error`}),a.announce(w.error))}finally{B.current===r&&(B.current=null),z(!1)}},J=e=>{let t=e.trim();!t||R||S||(L(``),q([...A.current,{id:F(),role:`user`,content:t,status:`done`}],t))},Y=()=>{B.current&&(B.current.abort(),se?.(),V.current?.focus())},Se=e=>{let t=A.current,n=t.findIndex(t=>t.id===e)-1;for(;n>=0&&t[n].role!==`user`;)n--;n<0||R||(q(t.slice(0,n+1),t[n].content),V.current?.focus())},X=e=>{e.preventDefault(),R?Y():J(I)},Ce=e=>{if(e.key===`Escape`&&R){e.preventDefault(),Y();return}e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),J(e.currentTarget.value))},{copy:we}=n.useClipboard(),[Z,Q]=(0,d.useState)(null);(0,d.useEffect)(()=>{if(Z===null)return;let e=window.setTimeout(()=>Q(null),2e3);return()=>window.clearTimeout(e)},[Z]);let Te=async e=>{await we(e.content)&&(Q(e.id),a.announce(w.copied))},$=O.filter(e=>e.role!==`system`).length===0,Ee=O[O.length-1],De=e=>{if(e.role===`system`)return(0,f.jsx)(`p`,{className:u.default.system,children:e.content},e.id);let t=e.role===`user`,n=e.status??`done`,r=n===`streaming`&&e.content===``,a=t?v:pe,l=!t&&!R&&e===Ee&&(n===`error`||n===`stopped`);return(0,f.jsxs)(`article`,{className:i.cx(u.default.message,t?u.default.user:u.default.assistant),"data-role":e.role,"data-status":n,"aria-busy":n===`streaming`||void 0,children:[a!=null&&(0,f.jsx)(`div`,{className:u.default.avatar,"aria-hidden":`true`,children:a}),(0,f.jsxs)(`div`,{className:u.default.body,children:[r?(0,f.jsxs)(`div`,{className:u.default.bubble,children:[(0,f.jsxs)(`span`,{className:u.default.dots,"aria-hidden":`true`,children:[(0,f.jsx)(`span`,{}),(0,f.jsx)(`span`,{}),(0,f.jsx)(`span`,{})]}),(0,f.jsx)(o.VisuallyHidden,{children:w.typing(T)})]}):e.content!==``&&(0,f.jsxs)(`div`,{className:u.default.bubble,children:[(0,f.jsxs)(o.VisuallyHidden,{children:[t?w.youSaid:w.assistantSaid(T),` `]}),_?_(e):(0,f.jsx)(`p`,{className:u.default.text,children:e.content})]}),n===`error`&&(0,f.jsxs)(`p`,{className:u.default.error,children:[(0,f.jsx)(c.Icon,{name:`error`,size:`sm`}),(0,f.jsx)(`span`,{children:e.error??w.error})]}),n===`stopped`&&(0,f.jsx)(`p`,{className:u.default.note,children:w.stopped}),!t&&(l||y&&n===`done`&&e.content!==``)&&(0,f.jsxs)(`div`,{className:u.default.actions,children:[y&&n===`done`&&e.content!==``&&(0,f.jsx)(s.IconButton,{variant:`ghost`,tone:`neutral`,size:`sm`,"aria-label":Z===e.id?w.copied:w.copy,onClick:()=>void Te(e),children:(0,f.jsx)(c.Icon,{name:Z===e.id?`check`:`copy`})}),l&&(0,f.jsx)(s.Button,{variant:`ghost`,tone:`neutral`,size:`sm`,startIcon:(0,f.jsx)(c.Icon,{name:`refresh`}),onClick:()=>Se(e.id),children:w.retry})]})]})]},e.id)};return(0,f.jsxs)(`section`,{...C,"aria-label":_e??(C[`aria-labelledby`]?void 0:w.region),className:i.cx(u.default.root,ge),children:[(0,f.jsxs)(`div`,{className:u.default.logWrap,children:[(0,f.jsx)(l.ScrollArea,{className:u.default.log,viewportRef:W,onViewportScroll:be,"aria-label":w.log,"aria-busy":R||void 0,tabIndex:0,children:(0,f.jsxs)(`div`,{className:u.default.messages,children:[$&&(0,f.jsxs)(`div`,{className:u.default.empty,children:[de??(0,f.jsx)(`p`,{className:u.default.emptyTitle,children:w.emptyTitle}),g&&g.length>0&&(0,f.jsx)(`div`,{role:`group`,"aria-label":w.suggestions,className:u.default.suggestions,children:g.map(e=>(0,f.jsx)(s.Button,{variant:`outline`,tone:`neutral`,size:`sm`,disabled:S,className:u.default.suggestion,onClick:()=>J(e),children:e},e))})]}),O.map(De)]})}),!ye&&!$&&(0,f.jsx)(s.IconButton,{variant:`soft`,tone:`neutral`,size:`sm`,className:u.default.jump,"aria-label":w.scrollToLatest,onClick:xe,children:(0,f.jsx)(c.Icon,{name:`arrow-down`})})]}),(0,f.jsxs)(`form`,{className:u.default.composer,onSubmit:X,children:[(0,f.jsxs)(`div`,{className:u.default.inputRow,children:[(0,f.jsx)(ee.Textarea,{ref:V,className:u.default.input,"aria-label":w.input,"aria-describedby":D,placeholder:me??w.placeholder,value:I,onValueChange:L,onKeyDown:Ce,autoResize:!0,rows:1,maxRows:6,maxLength:x,showCount:x!==void 0,disabled:S,enterKeyHint:`send`}),R?(0,f.jsx)(s.IconButton,{type:`submit`,variant:`soft`,tone:`neutral`,"aria-label":w.stop,children:(0,f.jsx)(ie,{})}):(0,f.jsx)(s.IconButton,{type:`submit`,"aria-label":w.send,disabled:S||I.trim()===``,children:(0,f.jsx)(c.Icon,{name:`arrow-up`})})]}),(0,f.jsx)(o.VisuallyHidden,{id:D,children:w.hint}),b!=null&&(0,f.jsx)(`p`,{className:u.default.disclaimer,children:b})]})]})};exports.Chat=p;
1
+ "use client";const e=require("../../../hooks/useClipboard.cjs.js"),t=require("../../../hooks/useControllableState.cjs.js"),n=require("../../../hooks/useEnvironment.cjs.js"),r=require("../../../utils/announce.cjs.js"),i=require("../../../utils/cx.cjs.js"),a=require("../../layout/ScrollArea/ScrollArea.cjs.js"),o=require("../../primitives/Button/Button.cjs.js"),s=require("../../primitives/Icon/Icon.cjs.js"),c=require("../../forms/Textarea/Textarea.cjs.js"),ee=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),l=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),u=require("./Chat.module.css.cjs.js");let d=require("react"),f=require("react/jsx-runtime");var te=48,ne=typeof window<`u`?d.useLayoutEffect:d.useEffect;function re(e){return e!=null&&typeof e[Symbol.asyncIterator]==`function`}var ie=()=>(0,f.jsx)(s.Icon,{children:(0,f.jsx)(`rect`,{x:`7`,y:`7`,width:`10`,height:`10`,rx:`2`,fill:`currentColor`,stroke:`none`})}),p=({messages:p,defaultMessages:ae,onMessagesChange:oe,onSend:m,onStop:se,onError:h,draft:ce,defaultDraft:le,onDraftChange:ue,suggestions:g,emptyState:de,renderContent:_,assistantName:fe,assistantAvatar:pe,userAvatar:v,copyable:y=!0,disclaimer:b,placeholder:me,maxLength:x,disabled:S=!1,labels:he,className:ge,"aria-label":_e,...C})=>{let w={...ee.useMessages().chat,...he},T=fe??w.assistant,ve=n.useReducedMotion(),E=(0,d.useId)(),D=`${E}-hint`,[O,k]=t.useControllableState({value:p,defaultValue:ae??[],onChange:oe}),A=(0,d.useRef)(O),j=(0,d.useRef)(O);O!==j.current&&(j.current=O,A.current=O);let M=(0,d.useCallback)(e=>{let t=e(A.current);A.current=t,k(t)},[k]),N=(0,d.useCallback)((e,t)=>M(n=>n.map(n=>n.id===e?{...n,...t}:n)),[M]),P=(0,d.useRef)(0),F=()=>`${E}-${++P.current}`,[I,L]=t.useControllableState({value:ce,defaultValue:le??``,onChange:ue}),[R,z]=(0,d.useState)(!1),B=(0,d.useRef)(null),V=(0,d.useRef)(null),H=(0,d.useRef)(m);H.current=m;let U=(0,d.useRef)(h);U.current=h,(0,d.useEffect)(()=>()=>B.current?.abort(),[]);let W=(0,d.useRef)(null),G=(0,d.useRef)(!0),[ye,K]=(0,d.useState)(!0),be=()=>{let e=W.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<=te;G.current=t,K(t)};ne(()=>{let e=W.current;e&&G.current&&(e.scrollTop=e.scrollHeight)},[O]);let xe=()=>{let e=W.current;e&&(G.current=!0,K(!0),e.scrollTo({top:e.scrollHeight,behavior:ve?`auto`:`smooth`}),V.current?.focus())},q=async(e,t)=>{let n=F();M(()=>[...e,{id:n,role:`assistant`,content:``,status:`streaming`}]),G.current=!0,K(!0),z(!0),r.announce(w.typing(T));let i=new AbortController;B.current=i;let a=``;try{let o=await H.current?.(t,{messages:e,signal:i.signal});if(typeof o==`string`)a=o;else if(re(o))for await(let e of o){if(i.signal.aborted)break;a+=e,N(n,{content:a})}else if(!i.signal.aborted){M(e=>e.filter(e=>e.id!==n));return}if(i.signal.aborted)throw i.signal.reason;N(n,{content:a,status:`done`}),r.announce(`${w.assistantSaid(T)} ${a}`)}catch(e){i.signal.aborted?(N(n,{content:a,status:`stopped`}),r.announce(w.stopped)):(U.current?.(e),N(n,{content:a,status:`error`}),r.announce(w.error))}finally{B.current===i&&(B.current=null),z(!1)}},J=e=>{let t=e.trim();!t||R||S||(L(``),q([...A.current,{id:F(),role:`user`,content:t,status:`done`}],t))},Y=()=>{B.current&&(B.current.abort(),se?.(),V.current?.focus())},Se=e=>{let t=A.current,n=t.findIndex(t=>t.id===e)-1;for(;n>=0&&t[n].role!==`user`;)n--;n<0||R||(q(t.slice(0,n+1),t[n].content),V.current?.focus())},X=e=>{e.preventDefault(),R?Y():J(I)},Ce=e=>{e.key===`Escape`&&R?(e.preventDefault(),Y()):e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),J(e.currentTarget.value))},{copy:we}=e.useClipboard(),[Z,Q]=(0,d.useState)(null);(0,d.useEffect)(()=>{if(Z===null)return;let e=window.setTimeout(()=>Q(null),2e3);return()=>window.clearTimeout(e)},[Z]);let Te=async e=>{await we(e.content)&&(Q(e.id),r.announce(w.copied))},$=O.filter(e=>e.role!==`system`).length===0,Ee=O[O.length-1],De=e=>{if(e.role===`system`)return(0,f.jsx)(`p`,{className:u.default.system,children:e.content},e.id);let t=e.role===`user`,n=e.status??`done`,r=n===`streaming`&&e.content===``,a=t?v:pe,c=!t&&!R&&e===Ee&&(n===`error`||n===`stopped`);return(0,f.jsxs)(`article`,{className:i.cx(u.default.message,t?u.default.user:u.default.assistant),"data-role":e.role,"data-status":n,"aria-busy":n===`streaming`||void 0,children:[a!=null&&(0,f.jsx)(`div`,{className:u.default.avatar,"aria-hidden":`true`,children:a}),(0,f.jsxs)(`div`,{className:u.default.body,children:[r?(0,f.jsxs)(`div`,{className:u.default.bubble,children:[(0,f.jsxs)(`span`,{className:u.default.dots,"aria-hidden":`true`,children:[(0,f.jsx)(`span`,{}),(0,f.jsx)(`span`,{}),(0,f.jsx)(`span`,{})]}),(0,f.jsx)(l.VisuallyHidden,{children:w.typing(T)})]}):e.content!==``&&(0,f.jsxs)(`div`,{className:u.default.bubble,children:[(0,f.jsxs)(l.VisuallyHidden,{children:[t?w.youSaid:w.assistantSaid(T),` `]}),_?_(e):(0,f.jsx)(`p`,{className:u.default.text,children:e.content})]}),n===`error`&&(0,f.jsxs)(`p`,{className:u.default.error,children:[(0,f.jsx)(s.Icon,{name:`error`,size:`sm`}),(0,f.jsx)(`span`,{children:e.error??w.error})]}),n===`stopped`&&(0,f.jsx)(`p`,{className:u.default.note,children:w.stopped}),!t&&(c||y&&n===`done`&&e.content!==``)&&(0,f.jsxs)(`div`,{className:u.default.actions,children:[y&&n===`done`&&e.content!==``&&(0,f.jsx)(o.IconButton,{variant:`ghost`,tone:`neutral`,size:`sm`,"aria-label":Z===e.id?w.copied:w.copy,onClick:()=>void Te(e),children:(0,f.jsx)(s.Icon,{name:Z===e.id?`check`:`copy`})}),c&&(0,f.jsx)(o.Button,{variant:`ghost`,tone:`neutral`,size:`sm`,startIcon:(0,f.jsx)(s.Icon,{name:`refresh`}),onClick:()=>Se(e.id),children:w.retry})]})]})]},e.id)};return(0,f.jsxs)(`section`,{...C,"aria-label":_e??(C[`aria-labelledby`]?void 0:w.region),className:i.cx(u.default.root,ge),children:[(0,f.jsxs)(`div`,{className:u.default.logWrap,children:[(0,f.jsx)(a.ScrollArea,{className:u.default.log,viewportRef:W,onViewportScroll:be,"aria-label":w.log,"aria-busy":R||void 0,tabIndex:0,children:(0,f.jsxs)(`div`,{className:u.default.messages,children:[$&&(0,f.jsxs)(`div`,{className:u.default.empty,children:[de??(0,f.jsx)(`p`,{className:u.default.emptyTitle,children:w.emptyTitle}),g&&g.length>0&&(0,f.jsx)(`div`,{role:`group`,"aria-label":w.suggestions,className:u.default.suggestions,children:g.map(e=>(0,f.jsx)(o.Button,{variant:`outline`,tone:`neutral`,size:`sm`,disabled:S,className:u.default.suggestion,onClick:()=>J(e),children:e},e))})]}),O.map(De)]})}),!ye&&!$&&(0,f.jsx)(o.IconButton,{variant:`soft`,tone:`neutral`,size:`sm`,className:u.default.jump,"aria-label":w.scrollToLatest,onClick:xe,children:(0,f.jsx)(s.Icon,{name:`arrow-down`})})]}),(0,f.jsxs)(`form`,{className:u.default.composer,onSubmit:X,children:[(0,f.jsxs)(`div`,{className:u.default.inputRow,children:[(0,f.jsx)(c.Textarea,{ref:V,className:u.default.input,"aria-label":w.input,"aria-describedby":D,placeholder:me??w.placeholder,value:I,onValueChange:L,onKeyDown:Ce,autoResize:!0,rows:1,maxRows:6,maxLength:x,showCount:x!==void 0,disabled:S,enterKeyHint:`send`}),R?(0,f.jsx)(o.IconButton,{type:`submit`,variant:`soft`,tone:`neutral`,"aria-label":w.stop,children:(0,f.jsx)(ie,{})}):(0,f.jsx)(o.IconButton,{type:`submit`,"aria-label":w.send,disabled:S||I.trim()===``,children:(0,f.jsx)(s.Icon,{name:`arrow-up`})})]}),(0,f.jsx)(l.VisuallyHidden,{id:D,children:w.hint}),b!=null&&(0,f.jsx)(`p`,{className:u.default.disclaimer,children:b})]})]})};exports.Chat=p;