@abumble/design-system 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/components/BackLink/BackLink.d.ts.map +1 -1
  2. package/dist/components/Banner/Banner.d.ts +7 -5
  3. package/dist/components/Banner/Banner.d.ts.map +1 -1
  4. package/dist/components/Banner.js +15 -5
  5. package/dist/components/Banner.js.map +1 -1
  6. package/dist/components/BannerHeader.js +1 -1
  7. package/dist/components/Carousel/Carousel.d.ts.map +1 -1
  8. package/dist/components/Carousel.js +36 -36
  9. package/dist/components/Carousel.js.map +1 -1
  10. package/dist/components/Dialog.js +1 -1
  11. package/dist/components/PageHeader.js +1 -1
  12. package/dist/components/Select.js +2 -22
  13. package/dist/components/Select.js.map +1 -1
  14. package/dist/components/Sheet.js +1 -1
  15. package/dist/components/Sidebar.js +2 -2
  16. package/dist/components/ThemeSelector/ThemeSelector.d.ts +2 -0
  17. package/dist/components/ThemeSelector/ThemeSelector.d.ts.map +1 -0
  18. package/dist/components/ThemeSelector/index.d.ts +2 -0
  19. package/dist/components/ThemeSelector/index.d.ts.map +1 -0
  20. package/dist/components/ThemeSelector.js +24 -0
  21. package/dist/components/ThemeSelector.js.map +1 -0
  22. package/dist/components/ThemeToggle/ThemeToggle.d.ts +2 -0
  23. package/dist/components/ThemeToggle/ThemeToggle.d.ts.map +1 -0
  24. package/dist/components/ThemeToggle/index.d.ts +2 -0
  25. package/dist/components/ThemeToggle/index.d.ts.map +1 -0
  26. package/dist/components/ThemeToggle.js +24 -0
  27. package/dist/components/ThemeToggle.js.map +1 -0
  28. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  29. package/dist/components/Tooltip.js +1 -1
  30. package/dist/components/UnderConstruction.js +1 -1
  31. package/dist/hooks/use-mobile.d.ts.map +1 -1
  32. package/dist/index.css +1 -0
  33. package/dist/shared/BackLink.js +25 -19
  34. package/dist/shared/BackLink.js.map +1 -1
  35. package/dist/shared/Dialog.js +2 -2
  36. package/dist/shared/Empty.js +1 -1
  37. package/dist/shared/Empty.js.map +1 -1
  38. package/dist/shared/PageHeader.js +2 -2
  39. package/dist/shared/Select.js +25 -0
  40. package/dist/shared/Select.js.map +1 -0
  41. package/dist/shared/Sheet.js +11 -11
  42. package/dist/shared/Sheet.js.map +1 -1
  43. package/dist/shared/Skeleton.js +7 -7
  44. package/dist/shared/Skeleton.js.map +1 -1
  45. package/dist/shared/Tooltip.js +12 -12
  46. package/dist/shared/Tooltip.js.map +1 -1
  47. package/dist/shared/use-mobile.js +6 -4
  48. package/dist/shared/use-mobile.js.map +1 -1
  49. package/dist/shared/useTheme.js +12 -0
  50. package/dist/shared/useTheme.js.map +1 -0
  51. package/dist/themes/ThemeContext.d.ts +10 -0
  52. package/dist/themes/ThemeContext.d.ts.map +1 -0
  53. package/dist/themes/ThemeProvider.d.ts +9 -0
  54. package/dist/themes/ThemeProvider.d.ts.map +1 -0
  55. package/dist/themes/index.d.ts +3 -0
  56. package/dist/themes/index.d.ts.map +1 -0
  57. package/dist/themes/theme.d.ts +2 -0
  58. package/dist/themes/theme.d.ts.map +1 -0
  59. package/dist/themes/useTheme.d.ts +2 -0
  60. package/dist/themes/useTheme.d.ts.map +1 -0
  61. package/dist/themes.js +50 -0
  62. package/dist/themes.js.map +1 -0
  63. package/package.json +16 -144
  64. package/src/themes/ThemeContext.ts +12 -0
  65. package/src/themes/ThemeProvider.tsx +86 -0
  66. package/src/themes/index.ts +2 -0
  67. package/src/themes/linen.css +131 -0
  68. package/src/themes/steel.css +131 -0
  69. package/src/themes/theme.tsx +3 -0
  70. package/src/themes/useTheme.ts +8 -0
@@ -1 +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;AAa3D,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<\n\tTBannerType,\n\tReact.ComponentType<{ className?: string }>\n> = {\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,IAGF;AAAA,EACH,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":"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"}
@@ -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,25 +1,5 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import "react";
3
- import { c as i } from "../shared/utils.js";
4
- function l({
5
- className: e,
6
- ...o
7
- }) {
8
- return /* @__PURE__ */ r(
9
- "select",
10
- {
11
- "data-slot": "select",
12
- className: i(
13
- "flex h-9 w-full rounded border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors outline-none",
14
- "focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:border-ring",
15
- "disabled:pointer-events-none disabled:opacity-50",
16
- e
17
- ),
18
- ...o
19
- }
20
- );
21
- }
1
+ import { S as r } from "../shared/Select.js";
22
2
  export {
23
- l as Select
3
+ r as Select
24
4
  };
25
5
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/utils'\n\n/** Native select styled to match design-system Input (form control). */\nexport function Select({\n\tclassName,\n\t...props\n}: React.ComponentProps<'select'>) {\n\treturn (\n\t\t<select\n\t\t\tdata-slot=\"select\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex h-9 w-full rounded border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors outline-none',\n\t\t\t\t'focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:border-ring',\n\t\t\t\t'disabled:pointer-events-none disabled:opacity-50',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n"],"names":["Select","className","props","jsx","cn"],"mappings":";;;AAKO,SAASA,EAAO;AAAA,EACtB,WAAAC;AAAA,EACA,GAAGC;AACJ,GAAmC;AAClC,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAWC;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"Select.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -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);
@@ -0,0 +1,2 @@
1
+ export declare function ThemeSelector(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ThemeSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeSelector.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeSelector/ThemeSelector.tsx"],"names":[],"mappings":"AASA,wBAAgB,aAAa,4CAe5B"}
@@ -0,0 +1,2 @@
1
+ export { ThemeSelector } from './ThemeSelector';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeSelector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import "react";
3
+ import { u as n } from "../shared/useTheme.js";
4
+ import { S as a } from "../shared/Select.js";
5
+ const m = [
6
+ { value: "linen", label: "Linen" },
7
+ { value: "steel", label: "Steel" }
8
+ ];
9
+ function p() {
10
+ const { colorTheme: l, setColorTheme: t } = n();
11
+ return /* @__PURE__ */ o(
12
+ a,
13
+ {
14
+ value: l,
15
+ "aria-label": "Select color theme",
16
+ onChange: (e) => t(e.target.value),
17
+ children: m.map(({ value: e, label: r }) => /* @__PURE__ */ o("option", { value: e, children: r }, e))
18
+ }
19
+ );
20
+ }
21
+ export {
22
+ p as ThemeSelector
23
+ };
24
+ //# sourceMappingURL=ThemeSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeSelector.js","sources":["../../src/components/ThemeSelector/ThemeSelector.tsx"],"sourcesContent":["import { useTheme } from '@/themes'\nimport type { ColorTheme } from '@/themes'\nimport { Select } from '../Select'\n\nconst COLOR_THEMES: { value: ColorTheme; label: string }[] = [\n\t{ value: 'linen', label: 'Linen' },\n\t{ value: 'steel', label: 'Steel' },\n]\n\nexport function ThemeSelector() {\n\tconst { colorTheme, setColorTheme } = useTheme()\n\treturn (\n\t\t<Select\n\t\t\tvalue={colorTheme}\n\t\t\taria-label=\"Select color theme\"\n\t\t\tonChange={(e) => setColorTheme(e.target.value as ColorTheme)}\n\t\t>\n\t\t\t{COLOR_THEMES.map(({ value, label }) => (\n\t\t\t\t<option key={value} value={value}>\n\t\t\t\t\t{label}\n\t\t\t\t</option>\n\t\t\t))}\n\t\t</Select>\n\t)\n}\n"],"names":["COLOR_THEMES","ThemeSelector","colorTheme","setColorTheme","useTheme","jsx","Select","value","label"],"mappings":";;;;AAIA,MAAMA,IAAuD;AAAA,EAC5D,EAAE,OAAO,SAAS,OAAO,QAAA;AAAA,EACzB,EAAE,OAAO,SAAS,OAAO,QAAA;AAC1B;AAEO,SAASC,IAAgB;AAC/B,QAAM,EAAE,YAAAC,GAAY,eAAAC,EAAA,IAAkBC,EAAA;AACtC,SACC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,OAAOJ;AAAA,MACP,cAAW;AAAA,MACX,UAAU,CAAC,MAAMC,EAAc,EAAE,OAAO,KAAmB;AAAA,MAE1D,UAAAH,EAAa,IAAI,CAAC,EAAE,OAAAO,GAAO,OAAAC,EAAA,MAC3B,gBAAAH,EAAC,UAAA,EAAmB,OAAAE,GAClB,UAAAC,EAAA,GADWD,CAEb,CACA;AAAA,IAAA;AAAA,EAAA;AAGJ;"}
@@ -0,0 +1,2 @@
1
+ export declare function ThemeToggle(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ThemeToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeToggle/ThemeToggle.tsx"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,4CAgB1B"}
@@ -0,0 +1,2 @@
1
+ export { ThemeToggle } from './ThemeToggle';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeToggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import "react";
3
+ import { u as s } from "../shared/useTheme.js";
4
+ import { Moon as a, Sun as m } from "lucide-react";
5
+ import { B as i } from "../shared/Button.js";
6
+ function d() {
7
+ const { setTheme: t, effectiveTheme: r } = s(), e = r === "dark";
8
+ return /* @__PURE__ */ o(
9
+ i,
10
+ {
11
+ type: "button",
12
+ variant: "ghost",
13
+ size: "icon",
14
+ className: "rounded-full",
15
+ "aria-label": e ? "Dark mode on" : "Dark mode off",
16
+ onClick: () => t(e ? "light" : "dark"),
17
+ children: e ? /* @__PURE__ */ o(a, { className: "size-5" }) : /* @__PURE__ */ o(m, { className: "size-5" })
18
+ }
19
+ );
20
+ }
21
+ export {
22
+ d as ThemeToggle
23
+ };
24
+ //# sourceMappingURL=ThemeToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeToggle.js","sources":["../../src/components/ThemeToggle/ThemeToggle.tsx"],"sourcesContent":["import { useTheme } from '@/themes'\nimport { Moon, Sun } from 'lucide-react'\nimport { Button } from '../Button'\n\nexport function ThemeToggle() {\n\tconst { setTheme, effectiveTheme } = useTheme()\n\tconst isDark = effectiveTheme === 'dark'\n\tconst toggle = () => setTheme(isDark ? 'light' : 'dark')\n\treturn (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"icon\"\n\t\t\tclassName=\"rounded-full\"\n\t\t\taria-label={isDark ? 'Dark mode on' : 'Dark mode off'}\n\t\t\tonClick={toggle}\n\t\t>\n\t\t\t{isDark ? <Moon className=\"size-5\" /> : <Sun className=\"size-5\" />}\n\t\t</Button>\n\t)\n}\n"],"names":["ThemeToggle","setTheme","effectiveTheme","useTheme","isDark","jsx","Button","Moon","Sun"],"mappings":";;;;;AAIO,SAASA,IAAc;AAC7B,QAAM,EAAE,UAAAC,GAAU,gBAAAC,EAAA,IAAmBC,EAAA,GAC/BC,IAASF,MAAmB;AAElC,SACC,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAU;AAAA,MACV,cAAYF,IAAS,iBAAiB;AAAA,MACtC,SARa,MAAMH,EAASG,IAAS,UAAU,MAAM;AAAA,MAUpD,UAAAA,sBAAUG,GAAA,EAAK,WAAU,UAAS,IAAK,gBAAAF,EAACG,GAAA,EAAI,WAAU,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGnE;"}
@@ -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"}
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ :root{--background: oklch(.992 .003 85);--foreground: oklch(.2 .01 85);--card: oklch(1 0 0 / .75);--card-foreground: oklch(.2 .01 85);--popover: oklch(1 0 0);--popover-foreground: oklch(.2 .01 85);--primary: oklch(.18 .01 85);--primary-foreground: oklch(1 0 0);--secondary: oklch(1 0 0);--secondary-foreground: oklch(.18 .01 85);--muted: oklch(1 0 0);--muted-foreground: oklch(.5 .01 85);--accent: oklch(1 0 0);--accent-foreground: oklch(.18 .01 85);--destructive: oklch(.55 .15 25);--destructive-foreground: oklch(1 0 0);--border: oklch(.94 .005 85);--input: oklch(.94 .005 85);--ring: oklch(.18 .01 85 / .1);--radius: .6rem;--sidebar: oklch(.995 .002 85);--sidebar-foreground: oklch(.2 .01 85);--sidebar-primary: oklch(.18 .01 85);--sidebar-primary-foreground: oklch(1 0 0);--sidebar-accent: oklch(.97 .01 85);--sidebar-accent-foreground: oklch(.18 .01 85);--sidebar-border: oklch(.95 .005 85);--banner-info: oklch(.94 .02 240);--banner-info-foreground: oklch(.4 .1 240);--banner-info-border: oklch(.85 .05 240);--banner-note: oklch(.94 .02 160);--banner-note-foreground: oklch(.35 .1 160);--banner-note-border: oklch(.85 .05 160);--banner-warning: oklch(.95 .03 80);--banner-warning-foreground: oklch(.45 .1 60);--banner-warning-border: oklch(.88 .05 70);--banner-alert: oklch(.95 .03 25);--banner-alert-foreground: oklch(.45 .12 25);--banner-alert-border: oklch(.88 .08 25);--badge-success: oklch(.4 .1 160);--badge-success-foreground: oklch(1 0 0);--checkbox-checked: oklch(.15 .01 60);--checkbox-checked-foreground: oklch(1 0 0);--checkbox-unchecked-bg: oklch(1 0 0);--checkbox-unchecked-border: oklch(.88 .01 60)}[data-theme=linen]{--background: oklch(.992 .003 85);--foreground: oklch(.2 .01 85);--card: oklch(1 0 0 / .75);--card-foreground: oklch(.2 .01 85);--popover: oklch(1 0 0);--popover-foreground: oklch(.2 .01 85);--primary: oklch(.18 .01 85);--primary-foreground: oklch(1 0 0);--secondary: oklch(1 0 0);--secondary-foreground: oklch(.18 .01 85);--muted: oklch(1 0 0);--muted-foreground: oklch(.5 .01 85);--accent: oklch(1 0 0);--accent-foreground: oklch(.18 .01 85);--destructive: oklch(.55 .15 25);--destructive-foreground: oklch(1 0 0);--border: oklch(.94 .005 85);--input: oklch(.94 .005 85);--ring: oklch(.18 .01 85 / .1);--radius: .6rem;--sidebar: oklch(.995 .002 85);--sidebar-foreground: oklch(.2 .01 85);--sidebar-primary: oklch(.18 .01 85);--sidebar-primary-foreground: oklch(1 0 0);--sidebar-accent: oklch(.97 .01 85);--sidebar-accent-foreground: oklch(.18 .01 85);--sidebar-border: oklch(.95 .005 85);--banner-info: oklch(.94 .02 240);--banner-info-foreground: oklch(.4 .1 240);--banner-info-border: oklch(.85 .05 240);--banner-note: oklch(.94 .02 160);--banner-note-foreground: oklch(.35 .1 160);--banner-note-border: oklch(.85 .05 160);--banner-warning: oklch(.95 .03 80);--banner-warning-foreground: oklch(.45 .1 60);--banner-warning-border: oklch(.88 .05 70);--banner-alert: oklch(.95 .03 25);--banner-alert-foreground: oklch(.45 .12 25);--banner-alert-border: oklch(.88 .08 25);--badge-success: oklch(.4 .1 160);--badge-success-foreground: oklch(1 0 0);--checkbox-checked: oklch(.15 .01 60);--checkbox-checked-foreground: oklch(1 0 0);--checkbox-unchecked-bg: oklch(1 0 0);--checkbox-unchecked-border: oklch(.88 .01 60)}.dark,[data-theme=linen].dark{--background: oklch(.14 .01 80);--foreground: oklch(.93 .01 85);--card: oklch(.19 .012 80 / .75);--card-foreground: oklch(.93 .01 85);--popover: oklch(.17 .01 80);--popover-foreground: oklch(.93 .01 85);--primary: oklch(.86 .05 85);--primary-foreground: oklch(.14 .01 80);--secondary: oklch(.24 .01 80);--secondary-foreground: oklch(.86 .05 85);--muted: oklch(.24 .01 80);--muted-foreground: oklch(.6 .01 85);--accent: oklch(.24 .01 80);--accent-foreground: oklch(.86 .05 85);--destructive: oklch(.48 .15 25);--destructive-foreground: oklch(.93 .01 85);--border: oklch(.28 .01 80);--input: oklch(.28 .01 80);--ring: oklch(.86 .05 85 / .3);--sidebar: oklch(.17 .01 80);--sidebar-foreground: oklch(.93 .01 85);--sidebar-primary: oklch(.86 .05 85);--sidebar-primary-foreground: oklch(.14 .01 80);--sidebar-accent: oklch(.23 .01 80);--sidebar-accent-foreground: oklch(.93 .01 85);--sidebar-border: oklch(.28 .01 80);--banner-info: oklch(.22 .04 230);--banner-info-foreground: oklch(.88 .05 230);--banner-info-border: oklch(.48 .16 235);--banner-note: oklch(.22 .04 155);--banner-note-foreground: oklch(.88 .06 155);--banner-note-border: oklch(.44 .1 155);--banner-warning: oklch(.26 .06 70);--banner-warning-foreground: oklch(.92 .1 80);--banner-warning-border: oklch(.65 .2 75);--banner-alert: oklch(.23 .05 25);--banner-alert-foreground: oklch(.9 .06 25);--banner-alert-border: oklch(.44 .14 25);--badge-success: oklch(.44 .12 150);--badge-success-foreground: oklch(.93 .01 85);--checkbox-checked: oklch(.86 .05 85);--checkbox-checked-foreground: oklch(.14 .01 80);--checkbox-unchecked-bg: oklch(.22 .01 80);--checkbox-unchecked-border: oklch(.35 .01 80)}:root{--background: oklch(.95 .005 250);--foreground: oklch(.2 .02 250);--card: oklch(.98 .005 250 / .85);--card-foreground: oklch(.2 .02 250);--popover: oklch(1 0 0);--popover-foreground: oklch(.2 .02 250);--primary: oklch(.3 .05 250);--primary-foreground: oklch(.98 .005 250);--secondary: oklch(.97 .005 250);--secondary-foreground: oklch(.3 .05 250);--muted: oklch(.93 .005 250);--muted-foreground: oklch(.5 .02 250);--accent: oklch(.91 .008 250);--accent-foreground: oklch(.3 .05 250);--destructive: oklch(.55 .15 25);--destructive-foreground: oklch(1 0 0);--border: oklch(.88 .005 250);--input: oklch(.88 .005 250);--ring: oklch(.3 .05 250 / .15);--radius: .25rem;--sidebar: oklch(.97 .005 250);--sidebar-foreground: oklch(.25 .02 250);--sidebar-primary: oklch(.3 .05 250);--sidebar-primary-foreground: oklch(.98 .005 250);--sidebar-accent: oklch(.93 .008 250);--sidebar-accent-foreground: oklch(.25 .02 250);--sidebar-border: oklch(.9 .005 250);--banner-info: oklch(.94 .02 245);--banner-info-foreground: oklch(.24 .09 245);--banner-info-border: oklch(.52 .18 245);--banner-note: oklch(.94 .02 162);--banner-note-foreground: oklch(.24 .1 162);--banner-note-border: oklch(.48 .16 162);--banner-warning: oklch(.95 .04 78);--banner-warning-foreground: oklch(.34 .13 62);--banner-warning-border: oklch(.62 .18 72);--banner-alert: oklch(.95 .03 22);--banner-alert-foreground: oklch(.34 .14 22);--banner-alert-border: oklch(.52 .2 22);--badge-success: oklch(.35 .1 160);--badge-success-foreground: oklch(.98 .01 160);--checkbox-checked: oklch(.3 .05 250);--checkbox-checked-foreground: oklch(1 0 0);--checkbox-unchecked-bg: oklch(1 0 0);--checkbox-unchecked-border: oklch(.85 .01 250)}[data-theme=steel]{--background: oklch(.95 .005 250);--foreground: oklch(.2 .02 250);--card: oklch(.98 .005 250 / .85);--card-foreground: oklch(.2 .02 250);--popover: oklch(1 0 0);--popover-foreground: oklch(.2 .02 250);--primary: oklch(.3 .05 250);--primary-foreground: oklch(.98 .005 250);--secondary: oklch(.97 .005 250);--secondary-foreground: oklch(.3 .05 250);--muted: oklch(.93 .005 250);--muted-foreground: oklch(.5 .02 250);--accent: oklch(.91 .008 250);--accent-foreground: oklch(.3 .05 250);--destructive: oklch(.55 .15 25);--destructive-foreground: oklch(1 0 0);--border: oklch(.88 .005 250);--input: oklch(.88 .005 250);--ring: oklch(.3 .05 250 / .15);--radius: .25rem;--sidebar: oklch(.97 .005 250);--sidebar-foreground: oklch(.25 .02 250);--sidebar-primary: oklch(.3 .05 250);--sidebar-primary-foreground: oklch(.98 .005 250);--sidebar-accent: oklch(.93 .008 250);--sidebar-accent-foreground: oklch(.25 .02 250);--sidebar-border: oklch(.9 .005 250);--banner-info: oklch(.94 .02 245);--banner-info-foreground: oklch(.24 .09 245);--banner-info-border: oklch(.52 .18 245);--banner-note: oklch(.94 .02 162);--banner-note-foreground: oklch(.24 .1 162);--banner-note-border: oklch(.48 .16 162);--banner-warning: oklch(.95 .04 78);--banner-warning-foreground: oklch(.34 .13 62);--banner-warning-border: oklch(.62 .18 72);--banner-alert: oklch(.95 .03 22);--banner-alert-foreground: oklch(.34 .14 22);--banner-alert-border: oklch(.52 .2 22);--badge-success: oklch(.35 .1 160);--badge-success-foreground: oklch(.98 .01 160);--checkbox-checked: oklch(.3 .05 250);--checkbox-checked-foreground: oklch(1 0 0);--checkbox-unchecked-bg: oklch(1 0 0);--checkbox-unchecked-border: oklch(.85 .01 250)}.dark,[data-theme=steel].dark{--background: oklch(.18 .015 260);--foreground: oklch(.985 0 0);--card: oklch(.23 .02 260 / .75);--card-foreground: oklch(.985 0 0);--popover: oklch(.21 .015 260);--popover-foreground: oklch(.985 0 0);--primary: oklch(.9 .1 220);--primary-foreground: oklch(.18 .015 260);--secondary: oklch(.28 .02 260);--secondary-foreground: oklch(.9 .1 220);--muted: oklch(.28 .02 260);--muted-foreground: oklch(.705 .015 260);--accent: oklch(.28 .02 260);--accent-foreground: oklch(.9 .1 220);--destructive: oklch(.45 .15 25);--destructive-foreground: oklch(.985 0 0);--border: oklch(.32 .02 260);--input: oklch(.32 .02 260);--ring: oklch(.9 .1 220 / .3);--sidebar: oklch(.21 .015 260);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: oklch(.9 .1 220);--sidebar-primary-foreground: oklch(.18 .015 260);--sidebar-accent: oklch(.28 .02 260);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(.32 .02 260);--banner-info: oklch(.274 .079 260);--banner-info-foreground: oklch(.925 .033 260);--banner-info-border: oklch(.488 .2 260);--banner-note: oklch(.266 .065 152);--banner-note-foreground: oklch(.962 .044 156);--banner-note-border: oklch(.45 .1 152);--banner-warning: oklch(.55 .22 100);--banner-warning-foreground: oklch(.99 .15 102);--banner-warning-border: oklch(.75 .25 100);--banner-alert: oklch(.293 .084 27);--banner-alert-foreground: oklch(.969 .071 27);--banner-alert-border: oklch(.45 .12 27);--badge-success: oklch(.48 .15 150);--badge-success-foreground: oklch(1 0 0);--checkbox-checked: oklch(.9 .1 220);--checkbox-checked-foreground: oklch(.18 .015 260);--checkbox-unchecked-bg: oklch(.25 .01 260);--checkbox-unchecked-border: oklch(.4 .01 260)}