laif-ds 0.1.86 → 0.1.89

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.
@@ -2,7 +2,7 @@
2
2
  import { jsxs as i, jsx as e } from "react/jsx-runtime";
3
3
  import * as c from "react";
4
4
  import { Root as p, Group as f, Value as g, Trigger as x, Icon as h, Portal as v, Content as b, Viewport as y, Label as S, Item as w, ItemIndicator as z, ItemText as N, Separator as C, ScrollUpButton as I, ScrollDownButton as _ } from "../../node_modules/@radix-ui/react-select/dist/index.js";
5
- import { cn as o } from "../../lib/utils.js";
5
+ import { cn as r } from "../../lib/utils.js";
6
6
  import { Label as j } from "./label.js";
7
7
  import u from "../../node_modules/lucide-react/dist/esm/icons/chevron-down.js";
8
8
  import k from "../../node_modules/lucide-react/dist/esm/icons/check.js";
@@ -11,12 +11,12 @@ function q({
11
11
  size: t = "default",
12
12
  label: a,
13
13
  className: s,
14
- labelClassName: r,
14
+ labelClassName: o,
15
15
  ...d
16
16
  }) {
17
17
  const n = c.useId();
18
- return /* @__PURE__ */ i("div", { className: o("space-y-1.5", s), children: [
19
- a && /* @__PURE__ */ e(j, { htmlFor: n, className: r, children: a }),
18
+ return /* @__PURE__ */ i("div", { className: r("space-y-1.5", s), children: [
19
+ a && /* @__PURE__ */ e(j, { htmlFor: n, className: o, children: a }),
20
20
  /* @__PURE__ */ e(m.Provider, { value: { size: t, id: n }, children: /* @__PURE__ */ e(p, { "data-slot": "select", ...d }) })
21
21
  ] });
22
22
  }
@@ -35,7 +35,7 @@ function H({
35
35
  className: t,
36
36
  size: a,
37
37
  children: s,
38
- ...r
38
+ ...o
39
39
  }) {
40
40
  const { size: d, id: n } = L(), l = a || d;
41
41
  return /* @__PURE__ */ i(
@@ -44,17 +44,22 @@ function H({
44
44
  id: n,
45
45
  "data-slot": "select-trigger",
46
46
  "data-size": l,
47
- className: o(
48
- "border-d-input ring-offset-background data-[placeholder]:text-d-muted-foreground focus:ring-ring bg-d-input flex items-center justify-between rounded-md border px-3 py-2 whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
47
+ className: r(
48
+ "border-d-input ring-offset-background data-[placeholder]:text-d-muted-foreground bg-d-input flex items-center justify-between rounded-md border px-3 py-2 whitespace-nowrap shadow-sm focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
49
+ "focus-visible:ring-d-ring focus-visible:ring-1",
50
+ // Ring solo con tastiera
51
+ "data-[state=open]:ring-d-ring data-[state=open]:ring-1",
52
+ // Ring quando dropdown è aperto
49
53
  "aria-invalid:ring-d-destructive/20 dark:aria-invalid:ring-d-destructive/40 aria-invalid:border-d-destructive",
50
54
  "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
51
55
  "*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2",
56
+ "transition-all duration-300",
52
57
  l === "default" && "h-9 text-sm",
53
58
  l === "sm" && "h-8 text-xs",
54
59
  l === "lg" && "h-10 text-lg",
55
60
  t
56
61
  ),
57
- ...r,
62
+ ...o,
58
63
  children: [
59
64
  s,
60
65
  /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(u, { className: "size-4 opacity-50" }) })
@@ -66,25 +71,25 @@ function J({
66
71
  className: t,
67
72
  children: a,
68
73
  position: s = "popper",
69
- ...r
74
+ ...o
70
75
  }) {
71
76
  return /* @__PURE__ */ e(v, { children: /* @__PURE__ */ i(
72
77
  b,
73
78
  {
74
79
  "data-slot": "select-content",
75
- className: o(
80
+ className: r(
76
81
  "bg-d-popover text-d-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 border-d-border relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
77
82
  s === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
78
83
  t
79
84
  ),
80
85
  position: s,
81
- ...r,
86
+ ...o,
82
87
  children: [
83
88
  /* @__PURE__ */ e(D, {}),
84
89
  /* @__PURE__ */ e(
85
90
  y,
86
91
  {
87
- className: o(
92
+ className: r(
88
93
  "p-1",
89
94
  s === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
90
95
  ),
@@ -104,7 +109,7 @@ function K({
104
109
  S,
105
110
  {
106
111
  "data-slot": "select-label",
107
- className: o(
112
+ className: r(
108
113
  "text-d-secondary-foreground px-2 py-1.5 text-xs",
109
114
  t
110
115
  ),
@@ -121,7 +126,7 @@ function M({
121
126
  w,
122
127
  {
123
128
  "data-slot": "select-item",
124
- className: o(
129
+ className: r(
125
130
  "focus:bg-d-accent focus:text-d-accent-foreground [&_svg:not([class*='text-'])]:text-d-secondary-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
126
131
  t
127
132
  ),
@@ -141,7 +146,7 @@ function O({
141
146
  C,
142
147
  {
143
148
  "data-slot": "select-separator",
144
- className: o(
149
+ className: r(
145
150
  "bg-d-border pointer-events-none -mx-1 my-1 h-px",
146
151
  t
147
152
  ),
@@ -157,7 +162,7 @@ function D({
157
162
  I,
158
163
  {
159
164
  "data-slot": "select-scroll-up-button",
160
- className: o(
165
+ className: r(
161
166
  "flex cursor-default items-center justify-center py-1",
162
167
  t
163
168
  ),
@@ -174,7 +179,7 @@ function R({
174
179
  _,
175
180
  {
176
181
  "data-slot": "select-scroll-down-button",
177
- className: o(
182
+ className: r(
178
183
  "flex cursor-default items-center justify-center py-1",
179
184
  t
180
185
  ),
@@ -11,7 +11,7 @@ function c({
11
11
  {
12
12
  "data-slot": "switch",
13
13
  className: t(
14
- "peer data-[state=checked]:bg-d-primary data-[state=unchecked]:bg-d-input focus-visible:border-d-ring focus-visible:ring-d-ring/50 dark:data-[state=unchecked]:bg-d-foreground/20 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
14
+ "peer data-[state=checked]:bg-d-primary data-[state=unchecked]:bg-d-input focus-visible:border-d-ring focus-visible:ring-d-ring/50 dark:data-[state=unchecked]:bg-d-foreground/20 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent transition-all duration-300 outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
15
15
  r
16
16
  ),
17
17
  ...a,
@@ -1,93 +1,93 @@
1
1
  "use client";
2
- import { jsx as s, jsxs as l } from "react/jsx-runtime";
2
+ import { jsx as l, jsxs as s } from "react/jsx-runtime";
3
3
  import { useMemo as n } from "react";
4
4
  import c from "../../../_virtual/dayjs.min.js";
5
5
  import { useCalendar as b } from "./calendar-context.js";
6
6
  import { l as m } from "../../../_virtual/lodash.js";
7
7
  import { hexContrast as v, hexToRgba as u, cn as g } from "../../../lib/utils.js";
8
- import { TooltipProvider as N, Tooltip as T, TooltipTrigger as y, TooltipContent as C } from "../tooltip.js";
8
+ import { TooltipProvider as T, Tooltip as N, TooltipTrigger as y, TooltipContent as C } from "../tooltip.js";
9
9
  import { Typo as k } from "../typo.js";
10
- const S = ({ appointment: r }) => {
10
+ const H = ({ appointment: e }) => {
11
11
  const { setSelectedAppointmentId: h } = b(), f = n(() => {
12
- if (r.color)
12
+ if (e.color)
13
13
  return {
14
- backgroundColor: u(r.color, 0.75),
15
- borderColor: u(r.color, 1),
16
- color: v(r.color),
14
+ backgroundColor: u(e.color, 0.75),
15
+ borderColor: u(e.color, 1),
16
+ color: v(e.color),
17
17
  backdropFilter: "blur(5px)"
18
18
  };
19
- }, [r.color]), t = r.endTime || c(`2000-01-01 ${r.startTime}`).add(1, "hour").format("HH:mm"), x = n(() => {
20
- const e = c(`2000-01-01 ${r.startTime}`), a = c(`2000-01-01 ${t}`).diff(e, "minute"), i = Math.floor(a / 60), d = a % 60;
19
+ }, [e.color]), o = e.endTime || c(`2000-01-01 ${e.startTime}`).add(1, "hour").format("HH:mm"), x = n(() => {
20
+ const r = c(`2000-01-01 ${e.startTime}`), a = c(`2000-01-01 ${o}`).diff(r, "minute"), i = Math.floor(a / 60), d = a % 60;
21
21
  return i === 0 ? `${d}m` : d === 0 ? `${i}h` : `${i}h ${d}m`;
22
- }, [r.startTime, t]);
23
- return /* @__PURE__ */ s(N, { delayDuration: 300, children: /* @__PURE__ */ l(T, { children: [
24
- /* @__PURE__ */ s(y, { asChild: !0, children: /* @__PURE__ */ l(
22
+ }, [e.startTime, o]);
23
+ return /* @__PURE__ */ l(T, { delayDuration: 300, children: /* @__PURE__ */ s(N, { children: [
24
+ /* @__PURE__ */ l(y, { asChild: !0, children: /* @__PURE__ */ s(
25
25
  "div",
26
26
  {
27
- onClick: (e) => {
28
- e.preventDefault(), e.stopPropagation(), h(r.id);
27
+ onClick: (r) => {
28
+ r.preventDefault(), r.stopPropagation(), h(e.id);
29
29
  },
30
30
  style: f,
31
31
  className: g(
32
32
  "border-d-border flex h-full cursor-pointer flex-col justify-start rounded-r-md border border-l-4 p-2 shadow-md transition-all duration-200 ease-in-out hover:scale-105",
33
- r.className
33
+ e.className
34
34
  ),
35
35
  children: [
36
- /* @__PURE__ */ s("div", { className: "text-sm font-semibold", children: r?.title?.length > 15 ? r?.title?.slice(0, 15) + "..." : r?.title }),
37
- /* @__PURE__ */ l("div", { className: "text-xs", children: [
38
- r?.startTime,
36
+ /* @__PURE__ */ l("div", { className: "text-sm font-semibold", children: e?.title?.length > 15 ? e?.title?.slice(0, 15) + "..." : e?.title }),
37
+ /* @__PURE__ */ s("div", { className: "text-xs", children: [
38
+ e?.startTime,
39
39
  " - ",
40
- t
40
+ o
41
41
  ] }),
42
- r?.attributes?.filter((e) => e.showPreview).map((e, o) => /* @__PURE__ */ l(
42
+ e?.attributes?.filter((r) => r.showPreview).map((r, t) => /* @__PURE__ */ s(
43
43
  "div",
44
44
  {
45
45
  className: "bg-d-background/30 mt-1 rounded p-1 text-xs",
46
46
  children: [
47
- /* @__PURE__ */ s("span", { className: "font-semibold", children: e.key }),
47
+ /* @__PURE__ */ l("span", { className: "font-semibold", children: r.key }),
48
48
  ":",
49
49
  " ",
50
- /* @__PURE__ */ s("span", { className: "font-medium", children: e.value })
50
+ /* @__PURE__ */ l("span", { className: "font-medium", children: r.value })
51
51
  ]
52
52
  },
53
- o
53
+ t
54
54
  ))
55
55
  ]
56
56
  }
57
57
  ) }),
58
- /* @__PURE__ */ l(C, { side: "right", variant: "card", children: [
59
- r?.title && /* @__PURE__ */ l(k, { children: [
60
- r?.title,
58
+ /* @__PURE__ */ s(C, { side: "right", variant: "card", children: [
59
+ e?.title && /* @__PURE__ */ s(k, { children: [
60
+ e?.title,
61
61
  " (",
62
62
  x,
63
63
  ")"
64
64
  ] }),
65
- /* @__PURE__ */ l("div", { className: "text-d-accent-foreground", children: [
66
- r?.startTime,
65
+ /* @__PURE__ */ s("div", { className: "text-d-accent-foreground", children: [
66
+ e?.startTime,
67
67
  " - ",
68
- t
68
+ o
69
69
  ] }),
70
- /* @__PURE__ */ l("div", { className: "mt-2 mb-3.5 flex flex-col", children: [
71
- /* @__PURE__ */ s("span", { className: "font-medium", children: "Descrizione:" }),
72
- /* @__PURE__ */ s("span", { className: "text-d-accent-foreground text-xs", children: r?.description || "-" })
70
+ /* @__PURE__ */ s("div", { className: "mt-2 mb-3.5 flex flex-col", children: [
71
+ /* @__PURE__ */ l("span", { className: "font-medium", children: "Descrizione:" }),
72
+ /* @__PURE__ */ l("span", { className: "text-d-accent-foreground text-xs", children: e?.description || "-" })
73
73
  ] }),
74
- r?.attributes && r.attributes.length > 0 && /* @__PURE__ */ s("div", { children: /* @__PURE__ */ s("div", { className: "space-y-1", children: r.attributes.map((e, o) => /* @__PURE__ */ l(
74
+ e?.attributes && e.attributes.filter((r) => r.showTooltip).length > 0 && /* @__PURE__ */ l("div", { className: "space-y-1", children: e.attributes.filter((r) => r.showTooltip).map((r, t) => /* @__PURE__ */ s(
75
75
  "div",
76
76
  {
77
77
  className: "flex items-start justify-between gap-4 py-1 text-right",
78
78
  children: [
79
- /* @__PURE__ */ l("span", { className: "font-medium", children: [
80
- m.upperFirst(e.key),
79
+ /* @__PURE__ */ s("span", { className: "font-medium", children: [
80
+ m.upperFirst(r.key),
81
81
  ":"
82
82
  ] }),
83
- /* @__PURE__ */ s("span", { className: "text-d-accent-foreground max-w-[200px]", children: m.upperFirst(e.value?.toString() || "") })
83
+ /* @__PURE__ */ l("span", { className: "text-d-accent-foreground max-w-[200px]", children: typeof r.value == "string" ? m.upperFirst(r.value) : r.value })
84
84
  ]
85
85
  },
86
- o
87
- )) }) })
86
+ t
87
+ )) })
88
88
  ] })
89
89
  ] }) });
90
90
  };
91
91
  export {
92
- S as AppointmentCard
92
+ H as AppointmentCard
93
93
  };
@@ -47,7 +47,7 @@ const F = ({ date: d, weekdayInfo: h }) => {
47
47
  "div",
48
48
  {
49
49
  className: m(
50
- "bg-d-card border-b-d-border sticky top-0 h-14 border-r border-b backdrop-blur-sm",
50
+ "bg-d-card border-b-d-border sticky top-0 h-14 border-b backdrop-blur-sm",
51
51
  "flex items-center pl-3",
52
52
  s ? "!border-t-d-primary border-t-3" : "border-d-border"
53
53
  ),
package/dist/index.d.ts CHANGED
@@ -151,12 +151,13 @@ export declare interface AppMultipleSelectOption {
151
151
  disabled?: boolean;
152
152
  }
153
153
 
154
- export declare function AppSelect<T = AppSelectOption>({ options, placeholder, children, label, className, labelKey, valueKey, descriptionKey, isOptionDisabled, ...props }: AppSelectProps<T>): JSX.Element;
154
+ export declare function AppSelect<T = AppSelectOption>({ options, placeholder, children, label, className, labelKey, valueKey, descriptionKey, groupNameKey, isOptionDisabled, ...props }: AppSelectProps<T>): JSX.Element;
155
155
 
156
156
  export declare interface AppSelectOption {
157
157
  value: string | number;
158
158
  label: string | React_2.ReactNode;
159
159
  disabled?: boolean;
160
+ groupName?: string;
160
161
  }
161
162
 
162
163
  export declare interface AppSelectProps<T = AppSelectOption> extends React_2.ComponentProps<typeof Select> {
@@ -166,6 +167,7 @@ export declare interface AppSelectProps<T = AppSelectOption> extends React_2.Com
166
167
  labelKey?: keyof T;
167
168
  valueKey?: keyof T;
168
169
  descriptionKey?: keyof T;
170
+ groupNameKey?: keyof T;
169
171
  isOptionDisabled?: (option: T) => boolean;
170
172
  }
171
173
 
@@ -187,7 +189,7 @@ export declare function AspectRatio({ ...props }: AspectRatioProps): JSX.Element
187
189
 
188
190
  declare type AspectRatioProps = React.ComponentProps<typeof AspectRatioPrimitive.Root>;
189
191
 
190
- export declare function AsyncSelect<T>({ fetcher, preload, filterFn, renderOption, getOptionValue, getDisplayValue, notFound, loadingSkeleton, label, labelClassName, placeholder, value, onChange, disabled, width, className, triggerClassName, noResultsMessage, clearable, size, }: AsyncSelectProps<T>): JSX.Element;
192
+ export declare function AsyncSelect<T>({ fetcher, preload, filterFn, renderOption, getOptionValue, getDisplayValue, notFound, loadingSkeleton, label, labelClassName, placeholder, value, onChange, disabled, width, triggerClassName, noResultsMessage, clearable, size, }: AsyncSelectProps<T>): JSX.Element;
191
193
 
192
194
  declare interface AsyncSelectProps<T> extends VariantProps<typeof asyncSelectTriggerVariants> {
193
195
  fetcher: (query?: string) => Promise<T[]>;
@@ -204,8 +206,7 @@ declare interface AsyncSelectProps<T> extends VariantProps<typeof asyncSelectTri
204
206
  labelClassName?: string;
205
207
  placeholder?: string;
206
208
  disabled?: boolean;
207
- width?: string | number;
208
- className?: string;
209
+ width?: string | number | "auto";
209
210
  triggerClassName?: string;
210
211
  noResultsMessage?: string;
211
212
  clearable?: boolean;
@@ -294,8 +295,9 @@ export declare interface CalendarAppointment {
294
295
  color?: string;
295
296
  attributes?: {
296
297
  key: string;
297
- value: default_3.ReactNode;
298
+ value: default_3.ReactNode | string;
298
299
  showPreview?: boolean;
300
+ showTooltip?: boolean;
299
301
  }[];
300
302
  className?: string;
301
303
  groupBy?: string;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import e from "../../_virtual/index3.js";
2
+ import e from "../../_virtual/index2.js";
3
3
  export {
4
4
  e as EventEmitter,
5
5
  e as default
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { __module as x } from "../../_virtual/index7.js";
2
+ import { __module as x } from "../../_virtual/index6.js";
3
3
  var w;
4
4
  function O() {
5
5
  return w ? x.exports : (w = 1, function(d) {
@@ -3,7 +3,7 @@ import { stringify as w } from "../../comma-separated-tokens/index.js";
3
3
  import { ok as u } from "../../devlop/lib/default.js";
4
4
  import { svg as m, html as C } from "../../property-information/index.js";
5
5
  import { stringify as N } from "../../space-separated-tokens/index.js";
6
- import S from "../../../_virtual/index4.js";
6
+ import S from "../../../_virtual/index5.js";
7
7
  import { whitespace as j } from "../../hast-util-whitespace/lib/index.js";
8
8
  import { name as x } from "../../estree-util-is-identifier-name/lib/index.js";
9
9
  import { VFileMessage as h } from "../../vfile-message/lib/index.js";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import e from "../../../../_virtual/index3.js";
2
+ import e from "../../../../_virtual/index2.js";
3
3
  var r = new e(), n = "recharts.syncEvent.tooltip";
4
4
  export {
5
5
  n as TOOLTIP_SYNC_EVENT,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { __exports as r } from "../../../_virtual/index6.js";
2
+ import { __exports as r } from "../../../_virtual/index7.js";
3
3
  import { __require as c } from "../../inline-style-parser/index.js";
4
4
  var f;
5
5
  function j() {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { bail as P } from "../../bail/index.js";
3
- import y from "../../../_virtual/index5.js";
3
+ import y from "../../../_virtual/index4.js";
4
4
  import z from "../../is-plain-obj/index.js";
5
5
  import { CallableInstance as C } from "./callable-instance.js";
6
6
  import { trough as A } from "../../trough/lib/index.js";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { __module as e } from "../../../_virtual/index2.js";
2
+ import { __module as e } from "../../../_virtual/index3.js";
3
3
  import { __require as i } from "../cjs/use-sync-external-store-shim.production.js";
4
4
  import { __require as o } from "../cjs/use-sync-external-store-shim.development.js";
5
5
  var r;
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- @import "tailwindcss";@import "tw-animate-css";:root{--d-radius:6px;--d-background:#fafafa;--d-foreground:#2e2e2e;--d-card:#fafafa;--d-card-foreground:#2e2e2e;--d-popover:#fff;--d-popover-foreground:#2e2e2e;--d-primary:#64c2d1;--d-primary-foreground:#1f1f1f;--d-secondary:#f5f5f5;--d-secondary-foreground:#2e2e2e;--d-muted:#e0e0e0;--d-muted-foreground:#7a7a7a;--d-accent:#f4f4f4;--d-accent-foreground:#2e2e2e;--d-destructive:#ec2842;--d-destructive-foreground:#85202d;--d-border:#e0e0e0;--d-input:#fff;--d-ring:#64c2d1;--d-chart-1:#64c2d1;--d-chart-2:#39f283;--d-chart-3:orange;--d-chart-4:orange;--d-chart-5:#eb576a;--d-sidebar:#f5f5f5;--d-sidebar-foreground:#2e2e2e;--d-sidebar-primary:#64c2d1;--d-sidebar-primary-foreground:#1f1f1f;--d-sidebar-accent:#e0e0e066;--d-sidebar-accent-foreground:#2e2e2e;--d-sidebar-border:#e0e0e0;--d-sidebar-ring:#64c2d1}.dark{--d-radius:6px;--d-background:#1f1f1f;--d-foreground:#e0e0e0;--d-card:#1f1f1f;--d-card-foreground:#e0e0e0;--d-popover:#1f1f1f;--d-popover-foreground:#e0e0e0;--d-primary:#64c2d1;--d-primary-foreground:#1f1f1f;--d-secondary:#2e2e2e;--d-secondary-foreground:#e0e0e0;--d-muted:#474747;--d-muted-foreground:#7a7a7a;--d-accent:#474747;--d-accent-foreground:#e0e0e0;--d-destructive:#85202d;--d-destructive-foreground:#e0e0e0;--d-border:#2e2e2e;--d-input:#2e2e2e;--d-ring:#64c2d1;--d-chart-1:#64c2d1;--d-chart-2:#39f283;--d-chart-3:orange;--d-chart-4:orange;--d-chart-5:#eb576a;--d-sidebar:#141414;--d-sidebar-foreground:#e0e0e0;--d-sidebar-primary:#64c2d1;--d-sidebar-primary-foreground:#1f1f1f;--d-sidebar-accent:#47474766;--d-sidebar-accent-foreground:#e0e0e0;--d-sidebar-border:#2e2e2e;--d-sidebar-ring:#64c2d1}.tangerine{--d-background:oklch(0.26 0.03 262.67);--d-foreground:oklch(0.92 0 0);--d-card:oklch(0.31 0.03 268.64);--d-card-foreground:oklch(0.92 0 0);--d-popover:oklch(0.29 0.02 268.4);--d-popover-foreground:oklch(0.92 0 0);--d-primary:oklch(0.64 0.17 36.44);--d-primary-foreground:oklch(1 0 0);--d-secondary:oklch(0.31 0.03 266.71);--d-secondary-foreground:oklch(0.92 0 0);--d-muted:oklch(0.31 0.03 266.71);--d-muted-foreground:oklch(0.72 0 0);--d-accent:oklch(0.34 0.06 267.59);--d-accent-foreground:oklch(0.88 0.06 254.13);--d-destructive:oklch(0.64 0.21 25.33);--d-destructive-foreground:oklch(1 0 0);--d-border:oklch(0.38 0.03 269.73);--d-input:oklch(0.38 0.03 269.73);--d-ring:oklch(0.64 0.17 36.44);--d-chart-1:oklch(0.72 0.06 248.68);--d-chart-2:oklch(0.77 0.09 34.19);--d-chart-3:oklch(0.58 0.08 254.16);--d-chart-4:oklch(0.5 0.08 259.49);--d-chart-5:oklch(0.42 0.1 264.03);--d-sidebar:oklch(0.31 0.03 267.74);--d-sidebar-foreground:oklch(0.92 0 0);--d-sidebar-primary:oklch(0.64 0.17 36.44);--d-sidebar-primary-foreground:oklch(1 0 0);--d-sidebar-accent:oklch(0.34 0.06 267.59);--d-sidebar-accent-foreground:oklch(0.88 0.06 254.13);--d-sidebar-border:oklch(0.38 0.03 269.73);--d-sidebar-ring:oklch(0.64 0.17 36.44);--d-font-sans:Inter,sans-serif;--d-font-serif:Source Serif 4,serif;--d-font-mono:JetBrains Mono,monospace;--d-radius:0.75rem;--d-shadow-2xs:0px 1px 3px 0px #0000000d;--d-shadow-xs:0px 1px 3px 0px #0000000d;--d-shadow-sm:0px 1px 3px 0px #0000001a,0px 1px 2px -1px #0000001a;--d-shadow:0px 1px 3px 0px #0000001a,0px 1px 2px -1px #0000001a;--d-shadow-md:0px 1px 3px 0px #0000001a,0px 2px 4px -1px #0000001a;--d-shadow-lg:0px 1px 3px 0px #0000001a,0px 4px 6px -1px #0000001a;--d-shadow-xl:0px 1px 3px 0px #0000001a,0px 8px 10px -1px #0000001a;--d-shadow-2xl:0px 1px 3px 0px #00000040}.claymorphism{--d-background:#1e1b18;--d-foreground:#e2e8f0;--d-card:#2c2825;--d-card-foreground:#e2e8f0;--d-popover:#2c2825;--d-popover-foreground:#e2e8f0;--d-primary:#818cf8;--d-primary-foreground:#1e1b18;--d-secondary:#3a3633;--d-secondary-foreground:#d1d5db;--d-muted:#2c2825;--d-muted-foreground:#9ca3af;--d-accent:#484441;--d-accent-foreground:#d1d5db;--d-destructive:#ef4444;--d-destructive-foreground:#1e1b18;--d-border:#3a3633;--d-input:#3a3633;--d-ring:#818cf8;--d-chart-1:#818cf8;--d-chart-2:#6366f1;--d-chart-3:#4f46e5;--d-chart-4:#4338ca;--d-chart-5:#3730a3;--d-sidebar:#3a3633;--d-sidebar-foreground:#e2e8f0;--d-sidebar-primary:#818cf8;--d-sidebar-primary-foreground:#1e1b18;--d-sidebar-accent:#484441;--d-sidebar-accent-foreground:#d1d5db;--d-sidebar-border:#3a3633;--d-sidebar-ring:#818cf8;--d-font-sans:Plus Jakarta Sans,sans-serif;--d-font-serif:Lora,serif;--d-font-mono:Roboto Mono,monospace;--d-radius:1.25rem;--d-shadow-2xs:2px 2px 10px 4px #00000017;--d-shadow-xs:2px 2px 10px 4px #00000017;--d-shadow-sm:2px 2px 10px 4px #0000002e,2px 1px 2px 3px #0000002e;--d-shadow:2px 2px 10px 4px #0000002e,2px 1px 2px 3px #0000002e;--d-shadow-md:2px 2px 10px 4px #0000002e,2px 2px 4px 3px #0000002e;--d-shadow-lg:2px 2px 10px 4px #0000002e,2px 4px 6px 3px #0000002e;--d-shadow-xl:2px 2px 10px 4px #0000002e,2px 8px 10px 3px #0000002e;--d-shadow-2xl:2px 2px 10px 4px #00000073}@theme inline{--radius-d-sm:calc(var(--d-radius) - 4px);--radius-d-md:calc(var(--d-radius) - 2px);--radius-d-lg:var(--d-radius);--radius-d-xl:calc(var(--d-radius) + 4px);--color-d-background:var(--d-background);--color-d-foreground:var(--d-foreground);--color-d-card:var(--d-card);--color-d-card-foreground:var(--d-card-foreground);--color-d-popover:var(--d-popover);--color-d-popover-foreground:var(--d-popover-foreground);--color-d-primary:var(--d-primary);--color-d-primary-foreground:var(--d-primary-foreground);--color-d-secondary:var(--d-secondary);--color-d-secondary-foreground:var(--d-secondary-foreground);--color-d-muted:var(--d-muted);--color-d-muted-foreground:var(--d-muted-foreground);--color-d-accent:var(--d-accent);--color-d-accent-foreground:var(--d-accent-foreground);--color-d-destructive:var(--d-destructive);--color-d-border:var(--d-border);--color-d-input:var(--d-input);--color-d-ring:var(--d-ring);--color-d-chart-1:var(--d-chart-1);--color-d-chart-2:var(--d-chart-2);--color-d-chart-3:var(--d-chart-3);--color-d-chart-4:var(--d-chart-4);--color-d-chart-5:var(--d-chart-5);--color-d-sidebar:var(--d-sidebar);--color-d-sidebar-foreground:var(--d-sidebar-foreground);--color-d-sidebar-primary:var(--d-sidebar-primary);--color-d-sidebar-primary-foreground:var(--d-sidebar-primary-foreground);--color-d-sidebar-accent:var(--d-sidebar-accent);--color-d-sidebar-accent-foreground:var(--d-sidebar-accent-foreground);--color-d-sidebar-border:var(--d-sidebar-border);--color-d-sidebar-ring:var(--d-sidebar-ring)}*{outline-color:color-mix(in oklab,var(--d-ring) 50%,#0000)}body{background-color:var(--d-background);color:var(--d-foreground)}
1
+ @import "tailwindcss";@import "tw-animate-css";:root{--d-radius:6px;--d-background:#fafafa;--d-foreground:#2e2e2e;--d-card:#fafafa;--d-card-foreground:#2e2e2e;--d-popover:#fff;--d-popover-foreground:#2e2e2e;--d-primary:#64c2d1;--d-primary-foreground:#1f1f1f;--d-secondary:#f5f5f5;--d-secondary-foreground:#2e2e2e;--d-muted:#e0e0e0;--d-muted-foreground:#7a7a7a;--d-accent:#f4f4f4;--d-accent-foreground:#2e2e2e;--d-destructive:#ec2842;--d-destructive-foreground:#85202d;--d-border:#e0e0e0;--d-input:#fff;--d-ring:#090909;--d-chart-1:#64c2d1;--d-chart-2:#39f283;--d-chart-3:orange;--d-chart-4:orange;--d-chart-5:#eb576a;--d-sidebar:#f5f5f5;--d-sidebar-foreground:#2e2e2e;--d-sidebar-primary:#64c2d1;--d-sidebar-primary-foreground:#1f1f1f;--d-sidebar-accent:#e0e0e066;--d-sidebar-accent-foreground:#2e2e2e;--d-sidebar-border:#e0e0e0;--d-sidebar-ring:#64c2d1}.dark{--d-radius:6px;--d-background:#1f1f1f;--d-foreground:#e0e0e0;--d-card:#1f1f1f;--d-card-foreground:#e0e0e0;--d-popover:#1f1f1f;--d-popover-foreground:#e0e0e0;--d-primary:#64c2d1;--d-primary-foreground:#1f1f1f;--d-secondary:#2e2e2e;--d-secondary-foreground:#e0e0e0;--d-muted:#474747;--d-muted-foreground:#7a7a7a;--d-accent:#474747;--d-accent-foreground:#e0e0e0;--d-destructive:#85202d;--d-destructive-foreground:#e0e0e0;--d-border:#2e2e2e;--d-input:#2e2e2e;--d-ring:#64c2d1;--d-chart-1:#64c2d1;--d-chart-2:#39f283;--d-chart-3:orange;--d-chart-4:orange;--d-chart-5:#eb576a;--d-sidebar:#141414;--d-sidebar-foreground:#e0e0e0;--d-sidebar-primary:#64c2d1;--d-sidebar-primary-foreground:#1f1f1f;--d-sidebar-accent:#47474766;--d-sidebar-accent-foreground:#e0e0e0;--d-sidebar-border:#2e2e2e;--d-sidebar-ring:#64c2d1}.tangerine{--d-background:oklch(0.26 0.03 262.67);--d-foreground:oklch(0.92 0 0);--d-card:oklch(0.31 0.03 268.64);--d-card-foreground:oklch(0.92 0 0);--d-popover:oklch(0.29 0.02 268.4);--d-popover-foreground:oklch(0.92 0 0);--d-primary:oklch(0.64 0.17 36.44);--d-primary-foreground:oklch(1 0 0);--d-secondary:oklch(0.31 0.03 266.71);--d-secondary-foreground:oklch(0.92 0 0);--d-muted:oklch(0.31 0.03 266.71);--d-muted-foreground:oklch(0.72 0 0);--d-accent:oklch(0.34 0.06 267.59);--d-accent-foreground:oklch(0.88 0.06 254.13);--d-destructive:oklch(0.64 0.21 25.33);--d-destructive-foreground:oklch(1 0 0);--d-border:oklch(0.38 0.03 269.73);--d-input:oklch(0.38 0.03 269.73);--d-ring:oklch(0.64 0.17 36.44);--d-chart-1:oklch(0.72 0.06 248.68);--d-chart-2:oklch(0.77 0.09 34.19);--d-chart-3:oklch(0.58 0.08 254.16);--d-chart-4:oklch(0.5 0.08 259.49);--d-chart-5:oklch(0.42 0.1 264.03);--d-sidebar:oklch(0.31 0.03 267.74);--d-sidebar-foreground:oklch(0.92 0 0);--d-sidebar-primary:oklch(0.64 0.17 36.44);--d-sidebar-primary-foreground:oklch(1 0 0);--d-sidebar-accent:oklch(0.34 0.06 267.59);--d-sidebar-accent-foreground:oklch(0.88 0.06 254.13);--d-sidebar-border:oklch(0.38 0.03 269.73);--d-sidebar-ring:oklch(0.64 0.17 36.44);--d-font-sans:Inter,sans-serif;--d-font-serif:Source Serif 4,serif;--d-font-mono:JetBrains Mono,monospace;--d-radius:0.75rem;--d-shadow-2xs:0px 1px 3px 0px #0000000d;--d-shadow-xs:0px 1px 3px 0px #0000000d;--d-shadow-sm:0px 1px 3px 0px #0000001a,0px 1px 2px -1px #0000001a;--d-shadow:0px 1px 3px 0px #0000001a,0px 1px 2px -1px #0000001a;--d-shadow-md:0px 1px 3px 0px #0000001a,0px 2px 4px -1px #0000001a;--d-shadow-lg:0px 1px 3px 0px #0000001a,0px 4px 6px -1px #0000001a;--d-shadow-xl:0px 1px 3px 0px #0000001a,0px 8px 10px -1px #0000001a;--d-shadow-2xl:0px 1px 3px 0px #00000040}.claymorphism{--d-background:#1e1b18;--d-foreground:#e2e8f0;--d-card:#2c2825;--d-card-foreground:#e2e8f0;--d-popover:#2c2825;--d-popover-foreground:#e2e8f0;--d-primary:#818cf8;--d-primary-foreground:#1e1b18;--d-secondary:#3a3633;--d-secondary-foreground:#d1d5db;--d-muted:#2c2825;--d-muted-foreground:#9ca3af;--d-accent:#484441;--d-accent-foreground:#d1d5db;--d-destructive:#ef4444;--d-destructive-foreground:#1e1b18;--d-border:#3a3633;--d-input:#3a3633;--d-ring:#818cf8;--d-chart-1:#818cf8;--d-chart-2:#6366f1;--d-chart-3:#4f46e5;--d-chart-4:#4338ca;--d-chart-5:#3730a3;--d-sidebar:#3a3633;--d-sidebar-foreground:#e2e8f0;--d-sidebar-primary:#818cf8;--d-sidebar-primary-foreground:#1e1b18;--d-sidebar-accent:#484441;--d-sidebar-accent-foreground:#d1d5db;--d-sidebar-border:#3a3633;--d-sidebar-ring:#818cf8;--d-font-sans:Plus Jakarta Sans,sans-serif;--d-font-serif:Lora,serif;--d-font-mono:Roboto Mono,monospace;--d-radius:1.25rem;--d-shadow-2xs:2px 2px 10px 4px #00000017;--d-shadow-xs:2px 2px 10px 4px #00000017;--d-shadow-sm:2px 2px 10px 4px #0000002e,2px 1px 2px 3px #0000002e;--d-shadow:2px 2px 10px 4px #0000002e,2px 1px 2px 3px #0000002e;--d-shadow-md:2px 2px 10px 4px #0000002e,2px 2px 4px 3px #0000002e;--d-shadow-lg:2px 2px 10px 4px #0000002e,2px 4px 6px 3px #0000002e;--d-shadow-xl:2px 2px 10px 4px #0000002e,2px 8px 10px 3px #0000002e;--d-shadow-2xl:2px 2px 10px 4px #00000073}@theme inline{--radius-d-sm:calc(var(--d-radius) - 4px);--radius-d-md:calc(var(--d-radius) - 2px);--radius-d-lg:var(--d-radius);--radius-d-xl:calc(var(--d-radius) + 4px);--color-d-background:var(--d-background);--color-d-foreground:var(--d-foreground);--color-d-card:var(--d-card);--color-d-card-foreground:var(--d-card-foreground);--color-d-popover:var(--d-popover);--color-d-popover-foreground:var(--d-popover-foreground);--color-d-primary:var(--d-primary);--color-d-primary-foreground:var(--d-primary-foreground);--color-d-secondary:var(--d-secondary);--color-d-secondary-foreground:var(--d-secondary-foreground);--color-d-muted:var(--d-muted);--color-d-muted-foreground:var(--d-muted-foreground);--color-d-accent:var(--d-accent);--color-d-accent-foreground:var(--d-accent-foreground);--color-d-destructive:var(--d-destructive);--color-d-border:var(--d-border);--color-d-input:var(--d-input);--color-d-ring:var(--d-ring);--color-d-chart-1:var(--d-chart-1);--color-d-chart-2:var(--d-chart-2);--color-d-chart-3:var(--d-chart-3);--color-d-chart-4:var(--d-chart-4);--color-d-chart-5:var(--d-chart-5);--color-d-sidebar:var(--d-sidebar);--color-d-sidebar-foreground:var(--d-sidebar-foreground);--color-d-sidebar-primary:var(--d-sidebar-primary);--color-d-sidebar-primary-foreground:var(--d-sidebar-primary-foreground);--color-d-sidebar-accent:var(--d-sidebar-accent);--color-d-sidebar-accent-foreground:var(--d-sidebar-accent-foreground);--color-d-sidebar-border:var(--d-sidebar-border);--color-d-sidebar-ring:var(--d-sidebar-ring)}*{outline-color:color-mix(in oklab,var(--d-ring) 50%,#0000)}body{background-color:var(--d-background);color:var(--d-foreground)}