@vjdesigns/vjdesigns-ui 2.4.0 → 2.5.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 (417) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +45 -1
  3. package/dist/ai/llms-full.txt +133 -76
  4. package/dist/ai/registry.json +82 -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 +14 -3
  33. package/dist/components/data-display/DataGrid/DataGrid.mjs +352 -267
  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 +6 -5
  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/DateTimePicker/DateTimePicker.cjs.js +1 -1
  128. package/dist/components/forms/DateTimePicker/DateTimePicker.mjs +19 -19
  129. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +1 -2
  130. package/dist/components/forms/Field/Field.cjs.js +1 -1
  131. package/dist/components/forms/Field/Field.mjs +14 -14
  132. package/dist/components/forms/Field/Field.module.css.mjs +1 -2
  133. package/dist/components/forms/Field/FieldContext.cjs.js +1 -1
  134. package/dist/components/forms/Field/FieldContext.mjs +2 -2
  135. package/dist/components/forms/FileUpload/FileUpload.cjs.js +1 -1
  136. package/dist/components/forms/FileUpload/FileUpload.mjs +250 -255
  137. package/dist/components/forms/FileUpload/FileUpload.module.css.mjs +1 -2
  138. package/dist/components/forms/Input/Input.cjs.js +1 -1
  139. package/dist/components/forms/Input/Input.mjs +35 -35
  140. package/dist/components/forms/Input/Input.module.css.mjs +1 -2
  141. package/dist/components/forms/NumberInput/NumberInput.cjs.js +1 -1
  142. package/dist/components/forms/NumberInput/NumberInput.mjs +137 -142
  143. package/dist/components/forms/NumberInput/NumberInput.module.css.mjs +1 -2
  144. package/dist/components/forms/PasswordInput/PasswordInput.cjs.js +1 -1
  145. package/dist/components/forms/PasswordInput/PasswordInput.mjs +142 -142
  146. package/dist/components/forms/PasswordInput/PasswordInput.module.css.mjs +1 -2
  147. package/dist/components/forms/PinInput/PinInput.cjs.js +1 -1
  148. package/dist/components/forms/PinInput/PinInput.mjs +12 -12
  149. package/dist/components/forms/PinInput/PinInput.module.css.mjs +1 -2
  150. package/dist/components/forms/Radio/Radio.cjs.js +1 -1
  151. package/dist/components/forms/Radio/Radio.mjs +2 -2
  152. package/dist/components/forms/Radio/Radio.module.css.mjs +1 -2
  153. package/dist/components/forms/Rating/Rating.cjs.js +1 -1
  154. package/dist/components/forms/Rating/Rating.mjs +110 -109
  155. package/dist/components/forms/Rating/Rating.module.css.mjs +1 -2
  156. package/dist/components/forms/SearchInput/SearchInput.cjs.js +1 -1
  157. package/dist/components/forms/SearchInput/SearchInput.mjs +118 -126
  158. package/dist/components/forms/SearchInput/SearchInput.module.css.mjs +1 -2
  159. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.js +1 -1
  160. package/dist/components/forms/SegmentedControl/SegmentedControl.mjs +46 -43
  161. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +1 -2
  162. package/dist/components/forms/Select/Select.cjs.js +1 -1
  163. package/dist/components/forms/Select/Select.mjs +2 -2
  164. package/dist/components/forms/Select/Select.module.css.mjs +1 -2
  165. package/dist/components/forms/Slider/Slider.cjs.js +1 -1
  166. package/dist/components/forms/Slider/Slider.mjs +2 -2
  167. package/dist/components/forms/Slider/Slider.module.css.mjs +1 -2
  168. package/dist/components/forms/Switch/Switch.cjs.js +1 -1
  169. package/dist/components/forms/Switch/Switch.mjs +39 -39
  170. package/dist/components/forms/Switch/Switch.module.css.mjs +1 -2
  171. package/dist/components/forms/TagInput/TagInput.cjs.js +1 -1
  172. package/dist/components/forms/TagInput/TagInput.mjs +197 -203
  173. package/dist/components/forms/TagInput/TagInput.module.css.mjs +1 -2
  174. package/dist/components/forms/Textarea/Textarea.cjs.js +1 -1
  175. package/dist/components/forms/Textarea/Textarea.mjs +59 -59
  176. package/dist/components/forms/Textarea/Textarea.module.css.mjs +1 -2
  177. package/dist/components/forms/TimePicker/TimePicker.cjs.js +1 -1
  178. package/dist/components/forms/TimePicker/TimePicker.mjs +14 -16
  179. package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -2
  180. package/dist/components/forms/TimePicker/timeUtils.cjs.js +1 -1
  181. package/dist/components/forms/TimePicker/timeUtils.d.ts +4 -1
  182. package/dist/components/forms/TimePicker/timeUtils.mjs +43 -38
  183. package/dist/components/forms/ToggleGroup/ToggleGroup.cjs.js +1 -1
  184. package/dist/components/forms/ToggleGroup/ToggleGroup.mjs +10 -10
  185. package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.mjs +1 -2
  186. package/dist/components/layout/Box/Box.mjs +1 -2
  187. package/dist/components/layout/Box/Box.module.css.mjs +1 -2
  188. package/dist/components/layout/Container/Container.mjs +1 -2
  189. package/dist/components/layout/Container/Container.module.css.mjs +1 -2
  190. package/dist/components/layout/Divider/Divider.mjs +1 -2
  191. package/dist/components/layout/Divider/Divider.module.css.mjs +1 -2
  192. package/dist/components/layout/Flex/Flex.cjs.js +1 -1
  193. package/dist/components/layout/Flex/Flex.mjs +12 -13
  194. package/dist/components/layout/Flex/Flex.module.css.mjs +1 -2
  195. package/dist/components/layout/Grid/Grid.cjs.js +1 -1
  196. package/dist/components/layout/Grid/Grid.mjs +20 -21
  197. package/dist/components/layout/Grid/Grid.module.css.mjs +1 -2
  198. package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -1
  199. package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +17 -17
  200. package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +1 -2
  201. package/dist/components/layout/ScrollArea/ScrollArea.cjs.js +1 -1
  202. package/dist/components/layout/ScrollArea/ScrollArea.mjs +2 -2
  203. package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +1 -2
  204. package/dist/components/layout/Stack/Stack.cjs.js +1 -1
  205. package/dist/components/layout/Stack/Stack.mjs +8 -9
  206. package/dist/components/layout/Stack/Stack.module.css.mjs +1 -2
  207. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.cjs.js +1 -1
  208. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.mjs +41 -41
  209. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.mjs +1 -2
  210. package/dist/components/navigation/ContextMenu/ContextMenu.cjs.js +1 -1
  211. package/dist/components/navigation/ContextMenu/ContextMenu.mjs +48 -48
  212. package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +1 -2
  213. package/dist/components/navigation/Link/Link.cjs.js +1 -1
  214. package/dist/components/navigation/Link/Link.mjs +6 -7
  215. package/dist/components/navigation/Link/Link.module.css.mjs +1 -2
  216. package/dist/components/navigation/Menu/Menu.cjs.js +1 -1
  217. package/dist/components/navigation/Menu/Menu.mjs +11 -11
  218. package/dist/components/navigation/Menu/Menu.module.css.mjs +1 -2
  219. package/dist/components/navigation/Menu/MenuContent.cjs.js +1 -1
  220. package/dist/components/navigation/Menu/MenuContent.mjs +46 -46
  221. package/dist/components/navigation/Menu/MenuContext.cjs.js +1 -1
  222. package/dist/components/navigation/Menu/MenuContext.mjs +2 -2
  223. package/dist/components/navigation/Menu/MenuItem.cjs.js +1 -1
  224. package/dist/components/navigation/Menu/MenuItem.mjs +35 -39
  225. package/dist/components/navigation/Menu/MenuSub.cjs.js +1 -1
  226. package/dist/components/navigation/Menu/MenuSub.mjs +16 -20
  227. package/dist/components/navigation/Menu/useMenuRoot.cjs.js +1 -1
  228. package/dist/components/navigation/Menu/useMenuRoot.mjs +2 -2
  229. package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -1
  230. package/dist/components/navigation/Navbar/Navbar.mjs +111 -111
  231. package/dist/components/navigation/Navbar/Navbar.module.css.mjs +1 -2
  232. package/dist/components/navigation/Pagination/Pagination.cjs.js +1 -1
  233. package/dist/components/navigation/Pagination/Pagination.mjs +31 -35
  234. package/dist/components/navigation/Pagination/Pagination.module.css.mjs +1 -2
  235. package/dist/components/navigation/Sidebar/Sidebar.cjs.js +1 -1
  236. package/dist/components/navigation/Sidebar/Sidebar.mjs +52 -52
  237. package/dist/components/navigation/Sidebar/Sidebar.module.css.mjs +1 -2
  238. package/dist/components/navigation/Sidebar/SidebarContext.cjs.js +1 -1
  239. package/dist/components/navigation/Sidebar/SidebarContext.mjs +2 -2
  240. package/dist/components/navigation/Sidebar/SidebarParts.cjs.js +1 -1
  241. package/dist/components/navigation/Sidebar/SidebarParts.mjs +76 -80
  242. package/dist/components/navigation/SkipLink/SkipLink.cjs.js +1 -1
  243. package/dist/components/navigation/SkipLink/SkipLink.mjs +12 -12
  244. package/dist/components/navigation/SkipLink/SkipLink.module.css.mjs +1 -2
  245. package/dist/components/navigation/Stepper/Stepper.cjs.js +1 -1
  246. package/dist/components/navigation/Stepper/Stepper.mjs +46 -46
  247. package/dist/components/navigation/Stepper/Stepper.module.css.mjs +1 -2
  248. package/dist/components/navigation/Tabs/Tabs.cjs.js +1 -1
  249. package/dist/components/navigation/Tabs/Tabs.mjs +2 -2
  250. package/dist/components/navigation/Tabs/Tabs.module.css.mjs +1 -2
  251. package/dist/components/overlays/CommandPalette/CommandPalette.cjs.js +1 -1
  252. package/dist/components/overlays/CommandPalette/CommandPalette.mjs +206 -206
  253. package/dist/components/overlays/CommandPalette/CommandPalette.module.css.mjs +1 -2
  254. package/dist/components/overlays/CommandPalette/CommandPaletteContext.cjs.js +1 -1
  255. package/dist/components/overlays/CommandPalette/CommandPaletteContext.mjs +2 -2
  256. package/dist/components/overlays/CommandPalette/CommandPaletteParts.cjs.js +1 -1
  257. package/dist/components/overlays/CommandPalette/CommandPaletteParts.mjs +104 -104
  258. package/dist/components/overlays/CommandPalette/commandPaletteUtils.cjs.js +1 -1
  259. package/dist/components/overlays/CommandPalette/commandPaletteUtils.mjs +62 -60
  260. package/dist/components/overlays/Drawer/Drawer.cjs.js +1 -1
  261. package/dist/components/overlays/Drawer/Drawer.mjs +31 -31
  262. package/dist/components/overlays/Drawer/Drawer.module.css.mjs +1 -2
  263. package/dist/components/overlays/Drawer/DrawerContent.cjs.js +1 -1
  264. package/dist/components/overlays/Drawer/DrawerContent.mjs +99 -99
  265. package/dist/components/overlays/Drawer/DrawerContext.cjs.js +1 -1
  266. package/dist/components/overlays/Drawer/DrawerContext.mjs +2 -2
  267. package/dist/components/overlays/Drawer/DrawerParts.cjs.js +1 -1
  268. package/dist/components/overlays/Drawer/DrawerParts.mjs +18 -18
  269. package/dist/components/overlays/Drawer/internal.mjs +1 -2
  270. package/dist/components/overlays/Drawer/useDragToClose.cjs.js +1 -1
  271. package/dist/components/overlays/Drawer/useDragToClose.mjs +2 -2
  272. package/dist/components/overlays/HoverCard/HoverCard.cjs.js +1 -1
  273. package/dist/components/overlays/HoverCard/HoverCard.mjs +31 -31
  274. package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +1 -2
  275. package/dist/components/overlays/Modal/ConfirmModal.cjs.js +1 -1
  276. package/dist/components/overlays/Modal/ConfirmModal.mjs +21 -23
  277. package/dist/components/overlays/Modal/Modal.cjs.js +1 -1
  278. package/dist/components/overlays/Modal/Modal.mjs +47 -47
  279. package/dist/components/overlays/Modal/Modal.module.css.mjs +1 -2
  280. package/dist/components/overlays/Modal/ModalContent.cjs.js +1 -1
  281. package/dist/components/overlays/Modal/ModalContent.mjs +24 -24
  282. package/dist/components/overlays/Modal/ModalContext.cjs.js +1 -1
  283. package/dist/components/overlays/Modal/ModalContext.mjs +2 -2
  284. package/dist/components/overlays/Modal/useScrollRegion.cjs.js +1 -1
  285. package/dist/components/overlays/Modal/useScrollRegion.mjs +2 -2
  286. package/dist/components/overlays/Popover/Popover.cjs.js +1 -1
  287. package/dist/components/overlays/Popover/Popover.mjs +40 -40
  288. package/dist/components/overlays/Popover/Popover.module.css.mjs +1 -2
  289. package/dist/components/overlays/Popover/PopoverContent.cjs.js +1 -1
  290. package/dist/components/overlays/Popover/PopoverContent.mjs +39 -39
  291. package/dist/components/overlays/Popover/PopoverContext.cjs.js +1 -1
  292. package/dist/components/overlays/Popover/PopoverContext.mjs +2 -2
  293. package/dist/components/overlays/Tooltip/Tooltip.cjs.js +1 -1
  294. package/dist/components/overlays/Tooltip/Tooltip.mjs +100 -95
  295. package/dist/components/overlays/Tooltip/Tooltip.module.css.mjs +1 -2
  296. package/dist/components/primitives/Button/Button.cjs.js +1 -1
  297. package/dist/components/primitives/Button/Button.mjs +59 -63
  298. package/dist/components/primitives/Button/Button.module.css.mjs +1 -2
  299. package/dist/components/primitives/Icon/Icon.cjs.js +1 -1
  300. package/dist/components/primitives/Icon/Icon.mjs +5 -6
  301. package/dist/components/primitives/Icon/Icon.module.css.mjs +1 -2
  302. package/dist/components/primitives/Icon/IconSvg.mjs +1 -2
  303. package/dist/components/primitives/Icon/icons.mjs +1 -2
  304. package/dist/components/primitives/Kbd/Kbd.cjs.js +1 -1
  305. package/dist/components/primitives/Kbd/Kbd.mjs +30 -30
  306. package/dist/components/primitives/Kbd/Kbd.module.css.mjs +1 -2
  307. package/dist/components/primitives/Typography/Typography.mjs +1 -2
  308. package/dist/components/primitives/Typography/Typography.module.css.mjs +1 -2
  309. package/dist/components/utilities/LocaleProvider/LocaleProvider.cjs.js +1 -1
  310. package/dist/components/utilities/LocaleProvider/LocaleProvider.mjs +11 -11
  311. package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +1 -2
  312. package/dist/components/utilities/Portal/Portal.cjs.js +1 -1
  313. package/dist/components/utilities/Portal/Portal.mjs +2 -2
  314. package/dist/components/utilities/Theme/Theme.cjs.js +1 -1
  315. package/dist/components/utilities/Theme/Theme.mjs +13 -13
  316. package/dist/components/utilities/Theme/Theme.module.css.mjs +1 -2
  317. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.mjs +1 -2
  318. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.mjs +1 -2
  319. package/dist/hooks/elementSource.cjs.js +1 -1
  320. package/dist/hooks/elementSource.mjs +4 -3
  321. package/dist/hooks/useClipboard.cjs.js +1 -1
  322. package/dist/hooks/useClipboard.mjs +2 -2
  323. package/dist/hooks/useControllableState.cjs.js +1 -1
  324. package/dist/hooks/useControllableState.mjs +2 -2
  325. package/dist/hooks/useDisclosure.cjs.js +1 -1
  326. package/dist/hooks/useDisclosure.mjs +2 -2
  327. package/dist/hooks/useDismiss.cjs.js +1 -1
  328. package/dist/hooks/useDismiss.mjs +2 -2
  329. package/dist/hooks/useElementObservers.cjs.js +1 -1
  330. package/dist/hooks/useElementObservers.mjs +2 -2
  331. package/dist/hooks/useEnvironment.cjs.js +1 -1
  332. package/dist/hooks/useEnvironment.mjs +2 -2
  333. package/dist/hooks/useFloatingPosition.cjs.js +1 -1
  334. package/dist/hooks/useFloatingPosition.mjs +2 -2
  335. package/dist/hooks/useFocusTrap.cjs.js +1 -1
  336. package/dist/hooks/useFocusTrap.mjs +4 -15
  337. package/dist/hooks/useFormReset.cjs.js +1 -1
  338. package/dist/hooks/useFormReset.mjs +2 -2
  339. package/dist/hooks/useFormValidation.cjs.js +1 -1
  340. package/dist/hooks/useFormValidation.mjs +2 -2
  341. package/dist/hooks/useHotkeys.cjs.js +1 -1
  342. package/dist/hooks/useHotkeys.mjs +2 -2
  343. package/dist/hooks/useInertOutside.cjs.js +1 -1
  344. package/dist/hooks/useInertOutside.mjs +5 -9
  345. package/dist/hooks/useMediaQuery.cjs.js +1 -1
  346. package/dist/hooks/useMediaQuery.mjs +2 -2
  347. package/dist/hooks/useMergedRef.cjs.js +1 -1
  348. package/dist/hooks/useMergedRef.mjs +2 -2
  349. package/dist/hooks/useOverlayLayer.cjs.js +1 -1
  350. package/dist/hooks/useOverlayLayer.mjs +3 -3
  351. package/dist/hooks/useResponsiveValue.cjs.js +1 -1
  352. package/dist/hooks/useResponsiveValue.mjs +2 -2
  353. package/dist/hooks/useScrollLock.cjs.js +1 -1
  354. package/dist/hooks/useScrollLock.mjs +2 -2
  355. package/dist/hooks/useStorage.cjs.js +1 -1
  356. package/dist/hooks/useStorage.mjs +2 -2
  357. package/dist/hooks/useTiming.cjs.js +1 -1
  358. package/dist/hooks/useTiming.mjs +10 -15
  359. package/dist/hooks/useVirtualizer.cjs.js +1 -1
  360. package/dist/hooks/useVirtualizer.d.ts +13 -0
  361. package/dist/hooks/useVirtualizer.mjs +93 -54
  362. package/dist/i18n/en.mjs +1 -2
  363. package/dist/i18n/merge.mjs +1 -2
  364. package/dist/i18n/plural.mjs +1 -2
  365. package/dist/index.cjs.js +1 -1
  366. package/dist/index.mjs +114 -114
  367. package/dist/locales/ar.mjs +1 -2
  368. package/dist/locales/bn.mjs +1 -2
  369. package/dist/locales/cs.mjs +1 -2
  370. package/dist/locales/da.mjs +1 -2
  371. package/dist/locales/de.mjs +1 -2
  372. package/dist/locales/el.mjs +1 -2
  373. package/dist/locales/es.mjs +1 -2
  374. package/dist/locales/fa.mjs +1 -2
  375. package/dist/locales/fi.mjs +1 -2
  376. package/dist/locales/fr.mjs +1 -2
  377. package/dist/locales/he.mjs +1 -2
  378. package/dist/locales/hi.mjs +1 -2
  379. package/dist/locales/hu.mjs +1 -2
  380. package/dist/locales/id.mjs +1 -2
  381. package/dist/locales/it.mjs +1 -2
  382. package/dist/locales/ja.mjs +1 -2
  383. package/dist/locales/ko.mjs +1 -2
  384. package/dist/locales/nb.mjs +1 -2
  385. package/dist/locales/nl.mjs +1 -2
  386. package/dist/locales/pl.mjs +1 -2
  387. package/dist/locales/pt-BR.mjs +1 -2
  388. package/dist/locales/ro.mjs +1 -2
  389. package/dist/locales/ru.mjs +1 -2
  390. package/dist/locales/sv.mjs +1 -2
  391. package/dist/locales/th.mjs +1 -2
  392. package/dist/locales/tr.mjs +1 -2
  393. package/dist/locales/uk.mjs +1 -2
  394. package/dist/locales/ur.mjs +1 -2
  395. package/dist/locales/vi.mjs +1 -2
  396. package/dist/locales/zh-Hans.mjs +1 -2
  397. package/dist/locales/zh-Hant.mjs +1 -2
  398. package/dist/types/common.mjs +1 -2
  399. package/dist/utils/announce.cjs.js +1 -1
  400. package/dist/utils/announce.mjs +3 -4
  401. package/dist/utils/brandPalette.mjs +1 -2
  402. package/dist/utils/clipboard.mjs +1 -2
  403. package/dist/utils/cx.mjs +1 -2
  404. package/dist/utils/fillSlot.cjs.js +1 -1
  405. package/dist/utils/fillSlot.mjs +2 -2
  406. package/dist/utils/flattenChildren.mjs +1 -2
  407. package/dist/utils/hotkeys.mjs +1 -2
  408. package/dist/utils/intl.cjs.js +1 -0
  409. package/dist/utils/intl.d.ts +10 -0
  410. package/dist/utils/intl.mjs +15 -0
  411. package/dist/utils/refs.mjs +1 -2
  412. package/dist/utils/responsive.mjs +1 -2
  413. package/dist/utils/slot.mjs +1 -2
  414. package/dist/utils/validators.mjs +1 -2
  415. package/dist/vjdesigns-ui.css +1 -1
  416. package/dist/vjdesigns-ui.css.d.ts +2 -0
  417. package/package.json +24 -14
@@ -1,17 +1,18 @@
1
+ "use client";
1
2
  import { useControllableState as e } from "../../../hooks/useControllableState.mjs";
2
- import { useMessages as t } from "../../utilities/LocaleProvider/LocaleProvider.mjs";
3
- import { getChildRef as n, isSingleElement as r } from "../../../utils/refs.mjs";
4
- import { useMergedRef as i } from "../../../hooks/useMergedRef.mjs";
5
- import { cx as a } from "../../../utils/cx.mjs";
3
+ import { cx as t } from "../../../utils/cx.mjs";
4
+ import { Button as n } from "../../primitives/Button/Button.mjs";
5
+ import { useMergedRef as r } from "../../../hooks/useMergedRef.mjs";
6
+ import { getChildRef as i, isSingleElement as a } from "../../../utils/refs.mjs";
6
7
  import { cloneSlot as o } from "../../../utils/slot.mjs";
7
- import { Button as s } from "../../primitives/Button/Button.mjs";
8
- import { PopoverContext as c, usePopoverContext as l } from "./PopoverContext.mjs";
8
+ import { PopoverContext as s, usePopoverContext as c } from "./PopoverContext.mjs";
9
+ import { PopoverContent as l } from "./PopoverContent.mjs";
9
10
  import u from "./Popover.module.css.mjs";
10
- import { PopoverContent as d } from "./PopoverContent.mjs";
11
+ import { useMessages as d } from "../../utilities/LocaleProvider/LocaleProvider.mjs";
11
12
  import { useCallback as f, useEffect as p, useId as m, useLayoutEffect as h, useMemo as g, useRef as _, useState as v } from "react";
12
13
  import { jsx as y } from "react/jsx-runtime";
13
- //#region src/components/overlays/Popover/Popover.tsx
14
- var b = ({ children: t, open: n, defaultOpen: r = !1, onOpenChange: i, placement: a = "bottom", offset: o, modal: s = !1, closeOnOutsidePress: l = !0, closeOnEscape: u = !0, closeOnFocusOut: d = !0, closeOnAnchorFocus: b = !1 }) => {
14
+ // src/components/overlays/Popover/Popover.tsx
15
+ var b = ({ children: t, open: n, defaultOpen: r = !1, onOpenChange: i, placement: a = "bottom", offset: o, modal: c = !1, closeOnOutsidePress: l = !0, closeOnEscape: u = !0, closeOnFocusOut: d = !0, closeOnAnchorFocus: b = !1 }) => {
15
16
  let [x, S] = e({
16
17
  value: n,
17
18
  defaultValue: r,
@@ -43,7 +44,7 @@ var b = ({ children: t, open: n, defaultOpen: r = !1, onOpenChange: i, placement
43
44
  setOpen: N,
44
45
  placement: a,
45
46
  offset: o,
46
- modal: s,
47
+ modal: c,
47
48
  closeOnOutsidePress: l,
48
49
  closeOnEscape: u,
49
50
  closeOnFocusOut: d,
@@ -64,7 +65,7 @@ var b = ({ children: t, open: n, defaultOpen: r = !1, onOpenChange: i, placement
64
65
  N,
65
66
  a,
66
67
  o,
67
- s,
68
+ c,
68
69
  l,
69
70
  u,
70
71
  d,
@@ -72,7 +73,7 @@ var b = ({ children: t, open: n, defaultOpen: r = !1, onOpenChange: i, placement
72
73
  O,
73
74
  A
74
75
  ]);
75
- return /* @__PURE__ */ y(c.Provider, {
76
+ return /* @__PURE__ */ y(s.Provider, {
76
77
  value: P,
77
78
  children: t
78
79
  });
@@ -81,59 +82,59 @@ function x(e) {
81
82
  let { variant: t, tone: n, size: r, radius: i, startIcon: a, endIcon: o, fullWidth: s, ...c } = e;
82
83
  return c;
83
84
  }
84
- var S = ({ children: e, asChild: t, onClick: a, ref: c, ...u }) => {
85
- let d = l("Popover.Trigger"), f = t ?? r(e), p = f && r(e) ? n(e) : void 0, m = i(d.triggerRef, c, p), h = (e) => {
86
- a?.(e), !e.defaultPrevented && d.setOpen(!d.open, "force");
85
+ var S = ({ children: e, asChild: t, onClick: s, ref: l, ...u }) => {
86
+ let d = c("Popover.Trigger"), f = t ?? a(e), p = f && a(e) ? i(e) : void 0, m = r(d.triggerRef, l, p), h = (e) => {
87
+ s?.(e), e.defaultPrevented || d.setOpen(!d.open, "force");
87
88
  }, g = {
88
89
  "aria-haspopup": "dialog",
89
90
  "aria-expanded": d.open,
90
91
  "aria-controls": d.open ? d.contentId : void 0,
91
92
  "data-state": d.open ? "open" : "closed"
92
93
  };
93
- return f && r(e) ? o(e, {
94
+ return f && a(e) ? o(e, {
94
95
  ...x(u),
95
96
  ...g,
96
97
  onClick: h
97
- }, m) : /* @__PURE__ */ y(s, {
98
+ }, m) : /* @__PURE__ */ y(n, {
98
99
  ...u,
99
100
  ...g,
100
101
  ref: m,
101
102
  onClick: h,
102
103
  children: e
103
104
  });
104
- }, C = ({ children: e, asChild: t, ref: a, ...s }) => {
105
- let c = l("Popover.Anchor"), u = t ?? r(e), d = u && r(e) ? n(e) : void 0, f = i(c.anchorRef, a, d);
106
- return u && r(e) ? o(e, s, f) : /* @__PURE__ */ y("div", {
105
+ }, C = ({ children: e, asChild: t, ref: n, ...s }) => {
106
+ let l = c("Popover.Anchor"), u = t ?? a(e), d = u && a(e) ? i(e) : void 0, f = r(l.anchorRef, n, d);
107
+ return u && a(e) ? o(e, s, f) : /* @__PURE__ */ y("div", {
107
108
  ...s,
108
109
  ref: f,
109
110
  children: e
110
111
  });
111
- }, w = ({ level: e = 2, className: t, id: n, ...r }) => {
112
- let i = l("Popover.Title"), { setHasTitle: o } = i;
112
+ }, w = ({ level: e = 2, className: n, id: r, ...i }) => {
113
+ let a = c("Popover.Title"), { setHasTitle: o } = a;
113
114
  h(() => (o(!0), () => o(!1)), [o]);
114
115
  let s = `h${e}`;
115
116
  return /* @__PURE__ */ y(s, {
116
- ...r,
117
- id: n ?? i.titleId,
118
- className: a(u.title, t)
117
+ ...i,
118
+ id: r ?? a.titleId,
119
+ className: t(u.title, n)
119
120
  });
120
- }, T = ({ className: e, id: t, ...n }) => {
121
- let r = l("Popover.Description"), { setHasDescription: i } = r;
122
- return h(() => (i(!0), () => i(!1)), [i]), /* @__PURE__ */ y("p", {
123
- ...n,
124
- id: t ?? r.descriptionId,
125
- className: a(u.description, e)
121
+ }, T = ({ className: e, id: n, ...r }) => {
122
+ let i = c("Popover.Description"), { setHasDescription: a } = i;
123
+ return h(() => (a(!0), () => a(!1)), [a]), /* @__PURE__ */ y("p", {
124
+ ...r,
125
+ id: n ?? i.descriptionId,
126
+ className: t(u.description, e)
126
127
  });
127
- }, E = ({ children: e, asChild: a, onClick: c, ref: u, variant: d = "ghost", ...f }) => {
128
- let p = t(), m = e ?? p.popover.close, h = l("Popover.Close"), g = a ?? r(m), _ = g && r(m) ? n(m) : void 0, v = i(u, _), b = (e) => {
129
- c?.(e), e.defaultPrevented || h.setOpen(!1, "force");
128
+ }, E = ({ children: e, asChild: t, onClick: s, ref: l, variant: u = "ghost", ...f }) => {
129
+ let p = d(), m = e ?? p.popover.close, h = c("Popover.Close"), g = t ?? a(m), _ = g && a(m) ? i(m) : void 0, v = r(l, _), b = (e) => {
130
+ s?.(e), e.defaultPrevented || h.setOpen(!1, "force");
130
131
  };
131
- return g && r(m) ? o(m, {
132
+ return g && a(m) ? o(m, {
132
133
  ...x(f),
133
134
  onClick: b
134
- }, v) : /* @__PURE__ */ y(s, {
135
+ }, v) : /* @__PURE__ */ y(n, {
135
136
  ...f,
136
- variant: d,
137
+ variant: u,
137
138
  ref: v,
138
139
  onClick: b,
139
140
  children: m
@@ -141,10 +142,9 @@ var S = ({ children: e, asChild: t, onClick: a, ref: c, ...u }) => {
141
142
  }, D = Object.assign(b, {
142
143
  Trigger: S,
143
144
  Anchor: C,
144
- Content: d,
145
+ Content: l,
145
146
  Title: w,
146
147
  Description: T,
147
148
  Close: E
148
149
  });
149
- //#endregion
150
- export { D as Popover, C as PopoverAnchor, E as PopoverClose, d as PopoverContent, T as PopoverDescription, w as PopoverTitle, S as PopoverTrigger };
150
+ export { D as Popover, C as PopoverAnchor, E as PopoverClose, l as PopoverContent, T as PopoverDescription, w as PopoverTitle, S as PopoverTrigger };
@@ -1,4 +1,4 @@
1
- //#region src/components/overlays/Popover/Popover.module.css
1
+ // src/components/overlays/Popover/Popover.module.css
2
2
  var e = "_positioner_p1zsw_15", t = "_content_p1zsw_25", n = "_sm_p1zsw_101", r = "_md_p1zsw_111", i = "_lg_p1zsw_121", a = "_title_p1zsw_197", o = "_description_p1zsw_225", s = "_closeButton_p1zsw_251", c = "_hasClose_p1zsw_265", l = "_arrow_p1zsw_283", u = {
3
3
  positioner: e,
4
4
  content: t,
@@ -12,5 +12,4 @@ var e = "_positioner_p1zsw_15", t = "_content_p1zsw_25", n = "_sm_p1zsw_101", r
12
12
  hasClose: c,
13
13
  arrow: l
14
14
  };
15
- //#endregion
16
15
  export { l as arrow, s as closeButton, t as content, u as default, o as description, c as hasClose, i as lg, r as md, e as positioner, n as sm, a as title };
@@ -1 +1 @@
1
- const e=require("../../../hooks/elementSource.cjs.js"),t=require("../../../hooks/useOverlayLayer.cjs.js"),n=require("../../../hooks/useDismiss.cjs.js"),r=require("../../../hooks/useFloatingPosition.cjs.js"),i=require("../../../hooks/useFocusTrap.cjs.js"),a=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),o=require("../../../hooks/useMergedRef.cjs.js"),s=require("../../../utils/cx.cjs.js"),c=require("../../utilities/Portal/Portal.cjs.js"),l=require("../../primitives/Button/Button.cjs.js"),u=require("../../primitives/Icon/icons.cjs.js"),d=require("./PopoverContext.cjs.js"),f=require("./Popover.module.css.cjs.js");let p=require("react"),m=require("react/jsx-runtime");var h={sm:f.default.sm,md:f.default.md,lg:f.default.lg},g=({container:e,...t})=>{let n=d.usePopoverContext(`Popover.Content`);return n.open?(0,m.jsx)(c.Portal,{container:e,children:(0,m.jsx)(v,{...t,ctx:n})}):null},_=9,v=({ctx:c,children:d,initialFocus:g,initialFocusRef:v,showArrow:y=!1,showClose:b=!1,closeLabel:x,size:S=`md`,maxWidth:C,className:w,style:T,ref:E,onKeyDown:D,onBlur:O,"aria-label":k,"aria-labelledby":A,"aria-describedby":j,...M})=>{let N=a.useMessages(),P=x??N.popover.close,F=(0,p.useRef)(null),I=o.useMergedRef(c.contentRef,E),L=c.anchorRef.current?c.anchorRef:c.triggerRef,[R,z]=(0,p.useState)(_);(0,p.useLayoutEffect)(()=>{let e=c.contentRef.current;if(!y||!e)return;let t=parseFloat(getComputedStyle(e).borderTopLeftRadius)||0;z(t+_)},[y,c.contentRef]);let B=r.useFloatingPosition(L,F,{open:!0,placement:c.placement,offset:c.offset??(y?12:8),arrowPadding:R}),V=B.isPositioned,H=B.placement.split(`-`)[0],U=B.arrow?B.arrow.x??B.arrow.y??null:null,W=t.useOverlayLayer({active:!0,modal:c.modal,elements:()=>[F,c.contentRef,c.triggerRef,c.anchorRef]}),G=W.contains,K=(0,p.useRef)(!1);(0,p.useEffect)(()=>{if(!V||c.modal||K.current)return;let t=c.contentRef.current;t&&(K.current=!0,((typeof g==`function`?g()??null:e.resolveElement(g))??v?.current??i.getFocusable(t)[0]??t).focus({preventScroll:!0}))},[V,c.modal,c.contentRef,v]),i.useFocusTrap(c.contentRef,{active:c.modal&&V,initialFocus:g,initialFocusRef:v,restoreFocus:!1,layer:W}),(0,p.useLayoutEffect)(()=>{let{contentRef:e,triggerRef:t,returnFocusRef:n,restoreModeRef:r}=c,i=e.current;return()=>{let e=r.current;r.current=`auto`;let a=!!i&&i.contains(document.activeElement),o=()=>{let e=t.current??n.current;e?.isConnected&&e.focus({preventScroll:!0})};e===`force`||e===`auto`&&a?o():e===`deferred`&&window.setTimeout(o,0)}},[]);let{setOpen:q,closeOnEscape:J}=c;n.useDismiss([],{active:!0,layer:W,escapeKey:J,outsidePress:c.closeOnOutsidePress,onDismiss:e=>{if(e.type===`keydown`){q(!1,`force`);return}let t=e.target instanceof Element?e.target:null;q(!1,t?.closest(`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]`)?`none`:`deferred`)}});let Y=e=>{if(D?.(e),e.defaultPrevented||e.key!==`Tab`||c.modal)return;let t=c.contentRef.current,n=c.triggerRef.current;if(!t||!n)return;let r=i.getFocusable(t),a=document.activeElement,o=r[0],s=r[r.length-1];if(e.shiftKey&&(a===t||a===o))e.preventDefault(),n.focus();else if(!e.shiftKey&&(a===s||r.length===0)){let t=i.getFocusable(document.body).find(e=>!G(e)&&n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING);t&&(e.preventDefault(),t.focus())}},X=e=>{if(O?.(e),!c.closeOnFocusOut||c.modal)return;let t=e.relatedTarget;t&&!G(t)&&q(!1,`none`)},Z=A??(c.hasTitle&&!k?c.titleId:void 0),Q=s.cx(c.hasDescription&&c.descriptionId,j)||void 0;return(0,m.jsx)(t.OverlayLayerProvider,{layer:W,children:(0,m.jsx)(`div`,{ref:F,className:f.default.positioner,style:B.style,children:(0,m.jsxs)(`div`,{role:`dialog`,id:c.contentId,"aria-modal":c.modal?!0:void 0,"aria-label":k,"aria-labelledby":Z,"aria-describedby":Q,tabIndex:-1,...M,ref:I,className:s.cx(f.default.content,h[S],b&&f.default.hasClose,w),style:C===void 0?T:{...T,maxWidth:C},"data-side":H,"data-state":`open`,onKeyDown:Y,onBlur:X,children:[y&&(0,m.jsx)(`span`,{"aria-hidden":`true`,className:f.default.arrow,"data-side":H,style:U===null?void 0:H===`top`||H===`bottom`?{left:`calc(${U}px - var(--space-3) / 2)`}:{top:`calc(${U}px - var(--space-3) / 2)`}}),b&&(0,m.jsx)(l.IconButton,{"aria-label":P,variant:`ghost`,tone:`neutral`,size:`sm`,className:f.default.closeButton,onClick:()=>q(!1,`force`),children:(0,m.jsx)(u.CloseIcon,{})}),d]})})})};exports.PopoverContent=g;
1
+ "use client";const e=require("../../../hooks/useDismiss.cjs.js"),t=require("../../../hooks/useFloatingPosition.cjs.js"),n=require("../../../hooks/elementSource.cjs.js"),r=require("../../../hooks/useFocusTrap.cjs.js"),i=require("../../../hooks/useOverlayLayer.cjs.js"),a=require("../../../utils/cx.cjs.js"),o=require("../../primitives/Button/Button.cjs.js"),s=require("../../primitives/Icon/icons.cjs.js"),c=require("../../utilities/Portal/Portal.cjs.js"),l=require("../../../hooks/useMergedRef.cjs.js"),u=require("./PopoverContext.cjs.js"),d=require("./Popover.module.css.cjs.js"),f=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js");let p=require("react"),m=require("react/jsx-runtime");var h={sm:d.default.sm,md:d.default.md,lg:d.default.lg},g=({container:e,...t})=>{let n=u.usePopoverContext(`Popover.Content`);return n.open?(0,m.jsx)(c.Portal,{container:e,children:(0,m.jsx)(v,{...t,ctx:n})}):null},_=9,v=({ctx:c,children:u,initialFocus:g,initialFocusRef:v,showArrow:y=!1,showClose:b=!1,closeLabel:x,size:S=`md`,maxWidth:C,className:w,style:T,ref:E,onKeyDown:D,onBlur:O,"aria-label":k,"aria-labelledby":A,"aria-describedby":j,...M})=>{let N=f.useMessages(),P=x??N.popover.close,F=(0,p.useRef)(null),I=l.useMergedRef(c.contentRef,E),L=c.anchorRef.current?c.anchorRef:c.triggerRef,[R,z]=(0,p.useState)(_);(0,p.useLayoutEffect)(()=>{let e=c.contentRef.current;if(!y||!e)return;let t=parseFloat(getComputedStyle(e).borderTopLeftRadius)||0;z(t+_)},[y,c.contentRef]);let B=t.useFloatingPosition(L,F,{open:!0,placement:c.placement,offset:c.offset??(y?12:8),arrowPadding:R}),V=B.isPositioned,H=B.placement.split(`-`)[0],U=B.arrow?B.arrow.x??B.arrow.y??null:null,W=i.useOverlayLayer({active:!0,modal:c.modal,elements:()=>[F,c.contentRef,c.triggerRef,c.anchorRef]}),G=W.contains,K=(0,p.useRef)(!1);(0,p.useEffect)(()=>{if(!V||c.modal||K.current)return;let e=c.contentRef.current;e&&(K.current=!0,((typeof g==`function`?g()??null:n.resolveElement(g))??v?.current??r.getFocusable(e)[0]??e).focus({preventScroll:!0}))},[V,c.modal,c.contentRef,v]),r.useFocusTrap(c.contentRef,{active:c.modal&&V,initialFocus:g,initialFocusRef:v,restoreFocus:!1,layer:W}),(0,p.useLayoutEffect)(()=>{let{contentRef:e,triggerRef:t,returnFocusRef:n,restoreModeRef:r}=c,i=e.current;return()=>{let e=r.current;r.current=`auto`;let a=!!i&&i.contains(document.activeElement),o=()=>{let e=t.current??n.current;e?.isConnected&&e.focus({preventScroll:!0})};e===`force`||e===`auto`&&a?o():e===`deferred`&&window.setTimeout(o,0)}},[]);let{setOpen:q,closeOnEscape:J}=c;e.useDismiss([],{active:!0,layer:W,escapeKey:J,outsidePress:c.closeOnOutsidePress,onDismiss:e=>{if(e.type===`keydown`){q(!1,`force`);return}let t=e.target instanceof Element?e.target:null;q(!1,t?.closest(`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]`)?`none`:`deferred`)}});let Y=e=>{if(D?.(e),e.defaultPrevented||e.key!==`Tab`||c.modal)return;let t=c.contentRef.current,n=c.triggerRef.current;if(!t||!n)return;let i=r.getFocusable(t),a=document.activeElement,o=i[0],s=i[i.length-1];if(e.shiftKey&&(a===t||a===o))e.preventDefault(),n.focus();else if(!e.shiftKey&&(a===s||i.length===0)){let t=r.getFocusable(document.body).find(e=>!G(e)&&n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING);t&&(e.preventDefault(),t.focus())}},X=e=>{if(O?.(e),!c.closeOnFocusOut||c.modal)return;let t=e.relatedTarget;t&&!G(t)&&q(!1,`none`)},Z=A??(c.hasTitle&&!k?c.titleId:void 0),Q=a.cx(c.hasDescription&&c.descriptionId,j)||void 0;return(0,m.jsx)(i.OverlayLayerProvider,{layer:W,children:(0,m.jsx)(`div`,{ref:F,className:d.default.positioner,style:B.style,children:(0,m.jsxs)(`div`,{role:`dialog`,id:c.contentId,"aria-modal":c.modal?!0:void 0,"aria-label":k,"aria-labelledby":Z,"aria-describedby":Q,tabIndex:-1,...M,ref:I,className:a.cx(d.default.content,h[S],b&&d.default.hasClose,w),style:C===void 0?T:{...T,maxWidth:C},"data-side":H,"data-state":`open`,onKeyDown:Y,onBlur:X,children:[y&&(0,m.jsx)(`span`,{"aria-hidden":`true`,className:d.default.arrow,"data-side":H,style:U===null?void 0:H===`top`||H===`bottom`?{left:`calc(${U}px - var(--space-3) / 2)`}:{top:`calc(${U}px - var(--space-3) / 2)`}}),b&&(0,m.jsx)(o.IconButton,{"aria-label":P,variant:`ghost`,tone:`neutral`,size:`sm`,className:d.default.closeButton,onClick:()=>q(!1,`force`),children:(0,m.jsx)(s.CloseIcon,{})}),u]})})})};exports.PopoverContent=g;
@@ -1,25 +1,26 @@
1
- import { resolveElement as e } from "../../../hooks/elementSource.mjs";
2
- import { OverlayLayerProvider as t, useOverlayLayer as n } from "../../../hooks/useOverlayLayer.mjs";
3
- import { useDismiss as r } from "../../../hooks/useDismiss.mjs";
4
- import { useFloatingPosition as i } from "../../../hooks/useFloatingPosition.mjs";
5
- import { getFocusable as a, useFocusTrap as o } from "../../../hooks/useFocusTrap.mjs";
6
- import { useMessages as s } from "../../utilities/LocaleProvider/LocaleProvider.mjs";
7
- import { useMergedRef as c } from "../../../hooks/useMergedRef.mjs";
8
- import { cx as l } from "../../../utils/cx.mjs";
1
+ "use client";
2
+ import { useDismiss as e } from "../../../hooks/useDismiss.mjs";
3
+ import { useFloatingPosition as t } from "../../../hooks/useFloatingPosition.mjs";
4
+ import { resolveElement as n } from "../../../hooks/elementSource.mjs";
5
+ import { getFocusable as r, useFocusTrap as i } from "../../../hooks/useFocusTrap.mjs";
6
+ import { OverlayLayerProvider as a, useOverlayLayer as o } from "../../../hooks/useOverlayLayer.mjs";
7
+ import { cx as s } from "../../../utils/cx.mjs";
8
+ import { IconButton as c } from "../../primitives/Button/Button.mjs";
9
+ import { CloseIcon as l } from "../../primitives/Icon/icons.mjs";
9
10
  import { Portal as u } from "../../utilities/Portal/Portal.mjs";
10
- import { IconButton as d } from "../../primitives/Button/Button.mjs";
11
- import { CloseIcon as f } from "../../primitives/Icon/icons.mjs";
12
- import { usePopoverContext as p } from "./PopoverContext.mjs";
13
- import m from "./Popover.module.css.mjs";
11
+ import { useMergedRef as d } from "../../../hooks/useMergedRef.mjs";
12
+ import { usePopoverContext as f } from "./PopoverContext.mjs";
13
+ import p from "./Popover.module.css.mjs";
14
+ import { useMessages as m } from "../../utilities/LocaleProvider/LocaleProvider.mjs";
14
15
  import { useEffect as h, useLayoutEffect as g, useRef as _, useState as v } from "react";
15
16
  import { jsx as y, jsxs as b } from "react/jsx-runtime";
16
- //#region src/components/overlays/Popover/PopoverContent.tsx
17
+ // src/components/overlays/Popover/PopoverContent.tsx
17
18
  var x = {
18
- sm: m.sm,
19
- md: m.md,
20
- lg: m.lg
19
+ sm: p.sm,
20
+ md: p.md,
21
+ lg: p.lg
21
22
  }, S = ({ container: e, ...t }) => {
22
- let n = p("Popover.Content");
23
+ let n = f("Popover.Content");
23
24
  return n.open ? /* @__PURE__ */ y(u, {
24
25
  container: e,
25
26
  children: /* @__PURE__ */ y(w, {
@@ -27,20 +28,20 @@ var x = {
27
28
  ctx: n
28
29
  })
29
30
  }) : null;
30
- }, C = 9, w = ({ ctx: u, children: p, initialFocus: S, initialFocusRef: w, showArrow: T = !1, showClose: E = !1, closeLabel: D, size: O = "md", maxWidth: k, className: A, style: j, ref: M, onKeyDown: N, onBlur: P, "aria-label": F, "aria-labelledby": I, "aria-describedby": L, ...R }) => {
31
- let z = s(), B = D ?? z.popover.close, V = _(null), H = c(u.contentRef, M), U = u.anchorRef.current ? u.anchorRef : u.triggerRef, [W, G] = v(C);
31
+ }, C = 9, w = ({ ctx: u, children: f, initialFocus: S, initialFocusRef: w, showArrow: T = !1, showClose: E = !1, closeLabel: D, size: O = "md", maxWidth: k, className: A, style: j, ref: M, onKeyDown: N, onBlur: P, "aria-label": F, "aria-labelledby": I, "aria-describedby": L, ...R }) => {
32
+ let z = m(), B = D ?? z.popover.close, V = _(null), H = d(u.contentRef, M), U = u.anchorRef.current ? u.anchorRef : u.triggerRef, [W, G] = v(C);
32
33
  g(() => {
33
34
  let e = u.contentRef.current;
34
35
  if (!T || !e) return;
35
36
  let t = parseFloat(getComputedStyle(e).borderTopLeftRadius) || 0;
36
37
  G(t + C);
37
38
  }, [T, u.contentRef]);
38
- let K = i(U, V, {
39
+ let K = t(U, V, {
39
40
  open: !0,
40
41
  placement: u.placement,
41
42
  offset: u.offset ?? (T ? 12 : 8),
42
43
  arrowPadding: W
43
- }), q = K.isPositioned, J = K.placement.split("-")[0], Y = K.arrow ? K.arrow.x ?? K.arrow.y ?? null : null, X = n({
44
+ }), q = K.isPositioned, J = K.placement.split("-")[0], Y = K.arrow ? K.arrow.x ?? K.arrow.y ?? null : null, X = o({
44
45
  active: !0,
45
46
  modal: u.modal,
46
47
  elements: () => [
@@ -52,14 +53,14 @@ var x = {
52
53
  }), Z = X.contains, Q = _(!1);
53
54
  h(() => {
54
55
  if (!q || u.modal || Q.current) return;
55
- let t = u.contentRef.current;
56
- t && (Q.current = !0, ((typeof S == "function" ? S() ?? null : e(S)) ?? w?.current ?? a(t)[0] ?? t).focus({ preventScroll: !0 }));
56
+ let e = u.contentRef.current;
57
+ e && (Q.current = !0, ((typeof S == "function" ? S() ?? null : n(S)) ?? w?.current ?? r(e)[0] ?? e).focus({ preventScroll: !0 }));
57
58
  }, [
58
59
  q,
59
60
  u.modal,
60
61
  u.contentRef,
61
62
  w
62
- ]), o(u.contentRef, {
63
+ ]), i(u.contentRef, {
63
64
  active: u.modal && q,
64
65
  initialFocus: S,
65
66
  initialFocusRef: w,
@@ -78,7 +79,7 @@ var x = {
78
79
  };
79
80
  }, []);
80
81
  let { setOpen: $, closeOnEscape: ee } = u;
81
- r([], {
82
+ e([], {
82
83
  active: !0,
83
84
  layer: X,
84
85
  escapeKey: ee,
@@ -96,22 +97,22 @@ var x = {
96
97
  if (N?.(e), e.defaultPrevented || e.key !== "Tab" || u.modal) return;
97
98
  let t = u.contentRef.current, n = u.triggerRef.current;
98
99
  if (!t || !n) return;
99
- let r = a(t), i = document.activeElement, o = r[0], s = r[r.length - 1];
100
- if (e.shiftKey && (i === t || i === o)) e.preventDefault(), n.focus();
101
- else if (!e.shiftKey && (i === s || r.length === 0)) {
102
- let t = a(document.body).find((e) => !Z(e) && n.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING);
100
+ let i = r(t), a = document.activeElement, o = i[0], s = i[i.length - 1];
101
+ if (e.shiftKey && (a === t || a === o)) e.preventDefault(), n.focus();
102
+ else if (!e.shiftKey && (a === s || i.length === 0)) {
103
+ let t = r(document.body).find((e) => !Z(e) && n.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING);
103
104
  t && (e.preventDefault(), t.focus());
104
105
  }
105
106
  }, ne = (e) => {
106
107
  if (P?.(e), !u.closeOnFocusOut || u.modal) return;
107
108
  let t = e.relatedTarget;
108
109
  t && !Z(t) && $(!1, "none");
109
- }, re = I ?? (u.hasTitle && !F ? u.titleId : void 0), ie = l(u.hasDescription && u.descriptionId, L) || void 0;
110
- return /* @__PURE__ */ y(t, {
110
+ }, re = I ?? (u.hasTitle && !F ? u.titleId : void 0), ie = s(u.hasDescription && u.descriptionId, L) || void 0;
111
+ return /* @__PURE__ */ y(a, {
111
112
  layer: X,
112
113
  children: /* @__PURE__ */ y("div", {
113
114
  ref: V,
114
- className: m.positioner,
115
+ className: p.positioner,
115
116
  style: K.style,
116
117
  children: /* @__PURE__ */ b("div", {
117
118
  role: "dialog",
@@ -123,7 +124,7 @@ var x = {
123
124
  tabIndex: -1,
124
125
  ...R,
125
126
  ref: H,
126
- className: l(m.content, x[O], E && m.hasClose, A),
127
+ className: s(p.content, x[O], E && p.hasClose, A),
127
128
  style: k === void 0 ? j : {
128
129
  ...j,
129
130
  maxWidth: k
@@ -135,24 +136,23 @@ var x = {
135
136
  children: [
136
137
  T && /* @__PURE__ */ y("span", {
137
138
  "aria-hidden": "true",
138
- className: m.arrow,
139
+ className: p.arrow,
139
140
  "data-side": J,
140
141
  style: Y === null ? void 0 : J === "top" || J === "bottom" ? { left: `calc(${Y}px - var(--space-3) / 2)` } : { top: `calc(${Y}px - var(--space-3) / 2)` }
141
142
  }),
142
- E && /* @__PURE__ */ y(d, {
143
+ E && /* @__PURE__ */ y(c, {
143
144
  "aria-label": B,
144
145
  variant: "ghost",
145
146
  tone: "neutral",
146
147
  size: "sm",
147
- className: m.closeButton,
148
+ className: p.closeButton,
148
149
  onClick: () => $(!1, "force"),
149
- children: /* @__PURE__ */ y(f, {})
150
+ children: /* @__PURE__ */ y(l, {})
150
151
  }),
151
- p
152
+ f
152
153
  ]
153
154
  })
154
155
  })
155
156
  });
156
157
  };
157
- //#endregion
158
158
  export { S as PopoverContent };
@@ -1 +1 @@
1
- let e=require("react");var t=(0,e.createContext)(null);function n(n){let r=(0,e.useContext)(t);if(!r)throw Error(`${n} must be rendered inside <Popover>.`);return r}var r=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]`;exports.PRESS_FOCUSABLE=r,exports.PopoverContext=t,exports.usePopoverContext=n;
1
+ "use client";let e=require("react");var t=(0,e.createContext)(null);function n(n){let r=(0,e.useContext)(t);if(!r)throw Error(`${n} must be rendered inside <Popover>.`);return r}var r=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]`;exports.PRESS_FOCUSABLE=r,exports.PopoverContext=t,exports.usePopoverContext=n;
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  import { createContext as e, useContext as t } from "react";
2
- //#region src/components/overlays/Popover/PopoverContext.ts
3
+ // src/components/overlays/Popover/PopoverContext.ts
3
4
  var n = e(null);
4
5
  function r(e) {
5
6
  let r = t(n);
@@ -7,5 +8,4 @@ function r(e) {
7
8
  return r;
8
9
  }
9
10
  var i = "a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]";
10
- //#endregion
11
11
  export { i as PRESS_FOCUSABLE, n as PopoverContext, r as usePopoverContext };
@@ -1 +1 @@
1
- const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../../hooks/useDismiss.cjs.js"),n=require("../../../hooks/useFloatingPosition.cjs.js"),r=require("../../../utils/refs.cjs.js"),i=require("../../../utils/cx.cjs.js"),ee=require("../../utilities/Portal/Portal.cjs.js"),te=require("../../primitives/Kbd/Kbd.cjs.js"),a=require("./Tooltip.module.css.cjs.js");let o=require("react"),s=require("react/jsx-runtime");function c(e,t){if(e!==`start`&&e!==`end`)return e;let n=t?getComputedStyle(t).direction===`rtl`:!1;return e===`end`===n?`left`:`right`}var l={neutral:a.default.neutral,primary:a.default.primary},u={delay:400,closeDelay:100,skipDelayDuration:300},d=(0,o.createContext)(u);function f({delay:e=u.delay,closeDelay:t=u.closeDelay,skipDelayDuration:n=u.skipDelayDuration,children:r}){return(0,s.jsx)(d.Provider,{value:{delay:e,closeDelay:t,skipDelayDuration:n},children:r})}var p={active:null,lastClosedAt:-1/0};function m(...e){return e.filter(Boolean).join(` `)||void 0}function ne(e){try{return e.matches(`:focus-visible`)}catch{return!0}}var re=globalThis.process?.env?.NODE_ENV!==`production`,h=`a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [contenteditable]:not([contenteditable="false"])`;function g({children:u,content:f,shortcut:g,placement:_=`top`,offset:v=8,open:y,defaultOpen:b=!1,onOpenChange:x,delay:ie,closeDelay:ae,disabled:S=!1,showArrow:C=!0,tone:w=`neutral`,relationship:T=`description`,className:oe,style:se,id:ce}){let E=(0,o.useContext)(d),D=ie??E.delay,O=ae??E.closeDelay,k=(0,o.useId)(),A=ce??`tooltip-${k}`,[le,j]=e.useControllableState({value:y,defaultValue:b,onChange:x}),M=le&&!S,N=(0,o.useRef)(null),P=(0,o.useRef)(null),[F,I]=(0,o.useState)(null),L=(0,o.useRef)(!1),R=(0,o.useRef)(!1),z=(0,o.useRef)(void 0),B=(0,o.useCallback)(()=>{z.current!==void 0&&clearTimeout(z.current),z.current=void 0},[]);(0,o.useEffect)(()=>B,[B]);let V=(0,o.useCallback)(e=>{B(),j(e)},[B,j]),H=()=>{B(),!S&&(p.active!==null||Date.now()-p.lastClosedAt<E.skipDelayDuration||D<=0?V(!0):z.current=setTimeout(()=>V(!0),D))},U=()=>{B(),!(L.current||R.current)&&(O<=0?V(!1):z.current=setTimeout(()=>V(!1),O))};(0,o.useEffect)(()=>{if(!M)return;let e={close:()=>V(!1)};return p.active&&p.active.close(),p.active=e,()=>{p.active===e&&(p.active=null),p.lastClosedAt=Date.now()}},[M,V]),t.useDismiss([N,P],{active:M,outsidePress:!1,onDismiss:()=>V(!1)});let[ue,de]=(0,o.useState)(()=>c(_,null));(0,o.useLayoutEffect)(()=>{M&&de(c(_,N.current))},[M,_]);let W=n.useFloatingPosition(N,F,{open:M,placement:ue,offset:v}),fe=W.placement.split(`-`)[0],G=W.arrow?W.arrow.x??W.arrow.y??null:null;(0,o.useEffect)(()=>{re&&F&&F.querySelector(h)&&console.warn("[Tooltip] `content` contains focusable elements. Tooltips can't receive focus, so keyboard users can't reach them. Use a Popover for interactive content.")},[F,f]);let K=o.Children.only(u),q=(0,o.useRef)(void 0);q.current=(0,o.isValidElement)(K)?K.props.ref:void 0;let pe=(0,o.useCallback)(e=>{N.current=e,r.assignRef(q.current,e)},[]),me=(0,o.useCallback)(e=>{P.current=e,I(e)},[]);if(!(0,o.isValidElement)(K))return u;let J=K.props,Y=f!=null&&f!==!1&&f!==``&&!S,X=g!==void 0&&g.length>0,Z=`${A}-content`,Q=`${A}-shortcut`,$={ref:pe};Y&&($.onPointerEnter=e=>{J.onPointerEnter?.(e),e.pointerType!==`touch`&&(L.current=!0,M?B():H())},$.onPointerLeave=e=>{J.onPointerLeave?.(e),e.pointerType!==`touch`&&(L.current=!1,M?U():R.current||B())},$.onFocus=e=>{J.onFocus?.(e),ne(e.currentTarget)&&(R.current=!0,M||H())},$.onBlur=e=>{J.onBlur?.(e),R.current&&(R.current=!1,!L.current&&V(!1))},T===`label`?($[`aria-labelledby`]=m(J[`aria-labelledby`],Z),X&&($[`aria-describedby`]=m(J[`aria-describedby`],Q))):$[`aria-describedby`]=m(J[`aria-describedby`],A));let he={...se,...W.style,"--_tooltip-offset":`${v}px`,...G===null?null:{"--_arrow-pos":`${G}px`}};return(0,s.jsxs)(s.Fragment,{children:[(0,o.cloneElement)(K,$),Y&&(0,s.jsx)(ee.Portal,{children:(0,s.jsx)(`div`,{ref:me,id:A,role:`tooltip`,hidden:!M,"data-side":fe,className:i.cx(a.default.tooltip,l[w],oe),style:he,onPointerEnter:e=>{e.pointerType!==`touch`&&(L.current=!0,B())},onPointerLeave:e=>{e.pointerType!==`touch`&&(L.current=!1,U())},children:(0,s.jsxs)(`div`,{className:a.default.bubble,children:[(0,s.jsx)(`span`,{id:Z,className:a.default.content,children:f}),X&&(0,s.jsx)(`span`,{id:Q,className:a.default.shortcut,children:(0,s.jsx)(te.KbdShortcut,{keys:g,size:`sm`,variant:`outline`})}),C&&(0,s.jsx)(`span`,{className:a.default.arrow,"aria-hidden":`true`})]})})})]})}exports.Tooltip=g,exports.TooltipProvider=f;
1
+ "use client";const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../../hooks/useDismiss.cjs.js"),n=require("../../../hooks/useFloatingPosition.cjs.js"),r=require("../../../utils/cx.cjs.js"),i=require("../../../utils/refs.cjs.js"),ee=require("../../primitives/Kbd/Kbd.cjs.js"),te=require("../../utilities/Portal/Portal.cjs.js"),a=require("./Tooltip.module.css.cjs.js");let o=require("react"),s=require("react/jsx-runtime");function c(e,t){if(e!==`start`&&e!==`end`)return e;let n=t?getComputedStyle(t).direction===`rtl`:!1;return e===`end`===n?`left`:`right`}var l={neutral:a.default.neutral,primary:a.default.primary},u={delay:400,closeDelay:100,skipDelayDuration:300},d=(0,o.createContext)(u);function f({delay:e=u.delay,closeDelay:t=u.closeDelay,skipDelayDuration:n=u.skipDelayDuration,children:r}){let i=(0,o.useMemo)(()=>({delay:e,closeDelay:t,skipDelayDuration:n}),[e,t,n]);return(0,s.jsx)(d.Provider,{value:i,children:r})}var p={active:null,lastClosedAt:-1/0};function m(...e){return e.filter(Boolean).join(` `)||void 0}function ne(e){try{return e.matches(`:focus-visible`)}catch{return!0}}var h=globalThis.process?.env?.NODE_ENV!==`production`,g=`a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [contenteditable]:not([contenteditable="false"])`;function _({children:u,content:f,shortcut:_,placement:v=`top`,offset:y=8,open:re,defaultOpen:b=!1,onOpenChange:x,delay:ie,closeDelay:ae,disabled:S=!1,showArrow:C=!0,tone:w=`neutral`,relationship:T=`description`,className:oe,style:se,id:ce}){let E=(0,o.useContext)(d),D=ie??E.delay,O=ae??E.closeDelay,k=(0,o.useId)(),A=ce??`tooltip-${k}`,[le,j]=e.useControllableState({value:re,defaultValue:b,onChange:x}),M=le&&!S,N=(0,o.useRef)(null),P=(0,o.useRef)(null),[F,I]=(0,o.useState)(null),L=(0,o.useRef)(!1),R=(0,o.useRef)(!1),z=(0,o.useRef)(void 0),B=(0,o.useCallback)(()=>{z.current!==void 0&&clearTimeout(z.current),z.current=void 0},[]);(0,o.useEffect)(()=>B,[B]);let V=(0,o.useCallback)(e=>{B(),j(e)},[B,j]),H=()=>{B(),S||(p.active!==null||Date.now()-p.lastClosedAt<E.skipDelayDuration||D<=0?V(!0):z.current=setTimeout(()=>V(!0),D))},U=()=>{B(),L.current||R.current||(O<=0?V(!1):z.current=setTimeout(()=>V(!1),O))};(0,o.useEffect)(()=>{if(!M)return;let e={close:()=>V(!1)};return p.active&&p.active.close(),p.active=e,()=>{p.active===e&&(p.active=null),p.lastClosedAt=Date.now()}},[M,V]),t.useDismiss([N,P],{active:M,outsidePress:!1,onDismiss:()=>V(!1)});let[ue,de]=(0,o.useState)(()=>c(v,null));(0,o.useLayoutEffect)(()=>{M&&de(c(v,N.current))},[M,v]);let W=n.useFloatingPosition(N,F,{open:M,placement:ue,offset:y}),fe=W.placement.split(`-`)[0],G=W.arrow?W.arrow.x??W.arrow.y??null:null;(0,o.useEffect)(()=>{h&&F&&F.querySelector(g)&&console.warn("[Tooltip] `content` contains focusable elements. Tooltips can't receive focus, so keyboard users can't reach them. Use a Popover for interactive content.")},[F,f]);let K=o.Children.only(u),q=(0,o.useRef)(void 0);q.current=(0,o.isValidElement)(K)?K.props.ref:void 0;let pe=(0,o.useCallback)(e=>{N.current=e,i.assignRef(q.current,e)},[]),me=(0,o.useCallback)(e=>{P.current=e,I(e)},[]);if(!(0,o.isValidElement)(K))return u;let J=K.props,Y=f!=null&&f!==!1&&f!==``&&!S,X=_!==void 0&&_.length>0,Z=`${A}-content`,Q=`${A}-shortcut`,$={ref:pe};Y&&($.onPointerEnter=e=>{J.onPointerEnter?.(e),e.pointerType!==`touch`&&(L.current=!0,M?B():H())},$.onPointerLeave=e=>{J.onPointerLeave?.(e),e.pointerType!==`touch`&&(L.current=!1,M?U():R.current||B())},$.onFocus=e=>{J.onFocus?.(e),ne(e.currentTarget)&&(R.current=!0,M||H())},$.onBlur=e=>{J.onBlur?.(e),R.current&&(R.current=!1,L.current||V(!1))},T===`label`?($[`aria-labelledby`]=m(J[`aria-labelledby`],Z),X&&($[`aria-describedby`]=m(J[`aria-describedby`],Q))):$[`aria-describedby`]=m(J[`aria-describedby`],A));let he={...se,...W.style,"--_tooltip-offset":`${y}px`,...G===null?null:{"--_arrow-pos":`${G}px`}};return(0,s.jsxs)(s.Fragment,{children:[(0,o.cloneElement)(K,$),Y&&(0,s.jsx)(te.Portal,{children:(0,s.jsx)(`div`,{ref:me,id:A,role:`tooltip`,hidden:!M,"data-side":fe,className:r.cx(a.default.tooltip,l[w],oe),style:he,onPointerEnter:e=>{e.pointerType!==`touch`&&(L.current=!0,B())},onPointerLeave:e=>{e.pointerType!==`touch`&&(L.current=!1,U())},children:(0,s.jsxs)(`div`,{className:a.default.bubble,children:[(0,s.jsx)(`span`,{id:Z,className:a.default.content,children:f}),X&&(0,s.jsx)(`span`,{id:Q,className:a.default.shortcut,children:(0,s.jsx)(ee.KbdShortcut,{keys:_,size:`sm`,variant:`outline`})}),C&&(0,s.jsx)(`span`,{className:a.default.arrow,"aria-hidden":`true`})]})})})]})}exports.Tooltip=_,exports.TooltipProvider=f;