laif-ds 0.2.22 → 0.2.24

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 (57) hide show
  1. package/dist/_virtual/index.js +3 -5
  2. package/dist/_virtual/index3.js +5 -2
  3. package/dist/_virtual/index4.js +5 -3
  4. package/dist/_virtual/index5.js +5 -5
  5. package/dist/_virtual/index6.js +2 -5
  6. package/dist/_virtual/index7.js +2 -2
  7. package/dist/components/ui/alert-dialog.js +6 -6
  8. package/dist/components/ui/app-multiple-select-dropdown.js +34 -34
  9. package/dist/components/ui/app-select.js +127 -124
  10. package/dist/components/ui/badge.js +13 -12
  11. package/dist/components/ui/button.js +20 -18
  12. package/dist/components/ui/calendar.js +6 -6
  13. package/dist/components/ui/checkbox.js +9 -9
  14. package/dist/components/ui/confirmer.js +45 -19
  15. package/dist/components/ui/context-menu.js +4 -4
  16. package/dist/components/ui/input-otp.js +16 -16
  17. package/dist/components/ui/input-selector.js +19 -19
  18. package/dist/components/ui/input.js +19 -19
  19. package/dist/components/ui/menubar.js +1 -1
  20. package/dist/components/ui/pagination.js +90 -77
  21. package/dist/components/ui/radio-group.js +14 -14
  22. package/dist/components/ui/select.js +27 -27
  23. package/dist/components/ui/switch.js +8 -6
  24. package/dist/components/ui/table.js +16 -16
  25. package/dist/components/ui/tables/data-cross-table/data-cross-table.js +6 -6
  26. package/dist/components/ui/tables/data-table/components/data-table-actions.js +51 -0
  27. package/dist/components/ui/tables/data-table/components/data-table-advanced-filter.js +470 -0
  28. package/dist/components/ui/tables/data-table/components/data-table-body.js +340 -0
  29. package/dist/components/ui/tables/data-table/components/data-table-column-visibility.js +274 -0
  30. package/dist/components/ui/tables/data-table/components/data-table-filter-inputs.js +177 -0
  31. package/dist/components/ui/tables/data-table/components/data-table-filters.js +286 -0
  32. package/dist/components/ui/tables/data-table/components/data-table-pagination.js +131 -0
  33. package/dist/components/ui/tables/data-table/components/data-table-searchbar.js +112 -0
  34. package/dist/components/ui/tables/data-table/components/data-table-simple-filters.js +263 -0
  35. package/dist/components/ui/tables/data-table/components/data-table-sorting.js +128 -0
  36. package/dist/components/ui/tables/data-table/data-table-constants.js +58 -0
  37. package/dist/components/ui/tables/data-table/data-table-i18n.js +138 -0
  38. package/dist/components/ui/tables/data-table/data-table.js +549 -0
  39. package/dist/components/ui/tables/data-table/data-table.service.js +254 -0
  40. package/dist/components/ui/tabs.js +33 -33
  41. package/dist/components/ui/textarea.js +18 -15
  42. package/dist/components/ui/tooltip.js +10 -10
  43. package/dist/css-for-template.css +57 -0
  44. package/dist/index.d.ts +247 -76
  45. package/dist/index.js +64 -64
  46. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js +1 -1
  47. package/dist/node_modules/eventemitter3/index.js +1 -1
  48. package/dist/node_modules/eventemitter3/index2.js +1 -1
  49. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  50. package/dist/node_modules/recharts/es6/util/Events.js +1 -1
  51. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  52. package/dist/node_modules/unified/lib/index.js +1 -1
  53. package/dist/styles.css +1 -1
  54. package/dist/styles.v3.css +1 -1
  55. package/package.json +5 -3
  56. package/dist/components/ui/data-table.js +0 -461
  57. package/dist/components/ui/data-table.service.js +0 -62
@@ -0,0 +1,254 @@
1
+ "use client";
2
+ import { getListMultiSelectFilterOptions as v, getListSingleSelectFilterOptions as D, getDateTimeFilterOptions as F, getDateFilterOptions as A, getBooleanFilterOptions as b, getNumberFilterOptions as T, getStringFilterOptions as q } from "./data-table-constants.js";
3
+ import { defaultDataTableI18n as m } from "./data-table-i18n.js";
4
+ function L(e, a = "string") {
5
+ const t = (s) => {
6
+ switch (s) {
7
+ case "string":
8
+ return q(m)?.[0]?.value ?? "like";
9
+ case "number":
10
+ return T(m)?.[0]?.value ?? "eq";
11
+ case "boolean":
12
+ return b(m)?.[0]?.value ?? "eq";
13
+ case "date":
14
+ return A(m)?.[0]?.value ?? "eq";
15
+ case "datetime":
16
+ return F(m)?.[0]?.value ?? "date_time_before";
17
+ case "list_single_select":
18
+ return D(m)?.[0]?.value ?? "array_overlap";
19
+ case "list_multi_select":
20
+ return v(m)?.[0]?.value ?? "array_overlap";
21
+ default:
22
+ return "eq";
23
+ }
24
+ };
25
+ return {
26
+ id: crypto.randomUUID(),
27
+ columnId: e?.id || "",
28
+ columnLabel: e?.column.columnDef.header?.toString() || "",
29
+ columnType: e?.column.columnDef.meta?.type || a,
30
+ operator: t(
31
+ e?.column.columnDef.meta?.type
32
+ ),
33
+ listOptions: e?.column.columnDef.meta?.listOptions
34
+ };
35
+ }
36
+ function O() {
37
+ const e = () => crypto.randomUUID();
38
+ return {
39
+ id: e(),
40
+ rootGroup: {
41
+ id: e(),
42
+ logicalOperator: "AND",
43
+ conditions: [
44
+ {
45
+ id: e(),
46
+ columnId: "",
47
+ columnLabel: "",
48
+ columnType: "string",
49
+ operator: "eq",
50
+ value: void 0
51
+ }
52
+ ],
53
+ groups: []
54
+ }
55
+ };
56
+ }
57
+ function k(e, a) {
58
+ const t = e.filter((n) => n.operator === "eq_null" || n.operator === "n_eq_null" ? !0 : n.value === void 0 || n.value === "" ? !1 : n.columnType === "list_multi_select" ? (Array.isArray(n.value) ? n.value.filter((l) => l !== void 0) : [n.value].filter((l) => l !== void 0)).length > 0 : !0), u = a ? ((n) => {
59
+ const p = (l) => {
60
+ const _ = l.conditions.filter((o) => !o.columnId || !o.operator ? !1 : o.operator === "eq_null" || o.operator === "n_eq_null" ? !0 : o.value === void 0 ? !1 : o.columnType === "list_multi_select" ? (Array.isArray(o.value) ? o.value.filter((y) => y !== void 0) : [o.value].filter((y) => y !== void 0)).length > 0 : !0).map((o) => ({
61
+ [o.columnId]: {
62
+ operator: o.operator,
63
+ value: o.operator === "eq_null" || o.operator === "n_eq_null" ? "" : o.columnType === "list_single_select" ? Array.isArray(o.value) ? o.value.filter((f) => f !== void 0) : [o.value].filter((f) => f !== void 0) : o.value
64
+ }
65
+ })), g = l.groups?.map(p).filter(Boolean) || [], d = [
66
+ ..._,
67
+ ...g
68
+ ];
69
+ return d.length === 0 ? null : d.length === 1 ? d[0] : l.logicalOperator === "AND" ? { _and: d } : { _or: d };
70
+ };
71
+ return p(n.rootGroup);
72
+ })(a) : null, c = t.map(
73
+ (n) => ({
74
+ [n.columnId]: {
75
+ operator: n.operator,
76
+ value: n.operator === "eq_null" || n.operator === "n_eq_null" ? "" : n.columnType === "list_single_select" ? Array.isArray(n.value) ? n.value.filter((p) => p !== void 0) : [n.value].filter((p) => p !== void 0) : n.value ?? ""
77
+ }
78
+ })
79
+ ), r = [
80
+ ...u ? [u] : [],
81
+ ...c
82
+ ];
83
+ return r.length > 0 ? r.length === 1 ? r[0] : { _and: r } : {};
84
+ }
85
+ function H(e, a) {
86
+ const {
87
+ rowHeight: t = 1,
88
+ headerHeight: s = 1,
89
+ containerHeight: u = 1,
90
+ onPageChange: c,
91
+ setPagination: r
92
+ } = a, i = e?.offsetHeight || u, n = Math.floor(
93
+ (i - s) / t
94
+ ), p = n > 1 ? n : 1;
95
+ r((l) => {
96
+ if (l.pageSize !== p) {
97
+ if (c) {
98
+ const _ = Math.max(
99
+ 0,
100
+ Math.ceil(l.pageSize * (l.pageIndex + 1) / p) - 1
101
+ ), g = Math.min(l.pageIndex, _);
102
+ c(g, p);
103
+ }
104
+ return { ...l, pageSize: p };
105
+ }
106
+ return l;
107
+ });
108
+ }
109
+ function C(e, a, t) {
110
+ if (e == null)
111
+ switch (a) {
112
+ case "eq_null":
113
+ return !0;
114
+ case "n_eq_null":
115
+ return !1;
116
+ default:
117
+ return !1;
118
+ }
119
+ const s = (r) => r == null || typeof r == "string" ? r : String(r), u = s(e), c = s(t);
120
+ switch (a) {
121
+ case "eq":
122
+ return u === c;
123
+ case "ne":
124
+ return u !== c;
125
+ case "lt":
126
+ return typeof e == "number" && typeof t == "number" ? e < t : u < c;
127
+ case "le":
128
+ return typeof e == "number" && typeof t == "number" ? e <= t : u <= c;
129
+ case "gt":
130
+ return typeof e == "number" && typeof t == "number" ? e > t : u > c;
131
+ case "ge":
132
+ return typeof e == "number" && typeof t == "number" ? e >= t : u >= c;
133
+ case "like":
134
+ return u?.toLowerCase().includes(c?.toLowerCase());
135
+ case "n_like":
136
+ return !u?.toLowerCase().includes(c?.toLowerCase());
137
+ case "starts_with":
138
+ return u?.toLowerCase().startsWith(c?.toLowerCase());
139
+ case "ends_with":
140
+ return u?.toLowerCase().endsWith(c?.toLowerCase());
141
+ case "eq_null":
142
+ return e == null || e === "";
143
+ case "n_eq_null":
144
+ return e != null && e !== "";
145
+ case "array_overlap":
146
+ return Array.isArray(e) && Array.isArray(t) ? t.length === 0 ? !0 : e.length === 0 ? !1 : t.some(
147
+ (r) => e.some(
148
+ (i) => s(i) === s(r)
149
+ )
150
+ ) : !1;
151
+ case "n_array_overlap":
152
+ return Array.isArray(e) && Array.isArray(t) ? t.length === 0 || e.length === 0 ? !0 : !t.some(
153
+ (r) => e.some(
154
+ (i) => s(i) === s(r)
155
+ )
156
+ ) : !0;
157
+ case "checked":
158
+ return e === !0;
159
+ case "unchecked":
160
+ return e === !1;
161
+ case "date_before":
162
+ try {
163
+ const r = new Date(e), i = new Date(t);
164
+ return r.setHours(0, 0, 0, 0), i.setHours(0, 0, 0, 0), r < i;
165
+ } catch {
166
+ return !1;
167
+ }
168
+ case "date_after":
169
+ try {
170
+ const r = new Date(e), i = new Date(t);
171
+ return r.setHours(0, 0, 0, 0), i.setHours(0, 0, 0, 0), r > i;
172
+ } catch {
173
+ return !1;
174
+ }
175
+ case "date_time_before":
176
+ try {
177
+ const r = new Date(e), i = new Date(t);
178
+ return r < i;
179
+ } catch {
180
+ return !1;
181
+ }
182
+ case "date_time_after":
183
+ try {
184
+ const r = new Date(e), i = new Date(t);
185
+ return r > i;
186
+ } catch {
187
+ return !1;
188
+ }
189
+ default:
190
+ return console.warn(`Unknown filter operator: ${a}`), !0;
191
+ }
192
+ }
193
+ function h(e, a) {
194
+ if (!a || Object.keys(a).length === 0)
195
+ return !0;
196
+ if ("_and" in a && Array.isArray(a._and))
197
+ return a._and.every(
198
+ (t) => h(e, t)
199
+ );
200
+ if ("_or" in a && Array.isArray(a._or))
201
+ return a._or.some(
202
+ (t) => h(e, t)
203
+ );
204
+ for (const [t, s] of Object.entries(a))
205
+ if (!t.startsWith("_") && typeof s == "object" && s !== null && "operator" in s) {
206
+ const u = e.getValue(t);
207
+ if (!C(
208
+ u,
209
+ s.operator,
210
+ s.value
211
+ )) return !1;
212
+ }
213
+ return !0;
214
+ }
215
+ function M(e, a) {
216
+ let t;
217
+ return function(...s) {
218
+ clearTimeout(t), t = setTimeout(() => {
219
+ e(...s);
220
+ }, a);
221
+ };
222
+ }
223
+ function x(e) {
224
+ switch (e) {
225
+ case "string":
226
+ return "CaseUpper";
227
+ case "number":
228
+ return "Binary";
229
+ case "boolean":
230
+ return "ToggleRight";
231
+ case "date":
232
+ return "Calendar1";
233
+ case "datetime":
234
+ return "CalendarClock";
235
+ case "list_single_select":
236
+ return "List";
237
+ case "list_multi_select":
238
+ return "ListTodo";
239
+ case "other":
240
+ return "FileQuestionMark";
241
+ default:
242
+ return "FileQuestionMark";
243
+ }
244
+ }
245
+ export {
246
+ C as applyClientSideFilter,
247
+ h as applySearchFilterToRow,
248
+ k as buildSearchFilter,
249
+ L as createBadgeFilterFromHeader,
250
+ O as createDefaultAdvancedFilter,
251
+ M as debounce,
252
+ x as getIconFromColumnType,
253
+ H as updatePageSizeFromContainer
254
+ };
@@ -1,68 +1,68 @@
1
1
  "use client";
2
- import { jsx as a } from "react/jsx-runtime";
3
- import { Root as n, List as o, Trigger as r, Content as i } from "../../node_modules/@radix-ui/react-tabs/dist/index.js";
4
- import { cn as s } from "../../lib/utils.js";
2
+ import { jsx as s } from "react/jsx-runtime";
3
+ import { Root as o, List as i, Trigger as r, Content as a } from "../../node_modules/@radix-ui/react-tabs/dist/index.js";
4
+ import { cn as n } from "../../lib/utils.js";
5
5
  function u({
6
- className: t,
7
- ...e
6
+ className: e,
7
+ ...t
8
8
  }) {
9
- return /* @__PURE__ */ a(
10
- n,
9
+ return /* @__PURE__ */ s(
10
+ o,
11
11
  {
12
12
  "data-slot": "tabs",
13
- className: s("flex flex-col gap-2", t),
14
- ...e
13
+ className: n("flex flex-col gap-2", e),
14
+ ...t
15
15
  }
16
16
  );
17
17
  }
18
18
  function f({
19
- className: t,
20
- ...e
19
+ className: e,
20
+ ...t
21
21
  }) {
22
- return /* @__PURE__ */ a(
23
- o,
22
+ return /* @__PURE__ */ s(
23
+ i,
24
24
  {
25
25
  "data-slot": "tabs-list",
26
- className: s(
26
+ className: n(
27
27
  "bg-d-secondary text-d-secondary-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
28
- t
28
+ e
29
29
  ),
30
- ...e
30
+ ...t
31
31
  }
32
32
  );
33
33
  }
34
- function g({
35
- className: t,
36
- ...e
34
+ function b({
35
+ className: e,
36
+ ...t
37
37
  }) {
38
- return /* @__PURE__ */ a(
38
+ return /* @__PURE__ */ s(
39
39
  r,
40
40
  {
41
41
  "data-slot": "tabs-trigger",
42
- className: s(
43
- "data-[state=active]:bg-d-background dark:data-[state=active]:text-d-foreground focus-visible:border-d-ring focus-visible:ring-d-ring/50 focus-visible:outline-d-ring dark:data-[state=active]:border-d-input dark:data-[state=active]:bg-d-background text-d-foreground dark:text-d-secondary-foreground d-border inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
44
- t
42
+ className: n(
43
+ "data-[state=active]:bg-d-background focus-visible:border-d-ring focus-visible:ring-d-ring/50 focus-visible:outline-d-ring text-d-foreground d-border inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
44
+ e
45
45
  ),
46
- ...e
46
+ ...t
47
47
  }
48
48
  );
49
49
  }
50
- function b({
51
- className: t,
52
- ...e
50
+ function g({
51
+ className: e,
52
+ ...t
53
53
  }) {
54
- return /* @__PURE__ */ a(
55
- i,
54
+ return /* @__PURE__ */ s(
55
+ a,
56
56
  {
57
57
  "data-slot": "tabs-content",
58
- className: s("flex-1 outline-none", t),
59
- ...e
58
+ className: n("flex-1 outline-none", e),
59
+ ...t
60
60
  }
61
61
  );
62
62
  }
63
63
  export {
64
64
  u as Tabs,
65
- b as TabsContent,
65
+ g as TabsContent,
66
66
  f as TabsList,
67
- g as TabsTrigger
67
+ b as TabsTrigger
68
68
  };
@@ -1,28 +1,31 @@
1
1
  "use client";
2
- import { jsxs as t, Fragment as a, jsx as r } from "react/jsx-runtime";
3
- import { cn as n } from "../../lib/utils.js";
4
- import { Label as o } from "./label.js";
5
- function c({
6
- className: d,
2
+ import { jsxs as n, jsx as t } from "react/jsx-runtime";
3
+ import { Label as s } from "./label.js";
4
+ import { cn as l } from "../../lib/utils.js";
5
+ function x({
6
+ className: i,
7
7
  label: e,
8
- ...i
8
+ labelClassName: d,
9
+ id: o,
10
+ ...a
9
11
  }) {
10
- return /* @__PURE__ */ t(a, { children: [
11
- e && /* @__PURE__ */ r(o, { htmlFor: i.id, children: e }),
12
- /* @__PURE__ */ r(
12
+ const r = o || (e ? `textarea-${Math.random().toString(36).substring(2, 9)}` : void 0);
13
+ return /* @__PURE__ */ n("div", { className: "space-y-1.5", children: [
14
+ e && /* @__PURE__ */ t(s, { htmlFor: r, className: d, children: e }),
15
+ /* @__PURE__ */ t(
13
16
  "textarea",
14
17
  {
15
- id: i.id,
18
+ id: r,
16
19
  "data-slot": "textarea",
17
- className: n(
18
- "border-d-input placeholder:text-d-muted-foreground focus-visible:border-d-ring focus-visible:ring-d-ring/50 aria-invalid:ring-d-destructive/20 dark:aria-invalid:ring-d-destructive/40 aria-invalid:border-d-destructive dark:bg-d-input/30 !bg-d-input flex field-sizing-content min-h-16 w-full rounded-md border px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
19
- d
20
+ className: l(
21
+ "border-d-input placeholder:text-d-muted-foreground focus-visible:border-d-ring focus-visible:ring-d-ring/50 aria-invalid:ring-d-destructive/20 aria-invalid:border-d-destructive !bg-d-input flex field-sizing-content min-h-16 w-full rounded-md border px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
22
+ i
20
23
  ),
21
- ...i
24
+ ...a
22
25
  }
23
26
  )
24
27
  ] });
25
28
  }
26
29
  export {
27
- c as Textarea
30
+ x as Textarea
28
31
  };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as r, jsxs as s } from "react/jsx-runtime";
3
3
  import { Root as l, Trigger as p, Portal as m, Content as c, Arrow as f, Provider as u } from "../../node_modules/@radix-ui/react-tooltip/dist/index.js";
4
- import { cva as d } from "../../node_modules/class-variance-authority/dist/index.js";
4
+ import { cva as e } from "../../node_modules/class-variance-authority/dist/index.js";
5
5
  import { cn as i } from "../../lib/utils.js";
6
- const g = d(
6
+ const g = e(
7
7
  "animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
8
8
  {
9
9
  variants: {
@@ -16,13 +16,13 @@ const g = d(
16
16
  variant: "primary"
17
17
  }
18
18
  }
19
- ), b = d(
19
+ ), x = e(
20
20
  "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]",
21
21
  {
22
22
  variants: {
23
23
  variant: {
24
24
  primary: "bg-d-primary fill-d-primary",
25
- card: "bg-d-card fill-d-card border border-d-border"
25
+ card: "bg-d-card fill-d-card"
26
26
  }
27
27
  },
28
28
  defaultVariants: {
@@ -30,7 +30,7 @@ const g = d(
30
30
  }
31
31
  }
32
32
  );
33
- function x({
33
+ function b({
34
34
  delayDuration: t = 0,
35
35
  ...o
36
36
  }) {
@@ -46,7 +46,7 @@ function x({
46
46
  function w({
47
47
  ...t
48
48
  }) {
49
- return /* @__PURE__ */ r(x, { children: /* @__PURE__ */ r(l, { "data-slot": "tooltip", ...t }) });
49
+ return /* @__PURE__ */ r(b, { children: /* @__PURE__ */ r(l, { "data-slot": "tooltip", ...t }) });
50
50
  }
51
51
  function z({
52
52
  ...t
@@ -57,7 +57,7 @@ function V({
57
57
  className: t,
58
58
  sideOffset: o = 0,
59
59
  variant: a,
60
- children: e,
60
+ children: d,
61
61
  ...n
62
62
  }) {
63
63
  return /* @__PURE__ */ r(m, { children: /* @__PURE__ */ s(
@@ -68,11 +68,11 @@ function V({
68
68
  className: i(g({ variant: a }), t),
69
69
  ...n,
70
70
  children: [
71
- e,
71
+ d,
72
72
  /* @__PURE__ */ r(
73
73
  f,
74
74
  {
75
- className: i(b({ variant: a }))
75
+ className: i(x({ variant: a }))
76
76
  }
77
77
  )
78
78
  ]
@@ -82,6 +82,6 @@ function V({
82
82
  export {
83
83
  w as Tooltip,
84
84
  V as TooltipContent,
85
- x as TooltipProvider,
85
+ b as TooltipProvider,
86
86
  z as TooltipTrigger
87
87
  };
@@ -0,0 +1,57 @@
1
+ /* This files contains everything that should be imported in the template */
2
+
3
+ @theme inline {
4
+ --radius-d-sm: calc(var(--d-radius) - 4px);
5
+ --radius-d-md: calc(var(--d-radius) - 2px);
6
+ --radius-d-lg: var(--d-radius);
7
+ --radius-d-xl: calc(var(--d-radius) + 4px);
8
+ --color-d-background: var(--d-background);
9
+ --color-d-foreground: var(--d-foreground);
10
+ --color-d-card: var(--d-card);
11
+ --color-d-card-foreground: var(--d-card-foreground);
12
+ --color-d-popover: var(--d-popover);
13
+ --color-d-popover-foreground: var(--d-popover-foreground);
14
+ --color-d-primary: var(--d-primary);
15
+ --color-d-primary-foreground: var(--d-primary-foreground);
16
+ --color-d-secondary: var(--d-secondary);
17
+ --color-d-secondary-foreground: var(--d-secondary-foreground);
18
+ --color-d-muted: var(--d-muted);
19
+ --color-d-muted-foreground: var(--d-muted-foreground);
20
+ --color-d-accent: var(--d-accent);
21
+ --color-d-accent-foreground: var(--d-accent-foreground);
22
+ --color-d-destructive: var(--d-destructive);
23
+ --color-d-destructive-foreground: var(--d-destructive-foreground);
24
+ --color-d-border: var(--d-border);
25
+ --color-d-input: var(--d-input);
26
+ --color-d-ring: var(--d-ring);
27
+ --color-d-chart-1: var(--d-chart-1);
28
+ --color-d-chart-2: var(--d-chart-2);
29
+ --color-d-chart-3: var(--d-chart-3);
30
+ --color-d-chart-4: var(--d-chart-4);
31
+ --color-d-chart-5: var(--d-chart-5);
32
+ --color-d-sidebar: var(--d-sidebar);
33
+ --color-d-sidebar-foreground: var(--d-sidebar-foreground);
34
+ --color-d-sidebar-primary: var(--d-sidebar-primary);
35
+ --color-d-sidebar-primary-foreground: var(--d-sidebar-primary-foreground);
36
+ --color-d-sidebar-accent: var(--d-sidebar-accent);
37
+ --color-d-sidebar-accent-foreground: var(--d-sidebar-accent-foreground);
38
+ --color-d-sidebar-border: var(--d-sidebar-border);
39
+ --color-d-sidebar-ring: var(--d-sidebar-ring);
40
+ }
41
+
42
+ /* Force checkbox column to have fixed width */
43
+ [data-column-id="data-table-integrated-checkbox-column"] {
44
+ width: 24px !important;
45
+ min-width: 24px !important;
46
+ max-width: 24px !important;
47
+ }
48
+
49
+ /* Base styles */
50
+ * {
51
+ outline-color: color-mix(in oklab, var(--d-ring) 50%, transparent);
52
+ }
53
+
54
+ body {
55
+ background-color: var(--d-background);
56
+ color: var(--d-foreground);
57
+ }