frey-ui 1.0.11 → 1.0.13

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 (375) hide show
  1. package/README.md +35 -1
  2. package/dist/cjs/Accordion/accordion.css +80 -0
  3. package/dist/cjs/Accordion/accordion.module.css.cjs +2 -1
  4. package/dist/cjs/Accordion/index.cjs +3 -3
  5. package/dist/cjs/Alert/alert.css +63 -0
  6. package/dist/cjs/Alert/alert.module.css.cjs +2 -1
  7. package/dist/cjs/Alert/index.cjs +8 -5
  8. package/dist/cjs/Avatar/avatar.css +107 -0
  9. package/dist/cjs/Avatar/avatar.module.css.cjs +2 -1
  10. package/dist/cjs/Badge/badge.css +75 -0
  11. package/dist/cjs/Badge/badge.module.css.cjs +10 -0
  12. package/dist/cjs/Badge/index.cjs +37 -0
  13. package/dist/cjs/Box/box.css +3 -0
  14. package/dist/cjs/Box/box.module.css.cjs +10 -0
  15. package/dist/cjs/Box/index.cjs +136 -0
  16. package/dist/cjs/Breadcrumbs/breadcrumbs.css +34 -0
  17. package/dist/cjs/Breadcrumbs/breadcrumbs.module.css.cjs +10 -0
  18. package/dist/cjs/Breadcrumbs/index.cjs +46 -0
  19. package/dist/cjs/Button/button.css +112 -0
  20. package/dist/cjs/Button/button.module.css.cjs +2 -1
  21. package/dist/cjs/Button/index.cjs +29 -4
  22. package/dist/cjs/Card/card.css +37 -0
  23. package/dist/cjs/Card/card.module.css.cjs +2 -1
  24. package/dist/cjs/Checkbox/checkbox.css +135 -0
  25. package/dist/cjs/Checkbox/checkbox.module.css.cjs +2 -1
  26. package/dist/cjs/Checkbox/index.cjs +3 -2
  27. package/dist/cjs/Chip/chip.css +55 -0
  28. package/dist/cjs/Chip/chip.module.css.cjs +2 -1
  29. package/dist/cjs/Dialog/dialog.css +144 -0
  30. package/dist/cjs/Dialog/dialog.module.css.cjs +2 -1
  31. package/dist/cjs/Dialog/index.cjs +11 -11
  32. package/dist/cjs/DropdownMenu/dropdownmenu.css +61 -0
  33. package/dist/cjs/DropdownMenu/dropdownmenu.module.css.cjs +2 -1
  34. package/dist/cjs/DropdownMenu/index.cjs +112 -60
  35. package/dist/cjs/Field/field.css +51 -0
  36. package/dist/cjs/Field/field.module.css.cjs +2 -1
  37. package/dist/cjs/Flex/index.cjs +23 -0
  38. package/dist/cjs/Grid/index.cjs +33 -0
  39. package/dist/cjs/Icons/CheckIcon.cjs +12 -0
  40. package/dist/cjs/Icons/ChevronDownIcon.cjs +12 -0
  41. package/dist/cjs/Icons/CircleCheckIcon.cjs +12 -0
  42. package/dist/cjs/Icons/CircleInfoIcon.cjs +12 -0
  43. package/dist/cjs/Icons/CircleXIcon.cjs +12 -0
  44. package/dist/cjs/Icons/CloseIcon.cjs +12 -0
  45. package/dist/cjs/Icons/IconSvg.cjs +52 -0
  46. package/dist/cjs/Icons/MinusIcon.cjs +12 -0
  47. package/dist/cjs/Icons/TriangleAlertIcon.cjs +12 -0
  48. package/dist/cjs/Icons/icons.css +5 -0
  49. package/dist/cjs/Icons/icons.module.css.cjs +2 -1
  50. package/dist/cjs/Link/index.cjs +38 -0
  51. package/dist/cjs/Link/link.css +57 -0
  52. package/dist/cjs/Link/link.module.css.cjs +10 -0
  53. package/dist/cjs/Popover/index.cjs +71 -38
  54. package/dist/cjs/Popover/popover.css +25 -0
  55. package/dist/cjs/Popover/popover.module.css.cjs +2 -1
  56. package/dist/cjs/Progress/progress.css +86 -0
  57. package/dist/cjs/Progress/progress.module.css.cjs +2 -1
  58. package/dist/cjs/RadioGroup/radiogroup.css +59 -0
  59. package/dist/cjs/RadioGroup/radiogroup.module.css.cjs +2 -1
  60. package/dist/cjs/Select/index.cjs +3 -4
  61. package/dist/cjs/Select/select.css +77 -0
  62. package/dist/cjs/Select/select.module.css.cjs +2 -1
  63. package/dist/cjs/Skeleton/skeleton.css +29 -0
  64. package/dist/cjs/Skeleton/skeleton.module.css.cjs +2 -1
  65. package/dist/cjs/Spinner/spinner.css +35 -0
  66. package/dist/cjs/Spinner/spinner.module.css.cjs +2 -1
  67. package/dist/cjs/Stack/index.cjs +18 -0
  68. package/dist/cjs/Switch/switch.css +123 -0
  69. package/dist/cjs/Switch/switch.module.css.cjs +2 -1
  70. package/dist/cjs/Table/index.cjs +55 -0
  71. package/dist/cjs/Table/table.css +57 -0
  72. package/dist/cjs/Table/table.module.css.cjs +10 -0
  73. package/dist/cjs/Tabs/index.cjs +50 -21
  74. package/dist/cjs/Tabs/tabs.css +62 -0
  75. package/dist/cjs/Tabs/tabs.module.css.cjs +2 -1
  76. package/dist/cjs/TextInput/index.cjs +7 -15
  77. package/dist/cjs/TextInput/textinput.css +93 -0
  78. package/dist/cjs/TextInput/textinput.module.css.cjs +2 -1
  79. package/dist/cjs/Textarea/index.cjs +2 -3
  80. package/dist/cjs/Textarea/textarea.css +62 -0
  81. package/dist/cjs/Textarea/textarea.module.css.cjs +2 -1
  82. package/dist/cjs/ThemeProvider/index.cjs +4 -1
  83. package/dist/cjs/ThemeProvider/themeprovider.css +3 -0
  84. package/dist/cjs/ThemeProvider/themeprovider.module.css.cjs +2 -1
  85. package/dist/cjs/Toast/index.cjs +15 -11
  86. package/dist/cjs/Toast/toast.css +151 -0
  87. package/dist/cjs/Toast/toast.module.css.cjs +2 -1
  88. package/dist/cjs/Tooltip/index.cjs +38 -67
  89. package/dist/cjs/Tooltip/tooltip.css +26 -0
  90. package/dist/cjs/Tooltip/tooltip.module.css.cjs +2 -1
  91. package/dist/cjs/hooks/floatingConfig.cjs +24 -0
  92. package/dist/cjs/hooks/useRovingCollection.cjs +107 -0
  93. package/dist/cjs/index.cjs +75 -51
  94. package/dist/cjs/theme.css +243 -0
  95. package/dist/cjs/utils/Portal.cjs +49 -0
  96. package/dist/cjs/utils/aria.cjs +14 -0
  97. package/dist/esm/Accordion/accordion.css +80 -0
  98. package/dist/esm/Accordion/accordion.module.css.mjs +2 -1
  99. package/dist/esm/Accordion/index.mjs +2 -2
  100. package/dist/esm/Alert/alert.css +63 -0
  101. package/dist/esm/Alert/alert.module.css.mjs +2 -1
  102. package/dist/esm/Alert/index.mjs +4 -1
  103. package/dist/esm/Avatar/avatar.css +107 -0
  104. package/dist/esm/Avatar/avatar.module.css.mjs +2 -1
  105. package/dist/esm/Badge/badge.css +75 -0
  106. package/dist/esm/Badge/badge.module.css.mjs +6 -0
  107. package/dist/esm/Badge/index.mjs +33 -0
  108. package/dist/esm/Box/box.css +3 -0
  109. package/dist/esm/Box/box.module.css.mjs +6 -0
  110. package/dist/esm/Box/index.mjs +132 -0
  111. package/dist/esm/Breadcrumbs/breadcrumbs.css +34 -0
  112. package/dist/esm/Breadcrumbs/breadcrumbs.module.css.mjs +6 -0
  113. package/dist/esm/Breadcrumbs/index.mjs +41 -0
  114. package/dist/esm/Button/button.css +112 -0
  115. package/dist/esm/Button/button.module.css.mjs +2 -1
  116. package/dist/esm/Button/index.mjs +30 -5
  117. package/dist/esm/Card/card.css +37 -0
  118. package/dist/esm/Card/card.module.css.mjs +2 -1
  119. package/dist/esm/Checkbox/checkbox.css +135 -0
  120. package/dist/esm/Checkbox/checkbox.module.css.mjs +2 -1
  121. package/dist/esm/Checkbox/index.mjs +2 -1
  122. package/dist/esm/Chip/chip.css +55 -0
  123. package/dist/esm/Chip/chip.module.css.mjs +2 -1
  124. package/dist/esm/Dialog/dialog.css +144 -0
  125. package/dist/esm/Dialog/dialog.module.css.mjs +2 -1
  126. package/dist/esm/Dialog/index.mjs +11 -11
  127. package/dist/esm/DropdownMenu/dropdownmenu.css +61 -0
  128. package/dist/esm/DropdownMenu/dropdownmenu.module.css.mjs +2 -1
  129. package/dist/esm/DropdownMenu/index.mjs +113 -61
  130. package/dist/esm/Field/field.css +51 -0
  131. package/dist/esm/Field/field.module.css.mjs +2 -1
  132. package/dist/esm/Flex/index.mjs +19 -0
  133. package/dist/esm/Grid/index.mjs +29 -0
  134. package/dist/esm/Icons/CheckIcon.mjs +10 -0
  135. package/dist/esm/Icons/ChevronDownIcon.mjs +10 -0
  136. package/dist/esm/Icons/CircleCheckIcon.mjs +10 -0
  137. package/dist/esm/Icons/CircleInfoIcon.mjs +10 -0
  138. package/dist/esm/Icons/CircleXIcon.mjs +10 -0
  139. package/dist/esm/Icons/CloseIcon.mjs +10 -0
  140. package/dist/esm/Icons/IconSvg.mjs +50 -0
  141. package/dist/esm/Icons/MinusIcon.mjs +10 -0
  142. package/dist/esm/Icons/TriangleAlertIcon.mjs +10 -0
  143. package/dist/esm/Icons/icons.css +5 -0
  144. package/dist/esm/Icons/icons.module.css.mjs +2 -1
  145. package/dist/esm/Link/index.mjs +34 -0
  146. package/dist/esm/Link/link.css +57 -0
  147. package/dist/esm/Link/link.module.css.mjs +6 -0
  148. package/dist/esm/Popover/index.mjs +72 -39
  149. package/dist/esm/Popover/popover.css +25 -0
  150. package/dist/esm/Popover/popover.module.css.mjs +2 -1
  151. package/dist/esm/Progress/progress.css +86 -0
  152. package/dist/esm/Progress/progress.module.css.mjs +2 -1
  153. package/dist/esm/RadioGroup/radiogroup.css +59 -0
  154. package/dist/esm/RadioGroup/radiogroup.module.css.mjs +2 -1
  155. package/dist/esm/Select/index.mjs +3 -4
  156. package/dist/esm/Select/select.css +77 -0
  157. package/dist/esm/Select/select.module.css.mjs +2 -1
  158. package/dist/esm/Skeleton/skeleton.css +29 -0
  159. package/dist/esm/Skeleton/skeleton.module.css.mjs +2 -1
  160. package/dist/esm/Spinner/spinner.css +35 -0
  161. package/dist/esm/Spinner/spinner.module.css.mjs +2 -1
  162. package/dist/esm/Stack/index.mjs +14 -0
  163. package/dist/esm/Switch/switch.css +123 -0
  164. package/dist/esm/Switch/switch.module.css.mjs +2 -1
  165. package/dist/esm/Table/index.mjs +50 -0
  166. package/dist/esm/Table/table.css +57 -0
  167. package/dist/esm/Table/table.module.css.mjs +6 -0
  168. package/dist/esm/Tabs/index.mjs +50 -21
  169. package/dist/esm/Tabs/tabs.css +62 -0
  170. package/dist/esm/Tabs/tabs.module.css.mjs +2 -1
  171. package/dist/esm/TextInput/index.mjs +9 -17
  172. package/dist/esm/TextInput/textinput.css +93 -0
  173. package/dist/esm/TextInput/textinput.module.css.mjs +2 -1
  174. package/dist/esm/Textarea/index.mjs +2 -3
  175. package/dist/esm/Textarea/textarea.css +62 -0
  176. package/dist/esm/Textarea/textarea.module.css.mjs +2 -1
  177. package/dist/esm/ThemeProvider/index.mjs +5 -3
  178. package/dist/esm/ThemeProvider/themeprovider.css +3 -0
  179. package/dist/esm/ThemeProvider/themeprovider.module.css.mjs +2 -1
  180. package/dist/esm/Toast/index.mjs +10 -6
  181. package/dist/esm/Toast/toast.css +151 -0
  182. package/dist/esm/Toast/toast.module.css.mjs +2 -1
  183. package/dist/esm/Tooltip/index.mjs +38 -67
  184. package/dist/esm/Tooltip/tooltip.css +26 -0
  185. package/dist/esm/Tooltip/tooltip.module.css.mjs +2 -1
  186. package/dist/esm/hooks/floatingConfig.mjs +20 -0
  187. package/dist/esm/hooks/useRovingCollection.mjs +105 -0
  188. package/dist/esm/index.mjs +18 -1
  189. package/dist/esm/theme.css +243 -0
  190. package/dist/esm/utils/Portal.mjs +45 -0
  191. package/dist/esm/utils/aria.mjs +12 -0
  192. package/dist/index.d.ts +187 -26
  193. package/dist/types/src/Badge/index.d.ts +13 -0
  194. package/dist/types/src/Box/index.d.ts +47 -0
  195. package/dist/types/src/Breadcrumbs/index.d.ts +29 -0
  196. package/dist/types/src/Button/index.d.ts +4 -7
  197. package/dist/types/src/DropdownMenu/index.d.ts +2 -2
  198. package/dist/types/src/Flex/index.d.ts +18 -0
  199. package/dist/types/src/Grid/index.d.ts +18 -0
  200. package/dist/types/src/Icons/CheckIcon.d.ts +4 -0
  201. package/dist/types/src/Icons/ChevronDownIcon.d.ts +4 -0
  202. package/dist/types/src/Icons/CircleCheckIcon.d.ts +4 -0
  203. package/dist/types/src/Icons/CircleInfoIcon.d.ts +4 -0
  204. package/dist/types/src/Icons/CircleXIcon.d.ts +4 -0
  205. package/dist/types/src/Icons/CloseIcon.d.ts +4 -0
  206. package/dist/types/src/Icons/IconSvg.d.ts +14 -0
  207. package/dist/types/src/Icons/MinusIcon.d.ts +4 -0
  208. package/dist/types/src/Icons/TriangleAlertIcon.d.ts +4 -0
  209. package/dist/types/src/Icons/index.d.ts +9 -30
  210. package/dist/types/src/Link/index.d.ts +11 -0
  211. package/dist/types/src/Stack/index.d.ts +15 -0
  212. package/dist/types/src/Table/index.d.ts +40 -0
  213. package/dist/types/src/ThemeProvider/index.d.ts +5 -0
  214. package/dist/types/src/hooks/floatingConfig.d.ts +6 -0
  215. package/dist/types/src/hooks/useRovingCollection.d.ts +16 -0
  216. package/dist/types/src/index.d.ts +18 -2
  217. package/dist/types/src/utils/Portal.d.ts +8 -0
  218. package/dist/types/src/utils/aria.d.ts +3 -0
  219. package/dist/types/src/utils/testUtils.d.ts +7 -0
  220. package/package.json +49 -5
  221. package/dist/cjs/Accordion/accordion.module.css.cjs.map +0 -1
  222. package/dist/cjs/Accordion/index.cjs.map +0 -1
  223. package/dist/cjs/Alert/alert.module.css.cjs.map +0 -1
  224. package/dist/cjs/Alert/index.cjs.map +0 -1
  225. package/dist/cjs/Avatar/avatar.module.css.cjs.map +0 -1
  226. package/dist/cjs/Avatar/index.cjs.map +0 -1
  227. package/dist/cjs/Button/button.module.css.cjs.map +0 -1
  228. package/dist/cjs/Button/index.cjs.map +0 -1
  229. package/dist/cjs/Card/card.module.css.cjs.map +0 -1
  230. package/dist/cjs/Card/index.cjs.map +0 -1
  231. package/dist/cjs/Checkbox/checkbox.module.css.cjs.map +0 -1
  232. package/dist/cjs/Checkbox/index.cjs.map +0 -1
  233. package/dist/cjs/Chip/chip.module.css.cjs.map +0 -1
  234. package/dist/cjs/Chip/index.cjs.map +0 -1
  235. package/dist/cjs/Dialog/dialog.module.css.cjs.map +0 -1
  236. package/dist/cjs/Dialog/index.cjs.map +0 -1
  237. package/dist/cjs/DropdownMenu/dropdownmenu.module.css.cjs.map +0 -1
  238. package/dist/cjs/DropdownMenu/index.cjs.map +0 -1
  239. package/dist/cjs/Field/field.module.css.cjs.map +0 -1
  240. package/dist/cjs/Field/index.cjs.map +0 -1
  241. package/dist/cjs/Icons/icons.module.css.cjs.map +0 -1
  242. package/dist/cjs/Icons/index.cjs +0 -96
  243. package/dist/cjs/Icons/index.cjs.map +0 -1
  244. package/dist/cjs/Popover/index.cjs.map +0 -1
  245. package/dist/cjs/Popover/popover.module.css.cjs.map +0 -1
  246. package/dist/cjs/Progress/index.cjs.map +0 -1
  247. package/dist/cjs/Progress/progress.module.css.cjs.map +0 -1
  248. package/dist/cjs/RadioGroup/index.cjs.map +0 -1
  249. package/dist/cjs/RadioGroup/radiogroup.module.css.cjs.map +0 -1
  250. package/dist/cjs/Select/index.cjs.map +0 -1
  251. package/dist/cjs/Select/select.module.css.cjs.map +0 -1
  252. package/dist/cjs/Skeleton/index.cjs.map +0 -1
  253. package/dist/cjs/Skeleton/skeleton.module.css.cjs.map +0 -1
  254. package/dist/cjs/Spinner/index.cjs.map +0 -1
  255. package/dist/cjs/Spinner/spinner.module.css.cjs.map +0 -1
  256. package/dist/cjs/Switch/index.cjs.map +0 -1
  257. package/dist/cjs/Switch/switch.module.css.cjs.map +0 -1
  258. package/dist/cjs/Tabs/index.cjs.map +0 -1
  259. package/dist/cjs/Tabs/tabs.module.css.cjs.map +0 -1
  260. package/dist/cjs/TextInput/index.cjs.map +0 -1
  261. package/dist/cjs/TextInput/textinput.module.css.cjs.map +0 -1
  262. package/dist/cjs/Textarea/index.cjs.map +0 -1
  263. package/dist/cjs/Textarea/textarea.module.css.cjs.map +0 -1
  264. package/dist/cjs/ThemeProvider/index.cjs.map +0 -1
  265. package/dist/cjs/ThemeProvider/themeprovider.module.css.cjs.map +0 -1
  266. package/dist/cjs/Toast/index.cjs.map +0 -1
  267. package/dist/cjs/Toast/toast.module.css.cjs.map +0 -1
  268. package/dist/cjs/Tooltip/index.cjs.map +0 -1
  269. package/dist/cjs/Tooltip/tooltip.module.css.cjs.map +0 -1
  270. package/dist/cjs/hooks/useControllableState.cjs.map +0 -1
  271. package/dist/cjs/hooks/useDismiss.cjs +0 -44
  272. package/dist/cjs/hooks/useDismiss.cjs.map +0 -1
  273. package/dist/cjs/hooks/useFloatingPosition.cjs +0 -68
  274. package/dist/cjs/hooks/useFloatingPosition.cjs.map +0 -1
  275. package/dist/cjs/index.cjs.map +0 -1
  276. package/dist/cjs/utils/clamp.cjs +0 -9
  277. package/dist/cjs/utils/clamp.cjs.map +0 -1
  278. package/dist/cjs/utils/mergeRefs.cjs.map +0 -1
  279. package/dist/cjs/utils/slot.cjs.map +0 -1
  280. package/dist/esm/Accordion/accordion.module.css.mjs.map +0 -1
  281. package/dist/esm/Accordion/index.mjs.map +0 -1
  282. package/dist/esm/Alert/alert.module.css.mjs.map +0 -1
  283. package/dist/esm/Alert/index.mjs.map +0 -1
  284. package/dist/esm/Avatar/avatar.module.css.mjs.map +0 -1
  285. package/dist/esm/Avatar/index.mjs.map +0 -1
  286. package/dist/esm/Button/button.module.css.mjs.map +0 -1
  287. package/dist/esm/Button/index.mjs.map +0 -1
  288. package/dist/esm/Card/card.module.css.mjs.map +0 -1
  289. package/dist/esm/Card/index.mjs.map +0 -1
  290. package/dist/esm/Checkbox/checkbox.module.css.mjs.map +0 -1
  291. package/dist/esm/Checkbox/index.mjs.map +0 -1
  292. package/dist/esm/Chip/chip.module.css.mjs.map +0 -1
  293. package/dist/esm/Chip/index.mjs.map +0 -1
  294. package/dist/esm/Dialog/dialog.module.css.mjs.map +0 -1
  295. package/dist/esm/Dialog/index.mjs.map +0 -1
  296. package/dist/esm/DropdownMenu/dropdownmenu.module.css.mjs.map +0 -1
  297. package/dist/esm/DropdownMenu/index.mjs.map +0 -1
  298. package/dist/esm/Field/field.module.css.mjs.map +0 -1
  299. package/dist/esm/Field/index.mjs.map +0 -1
  300. package/dist/esm/Icons/icons.module.css.mjs.map +0 -1
  301. package/dist/esm/Icons/index.mjs +0 -84
  302. package/dist/esm/Icons/index.mjs.map +0 -1
  303. package/dist/esm/Popover/index.mjs.map +0 -1
  304. package/dist/esm/Popover/popover.module.css.mjs.map +0 -1
  305. package/dist/esm/Progress/index.mjs.map +0 -1
  306. package/dist/esm/Progress/progress.module.css.mjs.map +0 -1
  307. package/dist/esm/RadioGroup/index.mjs.map +0 -1
  308. package/dist/esm/RadioGroup/radiogroup.module.css.mjs.map +0 -1
  309. package/dist/esm/Select/index.mjs.map +0 -1
  310. package/dist/esm/Select/select.module.css.mjs.map +0 -1
  311. package/dist/esm/Skeleton/index.mjs.map +0 -1
  312. package/dist/esm/Skeleton/skeleton.module.css.mjs.map +0 -1
  313. package/dist/esm/Spinner/index.mjs.map +0 -1
  314. package/dist/esm/Spinner/spinner.module.css.mjs.map +0 -1
  315. package/dist/esm/Switch/index.mjs.map +0 -1
  316. package/dist/esm/Switch/switch.module.css.mjs.map +0 -1
  317. package/dist/esm/Tabs/index.mjs.map +0 -1
  318. package/dist/esm/Tabs/tabs.module.css.mjs.map +0 -1
  319. package/dist/esm/TextInput/index.mjs.map +0 -1
  320. package/dist/esm/TextInput/textinput.module.css.mjs.map +0 -1
  321. package/dist/esm/Textarea/index.mjs.map +0 -1
  322. package/dist/esm/Textarea/textarea.module.css.mjs.map +0 -1
  323. package/dist/esm/ThemeProvider/index.mjs.map +0 -1
  324. package/dist/esm/ThemeProvider/themeprovider.module.css.mjs.map +0 -1
  325. package/dist/esm/Toast/index.mjs.map +0 -1
  326. package/dist/esm/Toast/toast.module.css.mjs.map +0 -1
  327. package/dist/esm/Tooltip/index.mjs.map +0 -1
  328. package/dist/esm/Tooltip/tooltip.module.css.mjs.map +0 -1
  329. package/dist/esm/hooks/useControllableState.mjs.map +0 -1
  330. package/dist/esm/hooks/useDismiss.mjs +0 -42
  331. package/dist/esm/hooks/useDismiss.mjs.map +0 -1
  332. package/dist/esm/hooks/useFloatingPosition.mjs +0 -66
  333. package/dist/esm/hooks/useFloatingPosition.mjs.map +0 -1
  334. package/dist/esm/index.mjs.map +0 -1
  335. package/dist/esm/utils/clamp.mjs +0 -7
  336. package/dist/esm/utils/clamp.mjs.map +0 -1
  337. package/dist/esm/utils/mergeRefs.mjs.map +0 -1
  338. package/dist/esm/utils/slot.mjs.map +0 -1
  339. package/dist/styles.css +0 -3
  340. package/dist/styles.css.map +0 -1
  341. package/dist/types/src/Accordion/index.d.ts.map +0 -1
  342. package/dist/types/src/Alert/index.d.ts.map +0 -1
  343. package/dist/types/src/Avatar/index.d.ts.map +0 -1
  344. package/dist/types/src/Button/index.d.ts.map +0 -1
  345. package/dist/types/src/Card/index.d.ts.map +0 -1
  346. package/dist/types/src/Checkbox/index.d.ts.map +0 -1
  347. package/dist/types/src/Chip/index.d.ts.map +0 -1
  348. package/dist/types/src/Dialog/index.d.ts.map +0 -1
  349. package/dist/types/src/DropdownMenu/index.d.ts.map +0 -1
  350. package/dist/types/src/Field/index.d.ts.map +0 -1
  351. package/dist/types/src/Icons/index.d.ts.map +0 -1
  352. package/dist/types/src/Popover/index.d.ts.map +0 -1
  353. package/dist/types/src/Progress/index.d.ts.map +0 -1
  354. package/dist/types/src/RadioGroup/index.d.ts.map +0 -1
  355. package/dist/types/src/Select/index.d.ts.map +0 -1
  356. package/dist/types/src/Skeleton/index.d.ts.map +0 -1
  357. package/dist/types/src/Spinner/index.d.ts.map +0 -1
  358. package/dist/types/src/Switch/index.d.ts.map +0 -1
  359. package/dist/types/src/Tabs/index.d.ts.map +0 -1
  360. package/dist/types/src/TextInput/index.d.ts.map +0 -1
  361. package/dist/types/src/Textarea/index.d.ts.map +0 -1
  362. package/dist/types/src/ThemeProvider/index.d.ts.map +0 -1
  363. package/dist/types/src/Toast/index.d.ts.map +0 -1
  364. package/dist/types/src/Tooltip/index.d.ts.map +0 -1
  365. package/dist/types/src/hooks/useControllableState.d.ts.map +0 -1
  366. package/dist/types/src/hooks/useDismiss.d.ts +0 -18
  367. package/dist/types/src/hooks/useDismiss.d.ts.map +0 -1
  368. package/dist/types/src/hooks/useFloatingPosition.d.ts +0 -26
  369. package/dist/types/src/hooks/useFloatingPosition.d.ts.map +0 -1
  370. package/dist/types/src/index.d.ts.map +0 -1
  371. package/dist/types/src/types/polymorphic.d.ts.map +0 -1
  372. package/dist/types/src/utils/clamp.d.ts +0 -2
  373. package/dist/types/src/utils/clamp.d.ts.map +0 -1
  374. package/dist/types/src/utils/mergeRefs.d.ts.map +0 -1
  375. package/dist/types/src/utils/slot.d.ts.map +0 -1
@@ -1,9 +1,10 @@
1
1
  'use client';
2
2
  'use strict';
3
+ require('./chip.css');
3
4
 
4
5
  Object.defineProperty(exports, '__esModule', { value: true });
5
6
 
6
- var styles = {"chip-outlined":"chip-module_chip-outlined__nsWch","chip-default":"chip-module_chip-default__W71L9","chip-default-clickable":"chip-module_chip-default-clickable__xqeqN","chip-outlined-clickable":"chip-module_chip-outlined-clickable__slYmY","chip-text":"chip-module_chip-text__VIJnW"};
7
+ var styles = {"chip-outlined":"chip-outlined_7f705c77","chip-default":"chip-default_641c6c1e","chip-default-clickable":"chip-default-clickable_79a6d4b4","chip-outlined-clickable":"chip-outlined-clickable_6fe04947","chip-text":"chip-text_569c3392"};
7
8
 
8
9
  exports.default = styles;
9
10
  //# sourceMappingURL=chip.module.css.cjs.map
@@ -0,0 +1,144 @@
1
+ .dialog_root_1c624aa8 {
2
+ margin: 0;
3
+ padding: 0;
4
+ border: 0;
5
+ width: 100vw;
6
+ max-width: none;
7
+ height: 100vh;
8
+ max-height: none;
9
+ position: fixed;
10
+ inset: 0;
11
+ background: transparent;
12
+ display: grid;
13
+ place-items: center;
14
+ opacity: 0;
15
+ transition:
16
+ opacity 0.22s ease,
17
+ overlay 0.22s ease allow-discrete,
18
+ display 0.22s ease allow-discrete;
19
+ }
20
+
21
+ .dialog_root_1c624aa8:focus {
22
+ outline: none;
23
+ }
24
+
25
+ .dialog_root_1c624aa8:open,
26
+ .dialog_root_1c624aa8[open] {
27
+ opacity: 1;
28
+ }
29
+
30
+ @starting-style {
31
+ .dialog_root_1c624aa8:open,
32
+ .dialog_root_1c624aa8[open] {
33
+ opacity: 0;
34
+ }
35
+ }
36
+
37
+ .dialog_root_1c624aa8::backdrop {
38
+ background-color: transparent;
39
+ transition:
40
+ background-color 0.22s ease,
41
+ overlay 0.22s ease allow-discrete,
42
+ display 0.22s ease allow-discrete;
43
+ }
44
+
45
+ .dialog_root_1c624aa8:open::backdrop,
46
+ .dialog_root_1c624aa8[open]::backdrop {
47
+ background-color: rgb(15 23 42 / 48%);
48
+ }
49
+
50
+ @starting-style {
51
+ .dialog_root_1c624aa8:open::backdrop,
52
+ .dialog_root_1c624aa8[open]::backdrop {
53
+ background-color: transparent;
54
+ }
55
+ }
56
+
57
+ .dialog_content_ee12e897 {
58
+ position: relative;
59
+ width: min(32rem, calc(100vw - 2rem));
60
+ max-height: calc(100vh - 2rem);
61
+ overflow: auto;
62
+ border-radius: var(--frey-radius-lg);
63
+ border: 1px solid var(--frey-color-border-subtle);
64
+ background-color: var(--frey-color-surface);
65
+ color: var(--frey-color-text);
66
+ box-shadow: 0 20px 40px rgb(0 0 0 / 24%);
67
+ padding: 1.5rem; /* Increased padding */
68
+ opacity: 0;
69
+ transform: translateY(0.75rem) scale(0.98);
70
+ transition:
71
+ opacity 0.22s ease,
72
+ transform 0.22s ease;
73
+ }
74
+
75
+ .dialog_root_1c624aa8:open .dialog_content_ee12e897,
76
+ .dialog_root_1c624aa8[open] .dialog_content_ee12e897 {
77
+ opacity: 1;
78
+ transform: translateY(0) scale(1);
79
+ }
80
+
81
+ @starting-style {
82
+ .dialog_root_1c624aa8:open .dialog_content_ee12e897,
83
+ .dialog_root_1c624aa8[open] .dialog_content_ee12e897 {
84
+ opacity: 0;
85
+ transform: translateY(0.75rem) scale(0.98);
86
+ }
87
+ }
88
+
89
+ .dialog_header_c2462f2b {
90
+ display: flex;
91
+ flex-direction: column;
92
+ gap: 0.25rem;
93
+ margin-bottom: 1rem;
94
+ }
95
+
96
+ .dialog_title_89da9452 {
97
+ margin: 0;
98
+ font-size: 1.125rem;
99
+ font-weight: 600;
100
+ line-height: 1.5;
101
+ color: var(--frey-color-text-title);
102
+ }
103
+
104
+ .dialog_close_e5b07e60 {
105
+ position: absolute;
106
+ top: 1rem;
107
+ right: 1rem;
108
+ border: none;
109
+ background: transparent;
110
+ color: var(--frey-color-text-muted);
111
+ border-radius: var(--frey-radius-sm);
112
+ width: 2.5rem;
113
+ height: 2.5rem;
114
+ display: inline-flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ cursor: pointer;
118
+ padding: 0;
119
+ transition: all 0.2s ease-in-out;
120
+ }
121
+
122
+ .dialog_close_e5b07e60:hover {
123
+ background: var(--frey-color-surface-hover);
124
+ color: var(--frey-color-text);
125
+ }
126
+
127
+ .dialog_close_e5b07e60:focus-visible {
128
+ outline: none;
129
+ box-shadow: 0 0 0 2px var(--frey-focus-ring);
130
+ }
131
+
132
+ .dialog_close_icon_93132c68 {
133
+ display: block;
134
+ }
135
+
136
+ .dialog_description_9f437d42 {
137
+ margin: 0.5rem 0 0;
138
+ color: var(--frey-color-text-secondary, #6b7280);
139
+ font-size: 0.875rem;
140
+ }
141
+
142
+ .dialog_body_39a5839d {
143
+ margin-top: 0.875rem;
144
+ }
@@ -1,9 +1,10 @@
1
1
  'use client';
2
2
  'use strict';
3
+ require('./dialog.css');
3
4
 
4
5
  Object.defineProperty(exports, '__esModule', { value: true });
5
6
 
6
- var styles = {"dialog_root":"dialog-module_dialog_root__jMqkW","dialog_content":"dialog-module_dialog_content__0IqkB","dialog_header":"dialog-module_dialog_header__VSRxM","dialog_title":"dialog-module_dialog_title__Mw7jc","dialog_close":"dialog-module_dialog_close__tuhJi","dialog_close_icon":"dialog-module_dialog_close_icon__5hPpw","dialog_description":"dialog-module_dialog_description__fh-8z","dialog_body":"dialog-module_dialog_body__5qjkS"};
7
+ var styles = {"dialog_root":"dialog_root_1c624aa8","dialog_content":"dialog_content_ee12e897","dialog_header":"dialog_header_c2462f2b","dialog_title":"dialog_title_89da9452","dialog_close":"dialog_close_e5b07e60","dialog_close_icon":"dialog_close_icon_93132c68","dialog_description":"dialog_description_9f437d42","dialog_body":"dialog_body_39a5839d"};
7
8
 
8
9
  exports.default = styles;
9
10
  //# sourceMappingURL=dialog.module.css.cjs.map
@@ -6,9 +6,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
  var clsx = require('clsx');
8
8
  var React = require('react');
9
- var reactDom = require('react-dom');
10
- var index = require('../Icons/index.cjs');
9
+ var CloseIcon = require('../Icons/CloseIcon.cjs');
11
10
  var mergeRefs = require('../utils/mergeRefs.cjs');
11
+ var Portal = require('../utils/Portal.cjs');
12
12
  var slot = require('../utils/slot.cjs');
13
13
  var dialog_module = require('./dialog.module.css.cjs');
14
14
 
@@ -141,15 +141,15 @@ const DialogContent = React.forwardRef(function DialogContent({ closeLabel = 'Cl
141
141
  }, [closeOnOverlayClick, onOpenChange]);
142
142
  if (typeof document === 'undefined' || !mounted)
143
143
  return null;
144
- return reactDom.createPortal(jsxRuntime.jsx("dialog", { id: dialogId, ref: mergeRefs.mergeRefs(dialogRef, ref), "aria-labelledby": titleId, "aria-describedby": descriptionId, className: clsx(dialog_module.default.dialog_root, containerClassName), onCancel: (event) => {
145
- if (!closeOnEscape) {
146
- event.preventDefault();
147
- }
148
- }, onClose: () => {
149
- if (open) {
150
- onOpenChange(false);
151
- }
152
- }, children: jsxRuntime.jsxs("div", { className: clsx(dialog_module.default.dialog_content, className), ...props, children: [!hideCloseButton && (jsxRuntime.jsx("button", { type: 'button', className: dialog_module.default.dialog_close, onClick: () => onOpenChange(false), "aria-label": closeLabel, children: jsxRuntime.jsx(index.CloseIcon, { size: 16, className: dialog_module.default.dialog_close_icon }) })), children] }) }), document.body);
144
+ return (jsxRuntime.jsx(Portal.default, { children: jsxRuntime.jsx("dialog", { id: dialogId, ref: mergeRefs.mergeRefs(dialogRef, ref), "aria-labelledby": titleId, "aria-describedby": descriptionId, className: clsx(dialog_module.default.dialog_root, containerClassName), onCancel: (event) => {
145
+ if (!closeOnEscape) {
146
+ event.preventDefault();
147
+ }
148
+ }, onClose: () => {
149
+ if (open) {
150
+ onOpenChange(false);
151
+ }
152
+ }, children: jsxRuntime.jsxs("div", { className: clsx(dialog_module.default.dialog_content, className), ...props, children: [!hideCloseButton && (jsxRuntime.jsx("button", { type: 'button', className: dialog_module.default.dialog_close, onClick: () => onOpenChange(false), "aria-label": closeLabel, children: jsxRuntime.jsx(CloseIcon.CloseIcon, { size: 16, className: dialog_module.default.dialog_close_icon }) })), children] }) }) }));
153
153
  });
154
154
  DialogContent.displayName = 'Dialog.Content';
155
155
  const DialogHeader = React.forwardRef(function DialogHeader({ className, ...props }, ref) {
@@ -0,0 +1,61 @@
1
+ .dropdown_menu_9ae4191b {
2
+ position: fixed;
3
+ z-index: 55;
4
+ min-width: 12rem;
5
+ margin: 0;
6
+ padding: 0.25rem;
7
+ border: 1px solid var(--frey-color-border, #d1d5db);
8
+ border-radius: 0.625rem;
9
+ background-color: var(--frey-color-surface, #fff);
10
+ box-shadow: 0 14px 28px rgb(17 24 39 / 18%);
11
+ list-style: none;
12
+ animation: dropdown_in_09bd5d55 0.16s ease;
13
+ }
14
+
15
+ .dropdown_menu_item_container_9fc6afbd {
16
+ list-style: none;
17
+ }
18
+
19
+ .dropdown_menu_item_fbfd11bb {
20
+ width: 100%;
21
+ border: 0;
22
+ background: transparent;
23
+ color: var(--frey-color-text-primary, #111827);
24
+ border-radius: 0.5rem;
25
+ text-align: left;
26
+ font-size: 0.875rem;
27
+ line-height: 1.25;
28
+ padding: 0.5rem 0.625rem;
29
+ cursor: pointer;
30
+ transition: background-color 0.16s ease;
31
+ }
32
+
33
+ .dropdown_menu_item_fbfd11bb:hover {
34
+ background: var(--frey-color-surface-subtle, #f3f4f6);
35
+ }
36
+
37
+ .dropdown_menu_item_fbfd11bb:focus-visible {
38
+ outline: 2px solid var(--frey-focus-ring, #3b82f6);
39
+ outline-offset: 1px;
40
+ }
41
+
42
+ .dropdown_menu_item_fbfd11bb:disabled {
43
+ color: var(--frey-color-text-muted, #9ca3af);
44
+ cursor: not-allowed;
45
+ }
46
+
47
+ .dropdown_menu_item_destructive_453b7c60 {
48
+ color: var(--frey-color-error, #b91c1c);
49
+ }
50
+
51
+ @keyframes dropdown_in_09bd5d55 {
52
+ from {
53
+ opacity: 0;
54
+ transform: translateY(-4px) scale(0.98);
55
+ }
56
+
57
+ to {
58
+ opacity: 1;
59
+ transform: translateY(0) scale(1);
60
+ }
61
+ }
@@ -1,9 +1,10 @@
1
1
  'use client';
2
2
  'use strict';
3
+ require('./dropdownmenu.css');
3
4
 
4
5
  Object.defineProperty(exports, '__esModule', { value: true });
5
6
 
6
- var styles = {"dropdown_menu":"dropdownmenu-module_dropdown_menu__AHiFI","dropdown_menu_item_container":"dropdownmenu-module_dropdown_menu_item_container__FI7MR","dropdown_menu_item":"dropdownmenu-module_dropdown_menu_item__ncHAK","dropdown_menu_item_destructive":"dropdownmenu-module_dropdown_menu_item_destructive__-QIlU"};
7
+ var styles = {"dropdown_menu":"dropdown_menu_9ae4191b","dropdown_menu_item_container":"dropdown_menu_item_container_9fc6afbd","dropdown_menu_item":"dropdown_menu_item_fbfd11bb","dropdown_menu_item_destructive":"dropdown_menu_item_destructive_453b7c60"};
7
8
 
8
9
  exports.default = styles;
9
10
  //# sourceMappingURL=dropdownmenu.module.css.cjs.map
@@ -4,13 +4,14 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
+ var react = require('@floating-ui/react');
7
8
  var clsx = require('clsx');
8
9
  var React = require('react');
9
- var reactDom = require('react-dom');
10
+ var floatingConfig = require('../hooks/floatingConfig.cjs');
10
11
  var useControllableState = require('../hooks/useControllableState.cjs');
11
- var useDismiss = require('../hooks/useDismiss.cjs');
12
- var useFloatingPosition = require('../hooks/useFloatingPosition.cjs');
12
+ var useRovingCollection = require('../hooks/useRovingCollection.cjs');
13
13
  var mergeRefs = require('../utils/mergeRefs.cjs');
14
+ var Portal = require('../utils/Portal.cjs');
14
15
  var slot = require('../utils/slot.cjs');
15
16
  var dropdownmenu_module = require('./dropdownmenu.module.css.cjs');
16
17
 
@@ -24,120 +25,171 @@ function useDropdownMenuContext() {
24
25
  }
25
26
  const DropdownMenuRoot = function DropdownMenu({ open, defaultOpen = false, onOpenChange, placement = 'bottom', offset = 8, closeOnEscape = true, closeOnOutsideClick = true, children }) {
26
27
  const idPrefix = React.useId();
28
+ const menuItems = useRovingCollection.useRovingCollection();
27
29
  const triggerRef = React.useRef(null);
30
+ const [referenceElement, setReferenceElement] = React.useState(null);
31
+ const [floatingElement, setFloatingElement] = React.useState(null);
28
32
  const [currentOpen, handleOpenChange] = useControllableState.useControllableState(open, defaultOpen, onOpenChange);
33
+ const handleFloatingOpenChange = React.useCallback((nextOpen, _event, reason) => {
34
+ handleOpenChange(nextOpen);
35
+ if (!nextOpen && reason === 'escape-key') {
36
+ triggerRef.current?.focus();
37
+ }
38
+ }, [handleOpenChange]);
39
+ const floatingRootContext = react.useFloatingRootContext({
40
+ open: currentOpen,
41
+ onOpenChange: handleFloatingOpenChange,
42
+ elements: {
43
+ reference: referenceElement,
44
+ floating: floatingElement
45
+ }
46
+ });
47
+ const { refs, floatingStyles, context: floatingContext } = react.useFloating({
48
+ rootContext: floatingRootContext,
49
+ placement: floatingConfig.toFloatingPlacement(placement, 'start'),
50
+ middleware: floatingConfig.createFloatingMiddleware(offset),
51
+ strategy: 'fixed',
52
+ transform: false,
53
+ whileElementsMounted: react.autoUpdate
54
+ });
55
+ const dismiss = react.useDismiss(floatingContext, {
56
+ enabled: currentOpen,
57
+ escapeKey: closeOnEscape,
58
+ outsidePress: closeOnOutsideClick
59
+ });
60
+ const { getReferenceProps, getFloatingProps } = react.useInteractions([dismiss]);
61
+ const setReference = React.useCallback((node) => {
62
+ refs.setReference(node);
63
+ setReferenceElement(node);
64
+ }, [refs]);
65
+ const setFloating = React.useCallback((node) => {
66
+ refs.setFloating(node);
67
+ setFloatingElement(node);
68
+ }, [refs]);
29
69
  const contextValue = React.useMemo(() => ({
30
70
  open: currentOpen,
31
71
  onOpenChange: handleOpenChange,
32
- placement,
33
- offset,
34
72
  idPrefix,
35
73
  triggerRef,
36
- closeOnEscape,
37
- closeOnOutsideClick
74
+ setReference,
75
+ setFloating,
76
+ floatingStyles,
77
+ floatingContext,
78
+ getReferenceProps,
79
+ getFloatingProps,
80
+ menuItems
38
81
  }), [
39
82
  currentOpen,
40
83
  handleOpenChange,
41
- placement,
42
- offset,
43
84
  idPrefix,
44
- closeOnEscape,
45
- closeOnOutsideClick
85
+ setReference,
86
+ setFloating,
87
+ floatingStyles,
88
+ floatingContext,
89
+ getReferenceProps,
90
+ getFloatingProps,
91
+ menuItems
46
92
  ]);
47
93
  return (jsxRuntime.jsx(DropdownMenuContext.Provider, { value: contextValue, children: children }));
48
94
  };
49
95
  DropdownMenuRoot.displayName = 'DropdownMenu';
50
96
  const DropdownMenuTrigger = React.forwardRef(function DropdownMenuTrigger({ children, asChild = false, onClick, type, ...triggerProps }, ref) {
51
- const { open, onOpenChange, idPrefix, triggerRef } = useDropdownMenuContext();
52
- const mergedRef = mergeRefs.mergeRefs(ref, triggerRef);
97
+ const { open, onOpenChange, idPrefix, triggerRef, setReference, getReferenceProps } = useDropdownMenuContext();
98
+ const mergedRef = mergeRefs.mergeRefs(ref, triggerRef, setReference);
53
99
  const handleClick = (event) => {
54
100
  onClick?.(event);
55
101
  if (!event.defaultPrevented) {
56
102
  onOpenChange(!open);
57
103
  }
58
104
  };
105
+ const referenceProps = getReferenceProps({
106
+ ...triggerProps,
107
+ onClick: handleClick,
108
+ 'aria-haspopup': 'menu',
109
+ 'aria-expanded': open,
110
+ 'aria-controls': `${idPrefix}-menu`
111
+ });
59
112
  if (asChild) {
60
113
  if (!React.isValidElement(children)) {
61
114
  throw new Error('DropdownMenu.Trigger with asChild expects a single valid React element child.');
62
115
  }
63
- return (jsxRuntime.jsx(slot.Slot, { ref: mergedRef, ...triggerProps, onClick: handleClick, "aria-haspopup": 'menu', "aria-expanded": open, "aria-controls": `${idPrefix}-menu`, children: children }));
116
+ return (jsxRuntime.jsx(slot.Slot, { ref: mergedRef, ...referenceProps, children: children }));
64
117
  }
65
- return (jsxRuntime.jsx("button", { ref: mergedRef, ...triggerProps, type: type ?? 'button', onClick: handleClick, "aria-haspopup": 'menu', "aria-expanded": open, "aria-controls": `${idPrefix}-menu`, children: children }));
118
+ return (jsxRuntime.jsx("button", { ref: mergedRef, type: type ?? 'button', ...referenceProps, children: children }));
66
119
  });
67
120
  DropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';
68
121
  const DropdownMenuContent = React.forwardRef(function DropdownMenuContent({ className, style, children, ...props }, ref) {
69
- const { open, onOpenChange, placement, offset, idPrefix, triggerRef, closeOnEscape, closeOnOutsideClick } = useDropdownMenuContext();
122
+ const { open, idPrefix, setFloating, floatingStyles, floatingContext, getFloatingProps, menuItems } = useDropdownMenuContext();
70
123
  const menuRef = React.useRef(null);
71
- const position = useFloatingPosition.useFloatingPosition(triggerRef, menuRef, {
72
- open,
73
- placement,
74
- offset,
75
- align: 'start'
76
- });
77
- useDismiss.useDismiss({
78
- open,
79
- onClose: () => onOpenChange(false),
80
- triggerRef,
81
- contentRef: menuRef,
82
- closeOnEscape,
83
- closeOnOutsideClick,
84
- returnFocusOnClose: true
85
- });
86
124
  React.useEffect(() => {
87
- if (!open || !menuRef.current)
125
+ if (!open)
88
126
  return;
89
- // Auto-focus first enabled item
90
- const firstItem = menuRef.current.querySelector('[role="menuitem"]:not([disabled])');
91
- if (firstItem) {
92
- firstItem.focus();
93
- }
94
- }, [open]);
127
+ menuItems.focusFirst();
128
+ }, [open, menuItems]);
95
129
  const handleKeyDown = (event) => {
96
- if (!menuRef.current)
97
- return;
98
- const items = Array.from(menuRef.current.querySelectorAll('[role="menuitem"]:not([disabled])'));
99
- if (items.length === 0)
100
- return;
101
- const currentIndex = items.indexOf(document.activeElement);
130
+ const targetElement = event.target instanceof HTMLElement ? event.target : null;
131
+ const currentItemId = menuItems.findItemIdByElement(targetElement);
102
132
  if (event.key === 'ArrowDown') {
103
133
  event.preventDefault();
104
- const nextIndex = (currentIndex + 1) % items.length;
105
- items[nextIndex]?.focus();
134
+ if (currentItemId) {
135
+ menuItems.focusNext(currentItemId);
136
+ }
137
+ else {
138
+ menuItems.focusFirst();
139
+ }
106
140
  }
107
141
  if (event.key === 'ArrowUp') {
108
142
  event.preventDefault();
109
- const prevIndex = (currentIndex - 1 + items.length) % items.length;
110
- items[prevIndex]?.focus();
143
+ if (currentItemId) {
144
+ menuItems.focusPrevious(currentItemId);
145
+ }
146
+ else {
147
+ menuItems.focusLast();
148
+ }
111
149
  }
112
150
  if (event.key === 'Home') {
113
151
  event.preventDefault();
114
- items[0]?.focus();
152
+ menuItems.focusFirst();
115
153
  }
116
154
  if (event.key === 'End') {
117
155
  event.preventDefault();
118
- items.at(-1)?.focus();
156
+ menuItems.focusLast();
119
157
  }
120
158
  };
121
- if (!open || typeof document === 'undefined')
159
+ const floatingProps = getFloatingProps({
160
+ ...props,
161
+ onKeyDown: handleKeyDown
162
+ });
163
+ if (!open)
122
164
  return null;
123
- return reactDom.createPortal(jsxRuntime.jsx("menu", { id: `${idPrefix}-menu`, ref: mergeRefs.mergeRefs(menuRef, ref), className: clsx(dropdownmenu_module.default.dropdown_menu, className), onKeyDown: handleKeyDown, style: {
124
- top: position.top,
125
- left: position.left,
126
- ...style
127
- }, ...props, children: children }), document.body);
165
+ return (jsxRuntime.jsx(Portal.default, { children: jsxRuntime.jsx(react.FloatingFocusManager, { context: floatingContext, modal: true, returnFocus: true, outsideElementsInert: false, initialFocus: 0, children: jsxRuntime.jsx("div", { id: `${idPrefix}-menu`, role: 'menu', "aria-orientation": 'vertical', ref: mergeRefs.mergeRefs(menuRef, ref, setFloating), className: clsx(dropdownmenu_module.default.dropdown_menu, className), style: {
166
+ ...floatingStyles,
167
+ ...style
168
+ }, ...floatingProps, children: children }) }) }));
128
169
  });
129
170
  DropdownMenuContent.displayName = 'DropdownMenu.Content';
130
171
  const DropdownMenuItem = React.forwardRef(function DropdownMenuItem({ disabled, destructive, onSelect, className, children, ...props }, ref) {
131
- const { onOpenChange, triggerRef } = useDropdownMenuContext();
132
- const handleClick = (e) => {
172
+ const { onOpenChange, triggerRef, menuItems } = useDropdownMenuContext();
173
+ const itemRef = React.useRef(null);
174
+ const itemId = React.useId();
175
+ const mergedRef = mergeRefs.mergeRefs(ref, itemRef);
176
+ React.useEffect(() => {
177
+ menuItems.registerItem(itemId, itemRef.current, {
178
+ disabled: Boolean(disabled)
179
+ });
180
+ return () => {
181
+ menuItems.unregisterItem(itemId);
182
+ };
183
+ }, [menuItems, itemId, disabled]);
184
+ const handleClick = (event) => {
133
185
  if (disabled)
134
186
  return;
135
187
  onSelect?.();
136
- props.onClick?.(e);
188
+ props.onClick?.(event);
137
189
  onOpenChange(false);
138
190
  triggerRef.current?.focus();
139
191
  };
140
- return (jsxRuntime.jsx("li", { className: dropdownmenu_module.default.dropdown_menu_item_container, role: 'presentation', children: jsxRuntime.jsx("button", { ref: ref, type: 'button', role: 'menuitem', disabled: disabled, onClick: handleClick, className: clsx(dropdownmenu_module.default.dropdown_menu_item, className, {
192
+ return (jsxRuntime.jsx("div", { className: dropdownmenu_module.default.dropdown_menu_item_container, children: jsxRuntime.jsx("button", { ref: mergedRef, type: 'button', role: 'menuitem', disabled: disabled, onClick: handleClick, className: clsx(dropdownmenu_module.default.dropdown_menu_item, className, {
141
193
  [dropdownmenu_module.default.dropdown_menu_item_destructive]: destructive
142
194
  }), ...props, children: children }) }));
143
195
  });
@@ -0,0 +1,51 @@
1
+ .field_container_5a07ab58 {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.25rem;
5
+ width: 100%;
6
+ }
7
+
8
+ .field_label_23f6b992 {
9
+ font-size: 0.875rem;
10
+ font-weight: 500;
11
+ color: var(--frey-color-text-primary);
12
+ user-select: none;
13
+ }
14
+
15
+ label.field_label_23f6b992 {
16
+ cursor: pointer;
17
+ }
18
+
19
+ .field_label_disabled_a828e119 {
20
+ opacity: 0.5;
21
+ cursor: not-allowed;
22
+ }
23
+
24
+ .required_indicator_b438591b {
25
+ color: var(--frey-color-error, #dc2626);
26
+ margin-left: 0.125rem;
27
+ }
28
+
29
+ .helper_text_c551e6bf {
30
+ font-size: 0.75rem;
31
+ color: var(--frey-color-text-secondary, #6b7280);
32
+ margin: 0;
33
+ }
34
+
35
+ .error_text_0c43fbd7 {
36
+ font-size: 0.75rem;
37
+ color: var(--frey-color-error, #dc2626);
38
+ margin: 0;
39
+ }
40
+
41
+ .visually_hidden_d33af3d7 {
42
+ position: absolute;
43
+ width: 1px;
44
+ height: 1px;
45
+ padding: 0;
46
+ margin: -1px;
47
+ overflow: hidden;
48
+ clip-path: inset(50%);
49
+ white-space: nowrap;
50
+ border: 0;
51
+ }
@@ -1,9 +1,10 @@
1
1
  'use client';
2
2
  'use strict';
3
+ require('./field.css');
3
4
 
4
5
  Object.defineProperty(exports, '__esModule', { value: true });
5
6
 
6
- var styles = {"field_container":"field-module_field_container__mYSRK","field_label":"field-module_field_label__HK1Z5","field_label_disabled":"field-module_field_label_disabled__SkdeT","required_indicator":"field-module_required_indicator__9eYh0","helper_text":"field-module_helper_text__1K3VS","error_text":"field-module_error_text__vwYPc","visually_hidden":"field-module_visually_hidden__ofbl2"};
7
+ var styles = {"field_container":"field_container_5a07ab58","field_label":"field_label_23f6b992","field_label_disabled":"field_label_disabled_a828e119","required_indicator":"required_indicator_b438591b","helper_text":"helper_text_c551e6bf","error_text":"error_text_0c43fbd7","visually_hidden":"visually_hidden_d33af3d7"};
7
8
 
8
9
  exports.default = styles;
9
10
  //# sourceMappingURL=field.module.css.cjs.map
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ var index = require('../Box/index.cjs');
9
+
10
+ const Flex = React.forwardRef(function Flex({ as, inline = false, direction, align, justify, wrap, style, ...restProps }, ref) {
11
+ const resolvedStyle = {
12
+ flexDirection: direction,
13
+ alignItems: align,
14
+ justifyContent: justify,
15
+ flexWrap: wrap,
16
+ ...style
17
+ };
18
+ return (jsxRuntime.jsx(index.default, { as: as, ref: ref, display: inline ? 'inline-flex' : 'flex', style: resolvedStyle, ...restProps }));
19
+ });
20
+ Flex.displayName = 'Flex';
21
+
22
+ exports.default = Flex;
23
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,33 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ var index = require('../Box/index.cjs');
9
+
10
+ function resolveTrackTemplate(value) {
11
+ if (value === undefined) {
12
+ return undefined;
13
+ }
14
+ if (typeof value === 'number') {
15
+ return `repeat(${value}, minmax(0, 1fr))`;
16
+ }
17
+ return value;
18
+ }
19
+ const Grid = React.forwardRef(function Grid({ as, columns, rows, autoFlow, alignItems, justifyItems, style, ...restProps }, ref) {
20
+ const resolvedStyle = {
21
+ gridTemplateColumns: resolveTrackTemplate(columns),
22
+ gridTemplateRows: resolveTrackTemplate(rows),
23
+ gridAutoFlow: autoFlow,
24
+ alignItems,
25
+ justifyItems,
26
+ ...style
27
+ };
28
+ return (jsxRuntime.jsx(index.default, { as: as, ref: ref, display: 'grid', style: resolvedStyle, ...restProps }));
29
+ });
30
+ Grid.displayName = 'Grid';
31
+
32
+ exports.default = Grid;
33
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var IconSvg = require('./IconSvg.cjs');
6
+
7
+ function CheckIcon({ size = 'md', strokeWidth = 'regular', title, className, style }) {
8
+ return (jsxRuntime.jsx(IconSvg.IconSvg, { size: size, strokeWidth: strokeWidth, title: title, className: className, style: style, children: jsxRuntime.jsx("path", { d: 'M5 13L10 18L19 8' }) }));
9
+ }
10
+
11
+ exports.CheckIcon = CheckIcon;
12
+ //# sourceMappingURL=CheckIcon.cjs.map