@abumble/design-system 0.0.37 → 0.0.39

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 (70) hide show
  1. package/dist/components/BackLink/BackLink.d.ts.map +1 -1
  2. package/dist/components/Banner/Banner.d.ts +7 -5
  3. package/dist/components/Banner/Banner.d.ts.map +1 -1
  4. package/dist/components/Banner.js +15 -5
  5. package/dist/components/Banner.js.map +1 -1
  6. package/dist/components/BannerHeader.js +1 -1
  7. package/dist/components/Carousel/Carousel.d.ts.map +1 -1
  8. package/dist/components/Carousel.js +36 -36
  9. package/dist/components/Carousel.js.map +1 -1
  10. package/dist/components/Dialog.js +1 -1
  11. package/dist/components/PageHeader.js +1 -1
  12. package/dist/components/Select.js +2 -22
  13. package/dist/components/Select.js.map +1 -1
  14. package/dist/components/Sheet.js +1 -1
  15. package/dist/components/Sidebar.js +2 -2
  16. package/dist/components/ThemeSelector/ThemeSelector.d.ts +2 -0
  17. package/dist/components/ThemeSelector/ThemeSelector.d.ts.map +1 -0
  18. package/dist/components/ThemeSelector/index.d.ts +2 -0
  19. package/dist/components/ThemeSelector/index.d.ts.map +1 -0
  20. package/dist/components/ThemeSelector.js +24 -0
  21. package/dist/components/ThemeSelector.js.map +1 -0
  22. package/dist/components/ThemeToggle/ThemeToggle.d.ts +2 -0
  23. package/dist/components/ThemeToggle/ThemeToggle.d.ts.map +1 -0
  24. package/dist/components/ThemeToggle/index.d.ts +2 -0
  25. package/dist/components/ThemeToggle/index.d.ts.map +1 -0
  26. package/dist/components/ThemeToggle.js +24 -0
  27. package/dist/components/ThemeToggle.js.map +1 -0
  28. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  29. package/dist/components/Tooltip.js +1 -1
  30. package/dist/components/UnderConstruction.js +1 -1
  31. package/dist/hooks/use-mobile.d.ts.map +1 -1
  32. package/dist/index.css +1 -0
  33. package/dist/shared/BackLink.js +25 -19
  34. package/dist/shared/BackLink.js.map +1 -1
  35. package/dist/shared/Dialog.js +2 -2
  36. package/dist/shared/Empty.js +1 -1
  37. package/dist/shared/Empty.js.map +1 -1
  38. package/dist/shared/PageHeader.js +2 -2
  39. package/dist/shared/Select.js +25 -0
  40. package/dist/shared/Select.js.map +1 -0
  41. package/dist/shared/Sheet.js +11 -11
  42. package/dist/shared/Sheet.js.map +1 -1
  43. package/dist/shared/Skeleton.js +7 -7
  44. package/dist/shared/Skeleton.js.map +1 -1
  45. package/dist/shared/Tooltip.js +12 -12
  46. package/dist/shared/Tooltip.js.map +1 -1
  47. package/dist/shared/use-mobile.js +6 -4
  48. package/dist/shared/use-mobile.js.map +1 -1
  49. package/dist/shared/useTheme.js +12 -0
  50. package/dist/shared/useTheme.js.map +1 -0
  51. package/dist/themes/ThemeContext.d.ts +10 -0
  52. package/dist/themes/ThemeContext.d.ts.map +1 -0
  53. package/dist/themes/ThemeProvider.d.ts +9 -0
  54. package/dist/themes/ThemeProvider.d.ts.map +1 -0
  55. package/dist/themes/index.d.ts +3 -0
  56. package/dist/themes/index.d.ts.map +1 -0
  57. package/dist/themes/theme.d.ts +2 -0
  58. package/dist/themes/theme.d.ts.map +1 -0
  59. package/dist/themes/useTheme.d.ts +2 -0
  60. package/dist/themes/useTheme.d.ts.map +1 -0
  61. package/dist/themes.js +50 -0
  62. package/dist/themes.js.map +1 -0
  63. package/package.json +16 -144
  64. package/src/themes/ThemeContext.ts +12 -0
  65. package/src/themes/ThemeProvider.tsx +86 -0
  66. package/src/themes/index.ts +2 -0
  67. package/src/themes/linen.css +131 -0
  68. package/src/themes/steel.css +131 -0
  69. package/src/themes/theme.tsx +3 -0
  70. package/src/themes/useTheme.ts +8 -0
@@ -1,38 +1,44 @@
1
- import { jsxs as d, jsx as t, Fragment as f } from "react/jsx-runtime";
2
- import { c as h } from "./utils.js";
1
+ import { jsx as t, jsxs as d, Fragment as h } from "react/jsx-runtime";
2
+ import { c as f } from "./utils.js";
3
3
  import { ChevronLeft as k } from "lucide-react";
4
- import * as s from "react";
5
- const o = (e) => /* @__PURE__ */ d(f, { children: [
4
+ import * as o from "react";
5
+ const s = (e) => /* @__PURE__ */ d(h, { children: [
6
6
  /* @__PURE__ */ t(k, { className: "size-4 shrink-0", "aria-hidden": !0 }),
7
7
  /* @__PURE__ */ t("span", { children: e })
8
8
  ] });
9
9
  function g({
10
10
  label: e,
11
- asChild: a = !1,
12
- className: i,
13
- children: c,
14
- ...n
11
+ asChild: i = !1,
12
+ className: c,
13
+ children: l,
14
+ ...r
15
15
  }) {
16
- const r = h(
16
+ const n = f(
17
17
  "inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground",
18
- i
18
+ c
19
19
  );
20
- if (a) {
21
- const l = s.Children.only(c), m = {
20
+ if (i) {
21
+ let a;
22
+ try {
23
+ a = o.Children.only(l);
24
+ } catch {
25
+ throw new Error("BackLink with asChild requires exactly one child element.");
26
+ }
27
+ const m = {
22
28
  "data-slot": "back-link",
23
- className: r,
24
- ...n,
25
- children: o(e)
29
+ className: n,
30
+ ...r,
31
+ children: s(e)
26
32
  };
27
- return s.cloneElement(l, m);
33
+ return o.cloneElement(a, m);
28
34
  }
29
35
  return /* @__PURE__ */ t(
30
36
  "a",
31
37
  {
32
38
  "data-slot": "back-link",
33
- className: r,
34
- ...n,
35
- children: o(e)
39
+ className: n,
40
+ ...r,
41
+ children: s(e)
36
42
  }
37
43
  );
38
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BackLink.js","sources":["../../src/components/BackLink/BackLink.tsx"],"sourcesContent":["import { cn } from '@/utils'\nimport { ChevronLeft } from 'lucide-react'\nimport * as React from 'react'\n\nexport interface BackLinkProps extends React.ComponentProps<'a'> {\n\t/** Link text, e.g. \"Back to properties\". */\n\tlabel: string\n\t/** If true, renders the provided child element as the link. Use with router Link components. */\n\tasChild?: boolean\n}\n\nconst slotContent = (label: string) => (\n\t<>\n\t\t<ChevronLeft className=\"size-4 shrink-0\" aria-hidden />\n\t\t<span>{label}</span>\n\t</>\n)\n\n/**\n * Back link with chevron icon. Router-agnostic via asChild pattern.\n *\n * @example\n * // With TanStack Router:\n * <BackLink asChild label=\"Back to properties\">\n * <Link to=\"..\" replace />\n * </BackLink>\n *\n * @example\n * // Plain link:\n * <BackLink href=\"/properties\" label=\"Back to properties\" />\n */\nexport function BackLink({\n\tlabel,\n\tasChild = false,\n\tclassName,\n\tchildren,\n\t...props\n}: BackLinkProps) {\n\tconst slotClassName = cn(\n\t\t'inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground',\n\t\tclassName,\n\t)\n\n\tif (asChild) {\n\t\tconst child = React.Children.only(children) as React.ReactElement\n\t\tconst mergedProps = {\n\t\t\t'data-slot': 'back-link',\n\t\t\tclassName: slotClassName,\n\t\t\t...props,\n\t\t\tchildren: slotContent(label),\n\t\t}\n\t\treturn React.cloneElement(child, mergedProps)\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tdata-slot=\"back-link\"\n\t\t\tclassName={slotClassName}\n\t\t\t{...props}\n\t\t>\n\t\t\t{slotContent(label)}\n\t\t</a>\n\t)\n}\n"],"names":["slotContent","label","jsxs","Fragment","jsx","ChevronLeft","BackLink","asChild","className","children","props","slotClassName","cn","child","React","mergedProps"],"mappings":";;;;AAWA,MAAMA,IAAc,CAACC,MACpB,gBAAAC,EAAAC,GAAA,EACC,UAAA;AAAA,EAAA,gBAAAC,EAACC,GAAA,EAAY,WAAU,mBAAkB,eAAW,IAAC;AAAA,EACrD,gBAAAD,EAAC,UAAM,UAAAH,EAAA,CAAM;AAAA,GACd;AAgBM,SAASK,EAAS;AAAA,EACxB,OAAAL;AAAA,EACA,SAAAM,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACJ,GAAkB;AACjB,QAAMC,IAAgBC;AAAA,IACrB;AAAA,IACAJ;AAAA,EAAA;AAGD,MAAID,GAAS;AACZ,UAAMM,IAAQC,EAAM,SAAS,KAAKL,CAAQ,GACpCM,IAAc;AAAA,MACnB,aAAa;AAAA,MACb,WAAWJ;AAAA,MACX,GAAGD;AAAA,MACH,UAAUV,EAAYC,CAAK;AAAA,IAAA;AAE5B,WAAOa,EAAM,aAAaD,GAAOE,CAAW;AAAA,EAC7C;AAEA,SACC,gBAAAX;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWO;AAAA,MACV,GAAGD;AAAA,MAEH,YAAYT,CAAK;AAAA,IAAA;AAAA,EAAA;AAGrB;"}
1
+ {"version":3,"file":"BackLink.js","sources":["../../src/components/BackLink/BackLink.tsx"],"sourcesContent":["import { cn } from '@/utils'\nimport { ChevronLeft } from 'lucide-react'\nimport * as React from 'react'\n\nexport interface BackLinkProps extends React.ComponentProps<'a'> {\n\t/** Link text, e.g. \"Back to properties\". */\n\tlabel: string\n\t/** If true, renders the provided child element as the link. Use with router Link components. */\n\tasChild?: boolean\n}\n\nconst slotContent = (label: string) => (\n\t<>\n\t\t<ChevronLeft className=\"size-4 shrink-0\" aria-hidden />\n\t\t<span>{label}</span>\n\t</>\n)\n\n/**\n * Back link with chevron icon. Router-agnostic via asChild pattern.\n *\n * @example\n * // With TanStack Router:\n * <BackLink asChild label=\"Back to properties\">\n * <Link to=\"..\" replace />\n * </BackLink>\n *\n * @example\n * // Plain link:\n * <BackLink href=\"/properties\" label=\"Back to properties\" />\n */\nexport function BackLink({\n\tlabel,\n\tasChild = false,\n\tclassName,\n\tchildren,\n\t...props\n}: BackLinkProps) {\n\tconst slotClassName = cn(\n\t\t'inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground',\n\t\tclassName,\n\t)\n\n\tif (asChild) {\n\t\tlet child: React.ReactElement\n\t\ttry {\n\t\t\tchild = React.Children.only(children) as React.ReactElement\n\t\t} catch {\n\t\t\tthrow new Error('BackLink with asChild requires exactly one child element.')\n\t\t}\n\t\tconst mergedProps = {\n\t\t\t'data-slot': 'back-link',\n\t\t\tclassName: slotClassName,\n\t\t\t...props,\n\t\t\tchildren: slotContent(label),\n\t\t}\n\t\treturn React.cloneElement(child, mergedProps)\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tdata-slot=\"back-link\"\n\t\t\tclassName={slotClassName}\n\t\t\t{...props}\n\t\t>\n\t\t\t{slotContent(label)}\n\t\t</a>\n\t)\n}\n"],"names":["slotContent","label","jsxs","Fragment","jsx","ChevronLeft","BackLink","asChild","className","children","props","slotClassName","cn","child","React","mergedProps"],"mappings":";;;;AAWA,MAAMA,IAAc,CAACC,MACpB,gBAAAC,EAAAC,GAAA,EACC,UAAA;AAAA,EAAA,gBAAAC,EAACC,GAAA,EAAY,WAAU,mBAAkB,eAAW,IAAC;AAAA,EACrD,gBAAAD,EAAC,UAAM,UAAAH,EAAA,CAAM;AAAA,GACd;AAgBM,SAASK,EAAS;AAAA,EACxB,OAAAL;AAAA,EACA,SAAAM,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACJ,GAAkB;AACjB,QAAMC,IAAgBC;AAAA,IACrB;AAAA,IACAJ;AAAA,EAAA;AAGD,MAAID,GAAS;AACZ,QAAIM;AACJ,QAAI;AACH,MAAAA,IAAQC,EAAM,SAAS,KAAKL,CAAQ;AAAA,IACrC,QAAQ;AACP,YAAM,IAAI,MAAM,2DAA2D;AAAA,IAC5E;AACA,UAAMM,IAAc;AAAA,MACnB,aAAa;AAAA,MACb,WAAWJ;AAAA,MACX,GAAGD;AAAA,MACH,UAAUV,EAAYC,CAAK;AAAA,IAAA;AAE5B,WAAOa,EAAM,aAAaD,GAAOE,CAAW;AAAA,EAC7C;AAEA,SACC,gBAAAX;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWO;AAAA,MACV,GAAGD;AAAA,MAEH,YAAYT,CAAK;AAAA,IAAA;AAAA,EAAA;AAGrB;"}
@@ -209,7 +209,7 @@ function j({
209
209
  }
210
210
  export {
211
211
  h as D,
212
- j as F,
212
+ p as F,
213
213
  y as W,
214
214
  F as a,
215
215
  v as b,
@@ -220,6 +220,6 @@ export {
220
220
  x as g,
221
221
  N as h,
222
222
  z as i,
223
- p as j
223
+ j
224
224
  };
225
225
  //# sourceMappingURL=Dialog.js.map
@@ -68,7 +68,7 @@ function u({ className: e, ...t }) {
68
68
  }
69
69
  function p({ className: e, ...t }) {
70
70
  return /* @__PURE__ */ a(
71
- "div",
71
+ "p",
72
72
  {
73
73
  "data-slot": "empty-description",
74
74
  className: n(
@@ -1 +1 @@
1
- {"version":3,"file":"Empty.js","sources":["../../src/components/Empty/Empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-header\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex max-w-sm flex-col items-center gap-2 text-center\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nconst emptyMediaVariants = cva(\n\t\"flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"bg-transparent\",\n\t\t\t\ticon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t},\n\t}\n)\n\nfunction EmptyMedia({\n\tclassName,\n\tvariant = \"default\",\n\t...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-icon\"\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(emptyMediaVariants({ variant, className }))}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-title\"\n\t\t\tclassName={cn(\"text-lg font-medium tracking-tight\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-description\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tEmpty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle\n}\n\n"],"names":["Empty","className","props","jsx","cn","EmptyHeader","emptyMediaVariants","cva","EmptyMedia","variant","EmptyTitle","EmptyDescription","EmptyContent"],"mappings":";;;AAIA,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAAsC;AACpE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASG,EAAY,EAAE,WAAAJ,GAAW,GAAGC,KAAsC;AAC1E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,MAAMI,IAAqBC;AAAA,EAC1B;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,IAAA;AAAA,EACV;AAEF;AAEA,SAASC,EAAW;AAAA,EACnB,WAAAP;AAAA,EACA,SAAAQ,IAAU;AAAA,EACV,GAAGP;AACJ,GAA0E;AACzE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,gBAAcM;AAAA,MACd,WAAWL,EAAGE,EAAmB,EAAE,SAAAG,GAAS,WAAAR,EAAA,CAAW,CAAC;AAAA,MACvD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASQ,EAAW,EAAE,WAAAT,GAAW,GAAGC,KAAsC;AACzE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAG,sCAAsCH,CAAS;AAAA,MAC5D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASS,EAAiB,EAAE,WAAAV,GAAW,GAAGC,KAAoC;AAC7E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASU,EAAa,EAAE,WAAAX,GAAW,GAAGC,KAAsC;AAC3E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"Empty.js","sources":["../../src/components/Empty/Empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-header\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex max-w-sm flex-col items-center gap-2 text-center\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nconst emptyMediaVariants = cva(\n\t\"flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"bg-transparent\",\n\t\t\t\ticon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t},\n\t}\n)\n\nfunction EmptyMedia({\n\tclassName,\n\tvariant = \"default\",\n\t...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-icon\"\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(emptyMediaVariants({ variant, className }))}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-title\"\n\t\t\tclassName={cn(\"text-lg font-medium tracking-tight\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"empty-description\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"empty-content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tEmpty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle\n}\n\n"],"names":["Empty","className","props","jsx","cn","EmptyHeader","emptyMediaVariants","cva","EmptyMedia","variant","EmptyTitle","EmptyDescription","EmptyContent"],"mappings":";;;AAIA,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAAsC;AACpE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASG,EAAY,EAAE,WAAAJ,GAAW,GAAGC,KAAsC;AAC1E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,MAAMI,IAAqBC;AAAA,EAC1B;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,IAAA;AAAA,EACV;AAEF;AAEA,SAASC,EAAW;AAAA,EACnB,WAAAP;AAAA,EACA,SAAAQ,IAAU;AAAA,EACV,GAAGP;AACJ,GAA0E;AACzE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,gBAAcM;AAAA,MACd,WAAWL,EAAGE,EAAmB,EAAE,SAAAG,GAAS,WAAAR,EAAA,CAAW,CAAC;AAAA,MACvD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASQ,EAAW,EAAE,WAAAT,GAAW,GAAGC,KAAsC;AACzE,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAG,sCAAsCH,CAAS;AAAA,MAC5D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASS,EAAiB,EAAE,WAAAV,GAAW,GAAGC,KAAoC;AAC7E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASU,EAAa,EAAE,WAAAX,GAAW,GAAGC,KAAsC;AAC3E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -53,7 +53,7 @@ function c({
53
53
  );
54
54
  }
55
55
  export {
56
- f as P,
57
- c as a
56
+ c as P,
57
+ f as a
58
58
  };
59
59
  //# sourceMappingURL=PageHeader.js.map
@@ -0,0 +1,25 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import "react";
3
+ import { c as s } from "./utils.js";
4
+ function l({
5
+ className: e,
6
+ ...o
7
+ }) {
8
+ return /* @__PURE__ */ r(
9
+ "select",
10
+ {
11
+ "data-slot": "select",
12
+ className: s(
13
+ "flex h-9 w-full rounded border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors outline-none",
14
+ "focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:border-ring",
15
+ "disabled:pointer-events-none disabled:opacity-50",
16
+ e
17
+ ),
18
+ ...o
19
+ }
20
+ );
21
+ }
22
+ export {
23
+ l as S
24
+ };
25
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":["../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/utils'\n\n/** Native select styled to match design-system Input (form control). */\nexport function Select({\n\tclassName,\n\t...props\n}: React.ComponentProps<'select'>) {\n\treturn (\n\t\t<select\n\t\t\tdata-slot=\"select\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex h-9 w-full rounded border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors outline-none',\n\t\t\t\t'focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:border-ring',\n\t\t\t\t'disabled:pointer-events-none disabled:opacity-50',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n"],"names":["Select","className","props","jsx","cn"],"mappings":";;;AAKO,SAASA,EAAO;AAAA,EACtB,WAAAC;AAAA,EACA,GAAGC;AACJ,GAAmC;AAClC,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -60,7 +60,7 @@ function x({
60
60
  ...i,
61
61
  children: [
62
62
  a,
63
- /* @__PURE__ */ r(o.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
63
+ /* @__PURE__ */ r(o.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none", children: [
64
64
  /* @__PURE__ */ e(l, { className: "size-4" }),
65
65
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
66
66
  ] })
@@ -79,7 +79,7 @@ function S({ className: t, ...a }) {
79
79
  }
80
80
  );
81
81
  }
82
- function y({ className: t, ...a }) {
82
+ function v({ className: t, ...a }) {
83
83
  return /* @__PURE__ */ e(
84
84
  "div",
85
85
  {
@@ -89,7 +89,7 @@ function y({ className: t, ...a }) {
89
89
  }
90
90
  );
91
91
  }
92
- function N({
92
+ function y({
93
93
  className: t,
94
94
  ...a
95
95
  }) {
@@ -102,7 +102,7 @@ function N({
102
102
  }
103
103
  );
104
104
  }
105
- function v({
105
+ function N({
106
106
  className: t,
107
107
  ...a
108
108
  }) {
@@ -117,12 +117,12 @@ function v({
117
117
  }
118
118
  export {
119
119
  p as S,
120
- g as a,
121
- b,
122
- x as c,
123
- S as d,
124
- y as e,
125
- N as f,
126
- v as g
120
+ b as a,
121
+ x as b,
122
+ N as c,
123
+ v as d,
124
+ S as e,
125
+ y as f,
126
+ g
127
127
  };
128
128
  //# sourceMappingURL=Sheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sheet.js","sources":["../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/utils\"\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n\treturn <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n\treturn <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n\treturn <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n\treturn <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n\treturn (\n\t\t<SheetPrimitive.Overlay\n\t\t\tdata-slot=\"sheet-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetContent({\n\tclassName,\n\tchildren,\n\tside = \"right\",\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n\tside?: \"top\" | \"right\" | \"bottom\" | \"left\"\n}) {\n\treturn (\n\t\t<SheetPortal>\n\t\t\t<SheetOverlay />\n\t\t\t<SheetPrimitive.Content\n\t\t\t\tdata-slot=\"sheet-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n\t\t\t\t\tside === \"right\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm\",\n\t\t\t\t\tside === \"left\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm\",\n\t\t\t\t\tside === \"top\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b\",\n\t\t\t\t\tside === \"bottom\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n\t\t\t\t\t<XIcon className=\"size-4\" />\n\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t</SheetPrimitive.Close>\n\t\t\t</SheetPrimitive.Content>\n\t\t</SheetPortal>\n\t)\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-header\"\n\t\t\tclassName={cn(\"flex flex-col gap-1.5 p-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-footer\"\n\t\t\tclassName={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n\treturn (\n\t\t<SheetPrimitive.Title\n\t\t\tdata-slot=\"sheet-title\"\n\t\t\tclassName={cn(\"text-foreground font-semibold\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n\treturn (\n\t\t<SheetPrimitive.Description\n\t\t\tdata-slot=\"sheet-description\"\n\t\t\tclassName={cn(\"text-muted-foreground text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tSheet,\n\tSheetTrigger,\n\tSheetClose,\n\tSheetContent,\n\tSheetHeader,\n\tSheetFooter,\n\tSheetTitle,\n\tSheetDescription,\n}\n"],"names":["Sheet","props","SheetPrimitive","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","className","jsx","cn","SheetContent","children","side","jsxs","XIcon","SheetHeader","SheetFooter","SheetTitle","SheetDescription"],"mappings":";;;;;AAQA,SAASA,EAAM,EAAE,GAAGC,KAA2D;AAC9E,2BAAQC,EAAe,MAAf,EAAoB,aAAU,SAAS,GAAGD,GAAO;AAC1D;AAEA,SAASE,EAAa;AAAA,EACrB,GAAGF;AACJ,GAAwD;AACvD,2BAAQC,EAAe,SAAf,EAAuB,aAAU,iBAAiB,GAAGD,GAAO;AACrE;AAEA,SAASG,EAAW;AAAA,EACnB,GAAGH;AACJ,GAAsD;AACrD,2BAAQC,EAAe,OAAf,EAAqB,aAAU,eAAe,GAAGD,GAAO;AACjE;AAEA,SAASI,EAAY;AAAA,EACpB,GAAGJ;AACJ,GAAuD;AACtD,2BAAQC,EAAe,QAAf,EAAsB,aAAU,gBAAgB,GAAGD,GAAO;AACnE;AAEA,SAASK,EAAa;AAAA,EACrB,WAAAC;AAAA,EACA,GAAGN;AACJ,GAAwD;AACvD,SACC,gBAAAO;AAAA,IAACN,EAAe;AAAA,IAAf;AAAA,MACA,aAAU;AAAA,MACV,WAAWO;AAAA,QACV;AAAA,QACAF;AAAA,MAAA;AAAA,MAEA,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASS,EAAa;AAAA,EACrB,WAAAH;AAAA,EACA,UAAAI;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGX;AACJ,GAEG;AACF,2BACEI,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAG,EAACF,GAAA,EAAa;AAAA,IACd,gBAAAO;AAAA,MAACX,EAAe;AAAA,MAAf;AAAA,QACA,aAAU;AAAA,QACV,WAAWO;AAAA,UACV;AAAA,UACAG,MAAS,WACT;AAAA,UACAA,MAAS,UACT;AAAA,UACAA,MAAS,SACT;AAAA,UACAA,MAAS,YACT;AAAA,UACAL;AAAA,QAAA;AAAA,QAEA,GAAGN;AAAA,QAEH,UAAA;AAAA,UAAAU;AAAA,UACD,gBAAAE,EAACX,EAAe,OAAf,EAAqB,WAAU,8OAC/B,UAAA;AAAA,YAAA,gBAAAM,EAACM,GAAA,EAAM,WAAU,SAAA,CAAS;AAAA,YAC1B,gBAAAN,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,UAAA,EAAA,CAChC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD,GACD;AAEF;AAEA,SAASO,EAAY,EAAE,WAAAR,GAAW,GAAGN,KAAsC;AAC1E,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAG,6BAA6BF,CAAS;AAAA,MACnD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASe,EAAY,EAAE,WAAAT,GAAW,GAAGN,KAAsC;AAC1E,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAG,mCAAmCF,CAAS;AAAA,MACzD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASgB,EAAW;AAAA,EACnB,WAAAV;AAAA,EACA,GAAGN;AACJ,GAAsD;AACrD,SACC,gBAAAO;AAAA,IAACN,EAAe;AAAA,IAAf;AAAA,MACA,aAAU;AAAA,MACV,WAAWO,EAAG,iCAAiCF,CAAS;AAAA,MACvD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASiB,EAAiB;AAAA,EACzB,WAAAX;AAAA,EACA,GAAGN;AACJ,GAA4D;AAC3D,SACC,gBAAAO;AAAA,IAACN,EAAe;AAAA,IAAf;AAAA,MACA,aAAU;AAAA,MACV,WAAWO,EAAG,iCAAiCF,CAAS;AAAA,MACvD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"Sheet.js","sources":["../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/utils\"\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n\treturn <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n\treturn <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n\treturn <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n\treturn <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n\treturn (\n\t\t<SheetPrimitive.Overlay\n\t\t\tdata-slot=\"sheet-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetContent({\n\tclassName,\n\tchildren,\n\tside = \"right\",\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n\tside?: \"top\" | \"right\" | \"bottom\" | \"left\"\n}) {\n\treturn (\n\t\t<SheetPortal>\n\t\t\t<SheetOverlay />\n\t\t\t<SheetPrimitive.Content\n\t\t\t\tdata-slot=\"sheet-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n\t\t\t\t\tside === \"right\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm\",\n\t\t\t\t\tside === \"left\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm\",\n\t\t\t\t\tside === \"top\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b\",\n\t\t\t\t\tside === \"bottom\" &&\n\t\t\t\t\t\"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none\">\n\t\t\t\t\t<XIcon className=\"size-4\" />\n\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t</SheetPrimitive.Close>\n\t\t\t</SheetPrimitive.Content>\n\t\t</SheetPortal>\n\t)\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-header\"\n\t\t\tclassName={cn(\"flex flex-col gap-1.5 p-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-footer\"\n\t\t\tclassName={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n\treturn (\n\t\t<SheetPrimitive.Title\n\t\t\tdata-slot=\"sheet-title\"\n\t\t\tclassName={cn(\"text-foreground font-semibold\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n\treturn (\n\t\t<SheetPrimitive.Description\n\t\t\tdata-slot=\"sheet-description\"\n\t\t\tclassName={cn(\"text-muted-foreground text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tSheet,\n\tSheetTrigger,\n\tSheetClose,\n\tSheetContent,\n\tSheetHeader,\n\tSheetFooter,\n\tSheetTitle,\n\tSheetDescription,\n}\n"],"names":["Sheet","props","SheetPrimitive","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","className","jsx","cn","SheetContent","children","side","jsxs","XIcon","SheetHeader","SheetFooter","SheetTitle","SheetDescription"],"mappings":";;;;;AAQA,SAASA,EAAM,EAAE,GAAGC,KAA2D;AAC9E,2BAAQC,EAAe,MAAf,EAAoB,aAAU,SAAS,GAAGD,GAAO;AAC1D;AAEA,SAASE,EAAa;AAAA,EACrB,GAAGF;AACJ,GAAwD;AACvD,2BAAQC,EAAe,SAAf,EAAuB,aAAU,iBAAiB,GAAGD,GAAO;AACrE;AAEA,SAASG,EAAW;AAAA,EACnB,GAAGH;AACJ,GAAsD;AACrD,2BAAQC,EAAe,OAAf,EAAqB,aAAU,eAAe,GAAGD,GAAO;AACjE;AAEA,SAASI,EAAY;AAAA,EACpB,GAAGJ;AACJ,GAAuD;AACtD,2BAAQC,EAAe,QAAf,EAAsB,aAAU,gBAAgB,GAAGD,GAAO;AACnE;AAEA,SAASK,EAAa;AAAA,EACrB,WAAAC;AAAA,EACA,GAAGN;AACJ,GAAwD;AACvD,SACC,gBAAAO;AAAA,IAACN,EAAe;AAAA,IAAf;AAAA,MACA,aAAU;AAAA,MACV,WAAWO;AAAA,QACV;AAAA,QACAF;AAAA,MAAA;AAAA,MAEA,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASS,EAAa;AAAA,EACrB,WAAAH;AAAA,EACA,UAAAI;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGX;AACJ,GAEG;AACF,2BACEI,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAG,EAACF,GAAA,EAAa;AAAA,IACd,gBAAAO;AAAA,MAACX,EAAe;AAAA,MAAf;AAAA,QACA,aAAU;AAAA,QACV,WAAWO;AAAA,UACV;AAAA,UACAG,MAAS,WACT;AAAA,UACAA,MAAS,UACT;AAAA,UACAA,MAAS,SACT;AAAA,UACAA,MAAS,YACT;AAAA,UACAL;AAAA,QAAA;AAAA,QAEA,GAAGN;AAAA,QAEH,UAAA;AAAA,UAAAU;AAAA,UACD,gBAAAE,EAACX,EAAe,OAAf,EAAqB,WAAU,0QAC/B,UAAA;AAAA,YAAA,gBAAAM,EAACM,GAAA,EAAM,WAAU,SAAA,CAAS;AAAA,YAC1B,gBAAAN,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,UAAA,EAAA,CAChC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD,GACD;AAEF;AAEA,SAASO,EAAY,EAAE,WAAAR,GAAW,GAAGN,KAAsC;AAC1E,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAG,6BAA6BF,CAAS;AAAA,MACnD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASe,EAAY,EAAE,WAAAT,GAAW,GAAGN,KAAsC;AAC1E,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAG,mCAAmCF,CAAS;AAAA,MACzD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASgB,EAAW;AAAA,EACnB,WAAAV;AAAA,EACA,GAAGN;AACJ,GAAsD;AACrD,SACC,gBAAAO;AAAA,IAACN,EAAe;AAAA,IAAf;AAAA,MACA,aAAU;AAAA,MACV,WAAWO,EAAG,iCAAiCF,CAAS;AAAA,MACvD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASiB,EAAiB;AAAA,EACzB,WAAAX;AAAA,EACA,GAAGN;AACJ,GAA4D;AAC3D,SACC,gBAAAO;AAAA,IAACN,EAAe;AAAA,IAAf;AAAA,MACA,aAAU;AAAA,MACV,WAAWO,EAAG,iCAAiCF,CAAS;AAAA,MACvD,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { c as o } from "./utils.js";
3
- import { cva as r } from "class-variance-authority";
4
- const s = r(
5
- "bg-stone-300 rounded",
2
+ import { c as r } from "./utils.js";
3
+ import { cva as o } from "class-variance-authority";
4
+ const s = o(
5
+ "bg-muted rounded",
6
6
  {
7
7
  variants: {
8
8
  variant: {
@@ -15,17 +15,17 @@ const s = r(
15
15
  }
16
16
  }
17
17
  );
18
- function d({ className: a, variant: t, ...n }) {
18
+ function l({ className: a, variant: t, ...n }) {
19
19
  return /* @__PURE__ */ e(
20
20
  "div",
21
21
  {
22
22
  "data-slot": "skeleton",
23
- className: o(s({ variant: t, className: a })),
23
+ className: r(s({ variant: t, className: a })),
24
24
  ...n
25
25
  }
26
26
  );
27
27
  }
28
28
  export {
29
- d as S
29
+ l as S
30
30
  };
31
31
  //# sourceMappingURL=Skeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.js","sources":["../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from \"@/utils\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n\nconst variants = cva(\n\t\"bg-stone-300 rounded\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"animate-pulse\",\n\t\t\t\tnone: \"\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\"\n\t\t},\n\t}\n)\n\nfunction Skeleton({ className, variant, ...props }: React.ComponentProps<\"div\"> & VariantProps<typeof variants>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"skeleton\"\n\t\t\tclassName={cn(variants({ variant, className }))}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Skeleton };\n"],"names":["variants","cva","Skeleton","className","variant","props","jsx","cn"],"mappings":";;;AAIA,MAAMA,IAAWC;AAAA,EAChB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,IAAA;AAAA,EACV;AAEF;AAEA,SAASC,EAAS,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,KAAsE;AAChH,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAGP,EAAS,EAAE,SAAAI,GAAS,WAAAD,EAAA,CAAW,CAAC;AAAA,MAC7C,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"Skeleton.js","sources":["../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from \"@/utils\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n\nconst variants = cva(\n\t\"bg-muted rounded\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"animate-pulse\",\n\t\t\t\tnone: \"\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\"\n\t\t},\n\t}\n)\n\nfunction Skeleton({ className, variant, ...props }: React.ComponentProps<\"div\"> & VariantProps<typeof variants>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"skeleton\"\n\t\t\tclassName={cn(variants({ variant, className }))}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Skeleton };\n"],"names":["variants","cva","Skeleton","className","variant","props","jsx","cn"],"mappings":";;;AAIA,MAAMA,IAAWC;AAAA,EAChB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,IAED,iBAAiB;AAAA,MAChB,SAAS;AAAA,IAAA;AAAA,EACV;AAEF;AAEA,SAASC,EAAS,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,KAAsE;AAChH,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC,EAAGP,EAAS,EAAE,SAAAI,GAAS,WAAAD,EAAA,CAAW,CAAC;AAAA,MAC7C,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -2,7 +2,7 @@ import { jsx as i, jsxs as n } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import * as o from "@radix-ui/react-tooltip";
4
4
  import { c as d } from "./utils.js";
5
- function s({
5
+ function f({
6
6
  delayDuration: t = 0,
7
7
  ...r
8
8
  }) {
@@ -15,12 +15,12 @@ function s({
15
15
  }
16
16
  );
17
17
  }
18
- function f({
18
+ function m({
19
19
  ...t
20
20
  }) {
21
- return /* @__PURE__ */ i(s, { children: /* @__PURE__ */ i(o.Root, { "data-slot": "tooltip", ...t }) });
21
+ return /* @__PURE__ */ i(o.Root, { "data-slot": "tooltip", ...t });
22
22
  }
23
- function m({
23
+ function c({
24
24
  ...t
25
25
  }) {
26
26
  return /* @__PURE__ */ i(o.Trigger, { "data-slot": "tooltip-trigger", ...t });
@@ -28,8 +28,8 @@ function m({
28
28
  function u({
29
29
  className: t,
30
30
  sideOffset: r = 0,
31
- children: e,
32
- ...a
31
+ children: a,
32
+ ...e
33
33
  }) {
34
34
  return /* @__PURE__ */ i(o.Portal, { children: /* @__PURE__ */ n(
35
35
  o.Content,
@@ -40,18 +40,18 @@ function u({
40
40
  "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded px-3 py-1.5 text-xs text-balance",
41
41
  t
42
42
  ),
43
- ...a,
43
+ ...e,
44
44
  children: [
45
- e,
45
+ a,
46
46
  /* @__PURE__ */ i(o.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
47
47
  ]
48
48
  }
49
49
  ) });
50
50
  }
51
51
  export {
52
- f as T,
53
- m as a,
54
- u as b,
55
- s as c
52
+ m as T,
53
+ u as a,
54
+ f as b,
55
+ c
56
56
  };
57
57
  //# sourceMappingURL=Tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/utils\"\n\nfunction TooltipProvider({\n\tdelayDuration = 0,\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n\treturn (\n\t\t<TooltipPrimitive.Provider\n\t\t\tdata-slot=\"tooltip-provider\"\n\t\t\tdelayDuration={delayDuration}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction Tooltip({\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n\t\t</TooltipProvider>\n\t)\n}\n\nfunction TooltipTrigger({\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n\treturn <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n\tclassName,\n\tsideOffset = 0,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n\treturn (\n\t\t<TooltipPrimitive.Portal>\n\t\t\t<TooltipPrimitive.Content\n\t\t\t\tdata-slot=\"tooltip-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded px-3 py-1.5 text-xs text-balance\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n\t\t\t</TooltipPrimitive.Content>\n\t\t</TooltipPrimitive.Portal>\n\t)\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"names":["TooltipProvider","delayDuration","props","jsx","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","children","jsxs","cn"],"mappings":";;;;AAKA,SAASA,EAAgB;AAAA,EACxB,eAAAC,IAAgB;AAAA,EAChB,GAAGC;AACJ,GAA2D;AAC1D,SACC,gBAAAC;AAAA,IAACC,EAAiB;AAAA,IAAjB;AAAA,MACA,aAAU;AAAA,MACV,eAAAH;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASG,EAAQ;AAAA,EAChB,GAAGH;AACJ,GAAuD;AACtD,SACC,gBAAAC,EAACH,GAAA,EACA,UAAA,gBAAAG,EAACC,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGF,EAAA,CAAO,EAAA,CACvD;AAEF;AAEA,SAASI,EAAe;AAAA,EACvB,GAAGJ;AACJ,GAA0D;AACzD,2BAAQE,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGF,GAAO;AACzE;AAEA,SAASK,EAAe;AAAA,EACvB,WAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAC;AAAA,EACA,GAAGR;AACJ,GAA0D;AACzD,SACC,gBAAAC,EAACC,EAAiB,QAAjB,EACA,UAAA,gBAAAO;AAAA,IAACP,EAAiB;AAAA,IAAjB;AAAA,MACA,aAAU;AAAA,MACV,YAAAK;AAAA,MACA,WAAWG;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGN;AAAA,MAEH,UAAA;AAAA,QAAAQ;AAAA,QACD,gBAAAP,EAACC,EAAiB,OAAjB,EAAuB,WAAU,qGAAA,CAAqG;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEzI;AAEF;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/utils\"\n\nfunction TooltipProvider({\n\tdelayDuration = 0,\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n\treturn (\n\t\t<TooltipPrimitive.Provider\n\t\t\tdata-slot=\"tooltip-provider\"\n\t\t\tdelayDuration={delayDuration}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction Tooltip({\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n\treturn <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n\treturn <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n\tclassName,\n\tsideOffset = 0,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n\treturn (\n\t\t<TooltipPrimitive.Portal>\n\t\t\t<TooltipPrimitive.Content\n\t\t\t\tdata-slot=\"tooltip-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded px-3 py-1.5 text-xs text-balance\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n\t\t\t</TooltipPrimitive.Content>\n\t\t</TooltipPrimitive.Portal>\n\t)\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"names":["TooltipProvider","delayDuration","props","jsx","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","children","jsxs","cn"],"mappings":";;;;AAKA,SAASA,EAAgB;AAAA,EACxB,eAAAC,IAAgB;AAAA,EAChB,GAAGC;AACJ,GAA2D;AAC1D,SACC,gBAAAC;AAAA,IAACC,EAAiB;AAAA,IAAjB;AAAA,MACA,aAAU;AAAA,MACV,eAAAH;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASG,EAAQ;AAAA,EAChB,GAAGH;AACJ,GAAuD;AACtD,2BAAQE,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGF,GAAO;AAC9D;AAEA,SAASI,EAAe;AAAA,EACvB,GAAGJ;AACJ,GAA0D;AACzD,2BAAQE,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGF,GAAO;AACzE;AAEA,SAASK,EAAe;AAAA,EACvB,WAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAC;AAAA,EACA,GAAGR;AACJ,GAA0D;AACzD,SACC,gBAAAC,EAACC,EAAiB,QAAjB,EACA,UAAA,gBAAAO;AAAA,IAACP,EAAiB;AAAA,IAAjB;AAAA,MACA,aAAU;AAAA,MACV,YAAAK;AAAA,MACA,WAAWG;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGN;AAAA,MAEH,UAAA;AAAA,QAAAQ;AAAA,QACD,gBAAAP,EAACC,EAAiB,OAAjB,EAAuB,WAAU,qGAAA,CAAqG;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEzI;AAEF;"}
@@ -1,15 +1,17 @@
1
1
  import * as o from "react";
2
2
  const e = 768;
3
- function r() {
4
- const [s, n] = o.useState(void 0);
3
+ function d() {
4
+ const [s, n] = o.useState(
5
+ typeof window < "u" ? window.innerWidth < e : !1
6
+ );
5
7
  return o.useEffect(() => {
6
8
  const t = window.matchMedia(`(max-width: ${e - 1}px)`), i = () => {
7
9
  n(window.innerWidth < e);
8
10
  };
9
11
  return t.addEventListener("change", i), n(window.innerWidth < e), () => t.removeEventListener("change", i);
10
- }, []), !!s;
12
+ }, []), s;
11
13
  }
12
14
  export {
13
- r as u
15
+ d as u
14
16
  };
15
17
  //# sourceMappingURL=use-mobile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-mobile.js","sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n"],"names":["MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","React","mql","onChange"],"mappings":";AAEA,MAAMA,IAAoB;AAEnB,SAASC,IAAc;AAC5B,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAM,SAA8B,MAAS;AAE7E,SAAAA,EAAM,UAAU,MAAM;AACpB,UAAMC,IAAM,OAAO,WAAW,eAAeL,IAAoB,CAAC,KAAK,GACjEM,IAAW,MAAM;AACrB,MAAAH,EAAY,OAAO,aAAaH,CAAiB;AAAA,IACnD;AACA,WAAAK,EAAI,iBAAiB,UAAUC,CAAQ,GACvCH,EAAY,OAAO,aAAaH,CAAiB,GAC1C,MAAMK,EAAI,oBAAoB,UAAUC,CAAQ;AAAA,EACzD,GAAG,CAAA,CAAE,GAEE,CAAC,CAACJ;AACX;"}
1
+ {"version":3,"file":"use-mobile.js","sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean>(\n typeof window !== 'undefined' ? window.innerWidth < MOBILE_BREAKPOINT : false\n )\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return isMobile\n}\n"],"names":["MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","React","mql","onChange"],"mappings":";AAEA,MAAMA,IAAoB;AAEnB,SAASC,IAAc;AAC5B,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAM;AAAA,IACpC,OAAO,SAAW,MAAc,OAAO,aAAaJ,IAAoB;AAAA,EAAA;AAG1E,SAAAI,EAAM,UAAU,MAAM;AACpB,UAAMC,IAAM,OAAO,WAAW,eAAeL,IAAoB,CAAC,KAAK,GACjEM,IAAW,MAAM;AACrB,MAAAH,EAAY,OAAO,aAAaH,CAAiB;AAAA,IACnD;AACA,WAAAK,EAAI,iBAAiB,UAAUC,CAAQ,GACvCH,EAAY,OAAO,aAAaH,CAAiB,GAC1C,MAAMK,EAAI,oBAAoB,UAAUC,CAAQ;AAAA,EACzD,GAAG,CAAA,CAAE,GAEEJ;AACT;"}
@@ -0,0 +1,12 @@
1
+ import { createContext as t, useContext as o } from "react";
2
+ const r = t(null);
3
+ function s() {
4
+ const e = o(r);
5
+ if (!e) throw new Error("useTheme must be used within ThemeProvider");
6
+ return e;
7
+ }
8
+ export {
9
+ r as T,
10
+ s as u
11
+ };
12
+ //# sourceMappingURL=useTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTheme.js","sources":["../../src/themes/ThemeContext.ts","../../src/themes/useTheme.ts"],"sourcesContent":["import { createContext } from 'react'\nimport type { ColorTheme, Theme } from './ThemeProvider'\n\nexport interface ThemeContextValue {\n\ttheme: Theme\n\tsetTheme: (theme: Theme) => void\n\teffectiveTheme: 'light' | 'dark'\n\tcolorTheme: ColorTheme\n\tsetColorTheme: (colorTheme: ColorTheme) => void\n}\n\nexport const ThemeContext = createContext<ThemeContextValue | null>(null)\n","import { useContext } from 'react'\nimport { ThemeContext } from './ThemeContext'\n\nexport function useTheme() {\n\tconst ctx = useContext(ThemeContext)\n\tif (!ctx) throw new Error('useTheme must be used within ThemeProvider')\n\treturn ctx\n}\n"],"names":["ThemeContext","createContext","useTheme","ctx","useContext"],"mappings":";AAWO,MAAMA,IAAeC,EAAwC,IAAI;ACRjE,SAASC,IAAW;AAC1B,QAAMC,IAAMC,EAAWJ,CAAY;AACnC,MAAI,CAACG,EAAK,OAAM,IAAI,MAAM,4CAA4C;AACtE,SAAOA;AACR;"}
@@ -0,0 +1,10 @@
1
+ import type { ColorTheme, Theme } from './ThemeProvider';
2
+ export interface ThemeContextValue {
3
+ theme: Theme;
4
+ setTheme: (theme: Theme) => void;
5
+ effectiveTheme: 'light' | 'dark';
6
+ colorTheme: ColorTheme;
7
+ setColorTheme: (colorTheme: ColorTheme) => void;
8
+ }
9
+ export declare const ThemeContext: import("react").Context<ThemeContextValue | null>;
10
+ //# sourceMappingURL=ThemeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../src/themes/ThemeContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAExD,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,cAAc,EAAE,OAAO,GAAG,MAAM,CAAA;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;CAC/C;AAED,eAAO,MAAM,YAAY,mDAAgD,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ import './linen.css';
3
+ import './steel.css';
4
+ export type Theme = 'light' | 'dark' | 'system';
5
+ export type ColorTheme = 'linen' | 'steel';
6
+ export declare function ThemeProvider({ children }: {
7
+ children: ReactNode;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=ThemeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/themes/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,aAAa,CAAA;AACpB,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC/C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAA;AAiC1C,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CA6ClE"}
@@ -0,0 +1,3 @@
1
+ export { ThemeProvider, type Theme, type ColorTheme } from './ThemeProvider';
2
+ export { useTheme } from './useTheme';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/themes/theme.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function useTheme(): import("./ThemeContext").ThemeContextValue;
2
+ //# sourceMappingURL=useTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/themes/useTheme.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,+CAIvB"}
package/dist/themes.js ADDED
@@ -0,0 +1,50 @@
1
+ import { jsx as S } from "react/jsx-runtime";
2
+ import { useState as s, useEffect as m, useCallback as d, useMemo as k } from "react";
3
+ import { T as E } from "./shared/useTheme.js";
4
+ import { u as R } from "./shared/useTheme.js";
5
+ const l = "theme", h = "color-theme";
6
+ function y() {
7
+ if (typeof window > "u") return "system";
8
+ const e = localStorage.getItem(l);
9
+ return e === "light" || e === "dark" || e === "system" ? e : "dark";
10
+ }
11
+ function v() {
12
+ if (typeof window > "u") return "linen";
13
+ const e = localStorage.getItem(h);
14
+ return e === "linen" || e === "steel" ? e : "linen";
15
+ }
16
+ function w(e) {
17
+ const t = document.documentElement;
18
+ e === "dark" ? t.classList.add("dark") : t.classList.remove("dark");
19
+ }
20
+ function C(e) {
21
+ document.documentElement.setAttribute("data-theme", e);
22
+ }
23
+ function O({ children: e }) {
24
+ const [t, u] = s(y), [r, f] = s(v), [T, p] = s(
25
+ () => window.matchMedia("(prefers-color-scheme: dark)").matches
26
+ ), n = t === "system" ? T ? "dark" : "light" : t;
27
+ m(() => {
28
+ w(n);
29
+ }, [n]), m(() => {
30
+ C(r);
31
+ }, [r]), m(() => {
32
+ if (t !== "system") return;
33
+ const o = window.matchMedia("(prefers-color-scheme: dark)"), i = () => p(o.matches);
34
+ return o.addEventListener("change", i), () => o.removeEventListener("change", i);
35
+ }, [t]);
36
+ const a = d((o) => {
37
+ u(o), localStorage.setItem(l, o);
38
+ }, []), c = d((o) => {
39
+ f(o), localStorage.setItem(h, o);
40
+ }, []), g = k(
41
+ () => ({ theme: t, setTheme: a, effectiveTheme: n, colorTheme: r, setColorTheme: c }),
42
+ [t, a, n, r, c]
43
+ );
44
+ return /* @__PURE__ */ S(E.Provider, { value: g, children: e });
45
+ }
46
+ export {
47
+ O as ThemeProvider,
48
+ R as useTheme
49
+ };
50
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.js","sources":["../src/themes/ThemeProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { ThemeContext } from './ThemeContext'\nimport './linen.css'\nimport './steel.css'\n\nexport type Theme = 'light' | 'dark' | 'system'\nexport type ColorTheme = 'linen' | 'steel'\n\nconst STORAGE_KEY = 'theme'\nconst COLOR_THEME_STORAGE_KEY = 'color-theme'\n\nfunction getStoredTheme(): Theme {\n\tif (typeof window === 'undefined') return 'system'\n\tconst stored = localStorage.getItem(STORAGE_KEY)\n\tif (stored === 'light' || stored === 'dark' || stored === 'system')\n\t\treturn stored\n\treturn 'dark'\n}\n\nfunction getStoredColorTheme(): ColorTheme {\n\tif (typeof window === 'undefined') return 'linen'\n\tconst stored = localStorage.getItem(COLOR_THEME_STORAGE_KEY)\n\tif (stored === 'linen' || stored === 'steel') return stored\n\treturn 'linen'\n}\n\nfunction applyTheme(effective: 'light' | 'dark') {\n\tconst root = document.documentElement\n\tif (effective === 'dark') {\n\t\troot.classList.add('dark')\n\t} else {\n\t\troot.classList.remove('dark')\n\t}\n}\n\nfunction applyColorTheme(colorTheme: ColorTheme) {\n\tdocument.documentElement.setAttribute('data-theme', colorTheme)\n}\n\nexport function ThemeProvider({ children }: { children: ReactNode }) {\n\tconst [theme, setThemeState] = useState<Theme>(getStoredTheme)\n\tconst [colorTheme, setColorThemeState] =\n\t\tuseState<ColorTheme>(getStoredColorTheme)\n\tconst [systemDark, setSystemDark] = useState(\n\t\t() => window.matchMedia('(prefers-color-scheme: dark)').matches,\n\t)\n\n\tconst effectiveTheme: 'light' | 'dark' =\n\t\ttheme === 'system' ? (systemDark ? 'dark' : 'light') : theme\n\n\tuseEffect(() => {\n\t\tapplyTheme(effectiveTheme)\n\t}, [effectiveTheme])\n\n\tuseEffect(() => {\n\t\tapplyColorTheme(colorTheme)\n\t}, [colorTheme])\n\n\tuseEffect(() => {\n\t\tif (theme !== 'system') return\n\t\tconst media = window.matchMedia('(prefers-color-scheme: dark)')\n\t\tconst handler = () => setSystemDark(media.matches)\n\t\tmedia.addEventListener('change', handler)\n\t\treturn () => media.removeEventListener('change', handler)\n\t}, [theme])\n\n\tconst setTheme = useCallback((next: Theme) => {\n\t\tsetThemeState(next)\n\t\tlocalStorage.setItem(STORAGE_KEY, next)\n\t}, [])\n\n\tconst setColorTheme = useCallback((next: ColorTheme) => {\n\t\tsetColorThemeState(next)\n\t\tlocalStorage.setItem(COLOR_THEME_STORAGE_KEY, next)\n\t}, [])\n\n\tconst value = useMemo(\n\t\t() => ({ theme, setTheme, effectiveTheme, colorTheme, setColorTheme }),\n\t\t[theme, setTheme, effectiveTheme, colorTheme, setColorTheme],\n\t)\n\n\treturn (\n\t\t<ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n\t)\n}\n"],"names":["STORAGE_KEY","COLOR_THEME_STORAGE_KEY","getStoredTheme","stored","getStoredColorTheme","applyTheme","effective","root","applyColorTheme","colorTheme","ThemeProvider","children","theme","setThemeState","useState","setColorThemeState","systemDark","setSystemDark","effectiveTheme","useEffect","media","handler","setTheme","useCallback","next","setColorTheme","value","useMemo","jsx","ThemeContext"],"mappings":";;;;AASA,MAAMA,IAAc,SACdC,IAA0B;AAEhC,SAASC,IAAwB;AAChC,MAAI,OAAO,SAAW,IAAa,QAAO;AAC1C,QAAMC,IAAS,aAAa,QAAQH,CAAW;AAC/C,SAAIG,MAAW,WAAWA,MAAW,UAAUA,MAAW,WAClDA,IACD;AACR;AAEA,SAASC,IAAkC;AAC1C,MAAI,OAAO,SAAW,IAAa,QAAO;AAC1C,QAAMD,IAAS,aAAa,QAAQF,CAAuB;AAC3D,SAAIE,MAAW,WAAWA,MAAW,UAAgBA,IAC9C;AACR;AAEA,SAASE,EAAWC,GAA6B;AAChD,QAAMC,IAAO,SAAS;AACtB,EAAID,MAAc,SACjBC,EAAK,UAAU,IAAI,MAAM,IAEzBA,EAAK,UAAU,OAAO,MAAM;AAE9B;AAEA,SAASC,EAAgBC,GAAwB;AAChD,WAAS,gBAAgB,aAAa,cAAcA,CAAU;AAC/D;AAEO,SAASC,EAAc,EAAE,UAAAC,KAAqC;AACpE,QAAM,CAACC,GAAOC,CAAa,IAAIC,EAAgBZ,CAAc,GACvD,CAACO,GAAYM,CAAkB,IACpCD,EAAqBV,CAAmB,GACnC,CAACY,GAAYC,CAAa,IAAIH;AAAA,IACnC,MAAM,OAAO,WAAW,8BAA8B,EAAE;AAAA,EAAA,GAGnDI,IACLN,MAAU,WAAYI,IAAa,SAAS,UAAWJ;AAExD,EAAAO,EAAU,MAAM;AACf,IAAAd,EAAWa,CAAc;AAAA,EAC1B,GAAG,CAACA,CAAc,CAAC,GAEnBC,EAAU,MAAM;AACf,IAAAX,EAAgBC,CAAU;AAAA,EAC3B,GAAG,CAACA,CAAU,CAAC,GAEfU,EAAU,MAAM;AACf,QAAIP,MAAU,SAAU;AACxB,UAAMQ,IAAQ,OAAO,WAAW,8BAA8B,GACxDC,IAAU,MAAMJ,EAAcG,EAAM,OAAO;AACjD,WAAAA,EAAM,iBAAiB,UAAUC,CAAO,GACjC,MAAMD,EAAM,oBAAoB,UAAUC,CAAO;AAAA,EACzD,GAAG,CAACT,CAAK,CAAC;AAEV,QAAMU,IAAWC,EAAY,CAACC,MAAgB;AAC7C,IAAAX,EAAcW,CAAI,GAClB,aAAa,QAAQxB,GAAawB,CAAI;AAAA,EACvC,GAAG,CAAA,CAAE,GAECC,IAAgBF,EAAY,CAACC,MAAqB;AACvD,IAAAT,EAAmBS,CAAI,GACvB,aAAa,QAAQvB,GAAyBuB,CAAI;AAAA,EACnD,GAAG,CAAA,CAAE,GAECE,IAAQC;AAAA,IACb,OAAO,EAAE,OAAAf,GAAO,UAAAU,GAAU,gBAAAJ,GAAgB,YAAAT,GAAY,eAAAgB,EAAA;AAAA,IACtD,CAACb,GAAOU,GAAUJ,GAAgBT,GAAYgB,CAAa;AAAA,EAAA;AAG5D,SACC,gBAAAG,EAACC,EAAa,UAAb,EAAsB,OAAAH,GAAe,UAAAf,EAAA,CAAS;AAEjD;"}