@abumble/design-system 0.0.37 → 0.0.38

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BackLink.d.ts","sourceRoot":"","sources":["../../../src/components/BackLink/BackLink.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;IAC/D,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EACxB,KAAK,EACL,OAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,aAAa,2CA0Bf"}
1
+ {"version":3,"file":"BackLink.d.ts","sourceRoot":"","sources":["../../../src/components/BackLink/BackLink.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;IAC/D,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EACxB,KAAK,EACL,OAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,aAAa,2CA+Bf"}
@@ -1,12 +1,14 @@
1
- import type { onClickCallback } from "@/types/types";
2
- import type React from "react";
3
- import { type TBannerType } from "./bannerType";
4
- interface BannerProps extends React.ComponentProps<"div"> {
1
+ import type { onClickCallback } from '@/types/types';
2
+ import type React from 'react';
3
+ import { type TBannerType } from './bannerType';
4
+ interface BannerProps extends React.ComponentProps<'div'> {
5
5
  type: TBannerType;
6
6
  title?: string;
7
7
  loading?: boolean;
8
8
  hideIcon?: boolean;
9
- icon: React.ComponentType;
9
+ icon?: React.ComponentType<{
10
+ className?: string;
11
+ }>;
10
12
  onClose?: onClickCallback<HTMLButtonElement>;
11
13
  }
12
14
  declare function Banner({ type, title, loading, icon, hideIcon, onClose, children, className, ...props }: BannerProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../src/components/Banner/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAU5D,UAAU,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACxD,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;CAC7C;AAED,iBAAS,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAqC5G;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;CAClC;AAED,iBAAS,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAQ/D;AA4BD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../src/components/Banner/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAU3D,UAAU,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACxD,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAA;CAC5C;AAED,iBAAS,MAAM,CAAC,EACf,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACR,EAAE,WAAW,2CA+Bb;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;CACjC;AAED,iBAAS,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAM/D;AA4BD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA"}
@@ -8,14 +8,24 @@ const a = {
8
8
  Note: "note",
9
9
  Warning: "warning",
10
10
  Alert: "alert"
11
- }, o = {
11
+ }, l = {
12
12
  [a.Info]: v,
13
13
  [a.Note]: b,
14
14
  [a.Warning]: x,
15
15
  [a.Alert]: g
16
16
  };
17
- function C({ type: e, title: t, loading: i, icon: c, hideIcon: m, onClose: l, children: d, className: h, ...f }) {
18
- const u = c ?? o[e] ?? o[a.Note];
17
+ function C({
18
+ type: e,
19
+ title: t,
20
+ loading: i,
21
+ icon: c,
22
+ hideIcon: m,
23
+ onClose: o,
24
+ children: d,
25
+ className: h,
26
+ ...f
27
+ }) {
28
+ const u = c ?? l[e] ?? l[a.Note];
19
29
  return /* @__PURE__ */ n(
20
30
  "div",
21
31
  {
@@ -25,13 +35,13 @@ function C({ type: e, title: t, loading: i, icon: c, hideIcon: m, onClose: l, ch
25
35
  ...f,
26
36
  children: /* @__PURE__ */ r("div", { className: "flex items-start", children: [
27
37
  i ? /* @__PURE__ */ n(I, {}) : /* @__PURE__ */ r(p, { children: [
28
- !m && /* @__PURE__ */ n("div", { className: "flex-shrink-0 mr-3", children: /* @__PURE__ */ n(u, {}) }),
38
+ !m && /* @__PURE__ */ n("div", { className: "shrink-0 mr-3", children: /* @__PURE__ */ n(u, {}) }),
29
39
  /* @__PURE__ */ r("section", { children: [
30
40
  t && /* @__PURE__ */ n("p", { className: "font-bold", children: t }),
31
41
  d
32
42
  ] })
33
43
  ] }),
34
- l && /* @__PURE__ */ n(k, { onClick: l })
44
+ o && /* @__PURE__ */ n(k, { onClick: o })
35
45
  ] })
36
46
  }
37
47
  );
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sources":["../../src/components/Banner/bannerType.ts","../../src/components/Banner/Banner.tsx"],"sourcesContent":["const bannerType = {\n\tInfo: 'info',\n\tNote: 'note',\n\tWarning: 'warning',\n\tAlert: 'alert'\n} as const;\n\ntype TBannerType = (typeof bannerType)[keyof typeof bannerType];\n\nexport { bannerType, type TBannerType };\n","import type { onClickCallback } from \"@/types/types\";\nimport { cn } from \"@/utils\";\nimport { CircleX, Info, Lightbulb, TriangleAlert, X } from \"lucide-react\";\nimport type React from \"react\";\nimport { Button } from \"../Button\";\nimport { Skeleton } from \"../Skeleton\";\nimport { bannerType, type TBannerType } from \"./bannerType\";\n\n/** Banner colors and layout are in design-system styles.css via [data-banner-type]. Type → color: info=blue, note=green, warning=yellow, alert=red. */\nconst icons: Record<TBannerType, React.ComponentType> = {\n\t[bannerType.Info]: Info,\n\t[bannerType.Note]: Lightbulb,\n\t[bannerType.Warning]: TriangleAlert,\n\t[bannerType.Alert]: CircleX\n};\n\ninterface BannerProps extends React.ComponentProps<\"div\"> {\n\ttype: TBannerType;\n\ttitle?: string;\n\tloading?: boolean;\n\thideIcon?: boolean;\n\ticon: React.ComponentType,\n\tonClose?: onClickCallback<HTMLButtonElement>;\n}\n\nfunction Banner({ type, title, loading, icon, hideIcon, onClose, children, className, ...props }: BannerProps) {\n\tconst Icon = icon ?? icons[type] ?? icons[bannerType.Note];\n\n\treturn (\n\t\t<div\n\t\t\tdata-banner-type={type}\n\t\t\tclassName={cn(className)}\n\t\t\trole=\"alert\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"flex items-start\">\n\t\t\t\t{loading ?\n\t\t\t\t\t<BannerLoadingContent />\n\t\t\t\t\t:\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!hideIcon &&\n\t\t\t\t\t\t\t<div className=\"flex-shrink-0 mr-3\">\n\t\t\t\t\t\t\t\t<Icon />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<section>\n\t\t\t\t\t\t\t{title && (\n\t\t\t\t\t\t\t\t<p className=\"font-bold\">\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</section>\n\t\t\t\t\t</>\n\t\t\t\t}\n\n\t\t\t\t{onClose &&\n\t\t\t\t\t<CloseButton onClick={onClose} />\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\ninterface MessageBannerProps extends BannerProps {\n\tmessage: string | React.ReactNode;\n}\n\nfunction MessageBanner({ message, ...props }: MessageBannerProps) {\n\treturn (\n\t\t<Banner {...props}>\n\t\t\t<p className=\"text-sm\">\n\t\t\t\t{message}\n\t\t\t</p>\n\t\t</Banner>\n\t)\n}\n\nfunction BannerLoadingContent() {\n\treturn (\n\t\t<div className=\"flex items-center space-x-4\">\n\t\t\t<Skeleton className=\"h-12 w-12 rounded-full\" />\n\t\t\t<div className=\"space-y-2\">\n\t\t\t\t<Skeleton className=\"h-4 w-[250px]\" />\n\t\t\t\t<Skeleton className=\"h-4 w-[200px]\" />\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nfunction CloseButton(props: React.ComponentProps<\"button\">) {\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"icon\"\n\t\t\tclassName=\"h-8 w-8 rounded-full ml-auto mb-auto relative -top-1 -right-1\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<X />\n\t\t\t<span className=\"sr-only\">Close banner</span>\n\t\t</Button>\n\t);\n}\n\nexport { Banner, MessageBanner };\n\n"],"names":["bannerType","icons","Info","Lightbulb","TriangleAlert","CircleX","Banner","type","title","loading","icon","hideIcon","onClose","children","className","props","Icon","jsx","cn","jsxs","BannerLoadingContent","Fragment","CloseButton","MessageBanner","message","Skeleton","Button","X"],"mappings":";;;;;AAAA,MAAMA,IAAa;AAAA,EAClB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACR,GCIMC,IAAkD;AAAA,EACvD,CAACD,EAAW,IAAI,GAAGE;AAAA,EACnB,CAACF,EAAW,IAAI,GAAGG;AAAA,EACnB,CAACH,EAAW,OAAO,GAAGI;AAAA,EACtB,CAACJ,EAAW,KAAK,GAAGK;AACrB;AAWA,SAASC,EAAO,EAAE,MAAAC,GAAM,OAAAC,GAAO,SAAAC,GAAS,MAAAC,GAAM,UAAAC,GAAU,SAAAC,GAAS,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAAsB;AAC9G,QAAMC,IAAON,KAAQT,EAAMM,CAAI,KAAKN,EAAMD,EAAW,IAAI;AAEzD,SACC,gBAAAiB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,oBAAkBV;AAAA,MAClB,WAAWW,EAAGJ,CAAS;AAAA,MACvB,MAAK;AAAA,MACJ,GAAGC;AAAA,MAEJ,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,QAAAV,IACA,gBAAAQ,EAACG,GAAA,CAAA,CAAqB,IAEtB,gBAAAD,EAAAE,GAAA,EACE,UAAA;AAAA,UAAA,CAACV,KACD,gBAAAM,EAAC,OAAA,EAAI,WAAU,sBACd,UAAA,gBAAAA,EAACD,KAAK,EAAA,CACP;AAAA,4BAEA,WAAA,EACC,UAAA;AAAA,YAAAR,KACA,gBAAAS,EAAC,KAAA,EAAE,WAAU,aACX,UAAAT,GACF;AAAA,YAEAK;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,GACD;AAAA,QAGAD,KACA,gBAAAK,EAACK,GAAA,EAAY,SAASV,EAAA,CAAS;AAAA,MAAA,EAAA,CAEjC;AAAA,IAAA;AAAA,EAAA;AAGH;AAMA,SAASW,EAAc,EAAE,SAAAC,GAAS,GAAGT,KAA6B;AACjE,SACC,gBAAAE,EAACX,KAAQ,GAAGS,GACX,4BAAC,KAAA,EAAE,WAAU,WACX,UAAAS,EAAA,CACF,EAAA,CACD;AAEF;AAEA,SAASJ,IAAuB;AAC/B,SACC,gBAAAD,EAAC,OAAA,EAAI,WAAU,+BACd,UAAA;AAAA,IAAA,gBAAAF,EAACQ,GAAA,EAAS,WAAU,yBAAA,CAAyB;AAAA,IAC7C,gBAAAN,EAAC,OAAA,EAAI,WAAU,aACd,UAAA;AAAA,MAAA,gBAAAF,EAACQ,GAAA,EAAS,WAAU,gBAAA,CAAgB;AAAA,MACpC,gBAAAR,EAACQ,GAAA,EAAS,WAAU,gBAAA,CAAgB;AAAA,IAAA,EAAA,CACrC;AAAA,EAAA,GACD;AAEF;AAEA,SAASH,EAAYP,GAAuC;AAC3D,SACC,gBAAAI;AAAA,IAACO;AAAA,IAAA;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAU;AAAA,MACT,GAAGX;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAE,EAACU,GAAA,EAAE;AAAA,QACH,gBAAAV,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,eAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzC;"}
1
+ {"version":3,"file":"Banner.js","sources":["../../src/components/Banner/bannerType.ts","../../src/components/Banner/Banner.tsx"],"sourcesContent":["const bannerType = {\n\tInfo: 'info',\n\tNote: 'note',\n\tWarning: 'warning',\n\tAlert: 'alert'\n} as const;\n\ntype TBannerType = (typeof bannerType)[keyof typeof bannerType];\n\nexport { bannerType, type TBannerType };\n","import type { onClickCallback } from '@/types/types'\nimport { cn } from '@/utils'\nimport { CircleX, Info, Lightbulb, TriangleAlert, X } from 'lucide-react'\nimport type React from 'react'\nimport { Button } from '../Button'\nimport { Skeleton } from '../Skeleton'\nimport { bannerType, type TBannerType } from './bannerType'\n\n/** Banner colors and layout are in design-system styles.css via [data-banner-type]. Type → color: info=blue, note=green, warning=yellow, alert=red. */\nconst icons: Record<TBannerType, React.ComponentType<{ className?: string }>> = {\n\t[bannerType.Info]: Info,\n\t[bannerType.Note]: Lightbulb,\n\t[bannerType.Warning]: TriangleAlert,\n\t[bannerType.Alert]: CircleX,\n}\n\ninterface BannerProps extends React.ComponentProps<'div'> {\n\ttype: TBannerType\n\ttitle?: string\n\tloading?: boolean\n\thideIcon?: boolean\n\ticon?: React.ComponentType<{ className?: string }>\n\tonClose?: onClickCallback<HTMLButtonElement>\n}\n\nfunction Banner({\n\ttype,\n\ttitle,\n\tloading,\n\ticon,\n\thideIcon,\n\tonClose,\n\tchildren,\n\tclassName,\n\t...props\n}: BannerProps) {\n\tconst Icon = icon ?? icons[type] ?? icons[bannerType.Note]\n\n\treturn (\n\t\t<div\n\t\t\tdata-banner-type={type}\n\t\t\tclassName={cn(className)}\n\t\t\trole=\"alert\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"flex items-start\">\n\t\t\t\t{loading ? (\n\t\t\t\t\t<BannerLoadingContent />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!hideIcon && (\n\t\t\t\t\t\t\t<div className=\"shrink-0 mr-3\">\n\t\t\t\t\t\t\t\t<Icon />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<section>\n\t\t\t\t\t\t\t{title && <p className=\"font-bold\">{title}</p>}\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</section>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{onClose && <CloseButton onClick={onClose} />}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\ninterface MessageBannerProps extends BannerProps {\n\tmessage: string | React.ReactNode\n}\n\nfunction MessageBanner({ message, ...props }: MessageBannerProps) {\n\treturn (\n\t\t<Banner {...props}>\n\t\t\t<p className=\"text-sm\">{message}</p>\n\t\t</Banner>\n\t)\n}\n\nfunction BannerLoadingContent() {\n\treturn (\n\t\t<div className=\"flex items-center space-x-4\">\n\t\t\t<Skeleton className=\"h-12 w-12 rounded-full\" />\n\t\t\t<div className=\"space-y-2\">\n\t\t\t\t<Skeleton className=\"h-4 w-[250px]\" />\n\t\t\t\t<Skeleton className=\"h-4 w-[200px]\" />\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nfunction CloseButton(props: React.ComponentProps<'button'>) {\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"icon\"\n\t\t\tclassName=\"h-8 w-8 rounded-full ml-auto mb-auto relative -top-1 -right-1\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<X />\n\t\t\t<span className=\"sr-only\">Close banner</span>\n\t\t</Button>\n\t)\n}\n\nexport { Banner, MessageBanner }\n"],"names":["bannerType","icons","Info","Lightbulb","TriangleAlert","CircleX","Banner","type","title","loading","icon","hideIcon","onClose","children","className","props","Icon","jsx","cn","jsxs","BannerLoadingContent","Fragment","CloseButton","MessageBanner","message","Skeleton","Button","X"],"mappings":";;;;;AAAA,MAAMA,IAAa;AAAA,EAClB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACR,GCIMC,IAA0E;AAAA,EAC/E,CAACD,EAAW,IAAI,GAAGE;AAAA,EACnB,CAACF,EAAW,IAAI,GAAGG;AAAA,EACnB,CAACH,EAAW,OAAO,GAAGI;AAAA,EACtB,CAACJ,EAAW,KAAK,GAAGK;AACrB;AAWA,SAASC,EAAO;AAAA,EACf,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACJ,GAAgB;AACf,QAAMC,IAAON,KAAQT,EAAMM,CAAI,KAAKN,EAAMD,EAAW,IAAI;AAEzD,SACC,gBAAAiB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,oBAAkBV;AAAA,MAClB,WAAWW,EAAGJ,CAAS;AAAA,MACvB,MAAK;AAAA,MACJ,GAAGC;AAAA,MAEJ,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,QAAAV,IACA,gBAAAQ,EAACG,GAAA,CAAA,CAAqB,IAEtB,gBAAAD,EAAAE,GAAA,EACE,UAAA;AAAA,UAAA,CAACV,KACD,gBAAAM,EAAC,OAAA,EAAI,WAAU,iBACd,UAAA,gBAAAA,EAACD,KAAK,EAAA,CACP;AAAA,4BAEA,WAAA,EACC,UAAA;AAAA,YAAAR,KAAS,gBAAAS,EAAC,KAAA,EAAE,WAAU,aAAa,UAAAT,GAAM;AAAA,YACzCK;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,GACD;AAAA,QAGAD,KAAW,gBAAAK,EAACK,GAAA,EAAY,SAASV,EAAA,CAAS;AAAA,MAAA,EAAA,CAC5C;AAAA,IAAA;AAAA,EAAA;AAGH;AAMA,SAASW,EAAc,EAAE,SAAAC,GAAS,GAAGT,KAA6B;AACjE,SACC,gBAAAE,EAACX,KAAQ,GAAGS,GACX,4BAAC,KAAA,EAAE,WAAU,WAAW,UAAAS,EAAA,CAAQ,EAAA,CACjC;AAEF;AAEA,SAASJ,IAAuB;AAC/B,SACC,gBAAAD,EAAC,OAAA,EAAI,WAAU,+BACd,UAAA;AAAA,IAAA,gBAAAF,EAACQ,GAAA,EAAS,WAAU,yBAAA,CAAyB;AAAA,IAC7C,gBAAAN,EAAC,OAAA,EAAI,WAAU,aACd,UAAA;AAAA,MAAA,gBAAAF,EAACQ,GAAA,EAAS,WAAU,gBAAA,CAAgB;AAAA,MACpC,gBAAAR,EAACQ,GAAA,EAAS,WAAU,gBAAA,CAAgB;AAAA,IAAA,EAAA,CACrC;AAAA,EAAA,GACD;AAEF;AAEA,SAASH,EAAYP,GAAuC;AAC3D,SACC,gBAAAI;AAAA,IAACO;AAAA,IAAA;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAU;AAAA,MACT,GAAGX;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAE,EAACU,GAAA,EAAE;AAAA,QACH,gBAAAV,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,eAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzC;"}
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
2
  import { B as u, d as h, f as p, b as f, c as x } from "../shared/Breadcrumb.js";
3
3
  import * as g from "react";
4
4
  import { B as v } from "../shared/BackLink.js";
5
- import { P as B, a as N } from "../shared/PageHeader.js";
5
+ import { a as B, P as N } from "../shared/PageHeader.js";
6
6
  function P({
7
7
  title: m,
8
8
  description: c,
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../../src/components/Carousel/Carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3E,KAAK,aAAa,GAAG;IACpB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;CACnC,CAAA;AAuBD,iBAAS,QAAQ,CAAC,EACjB,WAA0B,EAC1B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,aAAa,2CAgF7C;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAmB5E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAgBzE;AAED,iBAAS,gBAAgB,CAAC,EACzB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED,iBAAS,YAAY,CAAC,EACrB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED,OAAO,EACN,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACZ,CAAA"}
1
+ {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../../src/components/Carousel/Carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3E,KAAK,aAAa,GAAG;IACpB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;CACnC,CAAA;AAuBD,iBAAS,QAAQ,CAAC,EACjB,WAA0B,EAC1B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,aAAa,2CAiF7C;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAmB5E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAgBzE;AAED,iBAAS,gBAAgB,CAAC,EACzB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED,iBAAS,YAAY,CAAC,EACrB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED,OAAO,EACN,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACZ,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as a, jsxs as h } from "react/jsx-runtime";
2
2
  import * as l from "react";
3
3
  import k from "embla-carousel-react";
4
- import { ArrowLeft as z, ArrowRight as g } from "lucide-react";
4
+ import { ArrowRight as z, ArrowLeft as g } from "lucide-react";
5
5
  import { c as d } from "../shared/utils.js";
6
6
  import { B as v } from "../shared/Button.js";
7
7
  const N = l.createContext(null);
@@ -11,30 +11,30 @@ function m() {
11
11
  throw new Error("useCarousel must be used within a <Carousel />");
12
12
  return o;
13
13
  }
14
- function B({
14
+ function A({
15
15
  orientation: o = "horizontal",
16
16
  opts: r,
17
17
  setApi: t,
18
- plugins: n,
19
- className: c,
20
- children: i,
21
- ...u
18
+ plugins: s,
19
+ className: i,
20
+ children: u,
21
+ ...f
22
22
  }) {
23
23
  const [p, e] = k(
24
24
  {
25
25
  ...r,
26
26
  axis: o === "horizontal" ? "x" : "y"
27
27
  },
28
- n
29
- ), [b, w] = l.useState(!1), [S, y] = l.useState(!1), f = l.useCallback((s) => {
30
- s && (w(s.canScrollPrev()), y(s.canScrollNext()));
28
+ s
29
+ ), [b, w] = l.useState(!1), [S, y] = l.useState(!1), c = l.useCallback((n) => {
30
+ n && (w(n.canScrollPrev()), y(n.canScrollNext()));
31
31
  }, []), x = l.useCallback(() => {
32
32
  e?.scrollPrev();
33
33
  }, [e]), C = l.useCallback(() => {
34
34
  e?.scrollNext();
35
35
  }, [e]), P = l.useCallback(
36
- (s) => {
37
- s.key === "ArrowLeft" ? (s.preventDefault(), x()) : s.key === "ArrowRight" && (s.preventDefault(), C());
36
+ (n) => {
37
+ n.key === "ArrowLeft" ? (n.preventDefault(), x()) : n.key === "ArrowRight" && (n.preventDefault(), C());
38
38
  },
39
39
  [x, C]
40
40
  );
@@ -42,10 +42,10 @@ function B({
42
42
  !e || !t || t(e);
43
43
  }, [e, t]), l.useEffect(() => {
44
44
  if (e)
45
- return f(e), e.on("reInit", f), e.on("select", f), () => {
46
- e?.off("select", f);
45
+ return c(e), e.on("reInit", c), e.on("select", c), () => {
46
+ e?.off("reInit", c), e?.off("select", c);
47
47
  };
48
- }, [e, f]), /* @__PURE__ */ a(
48
+ }, [e, c]), /* @__PURE__ */ a(
49
49
  N.Provider,
50
50
  {
51
51
  value: {
@@ -62,19 +62,19 @@ function B({
62
62
  "div",
63
63
  {
64
64
  onKeyDownCapture: P,
65
- className: d("relative", c),
65
+ className: d("relative", i),
66
66
  role: "region",
67
67
  "aria-roledescription": "carousel",
68
68
  "data-slot": "carousel",
69
- ...u,
70
- children: i
69
+ ...f,
70
+ children: u
71
71
  }
72
72
  )
73
73
  }
74
74
  );
75
75
  }
76
- function I({ className: o, ...r }) {
77
- const { carouselRef: t, orientation: n } = m();
76
+ function B({ className: o, ...r }) {
77
+ const { carouselRef: t, orientation: s } = m();
78
78
  return /* @__PURE__ */ a(
79
79
  "div",
80
80
  {
@@ -86,7 +86,7 @@ function I({ className: o, ...r }) {
86
86
  {
87
87
  className: d(
88
88
  "flex",
89
- n === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
89
+ s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
90
90
  o
91
91
  ),
92
92
  ...r
@@ -116,9 +116,9 @@ function L({
116
116
  className: o,
117
117
  variant: r = "outline",
118
118
  size: t = "icon",
119
- ...n
119
+ ...s
120
120
  }) {
121
- const { orientation: c, scrollPrev: i, canScrollPrev: u } = m();
121
+ const { orientation: i, scrollPrev: u, canScrollPrev: f } = m();
122
122
  return /* @__PURE__ */ h(
123
123
  v,
124
124
  {
@@ -127,14 +127,14 @@ function L({
127
127
  size: t,
128
128
  className: d(
129
129
  "absolute size-8 rounded-full",
130
- c === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
130
+ i === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
131
131
  o
132
132
  ),
133
- disabled: !u,
134
- onClick: i,
135
- ...n,
133
+ disabled: !f,
134
+ onClick: u,
135
+ ...s,
136
136
  children: [
137
- /* @__PURE__ */ a(z, {}),
137
+ /* @__PURE__ */ a(g, {}),
138
138
  /* @__PURE__ */ a("span", { className: "sr-only", children: "Previous slide" })
139
139
  ]
140
140
  }
@@ -144,9 +144,9 @@ function q({
144
144
  className: o,
145
145
  variant: r = "outline",
146
146
  size: t = "icon",
147
- ...n
147
+ ...s
148
148
  }) {
149
- const { orientation: c, scrollNext: i, canScrollNext: u } = m();
149
+ const { orientation: i, scrollNext: u, canScrollNext: f } = m();
150
150
  return /* @__PURE__ */ h(
151
151
  v,
152
152
  {
@@ -155,22 +155,22 @@ function q({
155
155
  size: t,
156
156
  className: d(
157
157
  "absolute size-8 rounded-full",
158
- c === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
158
+ i === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
159
159
  o
160
160
  ),
161
- disabled: !u,
162
- onClick: i,
163
- ...n,
161
+ disabled: !f,
162
+ onClick: u,
163
+ ...s,
164
164
  children: [
165
- /* @__PURE__ */ a(g, {}),
165
+ /* @__PURE__ */ a(z, {}),
166
166
  /* @__PURE__ */ a("span", { className: "sr-only", children: "Next slide" })
167
167
  ]
168
168
  }
169
169
  );
170
170
  }
171
171
  export {
172
- B as Carousel,
173
- I as CarouselContent,
172
+ A as Carousel,
173
+ B as CarouselContent,
174
174
  K as CarouselItem,
175
175
  q as CarouselNext,
176
176
  L as CarouselPrevious
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","sources":["../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import * as React from \"react\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/utils\"\nimport { Button } from \"../Button\"\nimport type { CarouselApi, CarouselOptions, CarouselPlugin } from \"@/types\"\n\ntype CarouselProps = {\n\topts?: CarouselOptions\n\tplugins?: CarouselPlugin\n\torientation?: \"horizontal\" | \"vertical\"\n\tsetApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n\tcarouselRef: ReturnType<typeof useEmblaCarousel>[0]\n\tapi: ReturnType<typeof useEmblaCarousel>[1]\n\tscrollPrev: () => void\n\tscrollNext: () => void\n\tcanScrollPrev: boolean\n\tcanScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n\tconst context = React.useContext(CarouselContext)\n\n\tif (!context) {\n\t\tthrow new Error(\"useCarousel must be used within a <Carousel />\")\n\t}\n\n\treturn context\n}\n\nfunction Carousel({\n\torientation = \"horizontal\",\n\topts,\n\tsetApi,\n\tplugins,\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n\tconst [carouselRef, api] = useEmblaCarousel(\n\t\t{\n\t\t\t...opts,\n\t\t\taxis: orientation === \"horizontal\" ? \"x\" : \"y\",\n\t\t},\n\t\tplugins\n\t)\n\tconst [canScrollPrev, setCanScrollPrev] = React.useState(false)\n\tconst [canScrollNext, setCanScrollNext] = React.useState(false)\n\n\tconst onSelect = React.useCallback((api: CarouselApi) => {\n\t\tif (!api) return\n\t\tsetCanScrollPrev(api.canScrollPrev())\n\t\tsetCanScrollNext(api.canScrollNext())\n\t}, [])\n\n\tconst scrollPrev = React.useCallback(() => {\n\t\tapi?.scrollPrev()\n\t}, [api])\n\n\tconst scrollNext = React.useCallback(() => {\n\t\tapi?.scrollNext()\n\t}, [api])\n\n\tconst handleKeyDown = React.useCallback(\n\t\t(event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\t\tif (event.key === \"ArrowLeft\") {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tscrollPrev()\n\t\t\t} else if (event.key === \"ArrowRight\") {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tscrollNext()\n\t\t\t}\n\t\t},\n\t\t[scrollPrev, scrollNext]\n\t)\n\n\tReact.useEffect(() => {\n\t\tif (!api || !setApi) return\n\t\tsetApi(api)\n\t}, [api, setApi])\n\n\tReact.useEffect(() => {\n\t\tif (!api) return\n\t\tonSelect(api)\n\t\tapi.on(\"reInit\", onSelect)\n\t\tapi.on(\"select\", onSelect)\n\n\t\treturn () => {\n\t\t\tapi?.off(\"select\", onSelect)\n\t\t}\n\t}, [api, onSelect])\n\n\treturn (\n\t\t<CarouselContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcarouselRef,\n\t\t\t\tapi: api,\n\t\t\t\topts,\n\t\t\t\torientation:\n\t\t\t\t\torientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n\t\t\t\tscrollPrev,\n\t\t\t\tscrollNext,\n\t\t\t\tcanScrollPrev,\n\t\t\t\tcanScrollNext,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tonKeyDownCapture={handleKeyDown}\n\t\t\t\tclassName={cn(\"relative\", className)}\n\t\t\t\trole=\"region\"\n\t\t\t\taria-roledescription=\"carousel\"\n\t\t\t\tdata-slot=\"carousel\"\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</CarouselContext.Provider>\n\t)\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\tconst { carouselRef, orientation } = useCarousel()\n\n\treturn (\n\t\t<div\n\t\t\tref={carouselRef}\n\t\t\tclassName=\"overflow-hidden\"\n\t\t\tdata-slot=\"carousel-content\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n\tconst { orientation } = useCarousel()\n\n\treturn (\n\t\t<div\n\t\t\trole=\"group\"\n\t\t\taria-roledescription=\"slide\"\n\t\t\tdata-slot=\"carousel-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"min-w-0 shrink-0 grow-0 basis-full\",\n\t\t\t\torientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction CarouselPrevious({\n\tclassName,\n\tvariant = \"outline\",\n\tsize = \"icon\",\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n\treturn (\n\t\t<Button\n\t\t\tdata-slot=\"carousel-previous\"\n\t\t\tvariant={variant}\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute size-8 rounded-full\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"top-1/2 -left-12 -translate-y-1/2\"\n\t\t\t\t\t: \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdisabled={!canScrollPrev}\n\t\t\tonClick={scrollPrev}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ArrowLeft />\n\t\t\t<span className=\"sr-only\">Previous slide</span>\n\t\t</Button>\n\t)\n}\n\nfunction CarouselNext({\n\tclassName,\n\tvariant = \"outline\",\n\tsize = \"icon\",\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { orientation, scrollNext, canScrollNext } = useCarousel()\n\n\treturn (\n\t\t<Button\n\t\t\tdata-slot=\"carousel-next\"\n\t\t\tvariant={variant}\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute size-8 rounded-full\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"top-1/2 -right-12 -translate-y-1/2\"\n\t\t\t\t\t: \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdisabled={!canScrollNext}\n\t\t\tonClick={scrollNext}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ArrowRight />\n\t\t\t<span className=\"sr-only\">Next slide</span>\n\t\t</Button>\n\t)\n}\n\nexport {\n\ttype CarouselApi,\n\tCarousel,\n\tCarouselContent,\n\tCarouselItem,\n\tCarouselPrevious,\n\tCarouselNext,\n}\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.js","sources":["../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import * as React from \"react\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/utils\"\nimport { Button } from \"../Button\"\nimport type { CarouselApi, CarouselOptions, CarouselPlugin } from \"@/types\"\n\ntype CarouselProps = {\n\topts?: CarouselOptions\n\tplugins?: CarouselPlugin\n\torientation?: \"horizontal\" | \"vertical\"\n\tsetApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n\tcarouselRef: ReturnType<typeof useEmblaCarousel>[0]\n\tapi: ReturnType<typeof useEmblaCarousel>[1]\n\tscrollPrev: () => void\n\tscrollNext: () => void\n\tcanScrollPrev: boolean\n\tcanScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n\tconst context = React.useContext(CarouselContext)\n\n\tif (!context) {\n\t\tthrow new Error(\"useCarousel must be used within a <Carousel />\")\n\t}\n\n\treturn context\n}\n\nfunction Carousel({\n\torientation = \"horizontal\",\n\topts,\n\tsetApi,\n\tplugins,\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n\tconst [carouselRef, api] = useEmblaCarousel(\n\t\t{\n\t\t\t...opts,\n\t\t\taxis: orientation === \"horizontal\" ? \"x\" : \"y\",\n\t\t},\n\t\tplugins\n\t)\n\tconst [canScrollPrev, setCanScrollPrev] = React.useState(false)\n\tconst [canScrollNext, setCanScrollNext] = React.useState(false)\n\n\tconst onSelect = React.useCallback((api: CarouselApi) => {\n\t\tif (!api) return\n\t\tsetCanScrollPrev(api.canScrollPrev())\n\t\tsetCanScrollNext(api.canScrollNext())\n\t}, [])\n\n\tconst scrollPrev = React.useCallback(() => {\n\t\tapi?.scrollPrev()\n\t}, [api])\n\n\tconst scrollNext = React.useCallback(() => {\n\t\tapi?.scrollNext()\n\t}, [api])\n\n\tconst handleKeyDown = React.useCallback(\n\t\t(event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\t\tif (event.key === \"ArrowLeft\") {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tscrollPrev()\n\t\t\t} else if (event.key === \"ArrowRight\") {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tscrollNext()\n\t\t\t}\n\t\t},\n\t\t[scrollPrev, scrollNext]\n\t)\n\n\tReact.useEffect(() => {\n\t\tif (!api || !setApi) return\n\t\tsetApi(api)\n\t}, [api, setApi])\n\n\tReact.useEffect(() => {\n\t\tif (!api) return\n\t\tonSelect(api)\n\t\tapi.on(\"reInit\", onSelect)\n\t\tapi.on(\"select\", onSelect)\n\n\t\treturn () => {\n\t\t\tapi?.off(\"reInit\", onSelect)\n\t\t\tapi?.off(\"select\", onSelect)\n\t\t}\n\t}, [api, onSelect])\n\n\treturn (\n\t\t<CarouselContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcarouselRef,\n\t\t\t\tapi: api,\n\t\t\t\topts,\n\t\t\t\torientation:\n\t\t\t\t\torientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n\t\t\t\tscrollPrev,\n\t\t\t\tscrollNext,\n\t\t\t\tcanScrollPrev,\n\t\t\t\tcanScrollNext,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tonKeyDownCapture={handleKeyDown}\n\t\t\t\tclassName={cn(\"relative\", className)}\n\t\t\t\trole=\"region\"\n\t\t\t\taria-roledescription=\"carousel\"\n\t\t\t\tdata-slot=\"carousel\"\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</CarouselContext.Provider>\n\t)\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\tconst { carouselRef, orientation } = useCarousel()\n\n\treturn (\n\t\t<div\n\t\t\tref={carouselRef}\n\t\t\tclassName=\"overflow-hidden\"\n\t\t\tdata-slot=\"carousel-content\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n\tconst { orientation } = useCarousel()\n\n\treturn (\n\t\t<div\n\t\t\trole=\"group\"\n\t\t\taria-roledescription=\"slide\"\n\t\t\tdata-slot=\"carousel-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"min-w-0 shrink-0 grow-0 basis-full\",\n\t\t\t\torientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction CarouselPrevious({\n\tclassName,\n\tvariant = \"outline\",\n\tsize = \"icon\",\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n\treturn (\n\t\t<Button\n\t\t\tdata-slot=\"carousel-previous\"\n\t\t\tvariant={variant}\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute size-8 rounded-full\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"top-1/2 -left-12 -translate-y-1/2\"\n\t\t\t\t\t: \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdisabled={!canScrollPrev}\n\t\t\tonClick={scrollPrev}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ArrowLeft />\n\t\t\t<span className=\"sr-only\">Previous slide</span>\n\t\t</Button>\n\t)\n}\n\nfunction CarouselNext({\n\tclassName,\n\tvariant = \"outline\",\n\tsize = \"icon\",\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { orientation, scrollNext, canScrollNext } = useCarousel()\n\n\treturn (\n\t\t<Button\n\t\t\tdata-slot=\"carousel-next\"\n\t\t\tvariant={variant}\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute size-8 rounded-full\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"top-1/2 -right-12 -translate-y-1/2\"\n\t\t\t\t\t: \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tdisabled={!canScrollNext}\n\t\t\tonClick={scrollNext}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ArrowRight />\n\t\t\t<span className=\"sr-only\">Next slide</span>\n\t\t</Button>\n\t)\n}\n\nexport {\n\ttype CarouselApi,\n\tCarousel,\n\tCarouselContent,\n\tCarouselItem,\n\tCarouselPrevious,\n\tCarouselNext,\n}\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":";;;;;;AAwBA,MAAMA,IAAkBC,EAAM,cAA2C,IAAI;AAE7E,SAASC,IAAc;AACtB,QAAMC,IAAUF,EAAM,WAAWD,CAAe;AAEhD,MAAI,CAACG;AACJ,UAAM,IAAI,MAAM,gDAAgD;AAGjE,SAAOA;AACR;AAEA,SAASC,EAAS;AAAA,EACjB,aAAAC,IAAc;AAAA,EACd,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACJ,GAAgD;AAC/C,QAAM,CAACC,GAAaC,CAAG,IAAIC;AAAA,IAC1B;AAAA,MACC,GAAGR;AAAA,MACH,MAAMD,MAAgB,eAAe,MAAM;AAAA,IAAA;AAAA,IAE5CG;AAAA,EAAA,GAEK,CAACO,GAAeC,CAAgB,IAAIf,EAAM,SAAS,EAAK,GACxD,CAACgB,GAAeC,CAAgB,IAAIjB,EAAM,SAAS,EAAK,GAExDkB,IAAWlB,EAAM,YAAY,CAACY,MAAqB;AACxD,IAAKA,MACLG,EAAiBH,EAAI,eAAe,GACpCK,EAAiBL,EAAI,eAAe;AAAA,EACrC,GAAG,CAAA,CAAE,GAECO,IAAanB,EAAM,YAAY,MAAM;AAC1C,IAAAY,GAAK,WAAA;AAAA,EACN,GAAG,CAACA,CAAG,CAAC,GAEFQ,IAAapB,EAAM,YAAY,MAAM;AAC1C,IAAAY,GAAK,WAAA;AAAA,EACN,GAAG,CAACA,CAAG,CAAC,GAEFS,IAAgBrB,EAAM;AAAA,IAC3B,CAACsB,MAA+C;AAC/C,MAAIA,EAAM,QAAQ,eACjBA,EAAM,eAAA,GACNH,EAAA,KACUG,EAAM,QAAQ,iBACxBA,EAAM,eAAA,GACNF,EAAA;AAAA,IAEF;AAAA,IACA,CAACD,GAAYC,CAAU;AAAA,EAAA;AAGxB,SAAApB,EAAM,UAAU,MAAM;AACrB,IAAI,CAACY,KAAO,CAACN,KACbA,EAAOM,CAAG;AAAA,EACX,GAAG,CAACA,GAAKN,CAAM,CAAC,GAEhBN,EAAM,UAAU,MAAM;AACrB,QAAKY;AACL,aAAAM,EAASN,CAAG,GACZA,EAAI,GAAG,UAAUM,CAAQ,GACzBN,EAAI,GAAG,UAAUM,CAAQ,GAElB,MAAM;AACZ,QAAAN,GAAK,IAAI,UAAUM,CAAQ,GAC3BN,GAAK,IAAI,UAAUM,CAAQ;AAAA,MAC5B;AAAA,EACD,GAAG,CAACN,GAAKM,CAAQ,CAAC,GAGjB,gBAAAK;AAAA,IAACxB,EAAgB;AAAA,IAAhB;AAAA,MACA,OAAO;AAAA,QACN,aAAAY;AAAA,QACA,KAAAC;AAAA,QACA,MAAAP;AAAA,QACA,aACCD,MAAgBC,GAAM,SAAS,MAAM,aAAa;AAAA,QACnD,YAAAc;AAAA,QACA,YAAAC;AAAA,QACA,eAAAN;AAAA,QACA,eAAAE;AAAA,MAAA;AAAA,MAGD,UAAA,gBAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,kBAAkBF;AAAA,UAClB,WAAWG,EAAG,YAAYhB,CAAS;AAAA,UACnC,MAAK;AAAA,UACL,wBAAqB;AAAA,UACrB,aAAU;AAAA,UACT,GAAGE;AAAA,UAEH,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGH;AAEA,SAASgB,EAAgB,EAAE,WAAAjB,GAAW,GAAGE,KAAsC;AAC9E,QAAM,EAAE,aAAAC,GAAa,aAAAP,EAAA,IAAgBH,EAAA;AAErC,SACC,gBAAAsB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,KAAKZ;AAAA,MACL,WAAU;AAAA,MACV,aAAU;AAAA,MAEV,UAAA,gBAAAY;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,WAAWC;AAAA,YACV;AAAA,YACApB,MAAgB,eAAe,UAAU;AAAA,YACzCI;AAAA,UAAA;AAAA,UAEA,GAAGE;AAAA,QAAA;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEA,SAASgB,EAAa,EAAE,WAAAlB,GAAW,GAAGE,KAAsC;AAC3E,QAAM,EAAE,aAAAN,EAAA,IAAgBH,EAAA;AAExB,SACC,gBAAAsB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,wBAAqB;AAAA,MACrB,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACApB,MAAgB,eAAe,SAAS;AAAA,QACxCI;AAAA,MAAA;AAAA,MAEA,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASiB,EAAiB;AAAA,EACzB,WAAAnB;AAAA,EACA,SAAAoB,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,GAAGnB;AACJ,GAAwC;AACvC,QAAM,EAAE,aAAAN,GAAa,YAAAe,GAAY,eAAAL,EAAA,IAAkBb,EAAA;AAEnD,SACC,gBAAA6B;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,SAAAH;AAAA,MACA,MAAAC;AAAA,MACA,WAAWL;AAAA,QACV;AAAA,QACApB,MAAgB,eACb,sCACA;AAAA,QACHI;AAAA,MAAA;AAAA,MAED,UAAU,CAACM;AAAA,MACX,SAASK;AAAA,MACR,GAAGT;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAa,EAACS,GAAA,EAAU;AAAA,QACX,gBAAAT,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,iBAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG3C;AAEA,SAASU,EAAa;AAAA,EACrB,WAAAzB;AAAA,EACA,SAAAoB,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,GAAGnB;AACJ,GAAwC;AACvC,QAAM,EAAE,aAAAN,GAAa,YAAAgB,GAAY,eAAAJ,EAAA,IAAkBf,EAAA;AAEnD,SACC,gBAAA6B;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,SAAAH;AAAA,MACA,MAAAC;AAAA,MACA,WAAWL;AAAA,QACV;AAAA,QACApB,MAAgB,eACb,uCACA;AAAA,QACHI;AAAA,MAAA;AAAA,MAED,UAAU,CAACQ;AAAA,MACX,SAASI;AAAA,MACR,GAAGV;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAa,EAACW,GAAA,EAAW;AAAA,QACZ,gBAAAX,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,aAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvC;"}
@@ -1,4 +1,4 @@
1
- import { D as i, a as l, b as s, c as g, d as D, e, f as r, g as t, h as p, i as C, j as F, F as O, W as T } from "../shared/Dialog.js";
1
+ import { D as i, a as l, b as s, c as g, d as D, e, f as r, g as t, h as p, i as C, F, j as O, W as T } from "../shared/Dialog.js";
2
2
  export {
3
3
  i as Dialog,
4
4
  l as DialogClose,
@@ -1,4 +1,4 @@
1
- import { a as r, P as o } from "../shared/PageHeader.js";
1
+ import { P as r, a as o } from "../shared/PageHeader.js";
2
2
  export {
3
3
  r as PageDescription,
4
4
  o as PageHeader
@@ -1,4 +1,4 @@
1
- import { S as a, b as s, c as S, g as h, e as o, d as r, f as i, a as g } from "../shared/Sheet.js";
1
+ import { S as a, a as s, b as S, c as h, d as o, e as r, f as i, g } from "../shared/Sheet.js";
2
2
  export {
3
3
  a as Sheet,
4
4
  s as SheetClose,
@@ -8,9 +8,9 @@ import { c as r } from "../shared/utils.js";
8
8
  import { B as D } from "../shared/Button.js";
9
9
  import { I as B } from "../shared/Input.js";
10
10
  import { S as E } from "../shared/Separator.js";
11
- import { S as O, c as R, d as A, f as H, g as j } from "../shared/Sheet.js";
11
+ import { S as O, b as R, e as A, f as H, c as j } from "../shared/Sheet.js";
12
12
  import { S as y } from "../shared/Skeleton.js";
13
- import { T as L, a as G, b as K, c as V } from "../shared/Tooltip.js";
13
+ import { T as L, c as G, a as K, b as V } from "../shared/Tooltip.js";
14
14
  const W = "18rem", q = "18rem", F = "3rem", P = "b", C = c.createContext(null);
15
15
  function S() {
16
16
  const a = c.useContext(C);
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAI3D,iBAAS,eAAe,CAAC,EACxB,aAAiB,EACjB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,2CAQxD;AAED,iBAAS,OAAO,CAAC,EAChB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAMpD;AAED,iBAAS,cAAc,CAAC,EACvB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAEvD;AAED,iBAAS,cAAc,CAAC,EACvB,SAAS,EACT,UAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAiBvD;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAI3D,iBAAS,eAAe,CAAC,EACxB,aAAiB,EACjB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,2CAQxD;AAED,iBAAS,OAAO,CAAC,EAChB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAEpD;AAED,iBAAS,cAAc,CAAC,EACvB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAEvD;AAED,iBAAS,cAAc,CAAC,EACvB,SAAS,EACT,UAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAiBvD;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { T as i, b as r, c as T, a } from "../shared/Tooltip.js";
1
+ import { T as i, a as r, b as T, c as a } from "../shared/Tooltip.js";
2
2
  export {
3
3
  i as Tooltip,
4
4
  r as TooltipContent,
@@ -1,4 +1,4 @@
1
- import { jsxs as l, jsx as e } from "react/jsx-runtime";
1
+ import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
2
  import { c as t } from "../shared/utils.js";
3
3
  const s = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20width='800'%20height='800'%20viewBox='0%200%20512%20512'%3e%3cdefs%3e%3cfilter%20id='a'%3e%3cfeTurbulence%20baseFrequency='0.05%200.05'%20numOctaves='2'%20result='noise'%3e%3canimate%20attributeName='baseFrequency'%20dur='0.5s'%20repeatCount='indefinite'%20values='0.05%200.05;%200.055%200.05;%200.05%200.05'/%3e%3c/feTurbulence%3e%3cfeDisplacementMap%20in='SourceGraphic'%20in2='noise'%20scale='1'%20xChannelSelector='R'%20yChannelSelector='G'/%3e%3c/filter%3e%3c/defs%3e%3cg%20filter='url(%23a)'%3e%3cpath%20d='M439.242%20503.916H51.2c-11.906%200-21.558-9.651-21.558-21.558V83.537c0-23.812%2019.304-43.116%2043.116-43.116h366.484c23.812%200%2043.116%2019.304%2043.116%2043.116V460.8c0%2023.812-19.304%2043.116-43.116%2043.116'%20style='fill:%23eaffff'/%3e%3cpath%20d='M40.421%20202.105H18.863c-5.953%200-10.779-4.826-10.779-10.779v-64.674H51.2v64.674c0%205.954-4.826%2010.779-10.779%2010.779'%20style='fill:%23b9baa6'/%3e%3cpath%20d='M148.211%20460.8H94.316V126.653h53.895z'%20style='fill:%23ddb900'/%3e%3cpath%20d='M212.884%20460.8v43.116H18.863V460.8c0-5.953%204.826-10.779%2010.779-10.779h172.463c5.954%200%2010.779%204.826%2010.779%2010.779'%20style='fill:%23b9baa6'/%3e%3cpath%20d='M503.916%20353.011v32.337c0%205.953-4.826%2010.779-10.779%2010.779h-53.895v53.895h32.337c5.953%200%2010.779%204.826%2010.779%2010.779v43.116h-204.8v-97.011c0-5.953%204.826-10.779%2010.779-10.779h75.453v-43.116c0-5.953%204.826-10.779%2010.779-10.779h118.568c5.953%200%2010.779%204.825%2010.779%2010.779'%20style='fill:%23e7e8d4'/%3e%3cpath%20d='M503.916%20353.011v32.337c0%205.953-4.826%2010.779-10.779%2010.779h-53.895v53.895H277.558v-43.116c0-5.953%204.826-10.779%2010.779-10.779h75.453v-43.116c0-5.953%204.826-10.779%2010.779-10.779h118.568c5.953%200%2010.779%204.825%2010.779%2010.779'%20style='fill:%23d3d5bb'/%3e%3cpath%20d='M503.916%20353.011v32.337c0%205.953-4.826%2010.779-10.779%2010.779H363.789v-43.116c0-5.953%204.826-10.779%2010.779-10.779h118.568c5.954%200%2010.78%204.825%2010.78%2010.779'%20style='fill:%23b9baa6'/%3e%3cpath%20d='M503.916%2029.642c0%2011.906-9.651%2021.558-21.558%2021.558H382.44a21.43%2021.43%200%200%201%202.907%2010.779c0%2011.906-9.651%2021.558-21.558%2021.558H202.105c-11.906%200-21.558-9.651-21.558-21.558s9.651-21.558%2021.558-21.558H323.58a21.43%2021.43%200%200%201-2.907-10.779c0-11.906%209.651-21.558%2021.558-21.558h140.126c11.907%200%2021.559%209.652%2021.559%2021.558'%20style='fill:%23c5ead4'/%3e%3cpath%20d='M129.835%2037.658a8.085%208.085%200%200%201%2010.36-4.834l21.558%207.84a8.083%208.083%200%200%201%204.834%2010.36%208.09%208.09%200%200%201-7.598%205.324%208.1%208.1%200%200%201-2.763-.489l-21.558-7.84a8.084%208.084%200%200%201-4.833-10.361m72.27%2053.963h161.684c16.344%200%2029.642-13.297%2029.642-29.642a29.63%2029.63%200%200%200-3.996-14.83%208.084%208.084%200%201%200-13.991%208.102%2013.27%2013.27%200%200%201%201.819%206.728c0%207.43-6.044%2013.474-13.474%2013.474H202.106c-7.43%200-13.474-6.044-13.474-13.474s6.043-13.475%2013.473-13.475H323.58a8.083%208.083%200%200%200%206.995-12.135%2013.27%2013.27%200%200%201-1.818-6.728c0-7.43%206.044-13.474%2013.474-13.474h140.126c7.43%200%2013.474%206.044%2013.474%2013.474s-6.044%2013.474-13.474%2013.474h-68.985c-4.466%200-8.084%203.62-8.084%208.084s3.618%208.084%208.084%208.084h68.985c16.344%200%2029.642-13.297%2029.642-29.642S498.702%200%20482.358%200H342.232c-16.344%200-29.642%2013.297-29.642%2029.642q0%201.352.124%202.695H202.105c-16.344%200-29.642%2013.297-29.642%2029.642s13.298%2029.642%2029.642%2029.642M512%20353.011v32.337c0%2010.401-8.463%2018.863-18.863%2018.863h-45.811v22.366c0%204.465-3.618%208.084-8.084%208.084s-8.084-3.62-8.084-8.084v-22.366H288.337a2.7%202.7%200%200%200-2.695%202.695v35.032h57.398c4.466%200%208.084%203.62%208.084%208.084s-3.618%208.084-8.084%208.084h-57.398v37.726h188.632V460.8a2.7%202.7%200%200%200-2.695-2.695h-96.741c-4.466%200-8.084-3.62-8.084-8.084s3.618-8.084%208.084-8.084h96.741c10.401%200%2018.863%208.463%2018.863%2018.863v35.032h13.474a8.084%208.084%200%200%201%208.084%208.084%208.083%208.083%200%200%201-8.084%208.084H180.547a8.084%208.084%200%200%201%200-16.168H204.8V460.8a2.7%202.7%200%200%200-2.695-2.695H29.642a2.7%202.7%200%200%200-2.695%202.695v35.032H148.21a8.084%208.084%200%200%201%200%2016.168H8.084a8.085%208.085%200%200%201%200-16.168h2.695V460.8c0-10.401%208.463-18.863%2018.863-18.863h56.589v-34.844a8%208%200%200%201%200-.377v-44.894a8%208%200%200%201%200-.377V316.55a8%208%200%200%201%200-.377v-44.894a8%208%200%200%201%200-.377v-44.894a8%208%200%200%201%200-.377v-44.894a8%208%200%200%201%200-.377v-45.621H59.284v56.589c0%2010.401-8.463%2018.863-18.863%2018.863H18.863C8.463%20210.189%200%20201.727%200%20191.326v-64.637c-.001-.304%200-3.101%202.029-5.393l75.424-86.199a8.085%208.085%200%200%201%2012.168%2010.646L25.9%20118.568h76.5V8.084a8.085%208.085%200%200%201%2016.168%200v110.484H328.68l-11.81-4.294a8.084%208.084%200%201%201%205.527-15.194l53.596%2019.488h52.471a8.084%208.084%200%200%201%208.084%208.084%208.083%208.083%200%200%201-8.084%208.084h-2.695V256a8.083%208.083%200%200%201-8.084%208.084c-7.43%200-13.474%206.044-13.474%2013.474s6.044%2013.474%2013.474%2013.474%2013.474-6.044%2013.474-13.474c0-4.465%203.618-8.084%208.084-8.084s8.084%203.62%208.084%208.084c0%2016.345-13.298%2029.642-29.642%2029.642s-29.642-13.297-29.642-29.642c0-13.544%209.13-24.994%2021.558-28.521v-114.3h-34.844a8%208%200%200%201-.376%200H156.295v307.2h45.811c10.401%200%2018.863%208.463%2018.863%2018.863v35.032h48.505v-88.926c0-10.401%208.463-18.863%2018.863-18.863h204.8a2.7%202.7%200%200%200%202.695-2.695v-32.337a2.7%202.7%200%200%200-2.695-2.695H374.568a2.7%202.7%200%200%200-2.695%202.695v19.402a8.083%208.083%200%200%201-8.084%208.084%208.084%208.084%200%200%201-8.084-8.084v-19.402c0-10.401%208.463-18.863%2018.863-18.863h118.568c10.401-.001%2018.864%208.462%2018.864%2018.863M43.116%20134.737H16.168v56.589a2.7%202.7%200%200%200%202.695%202.695h21.558a2.7%202.7%200%200%200%202.695-2.695zm97.01%200H102.4v34.594l21.696-7.232a8.085%208.085%200%200%201%205.112%2015.34l-26.808%208.936v28.228l21.696-7.232a8.084%208.084%200%200%201%2010.226%205.114%208.084%208.084%200%200%201-5.114%2010.226l-26.808%208.936v28.228l21.696-7.232a8.085%208.085%200%200%201%205.112%2015.34l-26.808%208.936v28.228l21.696-7.232a8.085%208.085%200%201%201%205.112%2015.34l-26.808%208.936v28.228l21.696-7.232a8.085%208.085%200%201%201%205.112%2015.34l-26.808%208.936v28.228l21.696-7.232a8.085%208.085%200%201%201%205.112%2015.339l-26.808%208.936v29.204h37.726z'/%3e%3c/g%3e%3c/svg%3e";
4
4
  function h() {
@@ -1 +1 @@
1
- {"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,YAc1B"}
1
+ {"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,YAgB1B"}
@@ -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
@@ -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;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abumble/design-system",
3
- "version": "0.0.37",
3
+ "version": "0.0.38",
4
4
  "files": [
5
5
  "dist",
6
6
  "src/styles.css",
@@ -187,7 +187,7 @@
187
187
  "tw-animate-css": "^1.3.6"
188
188
  },
189
189
  "devDependencies": {
190
- "@chromatic-com/storybook": "^4.1.2",
190
+ "@chromatic-com/storybook": "^5.0.1",
191
191
  "@eslint/js": "^9.39.1",
192
192
  "@radix-ui/react-collapsible": "^1.1.12",
193
193
  "@radix-ui/react-context-menu": "^2.2.16",
@@ -196,11 +196,11 @@
196
196
  "@radix-ui/react-separator": "^1.1.7",
197
197
  "@radix-ui/react-slot": "^1.2.3",
198
198
  "@radix-ui/react-tooltip": "^1.2.8",
199
- "@storybook/addon-a11y": "10.2.8",
200
- "@storybook/addon-docs": "10.2.8",
201
- "@storybook/addon-onboarding": "10.2.8",
202
- "@storybook/addon-vitest": "10.2.8",
203
- "@storybook/react-vite": "10.2.8",
199
+ "@storybook/addon-a11y": "10.2.17",
200
+ "@storybook/addon-docs": "10.2.17",
201
+ "@storybook/addon-onboarding": "10.2.17",
202
+ "@storybook/addon-vitest": "10.2.17",
203
+ "@storybook/react-vite": "10.2.17",
204
204
  "@tailwindcss/vite": "^4.0.6",
205
205
  "@types/node": "^24.10.0",
206
206
  "@types/react": "^19.2.2",
@@ -216,7 +216,7 @@
216
216
  "eslint": "^9.39.1",
217
217
  "eslint-plugin-react-hooks": "^7.0.1",
218
218
  "eslint-plugin-react-refresh": "^0.4.24",
219
- "eslint-plugin-storybook": "10.2.8",
219
+ "eslint-plugin-storybook": "10.2.17",
220
220
  "globals": "^16.5.0",
221
221
  "lucide-react": "^0.544.0",
222
222
  "playwright": "^1.56.1",
@@ -225,7 +225,7 @@
225
225
  "react": "^19.2.0",
226
226
  "react-dom": "^19.2.0",
227
227
  "rimraf": "^6.1.2",
228
- "storybook": "10.2.8",
228
+ "storybook": "10.2.17",
229
229
  "tailwind-merge": "^3.0.2",
230
230
  "tailwindcss": "^4.1.17",
231
231
  "typescript": "~5.9.3",
@@ -65,6 +65,73 @@
65
65
  --checkbox-unchecked-border: oklch(0.88 0.01 60);
66
66
  }
67
67
 
68
+ [data-theme="linen"] {
69
+ /* --- Light Theme (Linen & Slate - Minimal Warmth) --- */
70
+ --background: oklch(0.992 0.003 85);
71
+ --foreground: oklch(0.2 0.01 85);
72
+
73
+ /* Surfaces (Tables, Cards, Buttons) - Frosted White */
74
+ --card: oklch(1 0 0 / 0.75);
75
+ --card-foreground: oklch(0.2 0.01 85);
76
+
77
+ --popover: oklch(1 0 0);
78
+ --popover-foreground: oklch(0.2 0.01 85);
79
+
80
+ /* Primary: Deep Warm Charcoal (Neutral & High Contrast) */
81
+ --primary: oklch(0.18 0.01 85);
82
+ --primary-foreground: oklch(1 0 0);
83
+
84
+ /* Button/Surface Colors: Pure White */
85
+ --secondary: oklch(1 0 0);
86
+ --secondary-foreground: oklch(0.18 0.01 85);
87
+
88
+ --muted: oklch(1 0 0);
89
+ --muted-foreground: oklch(0.5 0.01 85);
90
+
91
+ --accent: oklch(1 0 0);
92
+ --accent-foreground: oklch(0.18 0.01 85);
93
+
94
+ --destructive: oklch(0.55 0.15 25);
95
+ --destructive-foreground: oklch(1 0 0);
96
+
97
+ --border: oklch(0.94 0.005 85);
98
+ --input: oklch(0.94 0.005 85);
99
+ --ring: oklch(0.18 0.01 85 / 0.1);
100
+
101
+ --radius: 0.6rem;
102
+
103
+ /* Sidebar (Soft White) */
104
+ --sidebar: oklch(0.995 0.002 85);
105
+ --sidebar-foreground: oklch(0.2 0.01 85);
106
+ --sidebar-primary: oklch(0.18 0.01 85);
107
+ --sidebar-primary-foreground: oklch(1 0 0);
108
+ --sidebar-accent: oklch(0.97 0.01 85);
109
+ --sidebar-accent-foreground: oklch(0.18 0.01 85);
110
+ --sidebar-border: oklch(0.95 0.005 85);
111
+
112
+ /* Banners */
113
+ --banner-info: oklch(0.94 0.02 240);
114
+ --banner-info-foreground: oklch(0.4 0.1 240);
115
+ --banner-info-border: oklch(0.85 0.05 240);
116
+ --banner-note: oklch(0.94 0.02 160);
117
+ --banner-note-foreground: oklch(0.35 0.1 160);
118
+ --banner-note-border: oklch(0.85 0.05 160);
119
+ --banner-warning: oklch(0.95 0.03 80);
120
+ --banner-warning-foreground: oklch(0.45 0.1 60);
121
+ --banner-warning-border: oklch(0.88 0.05 70);
122
+ --banner-alert: oklch(0.95 0.03 25);
123
+ --banner-alert-foreground: oklch(0.45 0.12 25);
124
+ --banner-alert-border: oklch(0.88 0.08 25);
125
+
126
+ /* Interactive Elements */
127
+ --badge-success: oklch(0.4 0.1 160);
128
+ --badge-success-foreground: oklch(1 0 0);
129
+ --checkbox-checked: oklch(0.15 0.01 60);
130
+ --checkbox-checked-foreground: oklch(1 0 0);
131
+ --checkbox-unchecked-bg: oklch(1 0 0);
132
+ --checkbox-unchecked-border: oklch(0.88 0.01 60);
133
+ }
134
+
68
135
  .dark {
69
136
  /* --- Dark Theme (Warm Charcoal - Candlelit) --- */
70
137
  --background: oklch(0.14 0.01 80);
@@ -128,3 +195,67 @@
128
195
  --checkbox-unchecked-bg: oklch(0.22 0.01 80);
129
196
  --checkbox-unchecked-border: oklch(0.35 0.01 80);
130
197
  }
198
+
199
+ [data-theme="linen"].dark {
200
+ /* --- Dark Theme (Warm Charcoal - Candlelit) --- */
201
+ --background: oklch(0.14 0.01 80);
202
+ --foreground: oklch(0.93 0.01 85);
203
+
204
+ /* Card Elevation: Warm lifted surface */
205
+ --card: oklch(0.19 0.012 80 / 0.75);
206
+ --card-foreground: oklch(0.93 0.01 85);
207
+
208
+ --popover: oklch(0.17 0.01 80);
209
+ --popover-foreground: oklch(0.93 0.01 85);
210
+
211
+ /* Primary: Warm Sand/Cream */
212
+ --primary: oklch(0.86 0.05 85);
213
+ --primary-foreground: oklch(0.14 0.01 80);
214
+
215
+ --secondary: oklch(0.24 0.01 80);
216
+ --secondary-foreground: oklch(0.86 0.05 85);
217
+
218
+ --muted: oklch(0.24 0.01 80);
219
+ --muted-foreground: oklch(0.60 0.01 85);
220
+
221
+ --accent: oklch(0.24 0.01 80);
222
+ --accent-foreground: oklch(0.86 0.05 85);
223
+
224
+ --destructive: oklch(0.48 0.15 25);
225
+ --destructive-foreground: oklch(0.93 0.01 85);
226
+
227
+ --border: oklch(0.28 0.01 80);
228
+ --input: oklch(0.28 0.01 80);
229
+ --ring: oklch(0.86 0.05 85 / 0.3);
230
+
231
+ /* Sidebar (Warm Dark) */
232
+ --sidebar: oklch(0.17 0.01 80);
233
+ --sidebar-foreground: oklch(0.93 0.01 85);
234
+ --sidebar-primary: oklch(0.86 0.05 85);
235
+ --sidebar-primary-foreground: oklch(0.14 0.01 80);
236
+ --sidebar-accent: oklch(0.23 0.01 80);
237
+ --sidebar-accent-foreground: oklch(0.93 0.01 85);
238
+ --sidebar-border: oklch(0.28 0.01 80);
239
+
240
+ /* Banners (Warm Dark) */
241
+ --banner-info: oklch(0.22 0.04 230);
242
+ --banner-info-foreground: oklch(0.88 0.05 230);
243
+ --banner-info-border: oklch(0.48 0.16 235);
244
+ --banner-note: oklch(0.22 0.04 155);
245
+ --banner-note-foreground: oklch(0.88 0.06 155);
246
+ --banner-note-border: oklch(0.44 0.1 155);
247
+ --banner-warning: oklch(0.26 0.06 70);
248
+ --banner-warning-foreground: oklch(0.92 0.1 80);
249
+ --banner-warning-border: oklch(0.65 0.2 75);
250
+ --banner-alert: oklch(0.23 0.05 25);
251
+ --banner-alert-foreground: oklch(0.9 0.06 25);
252
+ --banner-alert-border: oklch(0.44 0.14 25);
253
+
254
+ /* Interactive Elements (Warm Dark) */
255
+ --badge-success: oklch(0.44 0.12 150);
256
+ --badge-success-foreground: oklch(0.93 0.01 85);
257
+ --checkbox-checked: oklch(0.86 0.05 85);
258
+ --checkbox-checked-foreground: oklch(0.14 0.01 80);
259
+ --checkbox-unchecked-bg: oklch(0.22 0.01 80);
260
+ --checkbox-unchecked-border: oklch(0.35 0.01 80);
261
+ }
@@ -65,6 +65,73 @@
65
65
  --checkbox-unchecked-border: oklch(0.85 0.01 250);
66
66
  }
67
67
 
68
+ [data-theme="steel"] {
69
+ /* --- Light Theme (Metallic & Industrial - Brushed Steel) --- */
70
+ --background: oklch(0.95 0.005 250);
71
+ --foreground: oklch(0.2 0.02 250);
72
+
73
+ /* Surfaces - Aluminum Finish */
74
+ --card: oklch(0.98 0.005 250 / 0.85);
75
+ --card-foreground: oklch(0.2 0.02 250);
76
+
77
+ --popover: oklch(1 0 0);
78
+ --popover-foreground: oklch(0.2 0.02 250);
79
+
80
+ /* Primary: Industrial Blue */
81
+ --primary: oklch(0.3 0.05 250);
82
+ --primary-foreground: oklch(0.98 0.005 250);
83
+
84
+ /* Button/Surface Colors: Silver */
85
+ --secondary: oklch(0.97 0.005 250);
86
+ --secondary-foreground: oklch(0.3 0.05 250);
87
+
88
+ --muted: oklch(0.93 0.005 250);
89
+ --muted-foreground: oklch(0.5 0.02 250);
90
+
91
+ --accent: oklch(0.91 0.008 250);
92
+ --accent-foreground: oklch(0.3 0.05 250);
93
+
94
+ --destructive: oklch(0.55 0.15 25);
95
+ --destructive-foreground: oklch(1 0 0);
96
+
97
+ --border: oklch(0.88 0.005 250);
98
+ --input: oklch(0.88 0.005 250);
99
+ --ring: oklch(0.3 0.05 250 / 0.15);
100
+
101
+ --radius: 0.25rem; /* Sharper for robotic feel */
102
+
103
+ /* Sidebar (Cold Slate) */
104
+ --sidebar: oklch(0.97 0.005 250);
105
+ --sidebar-foreground: oklch(0.25 0.02 250);
106
+ --sidebar-primary: oklch(0.3 0.05 250);
107
+ --sidebar-primary-foreground: oklch(0.98 0.005 250);
108
+ --sidebar-accent: oklch(0.93 0.008 250);
109
+ --sidebar-accent-foreground: oklch(0.25 0.02 250);
110
+ --sidebar-border: oklch(0.9 0.005 250);
111
+
112
+ /* Banners (Metallic & Industrial) */
113
+ --banner-info: oklch(0.94 0.02 245);
114
+ --banner-info-foreground: oklch(0.24 0.09 245);
115
+ --banner-info-border: oklch(0.52 0.18 245);
116
+ --banner-note: oklch(0.94 0.02 162);
117
+ --banner-note-foreground: oklch(0.24 0.1 162);
118
+ --banner-note-border: oklch(0.48 0.16 162);
119
+ --banner-warning: oklch(0.95 0.04 78);
120
+ --banner-warning-foreground: oklch(0.34 0.13 62);
121
+ --banner-warning-border: oklch(0.62 0.18 72);
122
+ --banner-alert: oklch(0.95 0.03 22);
123
+ --banner-alert-foreground: oklch(0.34 0.14 22);
124
+ --banner-alert-border: oklch(0.52 0.2 22);
125
+
126
+ /* Interactive Elements */
127
+ --badge-success: oklch(0.35 0.1 160);
128
+ --badge-success-foreground: oklch(0.98 0.01 160);
129
+ --checkbox-checked: oklch(0.3 0.05 250);
130
+ --checkbox-checked-foreground: oklch(1 0 0);
131
+ --checkbox-unchecked-bg: oklch(1 0 0);
132
+ --checkbox-unchecked-border: oklch(0.85 0.01 250);
133
+ }
134
+
68
135
  .dark {
69
136
  /* --- Dark Theme (Modern Slate & Glow) --- */
70
137
  --background: oklch(0.18 0.015 260);
@@ -128,3 +195,67 @@
128
195
  --checkbox-unchecked-bg: oklch(0.25 0.01 260);
129
196
  --checkbox-unchecked-border: oklch(0.4 0.01 260);
130
197
  }
198
+
199
+ [data-theme="steel"].dark {
200
+ /* --- Dark Theme (Modern Slate & Glow) --- */
201
+ --background: oklch(0.18 0.015 260);
202
+ --foreground: oklch(0.985 0 0);
203
+
204
+ /* Card Elevation: Brighter than background */
205
+ --card: oklch(0.23 0.02 260 / 0.75);
206
+ --card-foreground: oklch(0.985 0 0);
207
+
208
+ --popover: oklch(0.21 0.015 260);
209
+ --popover-foreground: oklch(0.985 0 0);
210
+
211
+ /* Primary: Electric Cyan Glow */
212
+ --primary: oklch(0.9 0.1 220);
213
+ --primary-foreground: oklch(0.18 0.015 260);
214
+
215
+ --secondary: oklch(0.28 0.02 260);
216
+ --secondary-foreground: oklch(0.9 0.1 220);
217
+
218
+ --muted: oklch(0.28 0.02 260);
219
+ --muted-foreground: oklch(0.705 0.015 260);
220
+
221
+ --accent: oklch(0.28 0.02 260);
222
+ --accent-foreground: oklch(0.9 0.1 220);
223
+
224
+ --destructive: oklch(0.45 0.15 25);
225
+ --destructive-foreground: oklch(0.985 0 0);
226
+
227
+ --border: oklch(0.32 0.02 260);
228
+ --input: oklch(0.32 0.02 260);
229
+ --ring: oklch(0.9 0.1 220 / 0.3);
230
+
231
+ /* Sidebar (Dark) */
232
+ --sidebar: oklch(0.21 0.015 260);
233
+ --sidebar-foreground: oklch(0.985 0 0);
234
+ --sidebar-primary: oklch(0.9 0.1 220);
235
+ --sidebar-primary-foreground: oklch(0.18 0.015 260);
236
+ --sidebar-accent: oklch(0.28 0.02 260);
237
+ --sidebar-accent-foreground: oklch(0.985 0 0);
238
+ --sidebar-border: oklch(0.32 0.02 260);
239
+
240
+ /* Banners (Dark - Desaturated) */
241
+ --banner-info: oklch(0.274 0.079 260);
242
+ --banner-info-foreground: oklch(0.925 0.033 260);
243
+ --banner-info-border: oklch(0.488 0.2 260);
244
+ --banner-note: oklch(0.266 0.065 152);
245
+ --banner-note-foreground: oklch(0.962 0.044 156);
246
+ --banner-note-border: oklch(0.45 0.1 152);
247
+ --banner-warning: oklch(0.55 0.22 100);
248
+ --banner-warning-foreground: oklch(0.99 0.15 102);
249
+ --banner-warning-border: oklch(0.75 0.25 100);
250
+ --banner-alert: oklch(0.293 0.084 27);
251
+ --banner-alert-foreground: oklch(0.969 0.071 27);
252
+ --banner-alert-border: oklch(0.45 0.12 27);
253
+
254
+ /* Interactive Elements (Dark) */
255
+ --badge-success: oklch(0.48 0.15 150);
256
+ --badge-success-foreground: oklch(1 0 0);
257
+ --checkbox-checked: oklch(0.9 0.1 220);
258
+ --checkbox-checked-foreground: oklch(0.18 0.015 260);
259
+ --checkbox-unchecked-bg: oklch(0.25 0.01 260);
260
+ --checkbox-unchecked-border: oklch(0.4 0.01 260);
261
+ }