@nayhoo/ui 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/dist/{avatar.css-m44RZpGY.d.mts → avatar.css-YFj-sVm_.d.mts} +2 -2
  2. package/dist/{avatar.css-m44RZpGY.d.ts → avatar.css-YFj-sVm_.d.ts} +2 -2
  3. package/dist/{badge.css-BiiAU3Jo.d.mts → badge.css-qilqDGjW.d.mts} +1 -1
  4. package/dist/{badge.css-BiiAU3Jo.d.ts → badge.css-qilqDGjW.d.ts} +1 -1
  5. package/dist/{button.css-CBtNCrkL.d.mts → button.css-KMqdCdRL.d.mts} +2 -2
  6. package/dist/{button.css-CBtNCrkL.d.ts → button.css-KMqdCdRL.d.ts} +2 -2
  7. package/dist/{checkbox.css-CJD0qdcJ.d.mts → checkbox.css-CGzH7iFG.d.mts} +1 -1
  8. package/dist/{checkbox.css-CJD0qdcJ.d.ts → checkbox.css-CGzH7iFG.d.ts} +1 -1
  9. package/dist/{chunk-N535ABFC.mjs → chunk-4Q6FJKVL.mjs} +2 -2
  10. package/dist/{chunk-N535ABFC.mjs.map → chunk-4Q6FJKVL.mjs.map} +1 -1
  11. package/dist/{chunk-4JJB6DUF.mjs → chunk-65T2AXGV.mjs} +4 -4
  12. package/dist/chunk-65T2AXGV.mjs.map +1 -0
  13. package/dist/chunk-A5XHUJ2A.mjs +12 -0
  14. package/dist/chunk-A5XHUJ2A.mjs.map +1 -0
  15. package/dist/{chunk-5WJ4KGIE.mjs → chunk-BD5MZVXZ.mjs} +1 -1
  16. package/dist/{chunk-5WJ4KGIE.mjs.map → chunk-BD5MZVXZ.mjs.map} +1 -1
  17. package/dist/{chunk-OWCOYR6H.mjs → chunk-CQ3SNSPG.mjs} +8 -8
  18. package/dist/chunk-CQ3SNSPG.mjs.map +1 -0
  19. package/dist/{chunk-QSFZ2LOS.mjs → chunk-EFNLOCJE.mjs} +3 -3
  20. package/dist/chunk-EFNLOCJE.mjs.map +1 -0
  21. package/dist/{chunk-GWDU7T23.mjs → chunk-ENQ7ORHL.mjs} +1 -1
  22. package/dist/chunk-ENQ7ORHL.mjs.map +1 -0
  23. package/dist/chunk-GW7MIISK.mjs +40 -0
  24. package/dist/chunk-GW7MIISK.mjs.map +1 -0
  25. package/dist/{chunk-O62XWWJU.mjs → chunk-IVA2SE6G.mjs} +1 -1
  26. package/dist/chunk-IVA2SE6G.mjs.map +1 -0
  27. package/dist/chunk-KWTNICKO.mjs +12 -0
  28. package/dist/chunk-KWTNICKO.mjs.map +1 -0
  29. package/dist/{chunk-HNN7XTNY.mjs → chunk-VJMDG74N.mjs} +8 -9
  30. package/dist/chunk-VJMDG74N.mjs.map +1 -0
  31. package/dist/{chunk-VW4CTCZL.mjs → chunk-VZW5PY4D.mjs} +13 -7
  32. package/dist/chunk-VZW5PY4D.mjs.map +1 -0
  33. package/dist/chunk-WRIZ5KCE.mjs +12 -0
  34. package/dist/chunk-WRIZ5KCE.mjs.map +1 -0
  35. package/dist/chunk-YXNAFARR.mjs +43 -0
  36. package/dist/chunk-YXNAFARR.mjs.map +1 -0
  37. package/dist/components/aspect-ratio.d.mts +1 -1
  38. package/dist/components/aspect-ratio.d.ts +1 -1
  39. package/dist/components/aspect-ratio.js.map +1 -1
  40. package/dist/components/aspect-ratio.mjs.map +1 -1
  41. package/dist/components/avatar.d.mts +2 -2
  42. package/dist/components/avatar.d.ts +2 -2
  43. package/dist/components/avatar.js +1 -1
  44. package/dist/components/avatar.js.map +1 -1
  45. package/dist/components/avatar.mjs +1 -1
  46. package/dist/components/badge.d.mts +1 -1
  47. package/dist/components/badge.d.ts +1 -1
  48. package/dist/components/button.css +11 -150
  49. package/dist/components/button.css.map +1 -1
  50. package/dist/components/button.d.mts +2 -3
  51. package/dist/components/button.d.ts +2 -3
  52. package/dist/components/button.js +23 -17
  53. package/dist/components/button.js.map +1 -1
  54. package/dist/components/button.mjs +4 -4
  55. package/dist/components/checkbox.d.mts +1 -1
  56. package/dist/components/checkbox.d.ts +1 -1
  57. package/dist/components/container.d.mts +1 -1
  58. package/dist/components/container.d.ts +1 -1
  59. package/dist/components/dialog.css +249 -1723
  60. package/dist/components/dialog.css.map +1 -1
  61. package/dist/components/dialog.d.mts +2 -3
  62. package/dist/components/dialog.d.ts +2 -3
  63. package/dist/components/dialog.js +59 -237
  64. package/dist/components/dialog.js.map +1 -1
  65. package/dist/components/dialog.mjs +15 -17
  66. package/dist/components/dialog.mjs.map +1 -1
  67. package/dist/components/dropdown-menu.css +2 -2
  68. package/dist/components/dropdown-menu.css.map +1 -1
  69. package/dist/components/dropdown-menu.js +1 -1
  70. package/dist/components/dropdown-menu.js.map +1 -1
  71. package/dist/components/dropdown-menu.mjs +2 -2
  72. package/dist/components/form.d.mts +1 -1
  73. package/dist/components/form.d.ts +1 -1
  74. package/dist/components/heading.css +20 -29
  75. package/dist/components/heading.css.map +1 -1
  76. package/dist/components/heading.d.mts +3 -7
  77. package/dist/components/heading.d.ts +3 -7
  78. package/dist/components/heading.js +42 -23
  79. package/dist/components/heading.js.map +1 -1
  80. package/dist/components/heading.mjs +4 -2
  81. package/dist/components/icon-button.css +13 -42
  82. package/dist/components/icon-button.css.map +1 -1
  83. package/dist/components/icon-button.d.mts +2 -3
  84. package/dist/components/icon-button.d.ts +2 -3
  85. package/dist/components/icon-button.js +18 -13
  86. package/dist/components/icon-button.js.map +1 -1
  87. package/dist/components/icon-button.mjs +4 -4
  88. package/dist/components/image.d.mts +5 -4
  89. package/dist/components/image.d.ts +5 -4
  90. package/dist/components/image.js +12 -5
  91. package/dist/components/image.js.map +1 -1
  92. package/dist/components/image.mjs +12 -5
  93. package/dist/components/image.mjs.map +1 -1
  94. package/dist/components/link.d.mts +1 -1
  95. package/dist/components/link.d.ts +1 -1
  96. package/dist/components/link.js +1 -1
  97. package/dist/components/link.js.map +1 -1
  98. package/dist/components/link.mjs +1 -1
  99. package/dist/components/link.mjs.map +1 -1
  100. package/dist/components/menu.css +2 -2
  101. package/dist/components/menu.css.map +1 -1
  102. package/dist/components/menu.js +1 -1
  103. package/dist/components/menu.js.map +1 -1
  104. package/dist/components/menu.mjs +2 -2
  105. package/dist/components/popover.css +2 -2
  106. package/dist/components/popover.css.map +1 -1
  107. package/dist/components/popover.js.map +1 -1
  108. package/dist/components/popover.mjs +1 -1
  109. package/dist/components/select.css +13 -152
  110. package/dist/components/select.css.map +1 -1
  111. package/dist/components/select.d.mts +1 -1
  112. package/dist/components/select.d.ts +1 -1
  113. package/dist/components/select.js +23 -17
  114. package/dist/components/select.js.map +1 -1
  115. package/dist/components/select.mjs +5 -5
  116. package/dist/components/separator.d.mts +3 -0
  117. package/dist/components/separator.d.ts +3 -0
  118. package/dist/components/separator.js.map +1 -1
  119. package/dist/components/separator.mjs.map +1 -1
  120. package/dist/components/skeleton.d.mts +1 -1
  121. package/dist/components/skeleton.d.ts +1 -1
  122. package/dist/components/spinner.css +5 -29
  123. package/dist/components/spinner.css.map +1 -1
  124. package/dist/components/spinner.d.mts +3 -5
  125. package/dist/components/spinner.d.ts +3 -5
  126. package/dist/components/spinner.js +12 -6
  127. package/dist/components/spinner.js.map +1 -1
  128. package/dist/components/spinner.mjs +2 -2
  129. package/dist/components/status.d.mts +1 -1
  130. package/dist/components/status.d.ts +1 -1
  131. package/dist/components/switch.d.mts +1 -1
  132. package/dist/components/switch.d.ts +1 -1
  133. package/dist/components/text-area.d.mts +1 -1
  134. package/dist/components/text-area.d.ts +1 -1
  135. package/dist/components/text-field.d.mts +1 -1
  136. package/dist/components/text-field.d.ts +1 -1
  137. package/dist/components/text.d.mts +2 -2
  138. package/dist/components/text.d.ts +2 -2
  139. package/dist/components/text.js +2 -2
  140. package/dist/components/text.js.map +1 -1
  141. package/dist/components/text.mjs +1 -1
  142. package/dist/components/tooltip.css +2 -1
  143. package/dist/components/tooltip.css.map +1 -1
  144. package/dist/components/tooltip.d.mts +1 -1
  145. package/dist/components/tooltip.d.ts +1 -1
  146. package/dist/components/tooltip.js +3 -3
  147. package/dist/components/tooltip.js.map +1 -1
  148. package/dist/components/tooltip.mjs +3 -3
  149. package/dist/{container.css-DrtNVXzo.d.mts → container.css-BgQOsZ4q.d.mts} +1 -1
  150. package/dist/{container.css-DrtNVXzo.d.ts → container.css-BgQOsZ4q.d.ts} +1 -1
  151. package/dist/{dialog.css-C7oMaNav.d.mts → dialog.css-CYDkFLZx.d.mts} +2 -10
  152. package/dist/{dialog.css-C7oMaNav.d.ts → dialog.css-CYDkFLZx.d.ts} +2 -10
  153. package/dist/{form.css-CBijFS-Z.d.mts → form.css-NAo0sSxW.d.mts} +1 -1
  154. package/dist/{form.css-CBijFS-Z.d.ts → form.css-NAo0sSxW.d.ts} +1 -1
  155. package/dist/heading.css-8Qi1-uCW.d.mts +53 -0
  156. package/dist/heading.css-8Qi1-uCW.d.ts +53 -0
  157. package/dist/{icon-button.css-ndHR4t3c.d.mts → icon-button.css-DOlVsfKX.d.mts} +1 -6
  158. package/dist/{icon-button.css-ndHR4t3c.d.ts → icon-button.css-DOlVsfKX.d.ts} +1 -6
  159. package/dist/{link.css-CgQxXknE.d.mts → link.css-CiQJiLia.d.mts} +1 -1
  160. package/dist/{link.css-CgQxXknE.d.ts → link.css-CiQJiLia.d.ts} +1 -1
  161. package/dist/patterns/index.css +253 -1727
  162. package/dist/patterns/index.css.map +1 -1
  163. package/dist/patterns/index.d.mts +17 -5
  164. package/dist/patterns/index.d.ts +17 -5
  165. package/dist/patterns/index.js +70 -280
  166. package/dist/patterns/index.js.map +1 -1
  167. package/dist/patterns/index.mjs +30 -49
  168. package/dist/patterns/index.mjs.map +1 -1
  169. package/dist/providers/index.css +111 -200
  170. package/dist/providers/index.css.map +1 -1
  171. package/dist/providers/index.d.mts +2 -2
  172. package/dist/providers/index.d.ts +2 -2
  173. package/dist/providers/index.js +60 -53
  174. package/dist/providers/index.js.map +1 -1
  175. package/dist/providers/index.mjs +14 -12
  176. package/dist/providers/index.mjs.map +1 -1
  177. package/dist/{skeleton.css-CpCE7T-Z.d.mts → skeleton.css-Dqj91z1J.d.mts} +1 -1
  178. package/dist/{skeleton.css-CpCE7T-Z.d.ts → skeleton.css-Dqj91z1J.d.ts} +1 -1
  179. package/dist/spinner.css-BZiQWnG0.d.mts +22 -0
  180. package/dist/spinner.css-BZiQWnG0.d.ts +22 -0
  181. package/dist/{status.css-BgE7VySx.d.mts → status.css-Co587rxg.d.mts} +1 -1
  182. package/dist/{status.css-BgE7VySx.d.ts → status.css-Co587rxg.d.ts} +1 -1
  183. package/dist/{switch.css-DL5vSOih.d.mts → switch.css-h_sQVT_Y.d.mts} +2 -2
  184. package/dist/{switch.css-DL5vSOih.d.ts → switch.css-h_sQVT_Y.d.ts} +2 -2
  185. package/dist/{text-area.css-CAGsYX0q.d.mts → text-area.css-mKrAGHB3.d.mts} +1 -1
  186. package/dist/{text-area.css-CAGsYX0q.d.ts → text-area.css-mKrAGHB3.d.ts} +1 -1
  187. package/dist/{text-field.css-T4wUHMsd.d.mts → text-field.css-BdmWDCNj.d.mts} +1 -1
  188. package/dist/{text-field.css-T4wUHMsd.d.ts → text-field.css-BdmWDCNj.d.ts} +1 -1
  189. package/dist/{text.css-CjBSPcnP.d.mts → text.css-CxDfx0B7.d.mts} +1 -1
  190. package/dist/{text.css-CjBSPcnP.d.ts → text.css-CxDfx0B7.d.ts} +1 -1
  191. package/dist/theme/index.css +253 -1727
  192. package/dist/theme/index.css.map +1 -1
  193. package/dist/theme/index.d.mts +43 -154
  194. package/dist/theme/index.d.ts +43 -154
  195. package/dist/theme/index.js +50 -234
  196. package/dist/theme/index.js.map +1 -1
  197. package/dist/theme/index.mjs +27 -27
  198. package/dist/{tooltip.css-XeMsLpNS.d.mts → tooltip.css-otpfm6_m.d.mts} +1 -1
  199. package/dist/{tooltip.css-XeMsLpNS.d.ts → tooltip.css-otpfm6_m.d.ts} +1 -1
  200. package/package.json +8 -18
  201. package/dist/chunk-4JJB6DUF.mjs.map +0 -1
  202. package/dist/chunk-GWDU7T23.mjs.map +0 -1
  203. package/dist/chunk-HNN7XTNY.mjs.map +0 -1
  204. package/dist/chunk-LFQ232LO.mjs +0 -43
  205. package/dist/chunk-LFQ232LO.mjs.map +0 -1
  206. package/dist/chunk-NOIOHUNH.mjs +0 -7
  207. package/dist/chunk-NOIOHUNH.mjs.map +0 -1
  208. package/dist/chunk-O62XWWJU.mjs.map +0 -1
  209. package/dist/chunk-OWCOYR6H.mjs.map +0 -1
  210. package/dist/chunk-QSFZ2LOS.mjs.map +0 -1
  211. package/dist/chunk-SV63RX5X.mjs +0 -232
  212. package/dist/chunk-SV63RX5X.mjs.map +0 -1
  213. package/dist/chunk-URGU4MLN.mjs +0 -12
  214. package/dist/chunk-URGU4MLN.mjs.map +0 -1
  215. package/dist/chunk-VW4CTCZL.mjs.map +0 -1
  216. package/dist/chunk-ZDBDV2HW.mjs +0 -12
  217. package/dist/chunk-ZDBDV2HW.mjs.map +0 -1
  218. package/dist/components/label.css +0 -65
  219. package/dist/components/label.css.map +0 -1
  220. package/dist/components/label.d.mts +0 -12
  221. package/dist/components/label.d.ts +0 -12
  222. package/dist/components/label.js +0 -75
  223. package/dist/components/label.js.map +0 -1
  224. package/dist/components/label.mjs +0 -32
  225. package/dist/components/label.mjs.map +0 -1
  226. package/dist/components/paragraph.css +0 -58
  227. package/dist/components/paragraph.css.map +0 -1
  228. package/dist/components/paragraph.d.mts +0 -13
  229. package/dist/components/paragraph.d.ts +0 -13
  230. package/dist/components/paragraph.js +0 -63
  231. package/dist/components/paragraph.js.map +0 -1
  232. package/dist/components/paragraph.mjs +0 -30
  233. package/dist/components/paragraph.mjs.map +0 -1
  234. package/dist/spinner.css-D4j8oa1u.d.mts +0 -46
  235. package/dist/spinner.css-D4j8oa1u.d.ts +0 -46
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Text
3
- } from "../chunk-QSFZ2LOS.mjs";
3
+ } from "../chunk-EFNLOCJE.mjs";
4
4
  import {
5
5
  checkmark,
6
6
  darkTheme,
@@ -10,21 +10,23 @@ import {
10
10
  toastInner,
11
11
  toastRoot,
12
12
  toastViewport
13
- } from "../chunk-O62XWWJU.mjs";
13
+ } from "../chunk-IVA2SE6G.mjs";
14
+ import "../chunk-7RIU5XD3.mjs";
14
15
  import {
15
16
  Heading
16
- } from "../chunk-LFQ232LO.mjs";
17
- import "../chunk-7RIU5XD3.mjs";
17
+ } from "../chunk-GW7MIISK.mjs";
18
+ import "../chunk-KWTNICKO.mjs";
18
19
  import {
19
20
  IconButton
20
- } from "../chunk-HNN7XTNY.mjs";
21
- import "../chunk-ZDBDV2HW.mjs";
21
+ } from "../chunk-VJMDG74N.mjs";
22
+ import "../chunk-A5XHUJ2A.mjs";
23
+ import "../chunk-HGLO5LDS.mjs";
22
24
  import {
23
25
  Button
24
- } from "../chunk-OWCOYR6H.mjs";
25
- import "../chunk-4JJB6DUF.mjs";
26
- import "../chunk-VW4CTCZL.mjs";
27
- import "../chunk-URGU4MLN.mjs";
26
+ } from "../chunk-CQ3SNSPG.mjs";
27
+ import "../chunk-65T2AXGV.mjs";
28
+ import "../chunk-VZW5PY4D.mjs";
29
+ import "../chunk-WRIZ5KCE.mjs";
28
30
  import "../chunk-UPZYS6TE.mjs";
29
31
  import "../chunk-7EGQM3ZL.mjs";
30
32
 
@@ -55,7 +57,7 @@ var saveToLS = (storageKey2, value) => {
55
57
  }
56
58
  };
57
59
  var useTheme = () => React.useContext(ThemeContext) ?? defaultContext;
58
- var ThemeProvider = (props) => {
60
+ var ThemeProvider = ({ ...props }) => {
59
61
  const context = React.useContext(ThemeContext);
60
62
  if (context) return /* @__PURE__ */ jsx(Fragment, { children: props.children });
61
63
  return /* @__PURE__ */ jsx(Theme, { ...props });
@@ -362,7 +364,7 @@ var ToastProvider = ({
362
364
  }
363
365
  ) });
364
366
  };
365
- var Toast = (props) => {
367
+ var Toast = ({ ...props }) => {
366
368
  const { onOpenChange, toast, id, ...toastProps } = props;
367
369
  const ref = React2.useRef(null);
368
370
  const context = React2.useContext(ToastContextImpl);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/providers/theme-provider.tsx","../../src/providers/toast-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { darkTheme } from \"@/theme/themes/dark-theme.css\";\nimport { lightTheme } from \"@/theme/themes/light-theme.css\";\nimport { SystemTheme } from \"@/types/system-theme\";\nimport { Theme as ITheme } from \"@/types/theme\";\nimport * as React from \"react\";\n\nconst classes: Record<SystemTheme, string> = {\n light: lightTheme,\n dark: darkTheme,\n};\nconst defaultTheme: ITheme = \"system\";\nconst storageKey = \"nayhoo-theme\";\nconst systemThemes: SystemTheme[] = [\"light\", \"dark\"];\nconst themes: ITheme[] = [...systemThemes, \"system\"];\n\n// Credits: https://github.com/pacocoursey/next-themes/blob/main/next-themes/src/types.ts\ninterface ScriptProps extends React.DetailedHTMLProps<\n React.ScriptHTMLAttributes<HTMLScriptElement>,\n HTMLScriptElement\n> {}\n\nexport interface UseThemeProps {\n /** List of all available theme names */\n themes: ITheme[];\n /** Update the theme */\n setTheme: (value: ITheme) => void;\n /** Active theme name */\n theme?: ITheme | undefined;\n /** If the active theme is \"system\", this returns whether the system preference resolved to \"dark\" or \"light\". Otherwise, identical to `theme` */\n resolvedTheme?: ITheme | undefined;\n /** Returns the System theme preference (\"dark\" or \"light\"), regardless what the active theme is */\n systemTheme?: SystemTheme | undefined;\n}\n\nexport interface ThemeProviderProps extends React.PropsWithChildren {\n /** Props to pass the inline script */\n scriptProps?: ScriptProps;\n}\n\n// Credits: https://github.com/pacocoursey/next-themes/blob/main/next-themes/src/index.tsx\nconst colorSchemes: SystemTheme[] = [\"light\", \"dark\"];\nconst MEDIA = \"(prefers-color-scheme: dark)\";\nconst isServer = typeof window === \"undefined\";\nconst ThemeContext = React.createContext<UseThemeProps | undefined>(undefined);\nconst defaultContext: UseThemeProps = {\n setTheme: () => {\n // TODO: something about needs to be in a provider\n },\n themes,\n};\n\nconst saveToLS = (storageKey: string, value: string) => {\n // Save to storage\n try {\n localStorage.setItem(storageKey, value);\n } catch (e) {\n // Unsupported\n }\n};\n\nexport const useTheme = () => React.useContext(ThemeContext) ?? defaultContext;\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n const context = React.useContext(ThemeContext);\n\n // Ignore nested context providers, just passthrough children\n if (context) return <>{props.children}</>;\n\n return <Theme {...props} />;\n};\n\nconst Theme = ({ children, scriptProps }: ThemeProviderProps) => {\n const [theme, setThemeState] = React.useState(() => getTheme());\n const [resolvedTheme, setResolvedTheme] = React.useState(() =>\n theme === \"system\" ? getSystemTheme() : theme,\n );\n\n const applyTheme = React.useCallback((theme?: ITheme) => {\n let resolved = theme;\n\n if (!resolved) return;\n\n // If theme is system, resolve it before setting theme\n if (theme === \"system\") {\n resolved = getSystemTheme();\n }\n\n const d = document.documentElement;\n\n const handleAttribute = () => {\n d.classList.remove(...Object.values(classes));\n\n if (resolved) d.classList.add(classes[resolved as SystemTheme]);\n };\n\n handleAttribute();\n\n const colorScheme = colorSchemes.some(\n (colorScheme) => colorScheme === resolved,\n )\n ? resolved\n : null;\n\n if (colorScheme) d.style.colorScheme = colorScheme;\n }, []);\n\n const setTheme = React.useCallback((value: ITheme) => {\n setThemeState(value);\n saveToLS(storageKey, value);\n }, []);\n\n const handleMediaQuery = React.useCallback(\n (e: MediaQueryListEvent | MediaQueryList) => {\n const resolved = getSystemTheme(e);\n setResolvedTheme(resolved);\n\n if (theme === \"system\") {\n applyTheme(\"system\");\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [theme],\n );\n\n // Always listen to System preference\n React.useEffect(() => {\n const media = window.matchMedia(MEDIA);\n\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery);\n handleMediaQuery(media);\n\n return () => media.removeListener(handleMediaQuery);\n }, [handleMediaQuery]);\n\n // localStorage event handling\n React.useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return;\n }\n\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n if (!e.newValue || !isTheme(e.newValue)) {\n setTheme(defaultTheme);\n } else {\n setThemeState(e.newValue); // Direct state update to avoid loops\n }\n };\n\n window.addEventListener(\"storage\", handleStorage);\n\n return () => window.removeEventListener(\"storage\", handleStorage);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setTheme]);\n\n // Whenever theme changes, apply it\n React.useEffect(() => {\n applyTheme(theme);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [theme]);\n\n const providerValue = React.useMemo(\n () => ({\n theme,\n setTheme,\n resolvedTheme: theme === \"system\" ? resolvedTheme : theme,\n themes,\n systemTheme: resolvedTheme as SystemTheme | undefined,\n }),\n [theme, setTheme, resolvedTheme],\n );\n\n return (\n <ThemeContext.Provider value={providerValue}>\n <ThemeScript\n {...{\n scriptProps,\n }}\n />\n\n {children}\n </ThemeContext.Provider>\n );\n};\n\nconst ThemeScript = React.memo(\n ({ scriptProps }: Omit<ThemeProviderProps, \"children\">) => {\n const scriptArgs = JSON.stringify([\n storageKey,\n defaultTheme,\n systemThemes,\n classes,\n ]).slice(1, -1);\n\n return (\n <script\n {...scriptProps}\n suppressHydrationWarning\n dangerouslySetInnerHTML={{\n __html: `(${script.toString()})(${scriptArgs})`,\n }}\n />\n );\n },\n);\n\nThemeScript.displayName = \"ThemeScript\";\n\n// Helpers\nconst getTheme = () => {\n if (isServer) return undefined;\n let theme;\n\n try {\n theme = localStorage.getItem(storageKey) || undefined;\n } catch (e) {\n // Unsupported\n }\n\n return theme !== undefined && isTheme(theme) ? theme : defaultTheme;\n};\n\nconst getSystemTheme = (e?: MediaQueryList | MediaQueryListEvent) => {\n if (!e) e = window.matchMedia(MEDIA);\n const isDark = e.matches;\n const systemTheme = isDark ? \"dark\" : \"light\";\n\n return systemTheme;\n};\n\nconst isTheme = (value: string): value is ITheme =>\n themes.some((theme) => theme === value);\n\n// Credits: https://github.com/pacocoursey/next-themes/blob/main/next-themes/src/script.ts\nconst script = (\n storageKey: string,\n defaultTheme: ITheme,\n systemThemes: SystemTheme[],\n classes: Record<SystemTheme, string>,\n) => {\n const el = document.documentElement;\n\n function updateDOM(theme: SystemTheme) {\n el.classList.remove(...Object.values(classes));\n el.classList.add(classes[theme]);\n\n setColorScheme(theme);\n }\n\n function setColorScheme(theme: string) {\n if (systemThemes.some((systemTheme) => systemTheme === theme)) {\n el.style.colorScheme = theme;\n }\n }\n\n function getSystemTheme() {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n }\n\n function isSystemTheme(value: string): value is SystemTheme {\n return systemThemes.some((theme) => theme === value);\n }\n\n try {\n const themeName = localStorage.getItem(storageKey) || defaultTheme;\n const isSystem = themeName === \"system\";\n const theme =\n isSystem || !isSystemTheme(themeName) ? getSystemTheme() : themeName;\n updateDOM(theme);\n } catch (e) {\n //\n }\n};\n","// Credits: https://codesandbox.io/p/sandbox/radix-toast-stack-dpfx5f\n\nimport { Button } from \"@/components/button\";\nimport { Heading } from \"@/components/heading\";\nimport { IconButton } from \"@/components/icon-button\";\nimport { Text } from \"@/components/text\";\nimport {\n checkmark,\n error,\n toastClose,\n toastInner,\n toastRoot,\n toastViewport,\n} from \"@/theme/styles/toast.css\";\nimport { Cross2Icon } from \"@radix-ui/react-icons\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport * as React from \"react\";\n\ntype Toast = {\n title?: string;\n description?: string;\n status: \"default\" | \"error\" | \"success\";\n action?: React.ReactNode;\n} & ToastPrimitives.ToastProps;\n\ntype AddToastPayload = Omit<Toast, \"status\">;\n\ntype ToastContextProps = ((payload: AddToastPayload) => void) & {\n error: (payload: AddToastPayload) => void;\n success: (payload: AddToastPayload) => void;\n};\n\nconst defaultContext: ToastContextProps = Object.assign(\n () => {\n // TODO: something about needs to be in a provider\n },\n {\n success: () => {\n // TODO: something about needs to be in a provider\n },\n error: () => {\n // TODO: something about needs to be in a provider\n },\n },\n);\n\nconst ToastContext = React.createContext(defaultContext);\n\nexport const useToast = () => React.useContext(ToastContext) ?? defaultContext;\n\ntype ToastContextImplProps = {\n toastElementsMapRef: React.RefObject<Map<string, HTMLLIElement> | null>;\n sortToasts: () => void;\n};\n\nconst toastElementsMapRef = React.createRef<Map<string, HTMLLIElement>>();\n\nconst defaultToastImpl: ToastContextImplProps = {\n toastElementsMapRef,\n sortToasts: () => {},\n};\n\nconst ToastContextImpl = React.createContext(defaultToastImpl);\n\nconst ANIMATION_OUT_DURATION = 350;\n\nexport const ToastProvider = ({\n children,\n ...props\n}: ToastPrimitives.ToastProviderProps) => {\n const [toasts, setToasts] = React.useState<Map<string, Toast>>(new Map());\n const toastElementsMapRef = React.useRef<Map<string, HTMLLIElement>>(\n new Map(),\n );\n const viewportRef = React.useRef<HTMLOListElement>(null);\n\n const sortToasts = React.useCallback(() => {\n const toastElements = Array.from(toastElementsMapRef.current).reverse();\n const heights: number[] = [];\n\n toastElements.forEach(([, toast], index) => {\n if (!toast) return;\n const height = toast.clientHeight;\n heights.push(height);\n const frontToastHeight = heights[0];\n toast.setAttribute(\"data-front\", `${index === 0}`);\n toast.setAttribute(\"data-hidden\", `${index > 2}`);\n toast.style.setProperty(\"--index\", `${index}`);\n toast.style.setProperty(\"--height\", `${height}px`);\n toast.style.setProperty(\"--front-height\", `${frontToastHeight}px`);\n const hoverOffsetY = heights\n .slice(0, index)\n .reduce((res, next) => (res += next), 0);\n toast.style.setProperty(\"--hover-offset-y\", `-${hoverOffsetY}px`);\n });\n }, []);\n\n const handleAddToast = React.useCallback((toast: Toast) => {\n setToasts((currentToasts) => {\n const newMap = new Map(currentToasts);\n newMap.set(String(Date.now()), { ...toast, open: true });\n\n return newMap;\n });\n }, []);\n\n const handleRemoveToast = React.useCallback((key: string) => {\n setToasts((currentToasts) => {\n const newMap = new Map(currentToasts);\n newMap.delete(key);\n\n return newMap;\n });\n }, []);\n\n const handleDispatchDefault = React.useCallback(\n (payload: AddToastPayload) =>\n handleAddToast({ ...payload, status: \"default\" }),\n [handleAddToast],\n );\n\n const handleDispatchSuccess = React.useCallback(\n (payload: AddToastPayload) =>\n handleAddToast({ ...payload, status: \"success\" }),\n [handleAddToast],\n );\n\n const handleDispatchError = React.useCallback(\n (payload: AddToastPayload) =>\n // default duration of 10 mins for `status: \"error\"`.\n handleAddToast({ duration: 60 * 1000 * 10, ...payload, status: \"error\" }),\n [handleAddToast],\n );\n\n React.useEffect(() => {\n const viewport = viewportRef.current;\n\n if (viewport) {\n const handleFocus = () => {\n toastElementsMapRef.current.forEach((toast) => {\n toast.setAttribute(\"data-hovering\", \"true\");\n });\n };\n\n // @ts-expect-error TODO: get the correct type\n const handleBlur = (event) => {\n if (!viewport.contains(event.target) || viewport === event.target) {\n toastElementsMapRef.current.forEach((toast) => {\n toast.setAttribute(\"data-hovering\", \"false\");\n });\n }\n };\n\n viewport.addEventListener(\"pointermove\", handleFocus);\n viewport.addEventListener(\"pointerleave\", handleBlur);\n viewport.addEventListener(\"focusin\", handleFocus);\n viewport.addEventListener(\"focusout\", handleBlur);\n\n return () => {\n viewport.removeEventListener(\"pointermove\", handleFocus);\n viewport.removeEventListener(\"pointerleave\", handleBlur);\n viewport.removeEventListener(\"focusin\", handleFocus);\n viewport.removeEventListener(\"focusout\", handleBlur);\n };\n }\n }, []);\n\n const toastApi = React.useMemo(\n () =>\n Object.assign(handleDispatchDefault, {\n success: handleDispatchSuccess,\n error: handleDispatchError,\n }),\n [handleDispatchDefault, handleDispatchSuccess, handleDispatchError],\n );\n\n return (\n <ToastContext.Provider value={toastApi}>\n <ToastContextImpl.Provider\n value={React.useMemo(\n () => ({\n toastElementsMapRef,\n sortToasts,\n }),\n [sortToasts],\n )}\n >\n <ToastPrimitives.Provider {...props}>\n {children}\n {Array.from(toasts).map(([key, toast]) => (\n <Toast\n key={key}\n id={key}\n toast={toast}\n onOpenChange={(open) => {\n if (!open) {\n toastElementsMapRef.current.delete(key);\n sortToasts();\n\n if (!open) {\n setTimeout(() => {\n handleRemoveToast(key);\n }, ANIMATION_OUT_DURATION);\n }\n }\n }}\n />\n ))}\n <ToastPrimitives.Viewport\n ref={viewportRef}\n className={toastViewport}\n />\n </ToastPrimitives.Provider>\n </ToastContextImpl.Provider>\n </ToastContext.Provider>\n );\n};\n\nconst Toast = (props: ToastPrimitives.ToastProps & { toast: Toast }) => {\n const { onOpenChange, toast, id, ...toastProps } = props;\n const ref = React.useRef<HTMLLIElement>(null);\n const context = React.useContext(ToastContextImpl);\n const { sortToasts, toastElementsMapRef } = context;\n const toastElementsMap = toastElementsMapRef.current;\n\n React.useLayoutEffect(() => {\n if (ref.current) {\n toastElementsMap?.set(id as string, ref.current);\n sortToasts();\n }\n }, [id, sortToasts, toastElementsMap]);\n\n return (\n <ToastPrimitives.Root\n {...toastProps}\n ref={ref}\n type={toast.type}\n duration={toast.duration}\n className={toastRoot}\n onOpenChange={onOpenChange}\n >\n <div className={toastInner} data-status={toast.status}>\n <ToastStatusIcon status={toast.status} />\n <ToastPrimitives.Title asChild style={{ gridArea: \"title\" }}>\n <Heading level=\"6\">{toast.title}</Heading>\n </ToastPrimitives.Title>\n <ToastPrimitives.Description\n asChild\n style={{ gridArea: \"description\" }}\n >\n <Text color=\"subtle\" size=\"2\">\n {toast.description}\n </Text>\n </ToastPrimitives.Description>\n {toast.action}\n <ToastPrimitives.Close\n aria-label=\"Close\"\n asChild\n className={toastClose}\n >\n <IconButton variant=\"outline\">\n <Cross2Icon />\n </IconButton>\n </ToastPrimitives.Close>\n </div>\n </ToastPrimitives.Root>\n );\n};\n\nconst ToastStatusIcon = ({ status }: { status: Toast[\"status\"] }) => {\n return status !== \"default\" ? (\n <div style={{ gridArea: \"icon\", alignSelf: \"start\" }}>\n {status === \"success\" && <CheckmarkIcon />}\n {status === \"error\" && <ErrorIcon />}\n </div>\n ) : null;\n};\n\nconst ErrorIcon = () => <div aria-hidden className={error} />;\nconst CheckmarkIcon = () => <div aria-hidden className={checkmark} />;\n\nexport const ToastAction = ({\n ...props\n}: Omit<ToastPrimitives.ToastActionProps, \"asChild\">) => {\n return (\n <ToastPrimitives.Action\n {...props}\n style={{ gridArea: \"action\", ...props.style }}\n asChild\n >\n <Button size=\"1\" variant=\"outline\">\n {props.children}\n </Button>\n </ToastPrimitives.Action>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,YAAY,WAAW;AA8DD,wBA4GlB,YA5GkB;AA5DtB,IAAM,UAAuC;AAAA,EAC3C,OAAO;AAAA,EACP,MAAM;AACR;AACA,IAAM,eAAuB;AAC7B,IAAM,aAAa;AACnB,IAAM,eAA8B,CAAC,SAAS,MAAM;AACpD,IAAM,SAAmB,CAAC,GAAG,cAAc,QAAQ;AA2BnD,IAAM,eAA8B,CAAC,SAAS,MAAM;AACpD,IAAM,QAAQ;AACd,IAAM,WAAW,OAAO,WAAW;AACnC,IAAM,eAAqB,oBAAyC,MAAS;AAC7E,IAAM,iBAAgC;AAAA,EACpC,UAAU,MAAM;AAAA,EAEhB;AAAA,EACA;AACF;AAEA,IAAM,WAAW,CAACA,aAAoB,UAAkB;AAEtD,MAAI;AACF,iBAAa,QAAQA,aAAY,KAAK;AAAA,EACxC,SAAS,GAAG;AAAA,EAEZ;AACF;AAEO,IAAM,WAAW,MAAY,iBAAW,YAAY,KAAK;AAEzD,IAAM,gBAAgB,CAAC,UAA8B;AAC1D,QAAM,UAAgB,iBAAW,YAAY;AAG7C,MAAI,QAAS,QAAO,gCAAG,gBAAM,UAAS;AAEtC,SAAO,oBAAC,SAAO,GAAG,OAAO;AAC3B;AAEA,IAAM,QAAQ,CAAC,EAAE,UAAU,YAAY,MAA0B;AAC/D,QAAM,CAAC,OAAO,aAAa,IAAU,eAAS,MAAM,SAAS,CAAC;AAC9D,QAAM,CAAC,eAAe,gBAAgB,IAAU;AAAA,IAAS,MACvD,UAAU,WAAW,eAAe,IAAI;AAAA,EAC1C;AAEA,QAAM,aAAmB,kBAAY,CAACC,WAAmB;AACvD,QAAI,WAAWA;AAEf,QAAI,CAAC,SAAU;AAGf,QAAIA,WAAU,UAAU;AACtB,iBAAW,eAAe;AAAA,IAC5B;AAEA,UAAM,IAAI,SAAS;AAEnB,UAAM,kBAAkB,MAAM;AAC5B,QAAE,UAAU,OAAO,GAAG,OAAO,OAAO,OAAO,CAAC;AAE5C,UAAI,SAAU,GAAE,UAAU,IAAI,QAAQ,QAAuB,CAAC;AAAA,IAChE;AAEA,oBAAgB;AAEhB,UAAM,cAAc,aAAa;AAAA,MAC/B,CAACC,iBAAgBA,iBAAgB;AAAA,IACnC,IACI,WACA;AAEJ,QAAI,YAAa,GAAE,MAAM,cAAc;AAAA,EACzC,GAAG,CAAC,CAAC;AAEL,QAAM,WAAiB,kBAAY,CAAC,UAAkB;AACpD,kBAAc,KAAK;AACnB,aAAS,YAAY,KAAK;AAAA,EAC5B,GAAG,CAAC,CAAC;AAEL,QAAM,mBAAyB;AAAA,IAC7B,CAAC,MAA4C;AAC3C,YAAM,WAAW,eAAe,CAAC;AACjC,uBAAiB,QAAQ;AAEzB,UAAI,UAAU,UAAU;AACtB,mBAAW,QAAQ;AAAA,MACrB;AAAA,IACF;AAAA;AAAA,IAEA,CAAC,KAAK;AAAA,EACR;AAGA,EAAM,gBAAU,MAAM;AACpB,UAAM,QAAQ,OAAO,WAAW,KAAK;AAGrC,UAAM,YAAY,gBAAgB;AAClC,qBAAiB,KAAK;AAEtB,WAAO,MAAM,MAAM,eAAe,gBAAgB;AAAA,EACpD,GAAG,CAAC,gBAAgB,CAAC;AAGrB,EAAM,gBAAU,MAAM;AACpB,UAAM,gBAAgB,CAAC,MAAoB;AACzC,UAAI,EAAE,QAAQ,YAAY;AACxB;AAAA,MACF;AAGA,UAAI,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG;AACvC,iBAAS,YAAY;AAAA,MACvB,OAAO;AACL,sBAAc,EAAE,QAAQ;AAAA,MAC1B;AAAA,IACF;AAEA,WAAO,iBAAiB,WAAW,aAAa;AAEhD,WAAO,MAAM,OAAO,oBAAoB,WAAW,aAAa;AAAA,EAElE,GAAG,CAAC,QAAQ,CAAC;AAGb,EAAM,gBAAU,MAAM;AACpB,eAAW,KAAK;AAAA,EAElB,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,gBAAsB;AAAA,IAC1B,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,eAAe,UAAU,WAAW,gBAAgB;AAAA,MACpD;AAAA,MACA,aAAa;AAAA,IACf;AAAA,IACA,CAAC,OAAO,UAAU,aAAa;AAAA,EACjC;AAEA,SACE,qBAAC,aAAa,UAAb,EAAsB,OAAO,eAC5B;AAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,UACF;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IAEC;AAAA,KACH;AAEJ;AAEA,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,YAAY,MAA4C;AACzD,UAAM,aAAa,KAAK,UAAU;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,EAAE,MAAM,GAAG,EAAE;AAEd,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,0BAAwB;AAAA,QACxB,yBAAyB;AAAA,UACvB,QAAQ,IAAI,OAAO,SAAS,CAAC,KAAK,UAAU;AAAA,QAC9C;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;AAG1B,IAAM,WAAW,MAAM;AACrB,MAAI,SAAU,QAAO;AACrB,MAAI;AAEJ,MAAI;AACF,YAAQ,aAAa,QAAQ,UAAU,KAAK;AAAA,EAC9C,SAAS,GAAG;AAAA,EAEZ;AAEA,SAAO,UAAU,UAAa,QAAQ,KAAK,IAAI,QAAQ;AACzD;AAEA,IAAM,iBAAiB,CAAC,MAA6C;AACnE,MAAI,CAAC,EAAG,KAAI,OAAO,WAAW,KAAK;AACnC,QAAM,SAAS,EAAE;AACjB,QAAM,cAAc,SAAS,SAAS;AAEtC,SAAO;AACT;AAEA,IAAM,UAAU,CAAC,UACf,OAAO,KAAK,CAAC,UAAU,UAAU,KAAK;AAGxC,IAAM,SAAS,CACbF,aACAG,eACAC,eACAC,aACG;AACH,QAAM,KAAK,SAAS;AAEpB,WAAS,UAAU,OAAoB;AACrC,OAAG,UAAU,OAAO,GAAG,OAAO,OAAOA,QAAO,CAAC;AAC7C,OAAG,UAAU,IAAIA,SAAQ,KAAK,CAAC;AAE/B,mBAAe,KAAK;AAAA,EACtB;AAEA,WAAS,eAAe,OAAe;AACrC,QAAID,cAAa,KAAK,CAAC,gBAAgB,gBAAgB,KAAK,GAAG;AAC7D,SAAG,MAAM,cAAc;AAAA,IACzB;AAAA,EACF;AAEA,WAASE,kBAAiB;AACxB,WAAO,OAAO,WAAW,8BAA8B,EAAE,UACrD,SACA;AAAA,EACN;AAEA,WAAS,cAAc,OAAqC;AAC1D,WAAOF,cAAa,KAAK,CAAC,UAAU,UAAU,KAAK;AAAA,EACrD;AAEA,MAAI;AACF,UAAM,YAAY,aAAa,QAAQJ,WAAU,KAAKG;AACtD,UAAM,WAAW,cAAc;AAC/B,UAAM,QACJ,YAAY,CAAC,cAAc,SAAS,IAAIG,gBAAe,IAAI;AAC7D,cAAU,KAAK;AAAA,EACjB,SAAS,GAAG;AAAA,EAEZ;AACF;;;ACvQA,SAAS,kBAAkB;AAC3B,YAAY,qBAAqB;AACjC,YAAYC,YAAW;AA2Kf,SAGI,OAAAC,MAHJ,QAAAC,aAAA;AA3JR,IAAMC,kBAAoC,OAAO;AAAA,EAC/C,MAAM;AAAA,EAEN;AAAA,EACA;AAAA,IACE,SAAS,MAAM;AAAA,IAEf;AAAA,IACA,OAAO,MAAM;AAAA,IAEb;AAAA,EACF;AACF;AAEA,IAAM,eAAqB,qBAAcA,eAAc;AAEhD,IAAM,WAAW,MAAY,kBAAW,YAAY,KAAKA;AAOhE,IAAM,sBAA4B,iBAAsC;AAExE,IAAM,mBAA0C;AAAA,EAC9C;AAAA,EACA,YAAY,MAAM;AAAA,EAAC;AACrB;AAEA,IAAM,mBAAyB,qBAAc,gBAAgB;AAE7D,IAAM,yBAAyB;AAExB,IAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,MAA0C;AACxC,QAAM,CAAC,QAAQ,SAAS,IAAU,gBAA6B,oBAAI,IAAI,CAAC;AACxE,QAAMC,uBAA4B;AAAA,IAChC,oBAAI,IAAI;AAAA,EACV;AACA,QAAM,cAAoB,cAAyB,IAAI;AAEvD,QAAM,aAAmB,mBAAY,MAAM;AACzC,UAAM,gBAAgB,MAAM,KAAKA,qBAAoB,OAAO,EAAE,QAAQ;AACtE,UAAM,UAAoB,CAAC;AAE3B,kBAAc,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU;AAC1C,UAAI,CAAC,MAAO;AACZ,YAAM,SAAS,MAAM;AACrB,cAAQ,KAAK,MAAM;AACnB,YAAM,mBAAmB,QAAQ,CAAC;AAClC,YAAM,aAAa,cAAc,GAAG,UAAU,CAAC,EAAE;AACjD,YAAM,aAAa,eAAe,GAAG,QAAQ,CAAC,EAAE;AAChD,YAAM,MAAM,YAAY,WAAW,GAAG,KAAK,EAAE;AAC7C,YAAM,MAAM,YAAY,YAAY,GAAG,MAAM,IAAI;AACjD,YAAM,MAAM,YAAY,kBAAkB,GAAG,gBAAgB,IAAI;AACjE,YAAM,eAAe,QAClB,MAAM,GAAG,KAAK,EACd,OAAO,CAAC,KAAK,SAAU,OAAO,MAAO,CAAC;AACzC,YAAM,MAAM,YAAY,oBAAoB,IAAI,YAAY,IAAI;AAAA,IAClE,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,iBAAuB,mBAAY,CAAC,UAAiB;AACzD,cAAU,CAAC,kBAAkB;AAC3B,YAAM,SAAS,IAAI,IAAI,aAAa;AACpC,aAAO,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,MAAM,KAAK,CAAC;AAEvD,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,oBAA0B,mBAAY,CAAC,QAAgB;AAC3D,cAAU,CAAC,kBAAkB;AAC3B,YAAM,SAAS,IAAI,IAAI,aAAa;AACpC,aAAO,OAAO,GAAG;AAEjB,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,wBAA8B;AAAA,IAClC,CAAC,YACC,eAAe,EAAE,GAAG,SAAS,QAAQ,UAAU,CAAC;AAAA,IAClD,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,wBAA8B;AAAA,IAClC,CAAC,YACC,eAAe,EAAE,GAAG,SAAS,QAAQ,UAAU,CAAC;AAAA,IAClD,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,sBAA4B;AAAA,IAChC,CAAC;AAAA;AAAA,MAEC,eAAe,EAAE,UAAU,KAAK,MAAO,IAAI,GAAG,SAAS,QAAQ,QAAQ,CAAC;AAAA;AAAA,IAC1E,CAAC,cAAc;AAAA,EACjB;AAEA,EAAM,iBAAU,MAAM;AACpB,UAAM,WAAW,YAAY;AAE7B,QAAI,UAAU;AACZ,YAAM,cAAc,MAAM;AACxB,QAAAA,qBAAoB,QAAQ,QAAQ,CAAC,UAAU;AAC7C,gBAAM,aAAa,iBAAiB,MAAM;AAAA,QAC5C,CAAC;AAAA,MACH;AAGA,YAAM,aAAa,CAAC,UAAU;AAC5B,YAAI,CAAC,SAAS,SAAS,MAAM,MAAM,KAAK,aAAa,MAAM,QAAQ;AACjE,UAAAA,qBAAoB,QAAQ,QAAQ,CAAC,UAAU;AAC7C,kBAAM,aAAa,iBAAiB,OAAO;AAAA,UAC7C,CAAC;AAAA,QACH;AAAA,MACF;AAEA,eAAS,iBAAiB,eAAe,WAAW;AACpD,eAAS,iBAAiB,gBAAgB,UAAU;AACpD,eAAS,iBAAiB,WAAW,WAAW;AAChD,eAAS,iBAAiB,YAAY,UAAU;AAEhD,aAAO,MAAM;AACX,iBAAS,oBAAoB,eAAe,WAAW;AACvD,iBAAS,oBAAoB,gBAAgB,UAAU;AACvD,iBAAS,oBAAoB,WAAW,WAAW;AACnD,iBAAS,oBAAoB,YAAY,UAAU;AAAA,MACrD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,WAAiB;AAAA,IACrB,MACE,OAAO,OAAO,uBAAuB;AAAA,MACnC,SAAS;AAAA,MACT,OAAO;AAAA,IACT,CAAC;AAAA,IACH,CAAC,uBAAuB,uBAAuB,mBAAmB;AAAA,EACpE;AAEA,SACE,gBAAAH,KAAC,aAAa,UAAb,EAAsB,OAAO,UAC5B,0BAAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,OAAa;AAAA,QACX,OAAO;AAAA,UACL,qBAAAG;AAAA,UACA;AAAA,QACF;AAAA,QACA,CAAC,UAAU;AAAA,MACb;AAAA,MAEA,0BAAAF,MAAiB,0BAAhB,EAA0B,GAAG,OAC3B;AAAA;AAAA,QACA,MAAM,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAClC,gBAAAD;AAAA,UAAC;AAAA;AAAA,YAEC,IAAI;AAAA,YACJ;AAAA,YACA,cAAc,CAAC,SAAS;AACtB,kBAAI,CAAC,MAAM;AACT,gBAAAG,qBAAoB,QAAQ,OAAO,GAAG;AACtC,2BAAW;AAEX,oBAAI,CAAC,MAAM;AACT,6BAAW,MAAM;AACf,sCAAkB,GAAG;AAAA,kBACvB,GAAG,sBAAsB;AAAA,gBAC3B;AAAA,cACF;AAAA,YACF;AAAA;AAAA,UAdK;AAAA,QAeP,CACD;AAAA,QACD,gBAAAH;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,KAAK;AAAA,YACL,WAAW;AAAA;AAAA,QACb;AAAA,SACF;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,QAAQ,CAAC,UAAyD;AACtE,QAAM,EAAE,cAAc,OAAO,IAAI,GAAG,WAAW,IAAI;AACnD,QAAM,MAAY,cAAsB,IAAI;AAC5C,QAAM,UAAgB,kBAAW,gBAAgB;AACjD,QAAM,EAAE,YAAY,qBAAAG,qBAAoB,IAAI;AAC5C,QAAM,mBAAmBA,qBAAoB;AAE7C,EAAM,uBAAgB,MAAM;AAC1B,QAAI,IAAI,SAAS;AACf,wBAAkB,IAAI,IAAc,IAAI,OAAO;AAC/C,iBAAW;AAAA,IACb;AAAA,EACF,GAAG,CAAC,IAAI,YAAY,gBAAgB,CAAC;AAErC,SACE,gBAAAH;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,MAAM,MAAM;AAAA,MACZ,UAAU,MAAM;AAAA,MAChB,WAAW;AAAA,MACX;AAAA,MAEA,0BAAAC,MAAC,SAAI,WAAW,YAAY,eAAa,MAAM,QAC7C;AAAA,wBAAAD,KAAC,mBAAgB,QAAQ,MAAM,QAAQ;AAAA,QACvC,gBAAAA,KAAiB,uBAAhB,EAAsB,SAAO,MAAC,OAAO,EAAE,UAAU,QAAQ,GACxD,0BAAAA,KAAC,WAAQ,OAAM,KAAK,gBAAM,OAAM,GAClC;AAAA,QACA,gBAAAA;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,SAAO;AAAA,YACP,OAAO,EAAE,UAAU,cAAc;AAAA,YAEjC,0BAAAA,KAAC,QAAK,OAAM,UAAS,MAAK,KACvB,gBAAM,aACT;AAAA;AAAA,QACF;AAAA,QACC,MAAM;AAAA,QACP,gBAAAA;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,cAAW;AAAA,YACX,SAAO;AAAA,YACP,WAAW;AAAA,YAEX,0BAAAA,KAAC,cAAW,SAAQ,WAClB,0BAAAA,KAAC,cAAW,GACd;AAAA;AAAA,QACF;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,kBAAkB,CAAC,EAAE,OAAO,MAAmC;AACnE,SAAO,WAAW,YAChB,gBAAAC,MAAC,SAAI,OAAO,EAAE,UAAU,QAAQ,WAAW,QAAQ,GAChD;AAAA,eAAW,aAAa,gBAAAD,KAAC,iBAAc;AAAA,IACvC,WAAW,WAAW,gBAAAA,KAAC,aAAU;AAAA,KACpC,IACE;AACN;AAEA,IAAM,YAAY,MAAM,gBAAAA,KAAC,SAAI,eAAW,MAAC,WAAW,OAAO;AAC3D,IAAM,gBAAgB,MAAM,gBAAAA,KAAC,SAAI,eAAW,MAAC,WAAW,WAAW;AAE5D,IAAM,cAAc,CAAC;AAAA,EAC1B,GAAG;AACL,MAAyD;AACvD,SACE,gBAAAA;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,EAAE,UAAU,UAAU,GAAG,MAAM,MAAM;AAAA,MAC5C,SAAO;AAAA,MAEP,0BAAAA,KAAC,UAAO,MAAK,KAAI,SAAQ,WACtB,gBAAM,UACT;AAAA;AAAA,EACF;AAEJ;","names":["storageKey","theme","colorScheme","defaultTheme","systemThemes","classes","getSystemTheme","React","jsx","jsxs","defaultContext","toastElementsMapRef"]}
1
+ {"version":3,"sources":["../../src/providers/theme-provider.tsx","../../src/providers/toast-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { darkTheme } from \"@/theme/themes/dark-theme.css\";\nimport { lightTheme } from \"@/theme/themes/light-theme.css\";\nimport { SystemTheme } from \"@/types/system-theme\";\nimport { Theme as ITheme } from \"@/types/theme\";\nimport * as React from \"react\";\n\nconst classes: Record<SystemTheme, string> = {\n light: lightTheme,\n dark: darkTheme,\n};\nconst defaultTheme: ITheme = \"system\";\nconst storageKey = \"nayhoo-theme\";\nconst systemThemes: SystemTheme[] = [\"light\", \"dark\"];\nconst themes: ITheme[] = [...systemThemes, \"system\"];\n\n// Credits: https://github.com/pacocoursey/next-themes/blob/main/next-themes/src/types.ts\ninterface ScriptProps extends React.DetailedHTMLProps<\n React.ScriptHTMLAttributes<HTMLScriptElement>,\n HTMLScriptElement\n> {}\n\nexport interface UseThemeProps {\n /** List of all available theme names */\n themes: ITheme[];\n /** Update the theme */\n setTheme: (value: ITheme) => void;\n /** Active theme name */\n theme?: ITheme | undefined;\n /** If the active theme is \"system\", this returns whether the system preference resolved to \"dark\" or \"light\". Otherwise, identical to `theme` */\n resolvedTheme?: ITheme | undefined;\n /** Returns the System theme preference (\"dark\" or \"light\"), regardless what the active theme is */\n systemTheme?: SystemTheme | undefined;\n}\n\nexport interface ThemeProviderProps extends React.PropsWithChildren {\n /** Props to pass the inline script */\n scriptProps?: ScriptProps;\n}\n\n// Credits: https://github.com/pacocoursey/next-themes/blob/main/next-themes/src/index.tsx\nconst colorSchemes: SystemTheme[] = [\"light\", \"dark\"];\nconst MEDIA = \"(prefers-color-scheme: dark)\";\nconst isServer = typeof window === \"undefined\";\nconst ThemeContext = React.createContext<UseThemeProps | undefined>(undefined);\nconst defaultContext: UseThemeProps = {\n setTheme: () => {\n // TODO: something about needs to be in a provider\n },\n themes,\n};\n\nconst saveToLS = (storageKey: string, value: string) => {\n // Save to storage\n try {\n localStorage.setItem(storageKey, value);\n } catch (e) {\n // Unsupported\n }\n};\n\nexport const useTheme = () => React.useContext(ThemeContext) ?? defaultContext;\n\nexport const ThemeProvider = ({ ...props }: ThemeProviderProps) => {\n const context = React.useContext(ThemeContext);\n\n // Ignore nested context providers, just passthrough children\n if (context) return <>{props.children}</>;\n\n return <Theme {...props} />;\n};\n\nconst Theme = ({ children, scriptProps }: ThemeProviderProps) => {\n const [theme, setThemeState] = React.useState(() => getTheme());\n const [resolvedTheme, setResolvedTheme] = React.useState(() =>\n theme === \"system\" ? getSystemTheme() : theme,\n );\n\n const applyTheme = React.useCallback((theme?: ITheme) => {\n let resolved = theme;\n\n if (!resolved) return;\n\n // If theme is system, resolve it before setting theme\n if (theme === \"system\") {\n resolved = getSystemTheme();\n }\n\n const d = document.documentElement;\n\n const handleAttribute = () => {\n d.classList.remove(...Object.values(classes));\n\n if (resolved) d.classList.add(classes[resolved as SystemTheme]);\n };\n\n handleAttribute();\n\n const colorScheme = colorSchemes.some(\n (colorScheme) => colorScheme === resolved,\n )\n ? resolved\n : null;\n\n if (colorScheme) d.style.colorScheme = colorScheme;\n }, []);\n\n const setTheme = React.useCallback((value: ITheme) => {\n setThemeState(value);\n saveToLS(storageKey, value);\n }, []);\n\n const handleMediaQuery = React.useCallback(\n (e: MediaQueryListEvent | MediaQueryList) => {\n const resolved = getSystemTheme(e);\n setResolvedTheme(resolved);\n\n if (theme === \"system\") {\n applyTheme(\"system\");\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [theme],\n );\n\n // Always listen to System preference\n React.useEffect(() => {\n const media = window.matchMedia(MEDIA);\n\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery);\n handleMediaQuery(media);\n\n return () => media.removeListener(handleMediaQuery);\n }, [handleMediaQuery]);\n\n // localStorage event handling\n React.useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return;\n }\n\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n if (!e.newValue || !isTheme(e.newValue)) {\n setTheme(defaultTheme);\n } else {\n setThemeState(e.newValue); // Direct state update to avoid loops\n }\n };\n\n window.addEventListener(\"storage\", handleStorage);\n\n return () => window.removeEventListener(\"storage\", handleStorage);\n }, [setTheme]);\n\n // Whenever theme changes, apply it\n React.useEffect(() => {\n applyTheme(theme);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [theme]);\n\n const providerValue = React.useMemo(\n () => ({\n theme,\n setTheme,\n resolvedTheme: theme === \"system\" ? resolvedTheme : theme,\n themes,\n systemTheme: resolvedTheme as SystemTheme | undefined,\n }),\n [theme, setTheme, resolvedTheme],\n );\n\n return (\n <ThemeContext.Provider value={providerValue}>\n <ThemeScript\n {...{\n scriptProps,\n }}\n />\n\n {children}\n </ThemeContext.Provider>\n );\n};\n\nconst ThemeScript = React.memo(\n ({ scriptProps }: Omit<ThemeProviderProps, \"children\">) => {\n const scriptArgs = JSON.stringify([\n storageKey,\n defaultTheme,\n systemThemes,\n classes,\n ]).slice(1, -1);\n\n return (\n <script\n {...scriptProps}\n suppressHydrationWarning\n dangerouslySetInnerHTML={{\n __html: `(${script.toString()})(${scriptArgs})`,\n }}\n />\n );\n },\n);\n\nThemeScript.displayName = \"ThemeScript\";\n\n// Helpers\nconst getTheme = () => {\n if (isServer) return undefined;\n let theme;\n\n try {\n theme = localStorage.getItem(storageKey) || undefined;\n } catch (e) {\n // Unsupported\n }\n\n return theme !== undefined && isTheme(theme) ? theme : defaultTheme;\n};\n\nconst getSystemTheme = (e?: MediaQueryList | MediaQueryListEvent) => {\n if (!e) e = window.matchMedia(MEDIA);\n const isDark = e.matches;\n const systemTheme = isDark ? \"dark\" : \"light\";\n\n return systemTheme;\n};\n\nconst isTheme = (value: string): value is ITheme =>\n themes.some((theme) => theme === value);\n\n// Credits: https://github.com/pacocoursey/next-themes/blob/main/next-themes/src/script.ts\nconst script = (\n storageKey: string,\n defaultTheme: ITheme,\n systemThemes: SystemTheme[],\n classes: Record<SystemTheme, string>,\n) => {\n const el = document.documentElement;\n\n function updateDOM(theme: SystemTheme) {\n el.classList.remove(...Object.values(classes));\n el.classList.add(classes[theme]);\n\n setColorScheme(theme);\n }\n\n function setColorScheme(theme: string) {\n if (systemThemes.some((systemTheme) => systemTheme === theme)) {\n el.style.colorScheme = theme;\n }\n }\n\n function getSystemTheme() {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n }\n\n function isSystemTheme(value: string): value is SystemTheme {\n return systemThemes.some((theme) => theme === value);\n }\n\n try {\n const themeName = localStorage.getItem(storageKey) || defaultTheme;\n const isSystem = themeName === \"system\";\n const theme =\n isSystem || !isSystemTheme(themeName) ? getSystemTheme() : themeName;\n updateDOM(theme);\n } catch (e) {\n //\n }\n};\n","// Credits: https://codesandbox.io/p/sandbox/radix-toast-stack-dpfx5f\n\nimport { Button } from \"@/components/button\";\nimport { Heading } from \"@/components/heading\";\nimport { IconButton } from \"@/components/icon-button\";\nimport { Text } from \"@/components/text\";\nimport {\n checkmark,\n error,\n toastClose,\n toastInner,\n toastRoot,\n toastViewport,\n} from \"@/theme/styles/toast.css\";\nimport { Cross2Icon } from \"@radix-ui/react-icons\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport * as React from \"react\";\n\ntype Toast = {\n title?: string;\n description?: string;\n status: \"default\" | \"error\" | \"success\";\n action?: React.ReactNode;\n} & ToastPrimitives.ToastProps;\n\ntype AddToastPayload = Omit<Toast, \"status\">;\n\ntype ToastContextProps = ((payload: AddToastPayload) => void) & {\n error: (payload: AddToastPayload) => void;\n success: (payload: AddToastPayload) => void;\n};\n\nconst defaultContext: ToastContextProps = Object.assign(\n () => {\n // TODO: something about needs to be in a provider\n },\n {\n success: () => {\n // TODO: something about needs to be in a provider\n },\n error: () => {\n // TODO: something about needs to be in a provider\n },\n },\n);\n\nconst ToastContext = React.createContext(defaultContext);\n\nexport const useToast = () => React.useContext(ToastContext) ?? defaultContext;\n\ntype ToastContextImplProps = {\n toastElementsMapRef: React.RefObject<Map<string, HTMLLIElement> | null>;\n sortToasts: () => void;\n};\n\nconst toastElementsMapRef = React.createRef<Map<string, HTMLLIElement>>();\n\nconst defaultToastImpl: ToastContextImplProps = {\n toastElementsMapRef,\n sortToasts: () => {},\n};\n\nconst ToastContextImpl = React.createContext(defaultToastImpl);\n\nconst ANIMATION_OUT_DURATION = 350;\n\nexport const ToastProvider = ({\n children,\n ...props\n}: ToastPrimitives.ToastProviderProps) => {\n const [toasts, setToasts] = React.useState<Map<string, Toast>>(new Map());\n const toastElementsMapRef = React.useRef<Map<string, HTMLLIElement>>(\n new Map(),\n );\n const viewportRef = React.useRef<HTMLOListElement>(null);\n\n const sortToasts = React.useCallback(() => {\n const toastElements = Array.from(toastElementsMapRef.current).reverse();\n const heights: number[] = [];\n\n toastElements.forEach(([, toast], index) => {\n if (!toast) return;\n const height = toast.clientHeight;\n heights.push(height);\n const frontToastHeight = heights[0];\n toast.setAttribute(\"data-front\", `${index === 0}`);\n toast.setAttribute(\"data-hidden\", `${index > 2}`);\n toast.style.setProperty(\"--index\", `${index}`);\n toast.style.setProperty(\"--height\", `${height}px`);\n toast.style.setProperty(\"--front-height\", `${frontToastHeight}px`);\n const hoverOffsetY = heights\n .slice(0, index)\n .reduce((res, next) => (res += next), 0);\n toast.style.setProperty(\"--hover-offset-y\", `-${hoverOffsetY}px`);\n });\n }, []);\n\n const handleAddToast = React.useCallback((toast: Toast) => {\n setToasts((currentToasts) => {\n const newMap = new Map(currentToasts);\n newMap.set(String(Date.now()), { ...toast, open: true });\n\n return newMap;\n });\n }, []);\n\n const handleRemoveToast = React.useCallback((key: string) => {\n setToasts((currentToasts) => {\n const newMap = new Map(currentToasts);\n newMap.delete(key);\n\n return newMap;\n });\n }, []);\n\n const handleDispatchDefault = React.useCallback(\n (payload: AddToastPayload) =>\n handleAddToast({ ...payload, status: \"default\" }),\n [handleAddToast],\n );\n\n const handleDispatchSuccess = React.useCallback(\n (payload: AddToastPayload) =>\n handleAddToast({ ...payload, status: \"success\" }),\n [handleAddToast],\n );\n\n const handleDispatchError = React.useCallback(\n (payload: AddToastPayload) =>\n // default duration of 10 mins for `status: \"error\"`.\n handleAddToast({ duration: 60 * 1000 * 10, ...payload, status: \"error\" }),\n [handleAddToast],\n );\n\n React.useEffect(() => {\n const viewport = viewportRef.current;\n\n if (viewport) {\n const handleFocus = () => {\n toastElementsMapRef.current.forEach((toast) => {\n toast.setAttribute(\"data-hovering\", \"true\");\n });\n };\n\n // @ts-expect-error TODO: get the correct type\n const handleBlur = (event) => {\n if (!viewport.contains(event.target) || viewport === event.target) {\n toastElementsMapRef.current.forEach((toast) => {\n toast.setAttribute(\"data-hovering\", \"false\");\n });\n }\n };\n\n viewport.addEventListener(\"pointermove\", handleFocus);\n viewport.addEventListener(\"pointerleave\", handleBlur);\n viewport.addEventListener(\"focusin\", handleFocus);\n viewport.addEventListener(\"focusout\", handleBlur);\n\n return () => {\n viewport.removeEventListener(\"pointermove\", handleFocus);\n viewport.removeEventListener(\"pointerleave\", handleBlur);\n viewport.removeEventListener(\"focusin\", handleFocus);\n viewport.removeEventListener(\"focusout\", handleBlur);\n };\n }\n }, []);\n\n const toastApi = React.useMemo(\n () =>\n Object.assign(handleDispatchDefault, {\n success: handleDispatchSuccess,\n error: handleDispatchError,\n }),\n [handleDispatchDefault, handleDispatchSuccess, handleDispatchError],\n );\n\n return (\n <ToastContext.Provider value={toastApi}>\n <ToastContextImpl.Provider\n value={React.useMemo(\n () => ({\n toastElementsMapRef,\n sortToasts,\n }),\n [sortToasts],\n )}\n >\n <ToastPrimitives.Provider {...props}>\n {children}\n {Array.from(toasts).map(([key, toast]) => (\n <Toast\n key={key}\n id={key}\n toast={toast}\n onOpenChange={(open) => {\n if (!open) {\n toastElementsMapRef.current.delete(key);\n sortToasts();\n\n if (!open) {\n setTimeout(() => {\n handleRemoveToast(key);\n }, ANIMATION_OUT_DURATION);\n }\n }\n }}\n />\n ))}\n <ToastPrimitives.Viewport\n ref={viewportRef}\n className={toastViewport}\n />\n </ToastPrimitives.Provider>\n </ToastContextImpl.Provider>\n </ToastContext.Provider>\n );\n};\n\nconst Toast = ({ ...props }: ToastPrimitives.ToastProps & { toast: Toast }) => {\n const { onOpenChange, toast, id, ...toastProps } = props;\n const ref = React.useRef<HTMLLIElement>(null);\n const context = React.useContext(ToastContextImpl);\n const { sortToasts, toastElementsMapRef } = context;\n const toastElementsMap = toastElementsMapRef.current;\n\n React.useLayoutEffect(() => {\n if (ref.current) {\n toastElementsMap?.set(id as string, ref.current);\n sortToasts();\n }\n }, [id, sortToasts, toastElementsMap]);\n\n return (\n <ToastPrimitives.Root\n {...toastProps}\n ref={ref}\n type={toast.type}\n duration={toast.duration}\n className={toastRoot}\n onOpenChange={onOpenChange}\n >\n <div className={toastInner} data-status={toast.status}>\n <ToastStatusIcon status={toast.status} />\n <ToastPrimitives.Title asChild style={{ gridArea: \"title\" }}>\n <Heading level=\"6\">{toast.title}</Heading>\n </ToastPrimitives.Title>\n <ToastPrimitives.Description\n asChild\n style={{ gridArea: \"description\" }}\n >\n <Text color=\"subtle\" size=\"2\">\n {toast.description}\n </Text>\n </ToastPrimitives.Description>\n {toast.action}\n <ToastPrimitives.Close\n aria-label=\"Close\"\n asChild\n className={toastClose}\n >\n <IconButton variant=\"outline\">\n <Cross2Icon />\n </IconButton>\n </ToastPrimitives.Close>\n </div>\n </ToastPrimitives.Root>\n );\n};\n\nconst ToastStatusIcon = ({ status }: { status: Toast[\"status\"] }) => {\n return status !== \"default\" ? (\n <div style={{ gridArea: \"icon\", alignSelf: \"start\" }}>\n {status === \"success\" && <CheckmarkIcon />}\n {status === \"error\" && <ErrorIcon />}\n </div>\n ) : null;\n};\n\nconst ErrorIcon = () => <div aria-hidden className={error} />;\nconst CheckmarkIcon = () => <div aria-hidden className={checkmark} />;\n\nexport const ToastAction = ({\n ...props\n}: Omit<ToastPrimitives.ToastActionProps, \"asChild\">) => {\n return (\n <ToastPrimitives.Action\n {...props}\n style={{ gridArea: \"action\", ...props.style }}\n asChild\n >\n <Button size=\"1\" variant=\"outline\">\n {props.children}\n </Button>\n </ToastPrimitives.Action>\n );\n};\n"],"mappings":"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","names":["storageKey","theme","colorScheme","defaultTheme","systemThemes","classes","getSystemTheme","React","jsx","jsxs","defaultContext","toastElementsMapRef"]}
@@ -48,7 +48,7 @@ declare const skeletonRecipe: homemade_recipes.RuntimeFn<{
48
48
  width: `var(--${string})` | `var(--${string}, ${string})`;
49
49
  };
50
50
  };
51
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
51
+ }, never[]>;
52
52
  type SkeletonVariants = NonNullable<HomemadeRecipeVariants<typeof skeletonRecipe>>;
53
53
 
54
54
  export { type SkeletonVariants as S, skeletonRecipe as s };
@@ -48,7 +48,7 @@ declare const skeletonRecipe: homemade_recipes.RuntimeFn<{
48
48
  width: `var(--${string})` | `var(--${string}, ${string})`;
49
49
  };
50
50
  };
51
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
51
+ }, never[]>;
52
52
  type SkeletonVariants = NonNullable<HomemadeRecipeVariants<typeof skeletonRecipe>>;
53
53
 
54
54
  export { type SkeletonVariants as S, skeletonRecipe as s };
@@ -0,0 +1,22 @@
1
+ import * as homemade_recipes from 'homemade-recipes';
2
+ import { HomemadeRecipeVariants } from 'homemade-recipes';
3
+
4
+ declare const spinnerRecipe: homemade_recipes.RuntimeFn<{
5
+ size: {
6
+ "1": {
7
+ height: `var(--${string})` | `var(--${string}, ${string})`;
8
+ width: `var(--${string})` | `var(--${string}, ${string})`;
9
+ };
10
+ "2": {
11
+ height: `var(--${string})` | `var(--${string}, ${string})`;
12
+ width: `var(--${string})` | `var(--${string}, ${string})`;
13
+ };
14
+ "3": {
15
+ height: `var(--${string})` | `var(--${string}, ${string})`;
16
+ width: `var(--${string})` | `var(--${string}, ${string})`;
17
+ };
18
+ };
19
+ }, never[]>;
20
+ type SpinnerVariants = HomemadeRecipeVariants<typeof spinnerRecipe>;
21
+
22
+ export { type SpinnerVariants as S, spinnerRecipe as s };
@@ -0,0 +1,22 @@
1
+ import * as homemade_recipes from 'homemade-recipes';
2
+ import { HomemadeRecipeVariants } from 'homemade-recipes';
3
+
4
+ declare const spinnerRecipe: homemade_recipes.RuntimeFn<{
5
+ size: {
6
+ "1": {
7
+ height: `var(--${string})` | `var(--${string}, ${string})`;
8
+ width: `var(--${string})` | `var(--${string}, ${string})`;
9
+ };
10
+ "2": {
11
+ height: `var(--${string})` | `var(--${string}, ${string})`;
12
+ width: `var(--${string})` | `var(--${string}, ${string})`;
13
+ };
14
+ "3": {
15
+ height: `var(--${string})` | `var(--${string}, ${string})`;
16
+ width: `var(--${string})` | `var(--${string}, ${string})`;
17
+ };
18
+ };
19
+ }, never[]>;
20
+ type SpinnerVariants = HomemadeRecipeVariants<typeof spinnerRecipe>;
21
+
22
+ export { type SpinnerVariants as S, spinnerRecipe as s };
@@ -29,7 +29,7 @@ declare const statusRecipe: homemade_recipes.RuntimeFn<{
29
29
  backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
30
30
  };
31
31
  };
32
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
32
+ }, never[]>;
33
33
  type StatusVariants = NonNullable<HomemadeRecipeVariants<typeof statusRecipe>>;
34
34
 
35
35
  export { type StatusVariants as S, statusRecipe as s };
@@ -29,7 +29,7 @@ declare const statusRecipe: homemade_recipes.RuntimeFn<{
29
29
  backgroundColor: `var(--${string})` | `var(--${string}, ${string})`;
30
30
  };
31
31
  };
32
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
32
+ }, never[]>;
33
33
  type StatusVariants = NonNullable<HomemadeRecipeVariants<typeof statusRecipe>>;
34
34
 
35
35
  export { type StatusVariants as S, statusRecipe as s };
@@ -12,7 +12,7 @@ declare const switchRecipe: homemade_recipes.RuntimeFn<{
12
12
  height: `var(--${string})` | `var(--${string}, ${string})`;
13
13
  };
14
14
  };
15
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
15
+ }, never[]>;
16
16
  type SwitchVariants = NonNullable<HomemadeRecipeVariants<typeof switchRecipe>>;
17
17
  declare const switchThumbRecipe: homemade_recipes.RuntimeFn<{
18
18
  size: {
@@ -35,7 +35,7 @@ declare const switchThumbRecipe: homemade_recipes.RuntimeFn<{
35
35
  };
36
36
  };
37
37
  };
38
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
38
+ }, never[]>;
39
39
  type SwitchThumbVariants = NonNullable<HomemadeRecipeVariants<typeof switchThumbRecipe>>;
40
40
 
41
41
  export { type SwitchVariants as S, type SwitchThumbVariants as a, switchThumbRecipe as b, switchRecipe as s };
@@ -12,7 +12,7 @@ declare const switchRecipe: homemade_recipes.RuntimeFn<{
12
12
  height: `var(--${string})` | `var(--${string}, ${string})`;
13
13
  };
14
14
  };
15
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
15
+ }, never[]>;
16
16
  type SwitchVariants = NonNullable<HomemadeRecipeVariants<typeof switchRecipe>>;
17
17
  declare const switchThumbRecipe: homemade_recipes.RuntimeFn<{
18
18
  size: {
@@ -35,7 +35,7 @@ declare const switchThumbRecipe: homemade_recipes.RuntimeFn<{
35
35
  };
36
36
  };
37
37
  };
38
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
38
+ }, never[]>;
39
39
  type SwitchThumbVariants = NonNullable<HomemadeRecipeVariants<typeof switchThumbRecipe>>;
40
40
 
41
41
  export { type SwitchVariants as S, type SwitchThumbVariants as a, switchThumbRecipe as b, switchRecipe as s };
@@ -69,7 +69,7 @@ declare const textAreaRecipe: homemade_recipes.RuntimeFn<{
69
69
  boxShadow: "none";
70
70
  };
71
71
  };
72
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
72
+ }, never[]>;
73
73
  type TextAreaVariants = NonNullable<HomemadeRecipeVariants<typeof textAreaRecipe>>;
74
74
 
75
75
  export { type TextAreaVariants as T, textAreaRecipe as t };
@@ -69,7 +69,7 @@ declare const textAreaRecipe: homemade_recipes.RuntimeFn<{
69
69
  boxShadow: "none";
70
70
  };
71
71
  };
72
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
72
+ }, never[]>;
73
73
  type TextAreaVariants = NonNullable<HomemadeRecipeVariants<typeof textAreaRecipe>>;
74
74
 
75
75
  export { type TextAreaVariants as T, textAreaRecipe as t };
@@ -69,7 +69,7 @@ declare const textFieldRecipe: homemade_recipes.RuntimeFn<{
69
69
  boxShadow: "none";
70
70
  };
71
71
  };
72
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
72
+ }, never[]>;
73
73
  type TextFieldVariants = NonNullable<HomemadeRecipeVariants<typeof textFieldRecipe>>;
74
74
 
75
75
  export { type TextFieldVariants as T, textFieldRecipe as t };
@@ -69,7 +69,7 @@ declare const textFieldRecipe: homemade_recipes.RuntimeFn<{
69
69
  boxShadow: "none";
70
70
  };
71
71
  };
72
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
72
+ }, never[]>;
73
73
  type TextFieldVariants = NonNullable<HomemadeRecipeVariants<typeof textFieldRecipe>>;
74
74
 
75
75
  export { type TextFieldVariants as T, textFieldRecipe as t };
@@ -56,7 +56,7 @@ declare const textRecipe: homemade_recipes.RuntimeFn<{
56
56
  fontWeight: `var(--${string})` | `var(--${string}, ${string})`;
57
57
  };
58
58
  };
59
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
59
+ }, never[]>;
60
60
  type TextVariants = NonNullable<HomemadeRecipeVariants<typeof textRecipe>>;
61
61
 
62
62
  export { type TextVariants as T, textRecipe as t };
@@ -56,7 +56,7 @@ declare const textRecipe: homemade_recipes.RuntimeFn<{
56
56
  fontWeight: `var(--${string})` | `var(--${string}, ${string})`;
57
57
  };
58
58
  };
59
- }, ("xs" | "sm" | "md" | "lg" | "xl")[]>;
59
+ }, never[]>;
60
60
  type TextVariants = NonNullable<HomemadeRecipeVariants<typeof textRecipe>>;
61
61
 
62
62
  export { type TextVariants as T, textRecipe as t };