@helpwave/hightide 0.1.24 → 0.1.26

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 (602) hide show
  1. package/README.md +1 -1
  2. package/dist/components/branding/HelpwaveBadge.d.mts +4 -5
  3. package/dist/components/branding/HelpwaveBadge.d.ts +4 -5
  4. package/dist/components/branding/HelpwaveBadge.js +46 -87
  5. package/dist/components/branding/HelpwaveBadge.js.map +1 -1
  6. package/dist/components/branding/HelpwaveBadge.mjs +46 -89
  7. package/dist/components/branding/HelpwaveBadge.mjs.map +1 -1
  8. package/dist/components/date/DatePicker.d.mts +1 -1
  9. package/dist/components/date/DatePicker.d.ts +1 -1
  10. package/dist/components/date/DatePicker.js +106 -60
  11. package/dist/components/date/DatePicker.js.map +1 -1
  12. package/dist/components/date/DatePicker.mjs +107 -61
  13. package/dist/components/date/DatePicker.mjs.map +1 -1
  14. package/dist/components/date/DayPicker.d.mts +1 -1
  15. package/dist/components/date/DayPicker.d.ts +1 -1
  16. package/dist/components/date/DayPicker.js +3 -3
  17. package/dist/components/date/DayPicker.js.map +1 -1
  18. package/dist/components/date/DayPicker.mjs +3 -3
  19. package/dist/components/date/DayPicker.mjs.map +1 -1
  20. package/dist/components/date/TimeDisplay.js.map +1 -1
  21. package/dist/components/date/TimeDisplay.mjs.map +1 -1
  22. package/dist/components/date/TimePicker.js +2 -2
  23. package/dist/components/date/TimePicker.js.map +1 -1
  24. package/dist/components/date/TimePicker.mjs +2 -2
  25. package/dist/components/date/TimePicker.mjs.map +1 -1
  26. package/dist/components/date/YearMonthPicker.js +84 -36
  27. package/dist/components/date/YearMonthPicker.js.map +1 -1
  28. package/dist/components/date/YearMonthPicker.mjs +85 -37
  29. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  30. package/dist/components/{dialogs → dialog}/ConfirmDialog.d.mts +9 -8
  31. package/dist/components/{dialogs → dialog}/ConfirmDialog.d.ts +9 -8
  32. package/dist/components/dialog/ConfirmDialog.js +938 -0
  33. package/dist/components/dialog/ConfirmDialog.js.map +1 -0
  34. package/dist/components/dialog/ConfirmDialog.mjs +902 -0
  35. package/dist/components/dialog/ConfirmDialog.mjs.map +1 -0
  36. package/dist/components/dialog/Dialog.d.mts +27 -0
  37. package/dist/components/dialog/Dialog.d.ts +27 -0
  38. package/dist/components/dialog/Dialog.js +879 -0
  39. package/dist/components/dialog/Dialog.js.map +1 -0
  40. package/dist/components/dialog/Dialog.mjs +845 -0
  41. package/dist/components/dialog/Dialog.mjs.map +1 -0
  42. package/dist/components/dialog/DiscardChangesDialog.d.mts +24 -0
  43. package/dist/components/dialog/DiscardChangesDialog.d.ts +24 -0
  44. package/dist/components/dialog/DiscardChangesDialog.js +966 -0
  45. package/dist/components/dialog/DiscardChangesDialog.js.map +1 -0
  46. package/dist/components/dialog/DiscardChangesDialog.mjs +930 -0
  47. package/dist/components/dialog/DiscardChangesDialog.mjs.map +1 -0
  48. package/dist/components/dialog/InputDialog.d.mts +22 -0
  49. package/dist/components/dialog/InputDialog.d.ts +22 -0
  50. package/dist/components/dialog/InputDialog.js +1139 -0
  51. package/dist/components/dialog/InputDialog.js.map +1 -0
  52. package/dist/components/dialog/InputDialog.mjs +1103 -0
  53. package/dist/components/dialog/InputDialog.mjs.map +1 -0
  54. package/dist/components/dialog/LanguageDialog.d.mts +25 -0
  55. package/dist/components/dialog/LanguageDialog.d.ts +25 -0
  56. package/dist/components/dialog/LanguageDialog.js +1684 -0
  57. package/dist/components/dialog/LanguageDialog.js.map +1 -0
  58. package/dist/components/dialog/LanguageDialog.mjs +1658 -0
  59. package/dist/components/dialog/LanguageDialog.mjs.map +1 -0
  60. package/dist/components/dialog/ThemeDialog.d.mts +26 -0
  61. package/dist/components/dialog/ThemeDialog.d.ts +26 -0
  62. package/dist/components/dialog/ThemeDialog.js +1715 -0
  63. package/dist/components/dialog/ThemeDialog.js.map +1 -0
  64. package/dist/components/dialog/ThemeDialog.mjs +1689 -0
  65. package/dist/components/dialog/ThemeDialog.mjs.map +1 -0
  66. package/dist/components/dialog/index.d.mts +17 -0
  67. package/dist/components/dialog/index.d.ts +17 -0
  68. package/dist/components/dialog/index.js +2062 -0
  69. package/dist/components/dialog/index.js.map +1 -0
  70. package/dist/components/dialog/index.mjs +2031 -0
  71. package/dist/components/dialog/index.mjs.map +1 -0
  72. package/dist/components/form/FormElementWrapper.d.mts +29 -0
  73. package/dist/components/form/FormElementWrapper.d.ts +29 -0
  74. package/dist/components/form/FormElementWrapper.js +98 -0
  75. package/dist/components/form/FormElementWrapper.js.map +1 -0
  76. package/dist/components/form/FormElementWrapper.mjs +64 -0
  77. package/dist/components/form/FormElementWrapper.mjs.map +1 -0
  78. package/dist/components/icons-and-geometry/Avatar.js +498 -2886
  79. package/dist/components/icons-and-geometry/Avatar.js.map +1 -1
  80. package/dist/components/icons-and-geometry/Avatar.mjs +490 -2878
  81. package/dist/components/icons-and-geometry/Avatar.mjs.map +1 -1
  82. package/dist/components/icons-and-geometry/{Helpwave.d.mts → HelpwaveLogo.d.mts} +3 -3
  83. package/dist/components/icons-and-geometry/{Helpwave.d.ts → HelpwaveLogo.d.ts} +3 -3
  84. package/dist/components/icons-and-geometry/{Helpwave.js → HelpwaveLogo.js} +21 -22
  85. package/dist/components/icons-and-geometry/HelpwaveLogo.js.map +1 -0
  86. package/dist/components/icons-and-geometry/{Helpwave.mjs → HelpwaveLogo.mjs} +17 -18
  87. package/dist/components/icons-and-geometry/HelpwaveLogo.mjs.map +1 -0
  88. package/dist/components/icons-and-geometry/Ring.js +1 -1
  89. package/dist/components/icons-and-geometry/Ring.js.map +1 -1
  90. package/dist/components/icons-and-geometry/Ring.mjs +1 -1
  91. package/dist/components/icons-and-geometry/Ring.mjs.map +1 -1
  92. package/dist/components/icons-and-geometry/Tag.js +8 -20
  93. package/dist/components/icons-and-geometry/Tag.js.map +1 -1
  94. package/dist/components/icons-and-geometry/Tag.mjs +8 -20
  95. package/dist/components/icons-and-geometry/Tag.mjs.map +1 -1
  96. package/dist/components/layout-and-navigation/BreadCrumb.js +667 -22
  97. package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -1
  98. package/dist/components/layout-and-navigation/BreadCrumb.mjs +667 -22
  99. package/dist/components/layout-and-navigation/BreadCrumb.mjs.map +1 -1
  100. package/dist/components/layout-and-navigation/Carousel.js +52 -53
  101. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  102. package/dist/components/layout-and-navigation/Carousel.mjs +52 -53
  103. package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
  104. package/dist/components/layout-and-navigation/Chip.d.mts +8 -5
  105. package/dist/components/layout-and-navigation/Chip.d.ts +8 -5
  106. package/dist/components/layout-and-navigation/Chip.js +17 -4
  107. package/dist/components/layout-and-navigation/Chip.js.map +1 -1
  108. package/dist/components/layout-and-navigation/Chip.mjs +17 -4
  109. package/dist/components/layout-and-navigation/Chip.mjs.map +1 -1
  110. package/dist/components/layout-and-navigation/Expandable.d.mts +13 -10
  111. package/dist/components/layout-and-navigation/Expandable.d.ts +13 -10
  112. package/dist/components/layout-and-navigation/Expandable.js +18 -5
  113. package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
  114. package/dist/components/layout-and-navigation/Expandable.mjs +19 -6
  115. package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -1
  116. package/dist/components/layout-and-navigation/FAQSection.js +21 -8
  117. package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
  118. package/dist/components/layout-and-navigation/FAQSection.mjs +22 -9
  119. package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -1
  120. package/dist/components/layout-and-navigation/FloatingContainer.d.mts +38 -0
  121. package/dist/components/layout-and-navigation/FloatingContainer.d.ts +38 -0
  122. package/dist/components/layout-and-navigation/FloatingContainer.js +219 -0
  123. package/dist/components/layout-and-navigation/FloatingContainer.js.map +1 -0
  124. package/dist/components/layout-and-navigation/FloatingContainer.mjs +195 -0
  125. package/dist/components/layout-and-navigation/FloatingContainer.mjs.map +1 -0
  126. package/dist/components/layout-and-navigation/ListBox.d.mts +44 -0
  127. package/dist/components/layout-and-navigation/ListBox.d.ts +44 -0
  128. package/dist/components/layout-and-navigation/ListBox.js +329 -0
  129. package/dist/components/layout-and-navigation/ListBox.js.map +1 -0
  130. package/dist/components/layout-and-navigation/ListBox.mjs +290 -0
  131. package/dist/components/layout-and-navigation/ListBox.mjs.map +1 -0
  132. package/dist/components/layout-and-navigation/Pagination.js +142 -230
  133. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  134. package/dist/components/layout-and-navigation/Pagination.mjs +137 -225
  135. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
  136. package/dist/components/layout-and-navigation/ScrollArea.d.mts +15 -0
  137. package/dist/components/layout-and-navigation/ScrollArea.d.ts +15 -0
  138. package/dist/components/layout-and-navigation/ScrollArea.js +1252 -0
  139. package/dist/components/layout-and-navigation/ScrollArea.js.map +1 -0
  140. package/dist/components/layout-and-navigation/ScrollArea.mjs +1216 -0
  141. package/dist/components/layout-and-navigation/ScrollArea.mjs.map +1 -0
  142. package/dist/components/layout-and-navigation/StepperBar.js +67 -30
  143. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  144. package/dist/components/layout-and-navigation/StepperBar.mjs +67 -30
  145. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
  146. package/dist/components/layout-and-navigation/TextImage.js +3 -1
  147. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  148. package/dist/components/layout-and-navigation/TextImage.mjs +3 -1
  149. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
  150. package/dist/components/loading-states/ErrorComponent.js.map +1 -1
  151. package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
  152. package/dist/components/loading-states/LoadingAndErrorComponent.d.mts +1 -1
  153. package/dist/components/loading-states/LoadingAndErrorComponent.d.ts +1 -1
  154. package/dist/components/loading-states/LoadingAnimation.js +18 -17
  155. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  156. package/dist/components/loading-states/LoadingAnimation.mjs +18 -17
  157. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  158. package/dist/components/loading-states/LoadingButton.js +81 -47
  159. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  160. package/dist/components/loading-states/LoadingButton.mjs +81 -47
  161. package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
  162. package/dist/components/properties/CheckboxProperty.js +929 -153
  163. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  164. package/dist/components/properties/CheckboxProperty.mjs +936 -160
  165. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  166. package/dist/components/properties/DateProperty.js +191 -241
  167. package/dist/components/properties/DateProperty.js.map +1 -1
  168. package/dist/components/properties/DateProperty.mjs +184 -234
  169. package/dist/components/properties/DateProperty.mjs.map +1 -1
  170. package/dist/components/properties/MultiSelectProperty.d.mts +5 -10
  171. package/dist/components/properties/MultiSelectProperty.d.ts +5 -10
  172. package/dist/components/properties/MultiSelectProperty.js +1193 -1189
  173. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  174. package/dist/components/properties/MultiSelectProperty.mjs +1207 -1193
  175. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  176. package/dist/components/properties/NumberProperty.js +193 -244
  177. package/dist/components/properties/NumberProperty.js.map +1 -1
  178. package/dist/components/properties/NumberProperty.mjs +186 -237
  179. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  180. package/dist/components/properties/PropertyBase.js +91 -56
  181. package/dist/components/properties/PropertyBase.js.map +1 -1
  182. package/dist/components/properties/PropertyBase.mjs +91 -56
  183. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  184. package/dist/components/properties/SelectProperty.d.mts +5 -8
  185. package/dist/components/properties/SelectProperty.d.ts +5 -8
  186. package/dist/components/properties/SelectProperty.js +1102 -897
  187. package/dist/components/properties/SelectProperty.js.map +1 -1
  188. package/dist/components/properties/SelectProperty.mjs +1107 -892
  189. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  190. package/dist/components/properties/TextProperty.js +139 -147
  191. package/dist/components/properties/TextProperty.js.map +1 -1
  192. package/dist/components/properties/TextProperty.mjs +142 -150
  193. package/dist/components/properties/TextProperty.mjs.map +1 -1
  194. package/dist/components/table/Table.js +1639 -991
  195. package/dist/components/table/Table.js.map +1 -1
  196. package/dist/components/table/Table.mjs +1645 -997
  197. package/dist/components/table/Table.mjs.map +1 -1
  198. package/dist/components/table/TableFilterButton.js +156 -244
  199. package/dist/components/table/TableFilterButton.js.map +1 -1
  200. package/dist/components/table/TableFilterButton.mjs +145 -233
  201. package/dist/components/table/TableFilterButton.mjs.map +1 -1
  202. package/dist/components/table/TableSortButton.js +44 -46
  203. package/dist/components/table/TableSortButton.js.map +1 -1
  204. package/dist/components/table/TableSortButton.mjs +44 -46
  205. package/dist/components/table/TableSortButton.mjs.map +1 -1
  206. package/dist/components/user-action/Button.d.mts +17 -13
  207. package/dist/components/user-action/Button.d.ts +17 -13
  208. package/dist/components/user-action/Button.js +80 -87
  209. package/dist/components/user-action/Button.js.map +1 -1
  210. package/dist/components/user-action/Button.mjs +80 -87
  211. package/dist/components/user-action/Button.mjs.map +1 -1
  212. package/dist/components/user-action/Checkbox.d.mts +9 -25
  213. package/dist/components/user-action/Checkbox.d.ts +9 -25
  214. package/dist/components/user-action/Checkbox.js +794 -78
  215. package/dist/components/user-action/Checkbox.js.map +1 -1
  216. package/dist/components/user-action/Checkbox.mjs +795 -79
  217. package/dist/components/user-action/Checkbox.mjs.map +1 -1
  218. package/dist/components/user-action/CopyToClipboardWrapper.js +3 -1
  219. package/dist/components/user-action/CopyToClipboardWrapper.js.map +1 -1
  220. package/dist/components/user-action/CopyToClipboardWrapper.mjs +3 -1
  221. package/dist/components/user-action/CopyToClipboardWrapper.mjs.map +1 -1
  222. package/dist/components/user-action/DateAndTimePicker.d.mts +1 -1
  223. package/dist/components/user-action/DateAndTimePicker.d.ts +1 -1
  224. package/dist/components/user-action/DateAndTimePicker.js +108 -60
  225. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  226. package/dist/components/user-action/DateAndTimePicker.mjs +109 -61
  227. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  228. package/dist/components/user-action/Label.d.mts +6 -8
  229. package/dist/components/user-action/Label.d.ts +6 -8
  230. package/dist/components/user-action/Label.js +4 -6
  231. package/dist/components/user-action/Label.js.map +1 -1
  232. package/dist/components/user-action/Label.mjs +4 -6
  233. package/dist/components/user-action/Label.mjs.map +1 -1
  234. package/dist/components/user-action/Menu.d.mts +2 -2
  235. package/dist/components/user-action/Menu.d.ts +2 -2
  236. package/dist/components/user-action/Menu.js +1 -1
  237. package/dist/components/user-action/Menu.js.map +1 -1
  238. package/dist/components/user-action/Menu.mjs +1 -1
  239. package/dist/components/user-action/Menu.mjs.map +1 -1
  240. package/dist/components/user-action/ScrollPicker.js +8 -6
  241. package/dist/components/user-action/ScrollPicker.js.map +1 -1
  242. package/dist/components/user-action/ScrollPicker.mjs +8 -6
  243. package/dist/components/user-action/ScrollPicker.mjs.map +1 -1
  244. package/dist/components/user-action/SearchBar.d.mts +1 -2
  245. package/dist/components/user-action/SearchBar.d.ts +1 -2
  246. package/dist/components/user-action/SearchBar.js +131 -219
  247. package/dist/components/user-action/SearchBar.js.map +1 -1
  248. package/dist/components/user-action/SearchBar.mjs +124 -212
  249. package/dist/components/user-action/SearchBar.mjs.map +1 -1
  250. package/dist/components/user-action/Textarea.d.mts +22 -11
  251. package/dist/components/user-action/Textarea.d.ts +22 -11
  252. package/dist/components/user-action/Textarea.js +101 -92
  253. package/dist/components/user-action/Textarea.js.map +1 -1
  254. package/dist/components/user-action/Textarea.mjs +100 -92
  255. package/dist/components/user-action/Textarea.mjs.map +1 -1
  256. package/dist/components/user-action/input/Input.d.mts +37 -0
  257. package/dist/components/user-action/input/Input.d.ts +37 -0
  258. package/dist/components/user-action/input/Input.js +244 -0
  259. package/dist/components/user-action/input/Input.js.map +1 -0
  260. package/dist/components/user-action/input/Input.mjs +209 -0
  261. package/dist/components/user-action/input/Input.mjs.map +1 -0
  262. package/dist/components/user-action/input/InsideLabelInput.d.mts +20 -0
  263. package/dist/components/user-action/input/InsideLabelInput.d.ts +20 -0
  264. package/dist/components/user-action/input/InsideLabelInput.js +295 -0
  265. package/dist/components/user-action/input/InsideLabelInput.js.map +1 -0
  266. package/dist/components/user-action/input/InsideLabelInput.mjs +260 -0
  267. package/dist/components/user-action/input/InsideLabelInput.mjs.map +1 -0
  268. package/dist/components/user-action/input/ToggleableInput.d.mts +22 -0
  269. package/dist/components/user-action/input/ToggleableInput.d.ts +22 -0
  270. package/dist/components/user-action/{Input.js → input/ToggleableInput.js} +136 -171
  271. package/dist/components/user-action/input/ToggleableInput.js.map +1 -0
  272. package/dist/components/user-action/input/ToggleableInput.mjs +264 -0
  273. package/dist/components/user-action/input/ToggleableInput.mjs.map +1 -0
  274. package/dist/components/user-action/select/Select.d.mts +98 -0
  275. package/dist/components/user-action/select/Select.d.ts +98 -0
  276. package/dist/components/user-action/select/Select.js +1354 -0
  277. package/dist/components/user-action/select/Select.js.map +1 -0
  278. package/dist/components/user-action/select/Select.mjs +1320 -0
  279. package/dist/components/user-action/select/Select.mjs.map +1 -0
  280. package/dist/components/utils/FocusTrap.d.mts +28 -0
  281. package/dist/components/utils/FocusTrap.d.ts +28 -0
  282. package/dist/components/utils/FocusTrap.js +252 -0
  283. package/dist/components/utils/FocusTrap.js.map +1 -0
  284. package/dist/components/utils/FocusTrap.mjs +229 -0
  285. package/dist/components/utils/FocusTrap.mjs.map +1 -0
  286. package/dist/components/utils/Transition.d.mts +26 -0
  287. package/dist/components/utils/Transition.d.ts +26 -0
  288. package/dist/components/utils/Transition.js +74 -0
  289. package/dist/components/utils/Transition.js.map +1 -0
  290. package/dist/components/utils/Transition.mjs +50 -0
  291. package/dist/components/utils/Transition.mjs.map +1 -0
  292. package/dist/hooks/focus/useFocusGuards.d.mts +3 -0
  293. package/dist/hooks/focus/useFocusGuards.d.ts +3 -0
  294. package/dist/hooks/focus/useFocusGuards.js +74 -0
  295. package/dist/hooks/focus/useFocusGuards.js.map +1 -0
  296. package/dist/hooks/focus/useFocusGuards.mjs +50 -0
  297. package/dist/hooks/focus/useFocusGuards.mjs.map +1 -0
  298. package/dist/hooks/{useFocusManagement.js → focus/useFocusManagement.js} +1 -1
  299. package/dist/hooks/focus/useFocusManagement.js.map +1 -0
  300. package/dist/hooks/{useFocusManagement.mjs → focus/useFocusManagement.mjs} +1 -1
  301. package/dist/hooks/focus/useFocusManagement.mjs.map +1 -0
  302. package/dist/hooks/{useFocusOnceVisible.js → focus/useFocusOnceVisible.js} +1 -1
  303. package/dist/hooks/focus/useFocusOnceVisible.js.map +1 -0
  304. package/dist/hooks/{useFocusOnceVisible.mjs → focus/useFocusOnceVisible.mjs} +1 -1
  305. package/dist/hooks/focus/useFocusOnceVisible.mjs.map +1 -0
  306. package/dist/hooks/focus/useFocusTrap.d.mts +16 -0
  307. package/dist/hooks/focus/useFocusTrap.d.ts +16 -0
  308. package/dist/hooks/focus/useFocusTrap.js +233 -0
  309. package/dist/hooks/focus/useFocusTrap.js.map +1 -0
  310. package/dist/hooks/focus/useFocusTrap.mjs +210 -0
  311. package/dist/hooks/focus/useFocusTrap.mjs.map +1 -0
  312. package/dist/hooks/focus/useIsMounted.d.mts +3 -0
  313. package/dist/hooks/focus/useIsMounted.d.ts +3 -0
  314. package/dist/hooks/focus/useIsMounted.js +43 -0
  315. package/dist/hooks/focus/useIsMounted.js.map +1 -0
  316. package/dist/hooks/focus/useIsMounted.mjs +20 -0
  317. package/dist/hooks/focus/useIsMounted.mjs.map +1 -0
  318. package/dist/hooks/useFloatingElement.d.mts +22 -0
  319. package/dist/hooks/useFloatingElement.d.ts +22 -0
  320. package/dist/hooks/useFloatingElement.js +162 -0
  321. package/dist/hooks/useFloatingElement.js.map +1 -0
  322. package/dist/hooks/useFloatingElement.mjs +139 -0
  323. package/dist/hooks/useFloatingElement.mjs.map +1 -0
  324. package/dist/hooks/useLocalStorage.js +2 -2
  325. package/dist/hooks/useLocalStorage.js.map +1 -1
  326. package/dist/hooks/useLocalStorage.mjs +2 -2
  327. package/dist/hooks/useLocalStorage.mjs.map +1 -1
  328. package/dist/hooks/useLogOnce.d.mts +3 -4
  329. package/dist/hooks/useLogOnce.d.ts +3 -4
  330. package/dist/hooks/useLogOnce.js +5 -5
  331. package/dist/hooks/useLogOnce.js.map +1 -1
  332. package/dist/hooks/useLogOnce.mjs +5 -5
  333. package/dist/hooks/useLogOnce.mjs.map +1 -1
  334. package/dist/hooks/useRerender.d.mts +2 -2
  335. package/dist/hooks/useRerender.d.ts +2 -2
  336. package/dist/hooks/useSearch.d.mts +2 -2
  337. package/dist/hooks/useSearch.d.ts +2 -2
  338. package/dist/hooks/useSearch.js +1 -1
  339. package/dist/hooks/useSearch.js.map +1 -1
  340. package/dist/hooks/useSearch.mjs +1 -1
  341. package/dist/hooks/useSearch.mjs.map +1 -1
  342. package/dist/localization/LanguageProvider.d.mts +2 -2
  343. package/dist/localization/LanguageProvider.d.ts +2 -2
  344. package/dist/localization/LanguageProvider.js +2 -2
  345. package/dist/localization/LanguageProvider.js.map +1 -1
  346. package/dist/localization/LanguageProvider.mjs +2 -2
  347. package/dist/localization/LanguageProvider.mjs.map +1 -1
  348. package/dist/localization/defaults/form.d.mts +1 -0
  349. package/dist/localization/defaults/form.d.ts +1 -0
  350. package/dist/localization/defaults/form.js +2 -0
  351. package/dist/localization/defaults/form.js.map +1 -1
  352. package/dist/localization/defaults/form.mjs +2 -0
  353. package/dist/localization/defaults/form.mjs.map +1 -1
  354. package/dist/localization/useTranslation.js.map +1 -1
  355. package/dist/localization/useTranslation.mjs.map +1 -1
  356. package/dist/storybook/helper.d.mts +17 -0
  357. package/dist/storybook/helper.d.ts +17 -0
  358. package/dist/storybook/helper.js +61 -0
  359. package/dist/storybook/helper.js.map +1 -0
  360. package/dist/storybook/helper.mjs +37 -0
  361. package/dist/storybook/helper.mjs.map +1 -0
  362. package/dist/{css → style}/globals.css +994 -456
  363. package/dist/{css → style}/uncompiled/globals.css +75 -13
  364. package/dist/{css → style}/uncompiled/theme/colors-component.css +18 -4
  365. package/dist/{css → style}/uncompiled/theme/colors-semantic.css +2 -9
  366. package/dist/style/uncompiled/typography.css +171 -0
  367. package/dist/{css → style}/uncompiled/utitlity/animation.css +54 -42
  368. package/dist/{css → style}/uncompiled/utitlity/index.css +2 -1
  369. package/dist/{css → style}/uncompiled/utitlity/shadow.css +5 -1
  370. package/dist/style/uncompiled/utitlity/sizing.css +29 -0
  371. package/dist/theming/useTheme.d.mts +2 -2
  372. package/dist/theming/useTheme.d.ts +2 -2
  373. package/dist/theming/useTheme.js +4 -4
  374. package/dist/theming/useTheme.js.map +1 -1
  375. package/dist/theming/useTheme.mjs +4 -4
  376. package/dist/theming/useTheme.mjs.map +1 -1
  377. package/dist/{util → utils}/array.d.mts +1 -0
  378. package/dist/{util → utils}/array.d.ts +1 -0
  379. package/dist/{util → utils}/array.js +15 -2
  380. package/dist/utils/array.js.map +1 -0
  381. package/dist/{util → utils}/array.mjs +15 -2
  382. package/dist/utils/array.mjs.map +1 -0
  383. package/dist/utils/bagFunctions.d.mts +15 -0
  384. package/dist/utils/bagFunctions.d.ts +15 -0
  385. package/dist/{util/PropsWithFunctionChildren.js → utils/bagFunctions.js} +5 -5
  386. package/dist/utils/bagFunctions.js.map +1 -0
  387. package/dist/{util/PropsWithFunctionChildren.mjs → utils/bagFunctions.mjs} +2 -2
  388. package/dist/utils/bagFunctions.mjs.map +1 -0
  389. package/dist/{util → utils}/builder.js +1 -1
  390. package/dist/utils/builder.js.map +1 -0
  391. package/dist/{util → utils}/builder.mjs +1 -1
  392. package/dist/utils/builder.mjs.map +1 -0
  393. package/dist/{util → utils}/date.js +3 -3
  394. package/dist/utils/date.js.map +1 -0
  395. package/dist/{util → utils}/date.mjs +2 -2
  396. package/dist/utils/date.mjs.map +1 -0
  397. package/dist/{util → utils}/easeFunctions.js +5 -4
  398. package/dist/utils/easeFunctions.js.map +1 -0
  399. package/dist/{util → utils}/easeFunctions.mjs +4 -3
  400. package/dist/utils/easeFunctions.mjs.map +1 -0
  401. package/dist/{util → utils}/emailValidation.js +1 -1
  402. package/dist/utils/emailValidation.js.map +1 -0
  403. package/dist/{util → utils}/emailValidation.mjs +1 -1
  404. package/dist/utils/emailValidation.mjs.map +1 -0
  405. package/dist/{util → utils}/loopingArray.js +1 -1
  406. package/dist/utils/loopingArray.js.map +1 -0
  407. package/dist/{util → utils}/loopingArray.mjs +1 -1
  408. package/dist/utils/loopingArray.mjs.map +1 -0
  409. package/dist/utils/match.d.mts +3 -0
  410. package/dist/utils/match.d.ts +3 -0
  411. package/dist/utils/match.js +32 -0
  412. package/dist/utils/match.js.map +1 -0
  413. package/dist/utils/match.mjs +8 -0
  414. package/dist/utils/match.mjs.map +1 -0
  415. package/dist/utils/math.d.mts +3 -0
  416. package/dist/utils/math.d.ts +3 -0
  417. package/dist/{util → utils}/math.js +3 -2
  418. package/dist/utils/math.js.map +1 -0
  419. package/dist/utils/math.mjs +9 -0
  420. package/dist/utils/math.mjs.map +1 -0
  421. package/dist/{util → utils}/noop.js +1 -1
  422. package/dist/utils/noop.js.map +1 -0
  423. package/dist/utils/noop.mjs +6 -0
  424. package/dist/utils/noop.mjs.map +1 -0
  425. package/dist/{util → utils}/resolveSetState.js +1 -1
  426. package/dist/utils/resolveSetState.js.map +1 -0
  427. package/dist/{util → utils}/resolveSetState.mjs +1 -1
  428. package/dist/utils/resolveSetState.mjs.map +1 -0
  429. package/dist/{util → utils}/simpleSearch.js +1 -1
  430. package/dist/utils/simpleSearch.js.map +1 -0
  431. package/dist/{util → utils}/simpleSearch.mjs +1 -1
  432. package/dist/utils/simpleSearch.mjs.map +1 -0
  433. package/dist/{util → utils}/storage.js +1 -1
  434. package/dist/utils/storage.js.map +1 -0
  435. package/dist/{util → utils}/storage.mjs +1 -1
  436. package/dist/utils/storage.mjs.map +1 -0
  437. package/dist/{util → utils}/writeToClipboard.js +2 -1
  438. package/dist/utils/writeToClipboard.js.map +1 -0
  439. package/dist/{util → utils}/writeToClipboard.mjs +3 -1
  440. package/dist/utils/writeToClipboard.mjs.map +1 -0
  441. package/package.json +8 -8
  442. package/dist/components/dialogs/ConfirmDialog.js +0 -677
  443. package/dist/components/dialogs/ConfirmDialog.js.map +0 -1
  444. package/dist/components/dialogs/ConfirmDialog.mjs +0 -641
  445. package/dist/components/dialogs/ConfirmDialog.mjs.map +0 -1
  446. package/dist/components/icons-and-geometry/Helpwave.js.map +0 -1
  447. package/dist/components/icons-and-geometry/Helpwave.mjs.map +0 -1
  448. package/dist/components/layout-and-navigation/Overlay.d.mts +0 -67
  449. package/dist/components/layout-and-navigation/Overlay.d.ts +0 -67
  450. package/dist/components/layout-and-navigation/Overlay.js +0 -705
  451. package/dist/components/layout-and-navigation/Overlay.js.map +0 -1
  452. package/dist/components/layout-and-navigation/Overlay.mjs +0 -668
  453. package/dist/components/layout-and-navigation/Overlay.mjs.map +0 -1
  454. package/dist/components/layout-and-navigation/SearchableList.d.mts +0 -24
  455. package/dist/components/layout-and-navigation/SearchableList.d.ts +0 -24
  456. package/dist/components/layout-and-navigation/SearchableList.js +0 -761
  457. package/dist/components/layout-and-navigation/SearchableList.js.map +0 -1
  458. package/dist/components/layout-and-navigation/SearchableList.mjs +0 -727
  459. package/dist/components/layout-and-navigation/SearchableList.mjs.map +0 -1
  460. package/dist/components/layout-and-navigation/Tile.d.mts +0 -27
  461. package/dist/components/layout-and-navigation/Tile.d.ts +0 -27
  462. package/dist/components/layout-and-navigation/Tile.js +0 -96
  463. package/dist/components/layout-and-navigation/Tile.js.map +0 -1
  464. package/dist/components/layout-and-navigation/Tile.mjs +0 -61
  465. package/dist/components/layout-and-navigation/Tile.mjs.map +0 -1
  466. package/dist/components/modals/ConfirmModal.d.mts +0 -33
  467. package/dist/components/modals/ConfirmModal.d.ts +0 -33
  468. package/dist/components/modals/ConfirmModal.js +0 -690
  469. package/dist/components/modals/ConfirmModal.js.map +0 -1
  470. package/dist/components/modals/ConfirmModal.mjs +0 -654
  471. package/dist/components/modals/ConfirmModal.mjs.map +0 -1
  472. package/dist/components/modals/DiscardChangesModal.d.mts +0 -20
  473. package/dist/components/modals/DiscardChangesModal.d.ts +0 -20
  474. package/dist/components/modals/DiscardChangesModal.js +0 -720
  475. package/dist/components/modals/DiscardChangesModal.js.map +0 -1
  476. package/dist/components/modals/DiscardChangesModal.mjs +0 -684
  477. package/dist/components/modals/DiscardChangesModal.mjs.map +0 -1
  478. package/dist/components/modals/InputModal.d.mts +0 -21
  479. package/dist/components/modals/InputModal.d.ts +0 -21
  480. package/dist/components/modals/InputModal.js +0 -979
  481. package/dist/components/modals/InputModal.js.map +0 -1
  482. package/dist/components/modals/InputModal.mjs +0 -943
  483. package/dist/components/modals/InputModal.mjs.map +0 -1
  484. package/dist/components/modals/LanguageModal.d.mts +0 -21
  485. package/dist/components/modals/LanguageModal.d.ts +0 -21
  486. package/dist/components/modals/LanguageModal.js +0 -1474
  487. package/dist/components/modals/LanguageModal.js.map +0 -1
  488. package/dist/components/modals/LanguageModal.mjs +0 -1438
  489. package/dist/components/modals/LanguageModal.mjs.map +0 -1
  490. package/dist/components/modals/ThemeModal.d.mts +0 -21
  491. package/dist/components/modals/ThemeModal.d.ts +0 -21
  492. package/dist/components/modals/ThemeModal.js +0 -1503
  493. package/dist/components/modals/ThemeModal.js.map +0 -1
  494. package/dist/components/modals/ThemeModal.mjs +0 -1467
  495. package/dist/components/modals/ThemeModal.mjs.map +0 -1
  496. package/dist/components/user-action/Input.d.mts +0 -77
  497. package/dist/components/user-action/Input.d.ts +0 -77
  498. package/dist/components/user-action/Input.js.map +0 -1
  499. package/dist/components/user-action/Input.mjs +0 -298
  500. package/dist/components/user-action/Input.mjs.map +0 -1
  501. package/dist/components/user-action/MultiSelect.d.mts +0 -42
  502. package/dist/components/user-action/MultiSelect.d.ts +0 -42
  503. package/dist/components/user-action/MultiSelect.js +0 -1445
  504. package/dist/components/user-action/MultiSelect.js.map +0 -1
  505. package/dist/components/user-action/MultiSelect.mjs +0 -1410
  506. package/dist/components/user-action/MultiSelect.mjs.map +0 -1
  507. package/dist/components/user-action/Select.d.mts +0 -41
  508. package/dist/components/user-action/Select.d.ts +0 -41
  509. package/dist/components/user-action/Select.js +0 -1242
  510. package/dist/components/user-action/Select.js.map +0 -1
  511. package/dist/components/user-action/Select.mjs +0 -1207
  512. package/dist/components/user-action/Select.mjs.map +0 -1
  513. package/dist/components/user-action/ToggleableInput.d.mts +0 -37
  514. package/dist/components/user-action/ToggleableInput.d.ts +0 -37
  515. package/dist/components/user-action/ToggleableInput.js +0 -192
  516. package/dist/components/user-action/ToggleableInput.js.map +0 -1
  517. package/dist/components/user-action/ToggleableInput.mjs +0 -157
  518. package/dist/components/user-action/ToggleableInput.mjs.map +0 -1
  519. package/dist/css/uncompiled/textstyles.css +0 -69
  520. package/dist/hooks/useFocusManagement.js.map +0 -1
  521. package/dist/hooks/useFocusManagement.mjs.map +0 -1
  522. package/dist/hooks/useFocusOnceVisible.js.map +0 -1
  523. package/dist/hooks/useFocusOnceVisible.mjs.map +0 -1
  524. package/dist/index.d.mts +0 -103
  525. package/dist/index.d.ts +0 -103
  526. package/dist/index.js +0 -12595
  527. package/dist/index.js.map +0 -1
  528. package/dist/index.mjs +0 -12432
  529. package/dist/index.mjs.map +0 -1
  530. package/dist/util/PropsWithFunctionChildren.d.mts +0 -14
  531. package/dist/util/PropsWithFunctionChildren.d.ts +0 -14
  532. package/dist/util/PropsWithFunctionChildren.js.map +0 -1
  533. package/dist/util/PropsWithFunctionChildren.mjs.map +0 -1
  534. package/dist/util/array.js.map +0 -1
  535. package/dist/util/array.mjs.map +0 -1
  536. package/dist/util/builder.js.map +0 -1
  537. package/dist/util/builder.mjs.map +0 -1
  538. package/dist/util/date.js.map +0 -1
  539. package/dist/util/date.mjs.map +0 -1
  540. package/dist/util/easeFunctions.js.map +0 -1
  541. package/dist/util/easeFunctions.mjs.map +0 -1
  542. package/dist/util/emailValidation.js.map +0 -1
  543. package/dist/util/emailValidation.mjs.map +0 -1
  544. package/dist/util/loopingArray.js.map +0 -1
  545. package/dist/util/loopingArray.mjs.map +0 -1
  546. package/dist/util/math.d.mts +0 -3
  547. package/dist/util/math.d.ts +0 -3
  548. package/dist/util/math.js.map +0 -1
  549. package/dist/util/math.mjs +0 -8
  550. package/dist/util/math.mjs.map +0 -1
  551. package/dist/util/news.d.mts +0 -101
  552. package/dist/util/news.d.ts +0 -101
  553. package/dist/util/news.js +0 -76
  554. package/dist/util/news.js.map +0 -1
  555. package/dist/util/news.mjs +0 -49
  556. package/dist/util/news.mjs.map +0 -1
  557. package/dist/util/noop.js.map +0 -1
  558. package/dist/util/noop.mjs +0 -6
  559. package/dist/util/noop.mjs.map +0 -1
  560. package/dist/util/resolveSetState.js.map +0 -1
  561. package/dist/util/resolveSetState.mjs.map +0 -1
  562. package/dist/util/simpleSearch.js.map +0 -1
  563. package/dist/util/simpleSearch.mjs.map +0 -1
  564. package/dist/util/storage.js.map +0 -1
  565. package/dist/util/storage.mjs.map +0 -1
  566. package/dist/util/types.d.mts +0 -3
  567. package/dist/util/types.d.ts +0 -3
  568. package/dist/util/types.js +0 -18
  569. package/dist/util/types.js.map +0 -1
  570. package/dist/util/types.mjs +0 -1
  571. package/dist/util/types.mjs.map +0 -1
  572. package/dist/util/writeToClipboard.js.map +0 -1
  573. package/dist/util/writeToClipboard.mjs.map +0 -1
  574. /package/dist/hooks/{useFocusManagement.d.mts → focus/useFocusManagement.d.mts} +0 -0
  575. /package/dist/hooks/{useFocusManagement.d.ts → focus/useFocusManagement.d.ts} +0 -0
  576. /package/dist/hooks/{useFocusOnceVisible.d.mts → focus/useFocusOnceVisible.d.mts} +0 -0
  577. /package/dist/hooks/{useFocusOnceVisible.d.ts → focus/useFocusOnceVisible.d.ts} +0 -0
  578. /package/dist/{css → style}/uncompiled/theme/colors-basic.css +0 -0
  579. /package/dist/{css → style}/uncompiled/theme/index.css +0 -0
  580. /package/dist/{css → style}/uncompiled/theme/variants.css +0 -0
  581. /package/dist/{css → style}/uncompiled/utitlity/borderradius.css +0 -0
  582. /package/dist/{css → style}/uncompiled/utitlity/general.css +0 -0
  583. /package/dist/{util → utils}/builder.d.mts +0 -0
  584. /package/dist/{util → utils}/builder.d.ts +0 -0
  585. /package/dist/{util → utils}/date.d.mts +0 -0
  586. /package/dist/{util → utils}/date.d.ts +0 -0
  587. /package/dist/{util → utils}/easeFunctions.d.mts +0 -0
  588. /package/dist/{util → utils}/easeFunctions.d.ts +0 -0
  589. /package/dist/{util → utils}/emailValidation.d.mts +0 -0
  590. /package/dist/{util → utils}/emailValidation.d.ts +0 -0
  591. /package/dist/{util → utils}/loopingArray.d.mts +0 -0
  592. /package/dist/{util → utils}/loopingArray.d.ts +0 -0
  593. /package/dist/{util → utils}/noop.d.mts +0 -0
  594. /package/dist/{util → utils}/noop.d.ts +0 -0
  595. /package/dist/{util → utils}/resolveSetState.d.mts +0 -0
  596. /package/dist/{util → utils}/resolveSetState.d.ts +0 -0
  597. /package/dist/{util → utils}/simpleSearch.d.mts +0 -0
  598. /package/dist/{util → utils}/simpleSearch.d.ts +0 -0
  599. /package/dist/{util → utils}/storage.d.mts +0 -0
  600. /package/dist/{util → utils}/storage.d.ts +0 -0
  601. /package/dist/{util → utils}/writeToClipboard.d.mts +0 -0
  602. /package/dist/{util → utils}/writeToClipboard.d.ts +0 -0
@@ -0,0 +1,1252 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/layout-and-navigation/ScrollArea.tsx
30
+ var ScrollArea_exports = {};
31
+ __export(ScrollArea_exports, {
32
+ ScrollArea: () => ScrollArea2
33
+ });
34
+ module.exports = __toCommonJS(ScrollArea_exports);
35
+
36
+ // node_modules/@radix-ui/react-scroll-area/dist/index.mjs
37
+ var React23 = __toESM(require("react"), 1);
38
+
39
+ // node_modules/@radix-ui/react-primitive/dist/index.mjs
40
+ var React3 = __toESM(require("react"), 1);
41
+ var ReactDOM = __toESM(require("react-dom"), 1);
42
+
43
+ // node_modules/@radix-ui/react-slot/dist/index.mjs
44
+ var React2 = __toESM(require("react"), 1);
45
+
46
+ // node_modules/@radix-ui/react-compose-refs/dist/index.mjs
47
+ var React = __toESM(require("react"), 1);
48
+ function setRef(ref, value) {
49
+ if (typeof ref === "function") {
50
+ return ref(value);
51
+ } else if (ref !== null && ref !== void 0) {
52
+ ref.current = value;
53
+ }
54
+ }
55
+ function composeRefs(...refs) {
56
+ return (node) => {
57
+ let hasCleanup = false;
58
+ const cleanups = refs.map((ref) => {
59
+ const cleanup = setRef(ref, node);
60
+ if (!hasCleanup && typeof cleanup == "function") {
61
+ hasCleanup = true;
62
+ }
63
+ return cleanup;
64
+ });
65
+ if (hasCleanup) {
66
+ return () => {
67
+ for (let i = 0; i < cleanups.length; i++) {
68
+ const cleanup = cleanups[i];
69
+ if (typeof cleanup == "function") {
70
+ cleanup();
71
+ } else {
72
+ setRef(refs[i], null);
73
+ }
74
+ }
75
+ };
76
+ }
77
+ };
78
+ }
79
+ function useComposedRefs(...refs) {
80
+ return React.useCallback(composeRefs(...refs), refs);
81
+ }
82
+
83
+ // node_modules/@radix-ui/react-slot/dist/index.mjs
84
+ var import_jsx_runtime = require("react/jsx-runtime");
85
+ // @__NO_SIDE_EFFECTS__
86
+ function createSlot(ownerName) {
87
+ const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
88
+ const Slot2 = React2.forwardRef((props, forwardedRef) => {
89
+ const { children, ...slotProps } = props;
90
+ const childrenArray = React2.Children.toArray(children);
91
+ const slottable = childrenArray.find(isSlottable);
92
+ if (slottable) {
93
+ const newElement = slottable.props.children;
94
+ const newChildren = childrenArray.map((child) => {
95
+ if (child === slottable) {
96
+ if (React2.Children.count(newElement) > 1) return React2.Children.only(null);
97
+ return React2.isValidElement(newElement) ? newElement.props.children : null;
98
+ } else {
99
+ return child;
100
+ }
101
+ });
102
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React2.isValidElement(newElement) ? React2.cloneElement(newElement, void 0, newChildren) : null });
103
+ }
104
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
105
+ });
106
+ Slot2.displayName = `${ownerName}.Slot`;
107
+ return Slot2;
108
+ }
109
+ // @__NO_SIDE_EFFECTS__
110
+ function createSlotClone(ownerName) {
111
+ const SlotClone = React2.forwardRef((props, forwardedRef) => {
112
+ const { children, ...slotProps } = props;
113
+ if (React2.isValidElement(children)) {
114
+ const childrenRef = getElementRef(children);
115
+ const props2 = mergeProps(slotProps, children.props);
116
+ if (children.type !== React2.Fragment) {
117
+ props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
118
+ }
119
+ return React2.cloneElement(children, props2);
120
+ }
121
+ return React2.Children.count(children) > 1 ? React2.Children.only(null) : null;
122
+ });
123
+ SlotClone.displayName = `${ownerName}.SlotClone`;
124
+ return SlotClone;
125
+ }
126
+ var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
127
+ function isSlottable(child) {
128
+ return React2.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
129
+ }
130
+ function mergeProps(slotProps, childProps) {
131
+ const overrideProps = { ...childProps };
132
+ for (const propName in childProps) {
133
+ const slotPropValue = slotProps[propName];
134
+ const childPropValue = childProps[propName];
135
+ const isHandler = /^on[A-Z]/.test(propName);
136
+ if (isHandler) {
137
+ if (slotPropValue && childPropValue) {
138
+ overrideProps[propName] = (...args) => {
139
+ const result = childPropValue(...args);
140
+ slotPropValue(...args);
141
+ return result;
142
+ };
143
+ } else if (slotPropValue) {
144
+ overrideProps[propName] = slotPropValue;
145
+ }
146
+ } else if (propName === "style") {
147
+ overrideProps[propName] = { ...slotPropValue, ...childPropValue };
148
+ } else if (propName === "className") {
149
+ overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
150
+ }
151
+ }
152
+ return { ...slotProps, ...overrideProps };
153
+ }
154
+ function getElementRef(element) {
155
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
156
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
157
+ if (mayWarn) {
158
+ return element.ref;
159
+ }
160
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
161
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
162
+ if (mayWarn) {
163
+ return element.props.ref;
164
+ }
165
+ return element.props.ref || element.ref;
166
+ }
167
+
168
+ // node_modules/@radix-ui/react-primitive/dist/index.mjs
169
+ var import_jsx_runtime2 = require("react/jsx-runtime");
170
+ var NODES = [
171
+ "a",
172
+ "button",
173
+ "div",
174
+ "form",
175
+ "h2",
176
+ "h3",
177
+ "img",
178
+ "input",
179
+ "label",
180
+ "li",
181
+ "nav",
182
+ "ol",
183
+ "p",
184
+ "select",
185
+ "span",
186
+ "svg",
187
+ "ul"
188
+ ];
189
+ var Primitive = NODES.reduce((primitive, node) => {
190
+ const Slot = createSlot(`Primitive.${node}`);
191
+ const Node = React3.forwardRef((props, forwardedRef) => {
192
+ const { asChild, ...primitiveProps } = props;
193
+ const Comp = asChild ? Slot : node;
194
+ if (typeof window !== "undefined") {
195
+ window[Symbol.for("radix-ui")] = true;
196
+ }
197
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
198
+ });
199
+ Node.displayName = `Primitive.${node}`;
200
+ return { ...primitive, [node]: Node };
201
+ }, {});
202
+
203
+ // node_modules/@radix-ui/react-presence/dist/index.mjs
204
+ var React22 = __toESM(require("react"), 1);
205
+
206
+ // node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
207
+ var React4 = __toESM(require("react"), 1);
208
+ var useLayoutEffect2 = globalThis?.document ? React4.useLayoutEffect : () => {
209
+ };
210
+
211
+ // node_modules/@radix-ui/react-presence/dist/index.mjs
212
+ var React5 = __toESM(require("react"), 1);
213
+ function useStateMachine(initialState, machine) {
214
+ return React5.useReducer((state, event) => {
215
+ const nextState = machine[state][event];
216
+ return nextState ?? state;
217
+ }, initialState);
218
+ }
219
+ var Presence = (props) => {
220
+ const { present, children } = props;
221
+ const presence = usePresence(present);
222
+ const child = typeof children === "function" ? children({ present: presence.isPresent }) : React22.Children.only(children);
223
+ const ref = useComposedRefs(presence.ref, getElementRef2(child));
224
+ const forceMount = typeof children === "function";
225
+ return forceMount || presence.isPresent ? React22.cloneElement(child, { ref }) : null;
226
+ };
227
+ Presence.displayName = "Presence";
228
+ function usePresence(present) {
229
+ const [node, setNode] = React22.useState();
230
+ const stylesRef = React22.useRef(null);
231
+ const prevPresentRef = React22.useRef(present);
232
+ const prevAnimationNameRef = React22.useRef("none");
233
+ const initialState = present ? "mounted" : "unmounted";
234
+ const [state, send] = useStateMachine(initialState, {
235
+ mounted: {
236
+ UNMOUNT: "unmounted",
237
+ ANIMATION_OUT: "unmountSuspended"
238
+ },
239
+ unmountSuspended: {
240
+ MOUNT: "mounted",
241
+ ANIMATION_END: "unmounted"
242
+ },
243
+ unmounted: {
244
+ MOUNT: "mounted"
245
+ }
246
+ });
247
+ React22.useEffect(() => {
248
+ const currentAnimationName = getAnimationName(stylesRef.current);
249
+ prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
250
+ }, [state]);
251
+ useLayoutEffect2(() => {
252
+ const styles = stylesRef.current;
253
+ const wasPresent = prevPresentRef.current;
254
+ const hasPresentChanged = wasPresent !== present;
255
+ if (hasPresentChanged) {
256
+ const prevAnimationName = prevAnimationNameRef.current;
257
+ const currentAnimationName = getAnimationName(styles);
258
+ if (present) {
259
+ send("MOUNT");
260
+ } else if (currentAnimationName === "none" || styles?.display === "none") {
261
+ send("UNMOUNT");
262
+ } else {
263
+ const isAnimating = prevAnimationName !== currentAnimationName;
264
+ if (wasPresent && isAnimating) {
265
+ send("ANIMATION_OUT");
266
+ } else {
267
+ send("UNMOUNT");
268
+ }
269
+ }
270
+ prevPresentRef.current = present;
271
+ }
272
+ }, [present, send]);
273
+ useLayoutEffect2(() => {
274
+ if (node) {
275
+ let timeoutId;
276
+ const ownerWindow = node.ownerDocument.defaultView ?? window;
277
+ const handleAnimationEnd = (event) => {
278
+ const currentAnimationName = getAnimationName(stylesRef.current);
279
+ const isCurrentAnimation = currentAnimationName.includes(event.animationName);
280
+ if (event.target === node && isCurrentAnimation) {
281
+ send("ANIMATION_END");
282
+ if (!prevPresentRef.current) {
283
+ const currentFillMode = node.style.animationFillMode;
284
+ node.style.animationFillMode = "forwards";
285
+ timeoutId = ownerWindow.setTimeout(() => {
286
+ if (node.style.animationFillMode === "forwards") {
287
+ node.style.animationFillMode = currentFillMode;
288
+ }
289
+ });
290
+ }
291
+ }
292
+ };
293
+ const handleAnimationStart = (event) => {
294
+ if (event.target === node) {
295
+ prevAnimationNameRef.current = getAnimationName(stylesRef.current);
296
+ }
297
+ };
298
+ node.addEventListener("animationstart", handleAnimationStart);
299
+ node.addEventListener("animationcancel", handleAnimationEnd);
300
+ node.addEventListener("animationend", handleAnimationEnd);
301
+ return () => {
302
+ ownerWindow.clearTimeout(timeoutId);
303
+ node.removeEventListener("animationstart", handleAnimationStart);
304
+ node.removeEventListener("animationcancel", handleAnimationEnd);
305
+ node.removeEventListener("animationend", handleAnimationEnd);
306
+ };
307
+ } else {
308
+ send("ANIMATION_END");
309
+ }
310
+ }, [node, send]);
311
+ return {
312
+ isPresent: ["mounted", "unmountSuspended"].includes(state),
313
+ ref: React22.useCallback((node2) => {
314
+ stylesRef.current = node2 ? getComputedStyle(node2) : null;
315
+ setNode(node2);
316
+ }, [])
317
+ };
318
+ }
319
+ function getAnimationName(styles) {
320
+ return styles?.animationName || "none";
321
+ }
322
+ function getElementRef2(element) {
323
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
324
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
325
+ if (mayWarn) {
326
+ return element.ref;
327
+ }
328
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
329
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
330
+ if (mayWarn) {
331
+ return element.props.ref;
332
+ }
333
+ return element.props.ref || element.ref;
334
+ }
335
+
336
+ // node_modules/@radix-ui/react-context/dist/index.mjs
337
+ var React6 = __toESM(require("react"), 1);
338
+ var import_jsx_runtime3 = require("react/jsx-runtime");
339
+ function createContextScope(scopeName, createContextScopeDeps = []) {
340
+ let defaultContexts = [];
341
+ function createContext3(rootComponentName, defaultContext) {
342
+ const BaseContext = React6.createContext(defaultContext);
343
+ const index = defaultContexts.length;
344
+ defaultContexts = [...defaultContexts, defaultContext];
345
+ const Provider = (props) => {
346
+ const { scope, children, ...context } = props;
347
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
348
+ const value = React6.useMemo(() => context, Object.values(context));
349
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Context.Provider, { value, children });
350
+ };
351
+ Provider.displayName = rootComponentName + "Provider";
352
+ function useContext22(consumerName, scope) {
353
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
354
+ const context = React6.useContext(Context);
355
+ if (context) return context;
356
+ if (defaultContext !== void 0) return defaultContext;
357
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
358
+ }
359
+ return [Provider, useContext22];
360
+ }
361
+ const createScope = () => {
362
+ const scopeContexts = defaultContexts.map((defaultContext) => {
363
+ return React6.createContext(defaultContext);
364
+ });
365
+ return function useScope(scope) {
366
+ const contexts = scope?.[scopeName] || scopeContexts;
367
+ return React6.useMemo(
368
+ () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
369
+ [scope, contexts]
370
+ );
371
+ };
372
+ };
373
+ createScope.scopeName = scopeName;
374
+ return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];
375
+ }
376
+ function composeContextScopes(...scopes) {
377
+ const baseScope = scopes[0];
378
+ if (scopes.length === 1) return baseScope;
379
+ const createScope = () => {
380
+ const scopeHooks = scopes.map((createScope2) => ({
381
+ useScope: createScope2(),
382
+ scopeName: createScope2.scopeName
383
+ }));
384
+ return function useComposedScopes(overrideScopes) {
385
+ const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
386
+ const scopeProps = useScope(overrideScopes);
387
+ const currentScope = scopeProps[`__scope${scopeName}`];
388
+ return { ...nextScopes2, ...currentScope };
389
+ }, {});
390
+ return React6.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
391
+ };
392
+ };
393
+ createScope.scopeName = baseScope.scopeName;
394
+ return createScope;
395
+ }
396
+
397
+ // node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs
398
+ var React7 = __toESM(require("react"), 1);
399
+ function useCallbackRef(callback) {
400
+ const callbackRef = React7.useRef(callback);
401
+ React7.useEffect(() => {
402
+ callbackRef.current = callback;
403
+ });
404
+ return React7.useMemo(() => (...args) => callbackRef.current?.(...args), []);
405
+ }
406
+
407
+ // node_modules/@radix-ui/react-direction/dist/index.mjs
408
+ var React8 = __toESM(require("react"), 1);
409
+ var import_jsx_runtime4 = require("react/jsx-runtime");
410
+ var DirectionContext = React8.createContext(void 0);
411
+ function useDirection(localDir) {
412
+ const globalDir = React8.useContext(DirectionContext);
413
+ return localDir || globalDir || "ltr";
414
+ }
415
+
416
+ // node_modules/@radix-ui/number/dist/index.mjs
417
+ function clamp(value, [min, max]) {
418
+ return Math.min(max, Math.max(min, value));
419
+ }
420
+
421
+ // node_modules/@radix-ui/primitive/dist/index.mjs
422
+ function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
423
+ return function handleEvent(event) {
424
+ originalEventHandler?.(event);
425
+ if (checkForDefaultPrevented === false || !event.defaultPrevented) {
426
+ return ourEventHandler?.(event);
427
+ }
428
+ };
429
+ }
430
+
431
+ // node_modules/@radix-ui/react-scroll-area/dist/index.mjs
432
+ var React9 = __toESM(require("react"), 1);
433
+ var import_jsx_runtime5 = require("react/jsx-runtime");
434
+ function useStateMachine2(initialState, machine) {
435
+ return React9.useReducer((state, event) => {
436
+ const nextState = machine[state][event];
437
+ return nextState ?? state;
438
+ }, initialState);
439
+ }
440
+ var SCROLL_AREA_NAME = "ScrollArea";
441
+ var [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);
442
+ var [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);
443
+ var ScrollArea = React23.forwardRef(
444
+ (props, forwardedRef) => {
445
+ const {
446
+ __scopeScrollArea,
447
+ type = "hover",
448
+ dir,
449
+ scrollHideDelay = 600,
450
+ ...scrollAreaProps
451
+ } = props;
452
+ const [scrollArea, setScrollArea] = React23.useState(null);
453
+ const [viewport, setViewport] = React23.useState(null);
454
+ const [content, setContent] = React23.useState(null);
455
+ const [scrollbarX, setScrollbarX] = React23.useState(null);
456
+ const [scrollbarY, setScrollbarY] = React23.useState(null);
457
+ const [cornerWidth, setCornerWidth] = React23.useState(0);
458
+ const [cornerHeight, setCornerHeight] = React23.useState(0);
459
+ const [scrollbarXEnabled, setScrollbarXEnabled] = React23.useState(false);
460
+ const [scrollbarYEnabled, setScrollbarYEnabled] = React23.useState(false);
461
+ const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));
462
+ const direction = useDirection(dir);
463
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
464
+ ScrollAreaProvider,
465
+ {
466
+ scope: __scopeScrollArea,
467
+ type,
468
+ dir: direction,
469
+ scrollHideDelay,
470
+ scrollArea,
471
+ viewport,
472
+ onViewportChange: setViewport,
473
+ content,
474
+ onContentChange: setContent,
475
+ scrollbarX,
476
+ onScrollbarXChange: setScrollbarX,
477
+ scrollbarXEnabled,
478
+ onScrollbarXEnabledChange: setScrollbarXEnabled,
479
+ scrollbarY,
480
+ onScrollbarYChange: setScrollbarY,
481
+ scrollbarYEnabled,
482
+ onScrollbarYEnabledChange: setScrollbarYEnabled,
483
+ onCornerWidthChange: setCornerWidth,
484
+ onCornerHeightChange: setCornerHeight,
485
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
486
+ Primitive.div,
487
+ {
488
+ dir: direction,
489
+ ...scrollAreaProps,
490
+ ref: composedRefs,
491
+ style: {
492
+ position: "relative",
493
+ // Pass corner sizes as CSS vars to reduce re-renders of context consumers
494
+ ["--radix-scroll-area-corner-width"]: cornerWidth + "px",
495
+ ["--radix-scroll-area-corner-height"]: cornerHeight + "px",
496
+ ...props.style
497
+ }
498
+ }
499
+ )
500
+ }
501
+ );
502
+ }
503
+ );
504
+ ScrollArea.displayName = SCROLL_AREA_NAME;
505
+ var VIEWPORT_NAME = "ScrollAreaViewport";
506
+ var ScrollAreaViewport = React23.forwardRef(
507
+ (props, forwardedRef) => {
508
+ const { __scopeScrollArea, children, nonce, ...viewportProps } = props;
509
+ const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);
510
+ const ref = React23.useRef(null);
511
+ const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);
512
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
513
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
514
+ "style",
515
+ {
516
+ dangerouslySetInnerHTML: {
517
+ __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`
518
+ },
519
+ nonce
520
+ }
521
+ ),
522
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
523
+ Primitive.div,
524
+ {
525
+ "data-radix-scroll-area-viewport": "",
526
+ ...viewportProps,
527
+ ref: composedRefs,
528
+ style: {
529
+ /**
530
+ * We don't support `visible` because the intention is to have at least one scrollbar
531
+ * if this component is used and `visible` will behave like `auto` in that case
532
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description
533
+ *
534
+ * We don't handle `auto` because the intention is for the native implementation
535
+ * to be hidden if using this component. We just want to ensure the node is scrollable
536
+ * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent
537
+ * the browser from having to work out whether to render native scrollbars or not,
538
+ * we tell it to with the intention of hiding them in CSS.
539
+ */
540
+ overflowX: context.scrollbarXEnabled ? "scroll" : "hidden",
541
+ overflowY: context.scrollbarYEnabled ? "scroll" : "hidden",
542
+ ...props.style
543
+ },
544
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { ref: context.onContentChange, style: { minWidth: "100%", display: "table" }, children })
545
+ }
546
+ )
547
+ ] });
548
+ }
549
+ );
550
+ ScrollAreaViewport.displayName = VIEWPORT_NAME;
551
+ var SCROLLBAR_NAME = "ScrollAreaScrollbar";
552
+ var ScrollAreaScrollbar = React23.forwardRef(
553
+ (props, forwardedRef) => {
554
+ const { forceMount, ...scrollbarProps } = props;
555
+ const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
556
+ const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;
557
+ const isHorizontal = props.orientation === "horizontal";
558
+ React23.useEffect(() => {
559
+ isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);
560
+ return () => {
561
+ isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);
562
+ };
563
+ }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);
564
+ return context.type === "hover" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "scroll" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "auto" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "always" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;
565
+ }
566
+ );
567
+ ScrollAreaScrollbar.displayName = SCROLLBAR_NAME;
568
+ var ScrollAreaScrollbarHover = React23.forwardRef((props, forwardedRef) => {
569
+ const { forceMount, ...scrollbarProps } = props;
570
+ const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
571
+ const [visible, setVisible] = React23.useState(false);
572
+ React23.useEffect(() => {
573
+ const scrollArea = context.scrollArea;
574
+ let hideTimer = 0;
575
+ if (scrollArea) {
576
+ const handlePointerEnter = () => {
577
+ window.clearTimeout(hideTimer);
578
+ setVisible(true);
579
+ };
580
+ const handlePointerLeave = () => {
581
+ hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);
582
+ };
583
+ scrollArea.addEventListener("pointerenter", handlePointerEnter);
584
+ scrollArea.addEventListener("pointerleave", handlePointerLeave);
585
+ return () => {
586
+ window.clearTimeout(hideTimer);
587
+ scrollArea.removeEventListener("pointerenter", handlePointerEnter);
588
+ scrollArea.removeEventListener("pointerleave", handlePointerLeave);
589
+ };
590
+ }
591
+ }, [context.scrollArea, context.scrollHideDelay]);
592
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Presence, { present: forceMount || visible, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
593
+ ScrollAreaScrollbarAuto,
594
+ {
595
+ "data-state": visible ? "visible" : "hidden",
596
+ ...scrollbarProps,
597
+ ref: forwardedRef
598
+ }
599
+ ) });
600
+ });
601
+ var ScrollAreaScrollbarScroll = React23.forwardRef((props, forwardedRef) => {
602
+ const { forceMount, ...scrollbarProps } = props;
603
+ const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
604
+ const isHorizontal = props.orientation === "horizontal";
605
+ const debounceScrollEnd = useDebounceCallback(() => send("SCROLL_END"), 100);
606
+ const [state, send] = useStateMachine2("hidden", {
607
+ hidden: {
608
+ SCROLL: "scrolling"
609
+ },
610
+ scrolling: {
611
+ SCROLL_END: "idle",
612
+ POINTER_ENTER: "interacting"
613
+ },
614
+ interacting: {
615
+ SCROLL: "interacting",
616
+ POINTER_LEAVE: "idle"
617
+ },
618
+ idle: {
619
+ HIDE: "hidden",
620
+ SCROLL: "scrolling",
621
+ POINTER_ENTER: "interacting"
622
+ }
623
+ });
624
+ React23.useEffect(() => {
625
+ if (state === "idle") {
626
+ const hideTimer = window.setTimeout(() => send("HIDE"), context.scrollHideDelay);
627
+ return () => window.clearTimeout(hideTimer);
628
+ }
629
+ }, [state, context.scrollHideDelay, send]);
630
+ React23.useEffect(() => {
631
+ const viewport = context.viewport;
632
+ const scrollDirection = isHorizontal ? "scrollLeft" : "scrollTop";
633
+ if (viewport) {
634
+ let prevScrollPos = viewport[scrollDirection];
635
+ const handleScroll = () => {
636
+ const scrollPos = viewport[scrollDirection];
637
+ const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;
638
+ if (hasScrollInDirectionChanged) {
639
+ send("SCROLL");
640
+ debounceScrollEnd();
641
+ }
642
+ prevScrollPos = scrollPos;
643
+ };
644
+ viewport.addEventListener("scroll", handleScroll);
645
+ return () => viewport.removeEventListener("scroll", handleScroll);
646
+ }
647
+ }, [context.viewport, isHorizontal, send, debounceScrollEnd]);
648
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Presence, { present: forceMount || state !== "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
649
+ ScrollAreaScrollbarVisible,
650
+ {
651
+ "data-state": state === "hidden" ? "hidden" : "visible",
652
+ ...scrollbarProps,
653
+ ref: forwardedRef,
654
+ onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send("POINTER_ENTER")),
655
+ onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send("POINTER_LEAVE"))
656
+ }
657
+ ) });
658
+ });
659
+ var ScrollAreaScrollbarAuto = React23.forwardRef((props, forwardedRef) => {
660
+ const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
661
+ const { forceMount, ...scrollbarProps } = props;
662
+ const [visible, setVisible] = React23.useState(false);
663
+ const isHorizontal = props.orientation === "horizontal";
664
+ const handleResize = useDebounceCallback(() => {
665
+ if (context.viewport) {
666
+ const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;
667
+ const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;
668
+ setVisible(isHorizontal ? isOverflowX : isOverflowY);
669
+ }
670
+ }, 10);
671
+ useResizeObserver(context.viewport, handleResize);
672
+ useResizeObserver(context.content, handleResize);
673
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Presence, { present: forceMount || visible, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
674
+ ScrollAreaScrollbarVisible,
675
+ {
676
+ "data-state": visible ? "visible" : "hidden",
677
+ ...scrollbarProps,
678
+ ref: forwardedRef
679
+ }
680
+ ) });
681
+ });
682
+ var ScrollAreaScrollbarVisible = React23.forwardRef((props, forwardedRef) => {
683
+ const { orientation = "vertical", ...scrollbarProps } = props;
684
+ const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
685
+ const thumbRef = React23.useRef(null);
686
+ const pointerOffsetRef = React23.useRef(0);
687
+ const [sizes, setSizes] = React23.useState({
688
+ content: 0,
689
+ viewport: 0,
690
+ scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }
691
+ });
692
+ const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);
693
+ const commonProps = {
694
+ ...scrollbarProps,
695
+ sizes,
696
+ onSizesChange: setSizes,
697
+ hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),
698
+ onThumbChange: (thumb) => thumbRef.current = thumb,
699
+ onThumbPointerUp: () => pointerOffsetRef.current = 0,
700
+ onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos
701
+ };
702
+ function getScrollPosition(pointerPos, dir) {
703
+ return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);
704
+ }
705
+ if (orientation === "horizontal") {
706
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
707
+ ScrollAreaScrollbarX,
708
+ {
709
+ ...commonProps,
710
+ ref: forwardedRef,
711
+ onThumbPositionChange: () => {
712
+ if (context.viewport && thumbRef.current) {
713
+ const scrollPos = context.viewport.scrollLeft;
714
+ const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);
715
+ thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;
716
+ }
717
+ },
718
+ onWheelScroll: (scrollPos) => {
719
+ if (context.viewport) context.viewport.scrollLeft = scrollPos;
720
+ },
721
+ onDragScroll: (pointerPos) => {
722
+ if (context.viewport) {
723
+ context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);
724
+ }
725
+ }
726
+ }
727
+ );
728
+ }
729
+ if (orientation === "vertical") {
730
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
731
+ ScrollAreaScrollbarY,
732
+ {
733
+ ...commonProps,
734
+ ref: forwardedRef,
735
+ onThumbPositionChange: () => {
736
+ if (context.viewport && thumbRef.current) {
737
+ const scrollPos = context.viewport.scrollTop;
738
+ const offset = getThumbOffsetFromScroll(scrollPos, sizes);
739
+ thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;
740
+ }
741
+ },
742
+ onWheelScroll: (scrollPos) => {
743
+ if (context.viewport) context.viewport.scrollTop = scrollPos;
744
+ },
745
+ onDragScroll: (pointerPos) => {
746
+ if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);
747
+ }
748
+ }
749
+ );
750
+ }
751
+ return null;
752
+ });
753
+ var ScrollAreaScrollbarX = React23.forwardRef((props, forwardedRef) => {
754
+ const { sizes, onSizesChange, ...scrollbarProps } = props;
755
+ const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
756
+ const [computedStyle, setComputedStyle] = React23.useState();
757
+ const ref = React23.useRef(null);
758
+ const composeRefs2 = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);
759
+ React23.useEffect(() => {
760
+ if (ref.current) setComputedStyle(getComputedStyle(ref.current));
761
+ }, [ref]);
762
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
763
+ ScrollAreaScrollbarImpl,
764
+ {
765
+ "data-orientation": "horizontal",
766
+ ...scrollbarProps,
767
+ ref: composeRefs2,
768
+ sizes,
769
+ style: {
770
+ bottom: 0,
771
+ left: context.dir === "rtl" ? "var(--radix-scroll-area-corner-width)" : 0,
772
+ right: context.dir === "ltr" ? "var(--radix-scroll-area-corner-width)" : 0,
773
+ ["--radix-scroll-area-thumb-width"]: getThumbSize(sizes) + "px",
774
+ ...props.style
775
+ },
776
+ onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),
777
+ onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),
778
+ onWheelScroll: (event, maxScrollPos) => {
779
+ if (context.viewport) {
780
+ const scrollPos = context.viewport.scrollLeft + event.deltaX;
781
+ props.onWheelScroll(scrollPos);
782
+ if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {
783
+ event.preventDefault();
784
+ }
785
+ }
786
+ },
787
+ onResize: () => {
788
+ if (ref.current && context.viewport && computedStyle) {
789
+ onSizesChange({
790
+ content: context.viewport.scrollWidth,
791
+ viewport: context.viewport.offsetWidth,
792
+ scrollbar: {
793
+ size: ref.current.clientWidth,
794
+ paddingStart: toInt(computedStyle.paddingLeft),
795
+ paddingEnd: toInt(computedStyle.paddingRight)
796
+ }
797
+ });
798
+ }
799
+ }
800
+ }
801
+ );
802
+ });
803
+ var ScrollAreaScrollbarY = React23.forwardRef((props, forwardedRef) => {
804
+ const { sizes, onSizesChange, ...scrollbarProps } = props;
805
+ const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
806
+ const [computedStyle, setComputedStyle] = React23.useState();
807
+ const ref = React23.useRef(null);
808
+ const composeRefs2 = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);
809
+ React23.useEffect(() => {
810
+ if (ref.current) setComputedStyle(getComputedStyle(ref.current));
811
+ }, [ref]);
812
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
813
+ ScrollAreaScrollbarImpl,
814
+ {
815
+ "data-orientation": "vertical",
816
+ ...scrollbarProps,
817
+ ref: composeRefs2,
818
+ sizes,
819
+ style: {
820
+ top: 0,
821
+ right: context.dir === "ltr" ? 0 : void 0,
822
+ left: context.dir === "rtl" ? 0 : void 0,
823
+ bottom: "var(--radix-scroll-area-corner-height)",
824
+ ["--radix-scroll-area-thumb-height"]: getThumbSize(sizes) + "px",
825
+ ...props.style
826
+ },
827
+ onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),
828
+ onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),
829
+ onWheelScroll: (event, maxScrollPos) => {
830
+ if (context.viewport) {
831
+ const scrollPos = context.viewport.scrollTop + event.deltaY;
832
+ props.onWheelScroll(scrollPos);
833
+ if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {
834
+ event.preventDefault();
835
+ }
836
+ }
837
+ },
838
+ onResize: () => {
839
+ if (ref.current && context.viewport && computedStyle) {
840
+ onSizesChange({
841
+ content: context.viewport.scrollHeight,
842
+ viewport: context.viewport.offsetHeight,
843
+ scrollbar: {
844
+ size: ref.current.clientHeight,
845
+ paddingStart: toInt(computedStyle.paddingTop),
846
+ paddingEnd: toInt(computedStyle.paddingBottom)
847
+ }
848
+ });
849
+ }
850
+ }
851
+ }
852
+ );
853
+ });
854
+ var [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);
855
+ var ScrollAreaScrollbarImpl = React23.forwardRef((props, forwardedRef) => {
856
+ const {
857
+ __scopeScrollArea,
858
+ sizes,
859
+ hasThumb,
860
+ onThumbChange,
861
+ onThumbPointerUp,
862
+ onThumbPointerDown,
863
+ onThumbPositionChange,
864
+ onDragScroll,
865
+ onWheelScroll,
866
+ onResize,
867
+ ...scrollbarProps
868
+ } = props;
869
+ const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);
870
+ const [scrollbar, setScrollbar] = React23.useState(null);
871
+ const composeRefs2 = useComposedRefs(forwardedRef, (node) => setScrollbar(node));
872
+ const rectRef = React23.useRef(null);
873
+ const prevWebkitUserSelectRef = React23.useRef("");
874
+ const viewport = context.viewport;
875
+ const maxScrollPos = sizes.content - sizes.viewport;
876
+ const handleWheelScroll = useCallbackRef(onWheelScroll);
877
+ const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);
878
+ const handleResize = useDebounceCallback(onResize, 10);
879
+ function handleDragScroll(event) {
880
+ if (rectRef.current) {
881
+ const x = event.clientX - rectRef.current.left;
882
+ const y = event.clientY - rectRef.current.top;
883
+ onDragScroll({ x, y });
884
+ }
885
+ }
886
+ React23.useEffect(() => {
887
+ const handleWheel = (event) => {
888
+ const element = event.target;
889
+ const isScrollbarWheel = scrollbar?.contains(element);
890
+ if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);
891
+ };
892
+ document.addEventListener("wheel", handleWheel, { passive: false });
893
+ return () => document.removeEventListener("wheel", handleWheel, { passive: false });
894
+ }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);
895
+ React23.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);
896
+ useResizeObserver(scrollbar, handleResize);
897
+ useResizeObserver(context.content, handleResize);
898
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
899
+ ScrollbarProvider,
900
+ {
901
+ scope: __scopeScrollArea,
902
+ scrollbar,
903
+ hasThumb,
904
+ onThumbChange: useCallbackRef(onThumbChange),
905
+ onThumbPointerUp: useCallbackRef(onThumbPointerUp),
906
+ onThumbPositionChange: handleThumbPositionChange,
907
+ onThumbPointerDown: useCallbackRef(onThumbPointerDown),
908
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
909
+ Primitive.div,
910
+ {
911
+ ...scrollbarProps,
912
+ ref: composeRefs2,
913
+ style: { position: "absolute", ...scrollbarProps.style },
914
+ onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
915
+ const mainPointer = 0;
916
+ if (event.button === mainPointer) {
917
+ const element = event.target;
918
+ element.setPointerCapture(event.pointerId);
919
+ rectRef.current = scrollbar.getBoundingClientRect();
920
+ prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;
921
+ document.body.style.webkitUserSelect = "none";
922
+ if (context.viewport) context.viewport.style.scrollBehavior = "auto";
923
+ handleDragScroll(event);
924
+ }
925
+ }),
926
+ onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),
927
+ onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {
928
+ const element = event.target;
929
+ if (element.hasPointerCapture(event.pointerId)) {
930
+ element.releasePointerCapture(event.pointerId);
931
+ }
932
+ document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;
933
+ if (context.viewport) context.viewport.style.scrollBehavior = "";
934
+ rectRef.current = null;
935
+ })
936
+ }
937
+ )
938
+ }
939
+ );
940
+ });
941
+ var THUMB_NAME = "ScrollAreaThumb";
942
+ var ScrollAreaThumb = React23.forwardRef(
943
+ (props, forwardedRef) => {
944
+ const { forceMount, ...thumbProps } = props;
945
+ const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);
946
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });
947
+ }
948
+ );
949
+ var ScrollAreaThumbImpl = React23.forwardRef(
950
+ (props, forwardedRef) => {
951
+ const { __scopeScrollArea, style, ...thumbProps } = props;
952
+ const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);
953
+ const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);
954
+ const { onThumbPositionChange } = scrollbarContext;
955
+ const composedRef = useComposedRefs(
956
+ forwardedRef,
957
+ (node) => scrollbarContext.onThumbChange(node)
958
+ );
959
+ const removeUnlinkedScrollListenerRef = React23.useRef(void 0);
960
+ const debounceScrollEnd = useDebounceCallback(() => {
961
+ if (removeUnlinkedScrollListenerRef.current) {
962
+ removeUnlinkedScrollListenerRef.current();
963
+ removeUnlinkedScrollListenerRef.current = void 0;
964
+ }
965
+ }, 100);
966
+ React23.useEffect(() => {
967
+ const viewport = scrollAreaContext.viewport;
968
+ if (viewport) {
969
+ const handleScroll = () => {
970
+ debounceScrollEnd();
971
+ if (!removeUnlinkedScrollListenerRef.current) {
972
+ const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);
973
+ removeUnlinkedScrollListenerRef.current = listener;
974
+ onThumbPositionChange();
975
+ }
976
+ };
977
+ onThumbPositionChange();
978
+ viewport.addEventListener("scroll", handleScroll);
979
+ return () => viewport.removeEventListener("scroll", handleScroll);
980
+ }
981
+ }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);
982
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
983
+ Primitive.div,
984
+ {
985
+ "data-state": scrollbarContext.hasThumb ? "visible" : "hidden",
986
+ ...thumbProps,
987
+ ref: composedRef,
988
+ style: {
989
+ width: "var(--radix-scroll-area-thumb-width)",
990
+ height: "var(--radix-scroll-area-thumb-height)",
991
+ ...style
992
+ },
993
+ onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {
994
+ const thumb = event.target;
995
+ const thumbRect = thumb.getBoundingClientRect();
996
+ const x = event.clientX - thumbRect.left;
997
+ const y = event.clientY - thumbRect.top;
998
+ scrollbarContext.onThumbPointerDown({ x, y });
999
+ }),
1000
+ onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)
1001
+ }
1002
+ );
1003
+ }
1004
+ );
1005
+ ScrollAreaThumb.displayName = THUMB_NAME;
1006
+ var CORNER_NAME = "ScrollAreaCorner";
1007
+ var ScrollAreaCorner = React23.forwardRef(
1008
+ (props, forwardedRef) => {
1009
+ const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);
1010
+ const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);
1011
+ const hasCorner = context.type !== "scroll" && hasBothScrollbarsVisible;
1012
+ return hasCorner ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;
1013
+ }
1014
+ );
1015
+ ScrollAreaCorner.displayName = CORNER_NAME;
1016
+ var ScrollAreaCornerImpl = React23.forwardRef((props, forwardedRef) => {
1017
+ const { __scopeScrollArea, ...cornerProps } = props;
1018
+ const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);
1019
+ const [width, setWidth] = React23.useState(0);
1020
+ const [height, setHeight] = React23.useState(0);
1021
+ const hasSize = Boolean(width && height);
1022
+ useResizeObserver(context.scrollbarX, () => {
1023
+ const height2 = context.scrollbarX?.offsetHeight || 0;
1024
+ context.onCornerHeightChange(height2);
1025
+ setHeight(height2);
1026
+ });
1027
+ useResizeObserver(context.scrollbarY, () => {
1028
+ const width2 = context.scrollbarY?.offsetWidth || 0;
1029
+ context.onCornerWidthChange(width2);
1030
+ setWidth(width2);
1031
+ });
1032
+ return hasSize ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1033
+ Primitive.div,
1034
+ {
1035
+ ...cornerProps,
1036
+ ref: forwardedRef,
1037
+ style: {
1038
+ width,
1039
+ height,
1040
+ position: "absolute",
1041
+ right: context.dir === "ltr" ? 0 : void 0,
1042
+ left: context.dir === "rtl" ? 0 : void 0,
1043
+ bottom: 0,
1044
+ ...props.style
1045
+ }
1046
+ }
1047
+ ) : null;
1048
+ });
1049
+ function toInt(value) {
1050
+ return value ? parseInt(value, 10) : 0;
1051
+ }
1052
+ function getThumbRatio(viewportSize, contentSize) {
1053
+ const ratio = viewportSize / contentSize;
1054
+ return isNaN(ratio) ? 0 : ratio;
1055
+ }
1056
+ function getThumbSize(sizes) {
1057
+ const ratio = getThumbRatio(sizes.viewport, sizes.content);
1058
+ const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;
1059
+ const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;
1060
+ return Math.max(thumbSize, 18);
1061
+ }
1062
+ function getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = "ltr") {
1063
+ const thumbSizePx = getThumbSize(sizes);
1064
+ const thumbCenter = thumbSizePx / 2;
1065
+ const offset = pointerOffset || thumbCenter;
1066
+ const thumbOffsetFromEnd = thumbSizePx - offset;
1067
+ const minPointerPos = sizes.scrollbar.paddingStart + offset;
1068
+ const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;
1069
+ const maxScrollPos = sizes.content - sizes.viewport;
1070
+ const scrollRange = dir === "ltr" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];
1071
+ const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);
1072
+ return interpolate(pointerPos);
1073
+ }
1074
+ function getThumbOffsetFromScroll(scrollPos, sizes, dir = "ltr") {
1075
+ const thumbSizePx = getThumbSize(sizes);
1076
+ const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;
1077
+ const scrollbar = sizes.scrollbar.size - scrollbarPadding;
1078
+ const maxScrollPos = sizes.content - sizes.viewport;
1079
+ const maxThumbPos = scrollbar - thumbSizePx;
1080
+ const scrollClampRange = dir === "ltr" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];
1081
+ const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);
1082
+ const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);
1083
+ return interpolate(scrollWithoutMomentum);
1084
+ }
1085
+ function linearScale(input, output) {
1086
+ return (value) => {
1087
+ if (input[0] === input[1] || output[0] === output[1]) return output[0];
1088
+ const ratio = (output[1] - output[0]) / (input[1] - input[0]);
1089
+ return output[0] + ratio * (value - input[0]);
1090
+ };
1091
+ }
1092
+ function isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {
1093
+ return scrollPos > 0 && scrollPos < maxScrollPos;
1094
+ }
1095
+ var addUnlinkedScrollListener = (node, handler = () => {
1096
+ }) => {
1097
+ let prevPosition = { left: node.scrollLeft, top: node.scrollTop };
1098
+ let rAF = 0;
1099
+ (function loop() {
1100
+ const position = { left: node.scrollLeft, top: node.scrollTop };
1101
+ const isHorizontalScroll = prevPosition.left !== position.left;
1102
+ const isVerticalScroll = prevPosition.top !== position.top;
1103
+ if (isHorizontalScroll || isVerticalScroll) handler();
1104
+ prevPosition = position;
1105
+ rAF = window.requestAnimationFrame(loop);
1106
+ })();
1107
+ return () => window.cancelAnimationFrame(rAF);
1108
+ };
1109
+ function useDebounceCallback(callback, delay) {
1110
+ const handleCallback = useCallbackRef(callback);
1111
+ const debounceTimerRef = React23.useRef(0);
1112
+ React23.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);
1113
+ return React23.useCallback(() => {
1114
+ window.clearTimeout(debounceTimerRef.current);
1115
+ debounceTimerRef.current = window.setTimeout(handleCallback, delay);
1116
+ }, [handleCallback, delay]);
1117
+ }
1118
+ function useResizeObserver(element, onResize) {
1119
+ const handleResize = useCallbackRef(onResize);
1120
+ useLayoutEffect2(() => {
1121
+ let rAF = 0;
1122
+ if (element) {
1123
+ const resizeObserver = new ResizeObserver(() => {
1124
+ cancelAnimationFrame(rAF);
1125
+ rAF = window.requestAnimationFrame(handleResize);
1126
+ });
1127
+ resizeObserver.observe(element);
1128
+ return () => {
1129
+ window.cancelAnimationFrame(rAF);
1130
+ resizeObserver.unobserve(element);
1131
+ };
1132
+ }
1133
+ }, [element, handleResize]);
1134
+ }
1135
+ var Root = ScrollArea;
1136
+ var Viewport = ScrollAreaViewport;
1137
+ var Scrollbar = ScrollAreaScrollbar;
1138
+ var Thumb = ScrollAreaThumb;
1139
+ var Corner = ScrollAreaCorner;
1140
+
1141
+ // src/components/layout-and-navigation/ScrollArea.tsx
1142
+ var import_clsx = require("clsx");
1143
+ var import_jsx_runtime6 = require("react/jsx-runtime");
1144
+ var ScrollArea2 = ({
1145
+ children,
1146
+ scrollbarSize = "md",
1147
+ scrollbarType = "auto",
1148
+ scrollbarAxis = "both",
1149
+ className,
1150
+ ...props
1151
+ }) => {
1152
+ const scrollbarStyle = {
1153
+ sm: { "--scrollbar-size": "calc(4px + var(--spacing))" },
1154
+ md: { "--scrollbar-size": "calc(6px + var(--spacing))" }
1155
+ }[scrollbarSize];
1156
+ const hasHorizontalScrollBar = scrollbarAxis === "horizontal" || scrollbarAxis === "both";
1157
+ const hasVerticalScrollBar = scrollbarAxis === "vertical" || scrollbarAxis === "both";
1158
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
1159
+ Root,
1160
+ {
1161
+ ...props,
1162
+ className: (0, import_clsx.clsx)(
1163
+ "overflow-hidden",
1164
+ className
1165
+ ),
1166
+ style: {
1167
+ ...scrollbarStyle,
1168
+ ...props.style
1169
+ },
1170
+ type: scrollbarType,
1171
+ children: [
1172
+ hasHorizontalScrollBar && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1173
+ Scrollbar,
1174
+ {
1175
+ orientation: "horizontal",
1176
+ className: (0, import_clsx.clsx)(
1177
+ "peer/horizontal group/scrollbar flex-col-0 rounded-full select-none touch-none bg-scrollbar-track/50 hover:bg-scrollbar-track",
1178
+ {
1179
+ "h-[var(--scrollbar-size)]": scrollbarType === "always",
1180
+ "data-[state=visible]:h-[var(--scrollbar-size)]": scrollbarType !== "always"
1181
+ }
1182
+ ),
1183
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1184
+ Thumb,
1185
+ {
1186
+ className: (0, import_clsx.clsx)(
1187
+ "flex relative rounded-full bg-scrollbar-thumb group-hover/scrollbar:bg-primary",
1188
+ {
1189
+ "min-h-[var(--scrollbar-size)]": scrollbarType === "always",
1190
+ "data-[state=visible]:min-h-[var(--scrollbar-size)]": scrollbarType !== "always"
1191
+ }
1192
+ )
1193
+ }
1194
+ )
1195
+ }
1196
+ ),
1197
+ hasVerticalScrollBar && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1198
+ Scrollbar,
1199
+ {
1200
+ orientation: "vertical",
1201
+ className: (0, import_clsx.clsx)(
1202
+ "peer/vertical group/scrollbar flex-col-0 rounded-full select-none touch-none bg-scrollbar-track/50 hover:bg-scrollbar-track",
1203
+ {
1204
+ "w-[var(--scrollbar-size)]": scrollbarType === "always",
1205
+ "data-[state=visible]:w-[var(--scrollbar-size)]": scrollbarType !== "always"
1206
+ }
1207
+ ),
1208
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1209
+ Thumb,
1210
+ {
1211
+ className: (0, import_clsx.clsx)(
1212
+ "flex relative rounded-full bg-scrollbar-thumb group-hover/scrollbar:bg-primary",
1213
+ {
1214
+ "min-w-[var(--scrollbar-size)]": scrollbarType === "always",
1215
+ "data-[state=visible]:min-w-[var(--scrollbar-size)]": scrollbarType !== "always"
1216
+ }
1217
+ )
1218
+ }
1219
+ )
1220
+ }
1221
+ ),
1222
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1223
+ Viewport,
1224
+ {
1225
+ className: (0, import_clsx.clsx)(
1226
+ "border-inherit",
1227
+ {
1228
+ "w-[calc(100%_-_var(--scrollbar-size))] h-[calc(100%_-_var(--scrollbar-size))]": scrollbarType === "always",
1229
+ "w-full h-full": scrollbarType === "scroll" || scrollbarType === "hover" || scrollbarType === "auto",
1230
+ "peer-[&:where([data-state=visible])]/horizontal:h-[calc(100%_-_var(--scrollbar-size))] peer-[&:where([data-state=visible])]/vertical:w-[calc(100%_-_var(--scrollbar-size))]": scrollbarType === "auto"
1231
+ }
1232
+ ),
1233
+ children
1234
+ }
1235
+ ),
1236
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1237
+ Corner,
1238
+ {
1239
+ className: (0, import_clsx.clsx)(
1240
+ "bg-scrollbar-track rounded-full"
1241
+ )
1242
+ }
1243
+ )
1244
+ ]
1245
+ }
1246
+ );
1247
+ };
1248
+ // Annotate the CommonJS export names for ESM import in node:
1249
+ 0 && (module.exports = {
1250
+ ScrollArea
1251
+ });
1252
+ //# sourceMappingURL=ScrollArea.js.map