frey-ui 1.0.9 → 1.0.11

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 (338) hide show
  1. package/README.md +25 -162
  2. package/dist/cjs/Accordion/accordion.module.css.cjs +9 -0
  3. package/dist/cjs/Accordion/accordion.module.css.cjs.map +1 -0
  4. package/dist/cjs/Accordion/index.cjs +99 -0
  5. package/dist/cjs/Accordion/index.cjs.map +1 -0
  6. package/dist/cjs/Alert/{alert.module.css.js → alert.module.css.cjs} +2 -2
  7. package/dist/cjs/Alert/alert.module.css.cjs.map +1 -0
  8. package/dist/cjs/Alert/index.cjs +36 -0
  9. package/dist/cjs/Alert/index.cjs.map +1 -0
  10. package/dist/cjs/Avatar/avatar.module.css.cjs +9 -0
  11. package/dist/cjs/Avatar/avatar.module.css.cjs.map +1 -0
  12. package/dist/cjs/Avatar/index.cjs +53 -0
  13. package/dist/cjs/Avatar/index.cjs.map +1 -0
  14. package/dist/cjs/Button/{button.module.css.js → button.module.css.cjs} +1 -1
  15. package/dist/cjs/Button/button.module.css.cjs.map +1 -0
  16. package/dist/cjs/Button/index.cjs +30 -0
  17. package/dist/cjs/Button/index.cjs.map +1 -0
  18. package/dist/cjs/Card/card.module.css.cjs +9 -0
  19. package/dist/cjs/Card/card.module.css.cjs.map +1 -0
  20. package/dist/cjs/Card/index.cjs +40 -0
  21. package/dist/cjs/Card/index.cjs.map +1 -0
  22. package/dist/cjs/Checkbox/{checkbox.module.css.js → checkbox.module.css.cjs} +1 -1
  23. package/dist/cjs/Checkbox/checkbox.module.css.cjs.map +1 -0
  24. package/dist/cjs/Checkbox/index.cjs +47 -0
  25. package/dist/cjs/Checkbox/index.cjs.map +1 -0
  26. package/dist/cjs/Chip/{chip.module.css.js → chip.module.css.cjs} +1 -1
  27. package/dist/cjs/Chip/chip.module.css.cjs.map +1 -0
  28. package/dist/cjs/Chip/{index.js → index.cjs} +7 -11
  29. package/dist/cjs/Chip/index.cjs.map +1 -0
  30. package/dist/cjs/Dialog/dialog.module.css.cjs +9 -0
  31. package/dist/cjs/Dialog/dialog.module.css.cjs.map +1 -0
  32. package/dist/cjs/Dialog/index.cjs +195 -0
  33. package/dist/cjs/Dialog/index.cjs.map +1 -0
  34. package/dist/cjs/DropdownMenu/dropdownmenu.module.css.cjs +9 -0
  35. package/dist/cjs/DropdownMenu/dropdownmenu.module.css.cjs.map +1 -0
  36. package/dist/cjs/DropdownMenu/index.cjs +153 -0
  37. package/dist/cjs/DropdownMenu/index.cjs.map +1 -0
  38. package/dist/cjs/Field/field.module.css.cjs +9 -0
  39. package/dist/cjs/Field/field.module.css.cjs.map +1 -0
  40. package/dist/cjs/Field/index.cjs +35 -0
  41. package/dist/cjs/Field/index.cjs.map +1 -0
  42. package/dist/cjs/Icons/icons.module.css.cjs +9 -0
  43. package/dist/cjs/Icons/icons.module.css.cjs.map +1 -0
  44. package/dist/cjs/Icons/index.cjs +96 -0
  45. package/dist/cjs/Icons/index.cjs.map +1 -0
  46. package/dist/cjs/Popover/index.cjs +102 -0
  47. package/dist/cjs/Popover/index.cjs.map +1 -0
  48. package/dist/cjs/Popover/popover.module.css.cjs +9 -0
  49. package/dist/cjs/Popover/popover.module.css.cjs.map +1 -0
  50. package/dist/cjs/Progress/index.cjs +29 -0
  51. package/dist/cjs/Progress/index.cjs.map +1 -0
  52. package/dist/cjs/Progress/progress.module.css.cjs +9 -0
  53. package/dist/cjs/Progress/progress.module.css.cjs.map +1 -0
  54. package/dist/cjs/RadioGroup/index.cjs +42 -0
  55. package/dist/cjs/RadioGroup/index.cjs.map +1 -0
  56. package/dist/cjs/RadioGroup/radiogroup.module.css.cjs +9 -0
  57. package/dist/cjs/RadioGroup/radiogroup.module.css.cjs.map +1 -0
  58. package/dist/cjs/Select/index.cjs +28 -0
  59. package/dist/cjs/Select/index.cjs.map +1 -0
  60. package/dist/cjs/Select/select.module.css.cjs +9 -0
  61. package/dist/cjs/Select/select.module.css.cjs.map +1 -0
  62. package/dist/cjs/Skeleton/index.cjs +27 -0
  63. package/dist/cjs/Skeleton/index.cjs.map +1 -0
  64. package/dist/cjs/Skeleton/{skeleton.module.css.js → skeleton.module.css.cjs} +1 -1
  65. package/dist/cjs/Skeleton/skeleton.module.css.cjs.map +1 -0
  66. package/dist/cjs/Spinner/index.cjs +32 -0
  67. package/dist/cjs/Spinner/index.cjs.map +1 -0
  68. package/dist/cjs/Spinner/spinner.module.css.cjs +9 -0
  69. package/dist/cjs/Spinner/spinner.module.css.cjs.map +1 -0
  70. package/dist/cjs/Switch/{index.js → index.cjs} +7 -9
  71. package/dist/cjs/Switch/index.cjs.map +1 -0
  72. package/dist/cjs/Switch/{switch.module.css.js → switch.module.css.cjs} +1 -1
  73. package/dist/cjs/Switch/switch.module.css.cjs.map +1 -0
  74. package/dist/cjs/Tabs/index.cjs +87 -0
  75. package/dist/cjs/Tabs/index.cjs.map +1 -0
  76. package/dist/cjs/Tabs/tabs.module.css.cjs +9 -0
  77. package/dist/cjs/Tabs/tabs.module.css.cjs.map +1 -0
  78. package/dist/cjs/TextInput/{index.js → index.cjs} +6 -8
  79. package/dist/cjs/TextInput/index.cjs.map +1 -0
  80. package/dist/cjs/TextInput/{textinput.module.css.js → textinput.module.css.cjs} +1 -1
  81. package/dist/cjs/TextInput/textinput.module.css.cjs.map +1 -0
  82. package/dist/cjs/Textarea/index.cjs +28 -0
  83. package/dist/cjs/Textarea/index.cjs.map +1 -0
  84. package/dist/cjs/Textarea/textarea.module.css.cjs +9 -0
  85. package/dist/cjs/Textarea/textarea.module.css.cjs.map +1 -0
  86. package/dist/cjs/ThemeProvider/index.cjs +29 -0
  87. package/dist/cjs/ThemeProvider/index.cjs.map +1 -0
  88. package/dist/cjs/ThemeProvider/{themeprovider.module.css.js → themeprovider.module.css.cjs} +1 -1
  89. package/dist/cjs/ThemeProvider/themeprovider.module.css.cjs.map +1 -0
  90. package/dist/cjs/Toast/index.cjs +109 -0
  91. package/dist/cjs/Toast/index.cjs.map +1 -0
  92. package/dist/cjs/Toast/toast.module.css.cjs +9 -0
  93. package/dist/cjs/Toast/toast.module.css.cjs.map +1 -0
  94. package/dist/cjs/Tooltip/index.cjs +102 -0
  95. package/dist/cjs/Tooltip/index.cjs.map +1 -0
  96. package/dist/cjs/Tooltip/tooltip.module.css.cjs +9 -0
  97. package/dist/cjs/Tooltip/tooltip.module.css.cjs.map +1 -0
  98. package/dist/cjs/hooks/useControllableState.cjs +24 -0
  99. package/dist/cjs/hooks/useControllableState.cjs.map +1 -0
  100. package/dist/cjs/hooks/useDismiss.cjs +44 -0
  101. package/dist/cjs/hooks/useDismiss.cjs.map +1 -0
  102. package/dist/cjs/hooks/useFloatingPosition.cjs +68 -0
  103. package/dist/cjs/hooks/useFloatingPosition.cjs.map +1 -0
  104. package/dist/cjs/index.cjs +64 -0
  105. package/dist/cjs/index.cjs.map +1 -0
  106. package/dist/cjs/utils/clamp.cjs +9 -0
  107. package/dist/cjs/utils/clamp.cjs.map +1 -0
  108. package/dist/cjs/utils/mergeRefs.cjs +21 -0
  109. package/dist/cjs/utils/mergeRefs.cjs.map +1 -0
  110. package/dist/cjs/utils/slot.cjs +61 -0
  111. package/dist/cjs/utils/slot.cjs.map +1 -0
  112. package/dist/esm/Accordion/accordion.module.css.mjs +5 -0
  113. package/dist/esm/Accordion/accordion.module.css.mjs.map +1 -0
  114. package/dist/esm/Accordion/index.mjs +94 -0
  115. package/dist/esm/Accordion/index.mjs.map +1 -0
  116. package/dist/esm/Alert/{alert.module.css.js → alert.module.css.mjs} +2 -2
  117. package/dist/esm/Alert/alert.module.css.mjs.map +1 -0
  118. package/dist/esm/Alert/index.mjs +32 -0
  119. package/dist/esm/Alert/index.mjs.map +1 -0
  120. package/dist/esm/Avatar/avatar.module.css.mjs +5 -0
  121. package/dist/esm/Avatar/avatar.module.css.mjs.map +1 -0
  122. package/dist/esm/Avatar/index.mjs +49 -0
  123. package/dist/esm/Avatar/index.mjs.map +1 -0
  124. package/dist/esm/Button/{button.module.css.js → button.module.css.mjs} +1 -1
  125. package/dist/esm/Button/button.module.css.mjs.map +1 -0
  126. package/dist/esm/Button/index.mjs +26 -0
  127. package/dist/esm/Button/index.mjs.map +1 -0
  128. package/dist/esm/Card/card.module.css.mjs +5 -0
  129. package/dist/esm/Card/card.module.css.mjs.map +1 -0
  130. package/dist/esm/Card/index.mjs +35 -0
  131. package/dist/esm/Card/index.mjs.map +1 -0
  132. package/dist/esm/Checkbox/{checkbox.module.css.js → checkbox.module.css.mjs} +1 -1
  133. package/dist/esm/Checkbox/checkbox.module.css.mjs.map +1 -0
  134. package/dist/esm/Checkbox/index.mjs +43 -0
  135. package/dist/esm/Checkbox/index.mjs.map +1 -0
  136. package/dist/esm/Chip/{chip.module.css.js → chip.module.css.mjs} +1 -1
  137. package/dist/esm/Chip/chip.module.css.mjs.map +1 -0
  138. package/dist/esm/Chip/{index.js → index.mjs} +7 -11
  139. package/dist/esm/Chip/index.mjs.map +1 -0
  140. package/dist/esm/Dialog/dialog.module.css.mjs +5 -0
  141. package/dist/esm/Dialog/dialog.module.css.mjs.map +1 -0
  142. package/dist/esm/Dialog/index.mjs +190 -0
  143. package/dist/esm/Dialog/index.mjs.map +1 -0
  144. package/dist/esm/DropdownMenu/dropdownmenu.module.css.mjs +5 -0
  145. package/dist/esm/DropdownMenu/dropdownmenu.module.css.mjs.map +1 -0
  146. package/dist/esm/DropdownMenu/index.mjs +148 -0
  147. package/dist/esm/DropdownMenu/index.mjs.map +1 -0
  148. package/dist/esm/Field/field.module.css.mjs +5 -0
  149. package/dist/esm/Field/field.module.css.mjs.map +1 -0
  150. package/dist/esm/Field/index.mjs +31 -0
  151. package/dist/esm/Field/index.mjs.map +1 -0
  152. package/dist/esm/Icons/icons.module.css.mjs +5 -0
  153. package/dist/esm/Icons/icons.module.css.mjs.map +1 -0
  154. package/dist/esm/Icons/index.mjs +84 -0
  155. package/dist/esm/Icons/index.mjs.map +1 -0
  156. package/dist/esm/Popover/index.mjs +97 -0
  157. package/dist/esm/Popover/index.mjs.map +1 -0
  158. package/dist/esm/Popover/popover.module.css.mjs +5 -0
  159. package/dist/esm/Popover/popover.module.css.mjs.map +1 -0
  160. package/dist/esm/Progress/index.mjs +25 -0
  161. package/dist/esm/Progress/index.mjs.map +1 -0
  162. package/dist/esm/Progress/progress.module.css.mjs +5 -0
  163. package/dist/esm/Progress/progress.module.css.mjs.map +1 -0
  164. package/dist/esm/RadioGroup/index.mjs +38 -0
  165. package/dist/esm/RadioGroup/index.mjs.map +1 -0
  166. package/dist/esm/RadioGroup/radiogroup.module.css.mjs +5 -0
  167. package/dist/esm/RadioGroup/radiogroup.module.css.mjs.map +1 -0
  168. package/dist/esm/Select/index.mjs +24 -0
  169. package/dist/esm/Select/index.mjs.map +1 -0
  170. package/dist/esm/Select/select.module.css.mjs +5 -0
  171. package/dist/esm/Select/select.module.css.mjs.map +1 -0
  172. package/dist/esm/Skeleton/index.mjs +23 -0
  173. package/dist/esm/Skeleton/index.mjs.map +1 -0
  174. package/dist/esm/Skeleton/{skeleton.module.css.js → skeleton.module.css.mjs} +1 -1
  175. package/dist/esm/Skeleton/skeleton.module.css.mjs.map +1 -0
  176. package/dist/esm/Spinner/index.mjs +28 -0
  177. package/dist/esm/Spinner/index.mjs.map +1 -0
  178. package/dist/esm/Spinner/spinner.module.css.mjs +5 -0
  179. package/dist/esm/Spinner/spinner.module.css.mjs.map +1 -0
  180. package/dist/esm/Switch/index.mjs +34 -0
  181. package/dist/esm/Switch/index.mjs.map +1 -0
  182. package/dist/esm/Switch/{switch.module.css.js → switch.module.css.mjs} +1 -1
  183. package/dist/esm/Switch/switch.module.css.mjs.map +1 -0
  184. package/dist/esm/Tabs/index.mjs +82 -0
  185. package/dist/esm/Tabs/index.mjs.map +1 -0
  186. package/dist/esm/Tabs/tabs.module.css.mjs +5 -0
  187. package/dist/esm/Tabs/tabs.module.css.mjs.map +1 -0
  188. package/dist/esm/TextInput/index.mjs +27 -0
  189. package/dist/esm/TextInput/index.mjs.map +1 -0
  190. package/dist/esm/TextInput/{textinput.module.css.js → textinput.module.css.mjs} +1 -1
  191. package/dist/esm/TextInput/textinput.module.css.mjs.map +1 -0
  192. package/dist/esm/Textarea/index.mjs +24 -0
  193. package/dist/esm/Textarea/index.mjs.map +1 -0
  194. package/dist/esm/Textarea/textarea.module.css.mjs +5 -0
  195. package/dist/esm/Textarea/textarea.module.css.mjs.map +1 -0
  196. package/dist/esm/ThemeProvider/index.mjs +25 -0
  197. package/dist/esm/ThemeProvider/index.mjs.map +1 -0
  198. package/dist/esm/ThemeProvider/{themeprovider.module.css.js → themeprovider.module.css.mjs} +1 -1
  199. package/dist/esm/ThemeProvider/themeprovider.module.css.mjs.map +1 -0
  200. package/dist/esm/Toast/index.mjs +106 -0
  201. package/dist/esm/Toast/index.mjs.map +1 -0
  202. package/dist/esm/Toast/toast.module.css.mjs +5 -0
  203. package/dist/esm/Toast/toast.module.css.mjs.map +1 -0
  204. package/dist/esm/Tooltip/index.mjs +98 -0
  205. package/dist/esm/Tooltip/index.mjs.map +1 -0
  206. package/dist/esm/Tooltip/tooltip.module.css.mjs +5 -0
  207. package/dist/esm/Tooltip/tooltip.module.css.mjs.map +1 -0
  208. package/dist/esm/hooks/useControllableState.mjs +22 -0
  209. package/dist/esm/hooks/useControllableState.mjs.map +1 -0
  210. package/dist/esm/hooks/useDismiss.mjs +42 -0
  211. package/dist/esm/hooks/useDismiss.mjs.map +1 -0
  212. package/dist/esm/hooks/useFloatingPosition.mjs +66 -0
  213. package/dist/esm/hooks/useFloatingPosition.mjs.map +1 -0
  214. package/dist/esm/index.mjs +26 -0
  215. package/dist/esm/index.mjs.map +1 -0
  216. package/dist/esm/utils/clamp.mjs +7 -0
  217. package/dist/esm/utils/clamp.mjs.map +1 -0
  218. package/dist/esm/utils/mergeRefs.mjs +19 -0
  219. package/dist/esm/utils/mergeRefs.mjs.map +1 -0
  220. package/dist/esm/utils/slot.mjs +58 -0
  221. package/dist/esm/utils/slot.mjs.map +1 -0
  222. package/dist/index.d.ts +420 -22
  223. package/dist/styles.css +2 -1
  224. package/dist/styles.css.map +1 -1
  225. package/dist/types/src/Accordion/index.d.ts +29 -0
  226. package/dist/types/src/Accordion/index.d.ts.map +1 -0
  227. package/dist/types/src/Alert/index.d.ts +4 -2
  228. package/dist/types/src/Alert/index.d.ts.map +1 -0
  229. package/dist/types/src/Avatar/index.d.ts +14 -0
  230. package/dist/types/src/Avatar/index.d.ts.map +1 -0
  231. package/dist/types/src/Button/index.d.ts +8 -6
  232. package/dist/types/src/Button/index.d.ts.map +1 -0
  233. package/dist/types/src/Card/index.d.ts +25 -0
  234. package/dist/types/src/Card/index.d.ts.map +1 -0
  235. package/dist/types/src/Checkbox/index.d.ts +3 -1
  236. package/dist/types/src/Checkbox/index.d.ts.map +1 -0
  237. package/dist/types/src/Chip/index.d.ts +9 -5
  238. package/dist/types/src/Chip/index.d.ts.map +1 -0
  239. package/dist/types/src/Dialog/index.d.ts +59 -0
  240. package/dist/types/src/Dialog/index.d.ts.map +1 -0
  241. package/dist/types/src/DropdownMenu/index.d.ts +41 -0
  242. package/dist/types/src/DropdownMenu/index.d.ts.map +1 -0
  243. package/dist/types/src/Field/index.d.ts +23 -0
  244. package/dist/types/src/Field/index.d.ts.map +1 -0
  245. package/dist/types/src/Icons/index.d.ts +31 -0
  246. package/dist/types/src/Icons/index.d.ts.map +1 -0
  247. package/dist/types/src/Popover/index.d.ts +33 -0
  248. package/dist/types/src/Popover/index.d.ts.map +1 -0
  249. package/dist/types/src/Progress/index.d.ts +17 -0
  250. package/dist/types/src/Progress/index.d.ts.map +1 -0
  251. package/dist/types/src/RadioGroup/index.d.ts +29 -0
  252. package/dist/types/src/RadioGroup/index.d.ts.map +1 -0
  253. package/dist/types/src/Select/index.d.ts +16 -0
  254. package/dist/types/src/Select/index.d.ts.map +1 -0
  255. package/dist/types/src/Skeleton/index.d.ts +4 -2
  256. package/dist/types/src/Skeleton/index.d.ts.map +1 -0
  257. package/dist/types/src/Spinner/index.d.ts +12 -0
  258. package/dist/types/src/Spinner/index.d.ts.map +1 -0
  259. package/dist/types/src/Switch/index.d.ts +3 -1
  260. package/dist/types/src/Switch/index.d.ts.map +1 -0
  261. package/dist/types/src/Tabs/index.d.ts +29 -0
  262. package/dist/types/src/Tabs/index.d.ts.map +1 -0
  263. package/dist/types/src/TextInput/index.d.ts +3 -1
  264. package/dist/types/src/TextInput/index.d.ts.map +1 -0
  265. package/dist/types/src/Textarea/index.d.ts +15 -0
  266. package/dist/types/src/Textarea/index.d.ts.map +1 -0
  267. package/dist/types/src/ThemeProvider/index.d.ts +4 -2
  268. package/dist/types/src/ThemeProvider/index.d.ts.map +1 -0
  269. package/dist/types/src/Toast/index.d.ts +31 -0
  270. package/dist/types/src/Toast/index.d.ts.map +1 -0
  271. package/dist/types/src/Tooltip/index.d.ts +19 -0
  272. package/dist/types/src/Tooltip/index.d.ts.map +1 -0
  273. package/dist/types/src/hooks/useControllableState.d.ts +6 -0
  274. package/dist/types/src/hooks/useControllableState.d.ts.map +1 -0
  275. package/dist/types/src/hooks/useDismiss.d.ts +18 -0
  276. package/dist/types/src/hooks/useDismiss.d.ts.map +1 -0
  277. package/dist/types/src/hooks/useFloatingPosition.d.ts +26 -0
  278. package/dist/types/src/hooks/useFloatingPosition.d.ts.map +1 -0
  279. package/dist/types/src/index.d.ts +33 -0
  280. package/dist/types/src/index.d.ts.map +1 -0
  281. package/dist/types/src/types/polymorphic.d.ts +6 -0
  282. package/dist/types/src/types/polymorphic.d.ts.map +1 -0
  283. package/dist/types/src/utils/clamp.d.ts +2 -0
  284. package/dist/types/src/utils/clamp.d.ts.map +1 -0
  285. package/dist/types/src/utils/mergeRefs.d.ts +3 -0
  286. package/dist/types/src/utils/mergeRefs.d.ts.map +1 -0
  287. package/dist/types/src/utils/slot.d.ts +12 -0
  288. package/dist/types/src/utils/slot.d.ts.map +1 -0
  289. package/package.json +133 -16
  290. package/dist/cjs/Alert/alert.module.css.js.map +0 -1
  291. package/dist/cjs/Alert/index.js +0 -33
  292. package/dist/cjs/Alert/index.js.map +0 -1
  293. package/dist/cjs/Button/button.module.css.js.map +0 -1
  294. package/dist/cjs/Button/index.js +0 -34
  295. package/dist/cjs/Button/index.js.map +0 -1
  296. package/dist/cjs/Checkbox/checkbox.module.css.js.map +0 -1
  297. package/dist/cjs/Checkbox/index.js +0 -48
  298. package/dist/cjs/Checkbox/index.js.map +0 -1
  299. package/dist/cjs/Chip/chip.module.css.js.map +0 -1
  300. package/dist/cjs/Chip/index.js.map +0 -1
  301. package/dist/cjs/Skeleton/index.js +0 -21
  302. package/dist/cjs/Skeleton/index.js.map +0 -1
  303. package/dist/cjs/Skeleton/skeleton.module.css.js.map +0 -1
  304. package/dist/cjs/Switch/index.js.map +0 -1
  305. package/dist/cjs/Switch/switch.module.css.js.map +0 -1
  306. package/dist/cjs/TextInput/index.js.map +0 -1
  307. package/dist/cjs/TextInput/textinput.module.css.js.map +0 -1
  308. package/dist/cjs/ThemeProvider/index.js +0 -15
  309. package/dist/cjs/ThemeProvider/index.js.map +0 -1
  310. package/dist/cjs/ThemeProvider/themeprovider.module.css.js.map +0 -1
  311. package/dist/cjs/index.js +0 -23
  312. package/dist/cjs/index.js.map +0 -1
  313. package/dist/esm/Alert/alert.module.css.js.map +0 -1
  314. package/dist/esm/Alert/index.js +0 -29
  315. package/dist/esm/Alert/index.js.map +0 -1
  316. package/dist/esm/Button/button.module.css.js.map +0 -1
  317. package/dist/esm/Button/index.js +0 -30
  318. package/dist/esm/Button/index.js.map +0 -1
  319. package/dist/esm/Checkbox/checkbox.module.css.js.map +0 -1
  320. package/dist/esm/Checkbox/index.js +0 -44
  321. package/dist/esm/Checkbox/index.js.map +0 -1
  322. package/dist/esm/Chip/chip.module.css.js.map +0 -1
  323. package/dist/esm/Chip/index.js.map +0 -1
  324. package/dist/esm/Skeleton/index.js +0 -17
  325. package/dist/esm/Skeleton/index.js.map +0 -1
  326. package/dist/esm/Skeleton/skeleton.module.css.js.map +0 -1
  327. package/dist/esm/Switch/index.js +0 -36
  328. package/dist/esm/Switch/index.js.map +0 -1
  329. package/dist/esm/Switch/switch.module.css.js.map +0 -1
  330. package/dist/esm/TextInput/index.js +0 -29
  331. package/dist/esm/TextInput/index.js.map +0 -1
  332. package/dist/esm/TextInput/textinput.module.css.js.map +0 -1
  333. package/dist/esm/ThemeProvider/index.js +0 -11
  334. package/dist/esm/ThemeProvider/index.js.map +0 -1
  335. package/dist/esm/ThemeProvider/themeprovider.module.css.js.map +0 -1
  336. package/dist/esm/index.js +0 -10
  337. package/dist/esm/index.js.map +0 -1
  338. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import clsx from 'clsx';
4
+ import React, { useId } from 'react';
5
+ import styles from './textinput.module.css.mjs';
6
+
7
+ const TextInput = React.forwardRef(function TextInput({ label, hideLabel = false, error, helperText, type = 'text', className, style, id, disabled = false, ...inputProps }, ref) {
8
+ const generatedId = useId();
9
+ const inputId = id ?? generatedId;
10
+ const errorId = `${inputId}-error`;
11
+ const helperId = `${inputId}-helper`;
12
+ const hasError = typeof error === 'string' && error.length > 0;
13
+ const hasHelper = typeof helperText === 'string' && helperText.length > 0;
14
+ const describedBy = [hasError ? errorId : undefined, hasHelper ? helperId : undefined]
15
+ .filter(Boolean)
16
+ .join(' ') || undefined;
17
+ return (jsxs("div", { className: clsx(styles['text-input-container'], className), style: style, children: [jsx("label", { htmlFor: inputId, className: clsx(styles.label, {
18
+ [styles['label-disabled']]: disabled,
19
+ [styles['visually-hidden']]: hideLabel
20
+ }), children: label }), jsx("input", { ref: ref, id: inputId, type: type, disabled: disabled, "aria-invalid": hasError || undefined, "aria-describedby": describedBy, className: clsx(styles.input, {
21
+ [styles['input-error']]: hasError
22
+ }), ...inputProps }), hasError && (jsx("p", { id: errorId, className: styles['error-text'], role: 'alert', children: error })), hasHelper && (jsx("p", { id: helperId, className: styles['helper-text'], children: helperText }))] }));
23
+ });
24
+ TextInput.displayName = 'TextInput';
25
+
26
+ export { TextInput as default };
27
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/TextInput/index.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAqBA,MAAM,SAAS,GAAuB,KAAK,CAAC,UAAU,CAGpD,SAAS,SAAS,CAClB,EACE,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,UAAU,EACV,IAAI,GAAG,MAAM,EACb,SAAS,EACT,KAAK,EACL,EAAE,EACF,QAAQ,GAAG,KAAK,EAChB,GAAG,UAAU,EACd,EACD,GAAG,EAAA;AAEH,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,OAAO,QAAQ;AAClC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,SAAS;AAEpC,IAAA,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC9D,IAAA,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;IAEzE,MAAM,WAAW,GACf,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;SAC9D,MAAM,CAAC,OAAO;AACd,SAAA,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;AAE3B,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC,EAC1D,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CAEZC,GAAA,CAAA,OAAA,EAAA,EACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC5B,oBAAA,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ;AACpC,oBAAA,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG;AAC9B,iBAAA,CAAC,EAAA,QAAA,EAED,KAAK,EAAA,CACA,EACRA,eACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,QAAQ,IAAI,SAAS,EAAA,kBAAA,EACjB,WAAW,EAC7B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC5B,oBAAA,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG;iBAC1B,CAAC,EAAA,GACE,UAAU,EAAA,CACd,EACD,QAAQ,KACPA,WAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAC,OAAO,EAAA,QAAA,EAC1D,KAAK,EAAA,CACJ,CACL,EACA,SAAS,KACRA,GAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,EAAA,QAAA,EAC9C,UAAU,EAAA,CACT,CACL,CAAA,EAAA,CACG;AAEV,CAAC;AAED,SAAS,CAAC,WAAW,GAAG,WAAW;;;;"}
@@ -2,4 +2,4 @@
2
2
  var styles = {"text-input-container":"textinput-module_text-input-container__LaD6P","label":"textinput-module_label__2iW7l","label-disabled":"textinput-module_label-disabled__Aqrto","input":"textinput-module_input__SmSfZ","input-error":"textinput-module_input-error__8RSkp","helper-text":"textinput-module_helper-text__nygYX","error-text":"textinput-module_error-text__DFYQv","visually-hidden":"textinput-module_visually-hidden__w42hp"};
3
3
 
4
4
  export { styles as default };
5
- //# sourceMappingURL=textinput.module.css.js.map
5
+ //# sourceMappingURL=textinput.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textinput.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import clsx from 'clsx';
4
+ import React from 'react';
5
+ import Field from '../Field/index.mjs';
6
+ import styles from './textarea.module.css.mjs';
7
+
8
+ const ResizeClassMap = {
9
+ none: styles.resize_none,
10
+ vertical: styles.resize_vertical,
11
+ horizontal: styles.resize_horizontal,
12
+ both: styles.resize_both
13
+ };
14
+ const Textarea = React.forwardRef(function Textarea({ label, hideLabel = false, error, helperText, resize = 'vertical', className, style, id, disabled = false, required = false, 'aria-describedby': ariaDescribedBy, 'aria-invalid': ariaInvalid, ...textareaProps }, ref) {
15
+ return (jsx(Field, { label: label, hideLabel: hideLabel, error: error, helperText: helperText, disabled: disabled, required: required, id: id, className: className, style: style, children: ({ inputId, describedBy, hasError }) => {
16
+ const mergedDescribedBy = [describedBy, ariaDescribedBy].filter(Boolean).join(' ') || undefined;
17
+ const isInvalid = hasError || ariaInvalid === true || ariaInvalid === 'true';
18
+ return (jsx("textarea", { id: inputId, ref: ref, disabled: disabled, required: required, "aria-invalid": isInvalid || undefined, "aria-describedby": mergedDescribedBy, className: clsx(styles.textarea, ResizeClassMap[resize], hasError && styles.textarea_error), ...textareaProps }));
19
+ } }));
20
+ });
21
+ Textarea.displayName = 'Textarea';
22
+
23
+ export { Textarea as default };
24
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/Textarea/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;;;AAwBA,MAAM,cAAc,GAAmC;IACrD,IAAI,EAAE,MAAM,CAAC,WAAW;IACxB,QAAQ,EAAE,MAAM,CAAC,eAAe;IAChC,UAAU,EAAE,MAAM,CAAC,iBAAiB;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,QAAQ,GAAsB,KAAK,CAAC,UAAU,CAGlD,SAAS,QAAQ,CACjB,EACE,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,UAAU,EACV,MAAM,GAAG,UAAU,EACnB,SAAS,EACT,KAAK,EACL,EAAE,EACF,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,kBAAkB,EAAE,eAAe,EACnC,cAAc,EAAE,WAAW,EAC3B,GAAG,aAAa,EACjB,EACD,GAAG,EAAA;IAEH,QACEA,IAAC,KAAK,EAAA,EACJ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EAAA,QAAA,EAEX,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAI;AACtC,YAAA,MAAM,iBAAiB,GACrB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;YACvE,MAAM,SAAS,GACb,QAAQ,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM;YAE5D,QACEA,kBACE,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,SAAS,IAAI,SAAS,EAAA,kBAAA,EAClB,iBAAiB,EACnC,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,QAAQ,EACf,cAAc,CAAC,MAAM,CAAC,EACtB,QAAQ,IAAI,MAAM,CAAC,cAAc,CAClC,EAAA,GACG,aAAa,EAAA,CACjB;QAEN,CAAC,EAAA,CACK;AAEZ,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ var styles = {"textarea":"textarea-module_textarea__2ZcDH","textarea_error":"textarea-module_textarea_error__g--Z6","resize_none":"textarea-module_resize_none__91Cdb","resize_vertical":"textarea-module_resize_vertical__kA0Sk","resize_horizontal":"textarea-module_resize_horizontal__YDww4","resize_both":"textarea-module_resize_both__mzsFr"};
3
+
4
+ export { styles as default };
5
+ //# sourceMappingURL=textarea.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import clsx from 'clsx';
4
+ import { useState, useEffect } from 'react';
5
+ import styles from './themeprovider.module.css.mjs';
6
+
7
+ function ThemeProvider({ children, theme = 'light', highContrast = false, id, className, style }) {
8
+ const [systemTheme, setSystemTheme] = useState('light');
9
+ useEffect(() => {
10
+ if (theme !== 'system')
11
+ return;
12
+ const mediaQuery = globalThis.matchMedia('(prefers-color-scheme: dark)');
13
+ setSystemTheme(mediaQuery.matches ? 'dark' : 'light');
14
+ const handleChange = (e) => {
15
+ setSystemTheme(e.matches ? 'dark' : 'light');
16
+ };
17
+ mediaQuery.addEventListener('change', handleChange);
18
+ return () => mediaQuery.removeEventListener('change', handleChange);
19
+ }, [theme]);
20
+ const resolvedTheme = theme === 'system' ? systemTheme : theme;
21
+ return (jsx("div", { id: id, className: clsx(styles['frey-theme-provider'], className), style: style, "data-frey-theme": resolvedTheme, "data-frey-high-contrast": highContrast, children: children }));
22
+ }
23
+
24
+ export { ThemeProvider as default };
25
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/ThemeProvider/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;;AAgBA,SAAS,aAAa,CAAC,EACrB,QAAQ,EACR,KAAK,GAAG,OAAO,EACf,YAAY,GAAG,KAAK,EACpB,EAAE,EACF,SAAS,EACT,KAAK,EACwB,EAAA;IAC7B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAmB,OAAO,CAAC;IAEzE,SAAS,CAAC,MAAK;QACb,IAAI,KAAK,KAAK,QAAQ;YAAE;QAExB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC;AACxE,QAAA,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,QAAA,MAAM,YAAY,GAAG,CAAC,CAAsB,KAAI;AAC9C,YAAA,cAAc,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,QAAA,CAAC;AAED,QAAA,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;QACnD,OAAO,MAAM,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACrE,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,aAAa,GAAG,KAAK,KAAK,QAAQ,GAAG,WAAW,GAAG,KAAK;AAE9D,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,SAAS,CAAC,EACzD,KAAK,EAAE,KAAK,EAAA,iBAAA,EACK,aAAa,EAAA,yBAAA,EACL,YAAY,EAAA,QAAA,EAEpC,QAAQ,EAAA,CACL;AAEV;;;;"}
@@ -2,4 +2,4 @@
2
2
  var styles = {"frey-theme-provider":"themeprovider-module_frey-theme-provider__HZeKb"};
3
3
 
4
4
  export { styles as default };
5
- //# sourceMappingURL=themeprovider.module.css.js.map
5
+ //# sourceMappingURL=themeprovider.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeprovider.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,106 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import clsx from 'clsx';
4
+ import React from 'react';
5
+ import { createPortal } from 'react-dom';
6
+ import { CircleXIcon, TriangleAlertIcon, CircleCheckIcon, CircleInfoIcon, CloseIcon } from '../Icons/index.mjs';
7
+ import styles from './toast.module.css.mjs';
8
+
9
+ const ToastContext = React.createContext(null);
10
+ const VariantIconMap = {
11
+ info: jsx(CircleInfoIcon, { size: 'lg', className: styles.toast_icon_svg }),
12
+ success: jsx(CircleCheckIcon, { size: 'lg', className: styles.toast_icon_svg }),
13
+ warning: jsx(TriangleAlertIcon, { size: 'lg', className: styles.toast_icon_svg }),
14
+ error: jsx(CircleXIcon, { size: 'lg', className: styles.toast_icon_svg })
15
+ };
16
+ const PlacementClassMap = {
17
+ 'top-right': styles.toast_viewport_top_right,
18
+ 'top-left': styles.toast_viewport_top_left,
19
+ 'bottom-right': styles.toast_viewport_bottom_right,
20
+ 'bottom-left': styles.toast_viewport_bottom_left
21
+ };
22
+ function generateToastId() {
23
+ if (typeof crypto !== 'undefined' &&
24
+ typeof crypto.randomUUID === 'function') {
25
+ return crypto.randomUUID();
26
+ }
27
+ return `toast-${Math.random().toString(36).slice(2, 11)}`;
28
+ }
29
+ function ToastProvider({ children, placement = 'top-right', limit = 4, className, style }) {
30
+ const [toasts, setToasts] = React.useState([]);
31
+ const timersRef = React.useRef({});
32
+ const clearTimer = React.useCallback((id) => {
33
+ const timer = timersRef.current[id];
34
+ if (!timer) {
35
+ return;
36
+ }
37
+ clearTimeout(timer);
38
+ delete timersRef.current[id];
39
+ }, []);
40
+ const dismiss = React.useCallback((id) => {
41
+ clearTimer(id);
42
+ setToasts((currentToasts) => currentToasts.filter((toast) => toast.id !== id));
43
+ }, [clearTimer]);
44
+ const dismissAll = React.useCallback(() => {
45
+ Object.keys(timersRef.current).forEach((id) => {
46
+ clearTimer(id);
47
+ });
48
+ setToasts([]);
49
+ }, [clearTimer]);
50
+ const toast = React.useCallback((options) => {
51
+ const id = options.id ?? generateToastId();
52
+ const duration = typeof options.duration === 'number' ? options.duration : 4000;
53
+ const nextToast = {
54
+ id,
55
+ title: options.title,
56
+ description: options.description,
57
+ variant: options.variant ?? 'info',
58
+ duration,
59
+ action: options.action
60
+ };
61
+ setToasts((currentToasts) => {
62
+ const safeLimit = Math.max(limit, 1);
63
+ const nextToasts = [nextToast, ...currentToasts];
64
+ if (nextToasts.length <= safeLimit) {
65
+ return nextToasts;
66
+ }
67
+ const removed = nextToasts.slice(safeLimit);
68
+ for (const removedToast of removed) {
69
+ clearTimer(removedToast.id);
70
+ }
71
+ return nextToasts.slice(0, safeLimit);
72
+ });
73
+ if (duration > 0) {
74
+ clearTimer(id);
75
+ timersRef.current[id] = setTimeout(() => {
76
+ dismiss(id);
77
+ }, duration);
78
+ }
79
+ return id;
80
+ }, [clearTimer, dismiss, limit]);
81
+ React.useEffect(() => {
82
+ return () => {
83
+ Object.keys(timersRef.current).forEach((id) => {
84
+ clearTimer(id);
85
+ });
86
+ };
87
+ }, [clearTimer]);
88
+ const contextValue = React.useMemo(() => ({ toast, dismiss, dismissAll }), [dismiss, dismissAll, toast]);
89
+ const viewport = (jsx("section", { className: clsx(styles.toast_viewport, PlacementClassMap[placement], className), style: style, "aria-label": 'Notifications', children: jsx("ol", { className: styles.toast_list, children: toasts.map((toastItem) => (jsx("li", { className: styles.toast_list_item, children: jsxs("output", { className: clsx(styles.toast, styles[`toast_${toastItem.variant}`]), "aria-live": toastItem.variant === 'error' ? 'assertive' : 'polite', "aria-atomic": 'true', children: [jsx("span", { className: styles.toast_icon, children: VariantIconMap[toastItem.variant] }), jsxs("div", { className: styles.toast_body, children: [toastItem.title && (jsx("strong", { className: styles.toast_title, children: toastItem.title })), jsx("p", { className: styles.toast_description, children: toastItem.description })] }), toastItem.action && (jsx("button", { type: 'button', className: styles.toast_action, onClick: () => {
90
+ toastItem.action?.onClick();
91
+ dismiss(toastItem.id);
92
+ }, children: toastItem.action.label })), jsx("button", { type: 'button', className: styles.toast_close, onClick: () => dismiss(toastItem.id), "aria-label": 'Dismiss notification', children: jsx(CloseIcon, { size: 'sm' }) })] }) }, toastItem.id))) }) }));
93
+ return (jsxs(ToastContext.Provider, { value: contextValue, children: [children, typeof document === 'undefined'
94
+ ? viewport
95
+ : createPortal(viewport, document.body)] }));
96
+ }
97
+ function useToast() {
98
+ const contextValue = React.useContext(ToastContext);
99
+ if (!contextValue) {
100
+ throw new Error('useToast must be used within a ToastProvider.');
101
+ }
102
+ return contextValue;
103
+ }
104
+
105
+ export { ToastProvider, useToast };
106
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/Toast/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ var styles = {"toast_viewport":"toast-module_toast_viewport__vS0tW","toast_list":"toast-module_toast_list__r-4p-","toast_viewport_top_right":"toast-module_toast_viewport_top_right__g8262","toast_viewport_top_left":"toast-module_toast_viewport_top_left__-aF0V","toast_viewport_bottom_right":"toast-module_toast_viewport_bottom_right__haSk0","toast_viewport_bottom_left":"toast-module_toast_viewport_bottom_left__cqfBb","toast_list_item":"toast-module_toast_list_item__K2K8r","toast":"toast-module_toast__VCp84","toast_in":"toast-module_toast_in__W0uZk","toast_info":"toast-module_toast_info__OpgDK","toast_success":"toast-module_toast_success__SS2fN","toast_warning":"toast-module_toast_warning__2boQF","toast_error":"toast-module_toast_error__2d2qC","toast_icon":"toast-module_toast_icon__jYhv5","toast_icon_svg":"toast-module_toast_icon_svg__4oFvo","toast_body":"toast-module_toast_body__tc8Kq","toast_title":"toast-module_toast_title__a5kQQ","toast_description":"toast-module_toast_description__lQu6I","toast_action":"toast-module_toast_action__BLzqc","toast_close":"toast-module_toast_close__lipKl"};
3
+
4
+ export { styles as default };
5
+ //# sourceMappingURL=toast.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,98 @@
1
+ 'use client';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import clsx from 'clsx';
4
+ import React from 'react';
5
+ import { createPortal } from 'react-dom';
6
+ import { useControllableState } from '../hooks/useControllableState.mjs';
7
+ import { useFloatingPosition } from '../hooks/useFloatingPosition.mjs';
8
+ import { Slot } from '../utils/slot.mjs';
9
+ import styles from './tooltip.module.css.mjs';
10
+
11
+ function Tooltip({ children, asChild = false, content, open, defaultOpen = false, onOpenChange, placement = 'top', offset = 8, delay = 120, id, className, style }) {
12
+ const generatedId = React.useId();
13
+ const tooltipId = id ?? `${generatedId}-tooltip`;
14
+ const triggerRef = React.useRef(null);
15
+ const tooltipRef = React.useRef(null);
16
+ const delayTimerRef = React.useRef(null);
17
+ const [isOpen, setOpen] = useControllableState(open, defaultOpen, onOpenChange);
18
+ const position = useFloatingPosition(triggerRef, tooltipRef, {
19
+ open: isOpen,
20
+ placement,
21
+ offset,
22
+ align: 'center'
23
+ });
24
+ const hideImmediately = React.useCallback(() => {
25
+ if (delayTimerRef.current) {
26
+ clearTimeout(delayTimerRef.current);
27
+ }
28
+ setOpen(false);
29
+ }, [setOpen]);
30
+ const showWithDelay = React.useCallback(() => {
31
+ if (delayTimerRef.current) {
32
+ clearTimeout(delayTimerRef.current);
33
+ }
34
+ delayTimerRef.current = setTimeout(() => {
35
+ setOpen(true);
36
+ }, delay);
37
+ }, [delay, setOpen]);
38
+ React.useEffect(() => {
39
+ return () => {
40
+ if (delayTimerRef.current) {
41
+ clearTimeout(delayTimerRef.current);
42
+ }
43
+ };
44
+ }, []);
45
+ React.useEffect(() => {
46
+ if (!isOpen) {
47
+ return;
48
+ }
49
+ const handleEscape = (event) => {
50
+ if (event.key === 'Escape') {
51
+ event.preventDefault();
52
+ hideImmediately();
53
+ }
54
+ };
55
+ document.addEventListener('keydown', handleEscape);
56
+ return () => {
57
+ document.removeEventListener('keydown', handleEscape);
58
+ };
59
+ }, [hideImmediately, isOpen]);
60
+ const triggerProps = {
61
+ onMouseEnter: () => {
62
+ showWithDelay();
63
+ },
64
+ onMouseLeave: () => {
65
+ hideImmediately();
66
+ },
67
+ onFocus: () => {
68
+ showWithDelay();
69
+ },
70
+ onBlur: () => {
71
+ hideImmediately();
72
+ },
73
+ onKeyDown: (event) => {
74
+ if (!event.defaultPrevented && event.key === 'Escape') {
75
+ hideImmediately();
76
+ }
77
+ },
78
+ 'aria-describedby': isOpen ? tooltipId : undefined
79
+ };
80
+ let triggerElement;
81
+ if (asChild) {
82
+ if (!React.isValidElement(children)) {
83
+ throw new Error('Tooltip with asChild expects a single valid React element child.');
84
+ }
85
+ triggerElement = (jsx(Slot, { ref: triggerRef, ...triggerProps, children: children }));
86
+ }
87
+ else {
88
+ triggerElement = (jsx("button", { ref: triggerRef, type: 'button', onMouseEnter: triggerProps.onMouseEnter, onMouseLeave: triggerProps.onMouseLeave, onFocus: triggerProps.onFocus, onBlur: triggerProps.onBlur, onKeyDown: triggerProps.onKeyDown, "aria-describedby": triggerProps['aria-describedby'], children: children }));
89
+ }
90
+ if (typeof document === 'undefined') {
91
+ return triggerElement;
92
+ }
93
+ return (jsxs(Fragment, { children: [triggerElement, isOpen &&
94
+ createPortal(jsx("div", { id: tooltipId, ref: tooltipRef, role: 'tooltip', className: clsx(styles.tooltip, className), style: { top: position.top, left: position.left, ...style }, children: content }), document.body)] }));
95
+ }
96
+
97
+ export { Tooltip as default };
98
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/Tooltip/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ var styles = {"tooltip":"tooltip-module_tooltip__UR2ot"};
3
+
4
+ export { styles as default };
5
+ //# sourceMappingURL=tooltip.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ import { useState, useCallback } from 'react';
3
+
4
+ /**
5
+ * Manages a boolean value that can be either controlled (value supplied by parent)
6
+ * or uncontrolled (managed internally with an optional callback).
7
+ */
8
+ function useControllableState(controlled, defaultValue, onChange) {
9
+ const isControlled = controlled !== undefined;
10
+ const [uncontrolled, setUncontrolled] = useState(defaultValue);
11
+ const value = isControlled ? controlled : uncontrolled;
12
+ const setValue = useCallback((next) => {
13
+ if (!isControlled) {
14
+ setUncontrolled(next);
15
+ }
16
+ onChange?.(next);
17
+ }, [isControlled, onChange]);
18
+ return [value, setValue];
19
+ }
20
+
21
+ export { useControllableState };
22
+ //# sourceMappingURL=useControllableState.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControllableState.mjs","sources":["../../../src/hooks/useControllableState.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAEA;;;AAGG;SACa,oBAAoB,CAClC,UAA+B,EAC/B,YAAqB,EACrB,QAAmC,EAAA;AAEnC,IAAA,MAAM,YAAY,GAAG,UAAU,KAAK,SAAS;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;IAE9D,MAAM,KAAK,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY;AAEtD,IAAA,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,IAAa,KAAI;QAChB,IAAI,CAAC,YAAY,EAAE;YACjB,eAAe,CAAC,IAAI,CAAC;QACvB;AACA,QAAA,QAAQ,GAAG,IAAI,CAAC;AAClB,IAAA,CAAC,EACD,CAAC,YAAY,EAAE,QAAQ,CAAC,CACzB;AAED,IAAA,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC1B;;;;"}
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { useEffect } from 'react';
3
+
4
+ /**
5
+ * Attaches Escape-key and outside-click listeners that call `onClose`
6
+ * when the floating element should be dismissed.
7
+ */
8
+ function useDismiss(options) {
9
+ const { open, onClose, triggerRef, contentRef, closeOnEscape = true, closeOnOutsideClick = true, returnFocusOnClose = false } = options;
10
+ useEffect(() => {
11
+ if (!open || !closeOnOutsideClick)
12
+ return;
13
+ const handlePointerDown = (event) => {
14
+ const targetNode = event.target;
15
+ if (triggerRef.current?.contains(targetNode))
16
+ return;
17
+ if (contentRef.current?.contains(targetNode))
18
+ return;
19
+ onClose();
20
+ };
21
+ document.addEventListener('mousedown', handlePointerDown);
22
+ return () => document.removeEventListener('mousedown', handlePointerDown);
23
+ }, [closeOnOutsideClick, open, onClose, triggerRef, contentRef]);
24
+ useEffect(() => {
25
+ if (!open || !closeOnEscape)
26
+ return;
27
+ const handleEscape = (event) => {
28
+ if (event.key === 'Escape') {
29
+ event.preventDefault();
30
+ onClose();
31
+ if (returnFocusOnClose) {
32
+ triggerRef.current?.focus();
33
+ }
34
+ }
35
+ };
36
+ document.addEventListener('keydown', handleEscape);
37
+ return () => document.removeEventListener('keydown', handleEscape);
38
+ }, [closeOnEscape, open, onClose, triggerRef, returnFocusOnClose]);
39
+ }
40
+
41
+ export { useDismiss };
42
+ //# sourceMappingURL=useDismiss.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDismiss.mjs","sources":["../../../src/hooks/useDismiss.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAcA;;;AAGG;AACG,SAAU,UAAU,CAAC,OAA0B,EAAA;IACnD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,UAAU,EACV,aAAa,GAAG,IAAI,EACpB,mBAAmB,GAAG,IAAI,EAC1B,kBAAkB,GAAG,KAAK,EAC3B,GAAG,OAAO;IAEX,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB;YAAE;AAEnC,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAiB,KAAI;AAC9C,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAc;AACvC,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE;AAC9C,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE;AAE9C,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC;QACzD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC;AAC3E,IAAA,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEhE,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa;YAAE;AAE7B,QAAA,MAAM,YAAY,GAAG,CAAC,KAAoB,KAAI;AAC5C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,OAAO,EAAE;gBAET,IAAI,kBAAkB,EAAE;AACtB,oBAAA,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;gBAC7B;YACF;AACF,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;QAClD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;AACpE,IAAA,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AACpE;;;;"}
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+ import { useState, useCallback, useLayoutEffect, useEffect } from 'react';
3
+ import { clamp } from '../utils/clamp.mjs';
4
+
5
+ /**
6
+ * Computes viewport-clamped `{ top, left }` for a floating element
7
+ * anchored to a trigger, and keeps it updated on scroll / resize.
8
+ */
9
+ function useFloatingPosition(triggerRef, floatingRef, options) {
10
+ const { open, placement, offset, align = 'center' } = options;
11
+ const [position, setPosition] = useState({ top: 0, left: 0 });
12
+ const updatePosition = useCallback(() => {
13
+ if (!open || !triggerRef.current || !floatingRef.current)
14
+ return;
15
+ const triggerRect = triggerRef.current.getBoundingClientRect();
16
+ const floatingRect = floatingRef.current.getBoundingClientRect();
17
+ const viewportPadding = 8;
18
+ const viewportWidth = window.innerWidth;
19
+ const viewportHeight = window.innerHeight;
20
+ let top;
21
+ let left;
22
+ top = triggerRect.bottom + offset;
23
+ left =
24
+ align === 'center'
25
+ ? triggerRect.left + (triggerRect.width - floatingRect.width) / 2
26
+ : triggerRect.left;
27
+ if (placement === 'top') {
28
+ top = triggerRect.top - floatingRect.height - offset;
29
+ }
30
+ else if (placement === 'left') {
31
+ top =
32
+ align === 'center'
33
+ ? triggerRect.top + (triggerRect.height - floatingRect.height) / 2
34
+ : triggerRect.top;
35
+ left = triggerRect.left - floatingRect.width - offset;
36
+ }
37
+ else if (placement === 'right') {
38
+ top =
39
+ align === 'center'
40
+ ? triggerRect.top + (triggerRect.height - floatingRect.height) / 2
41
+ : triggerRect.top;
42
+ left = triggerRect.right + offset;
43
+ }
44
+ top = clamp(top, viewportPadding, Math.max(viewportPadding, viewportHeight - floatingRect.height - viewportPadding));
45
+ left = clamp(left, viewportPadding, Math.max(viewportPadding, viewportWidth - floatingRect.width - viewportPadding));
46
+ setPosition({ top, left });
47
+ }, [open, offset, placement, align, triggerRef, floatingRef]);
48
+ useLayoutEffect(() => {
49
+ updatePosition();
50
+ }, [updatePosition]);
51
+ useEffect(() => {
52
+ if (!open)
53
+ return;
54
+ const handleReposition = () => updatePosition();
55
+ window.addEventListener('resize', handleReposition);
56
+ window.addEventListener('scroll', handleReposition, true);
57
+ return () => {
58
+ window.removeEventListener('resize', handleReposition);
59
+ window.removeEventListener('scroll', handleReposition, true);
60
+ };
61
+ }, [open, updatePosition]);
62
+ return position;
63
+ }
64
+
65
+ export { useFloatingPosition };
66
+ //# sourceMappingURL=useFloatingPosition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFloatingPosition.mjs","sources":["../../../src/hooks/useFloatingPosition.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ export { Accordion } from './Accordion/index.mjs';
3
+ export { default as Alert } from './Alert/index.mjs';
4
+ export { default as Avatar } from './Avatar/index.mjs';
5
+ export { default as Button } from './Button/index.mjs';
6
+ export { Card } from './Card/index.mjs';
7
+ export { default as Checkbox } from './Checkbox/index.mjs';
8
+ export { default as Chip } from './Chip/index.mjs';
9
+ export { Dialog } from './Dialog/index.mjs';
10
+ export { DropdownMenu } from './DropdownMenu/index.mjs';
11
+ export { default as Field } from './Field/index.mjs';
12
+ export { CheckIcon, ChevronDownIcon, CircleCheckIcon, CircleInfoIcon, CircleXIcon, CloseIcon, default as Icons, MinusIcon, TriangleAlertIcon } from './Icons/index.mjs';
13
+ export { Popover } from './Popover/index.mjs';
14
+ export { default as Progress } from './Progress/index.mjs';
15
+ export { default as RadioGroup } from './RadioGroup/index.mjs';
16
+ export { default as Select } from './Select/index.mjs';
17
+ export { default as Skeleton } from './Skeleton/index.mjs';
18
+ export { default as Spinner } from './Spinner/index.mjs';
19
+ export { default as Switch } from './Switch/index.mjs';
20
+ export { Tabs } from './Tabs/index.mjs';
21
+ export { default as Textarea } from './Textarea/index.mjs';
22
+ export { default as TextInput } from './TextInput/index.mjs';
23
+ export { default as ThemeProvider } from './ThemeProvider/index.mjs';
24
+ export { ToastProvider, useToast } from './Toast/index.mjs';
25
+ export { default as Tooltip } from './Tooltip/index.mjs';
26
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ function clamp(value, min, max) {
3
+ return Math.min(Math.max(value, min), max);
4
+ }
5
+
6
+ export { clamp };
7
+ //# sourceMappingURL=clamp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clamp.mjs","sources":["../../../src/utils/clamp.ts"],"sourcesContent":[null],"names":[],"mappings":";SAAgB,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AAC3D,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;AAC5C;;;;"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ function mergeRefs(...refs) {
3
+ return (node) => {
4
+ refs.forEach((ref) => {
5
+ if (!ref) {
6
+ return;
7
+ }
8
+ if (typeof ref === 'function') {
9
+ ref(node);
10
+ }
11
+ else {
12
+ ref.current = node;
13
+ }
14
+ });
15
+ };
16
+ }
17
+
18
+ export { mergeRefs };
19
+ //# sourceMappingURL=mergeRefs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeRefs.mjs","sources":["../../../src/utils/mergeRefs.ts"],"sourcesContent":[null],"names":[],"mappings":";AAEM,SAAU,SAAS,CACvB,GAAG,IAAqC,EAAA;IAExC,OAAO,CAAC,IAAI,KAAI;AACd,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACnB,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;AAEA,YAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,IAAI,CAAC;YACX;iBAAO;AACJ,gBAAA,GAA6B,CAAC,OAAO,GAAG,IAAI;YAC/C;AACF,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AACH;;;;"}