@tydavidson/design-system 1.1.7 → 1.1.9
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.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +372 -177
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +364 -174
- package/dist/index.mjs.map +1 -1
- package/dist/themes/index.d.mts +41 -2
- package/dist/themes/index.d.ts +41 -2
- package/dist/themes/index.js +219 -66
- package/dist/themes/index.js.map +1 -1
- package/dist/themes/index.mjs +211 -63
- package/dist/themes/index.mjs.map +1 -1
- package/docs/setup-guide.md +101 -4
- package/docs/troubleshooting.md +22 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
var React2 = require('react');
|
4
|
-
var reactSlot = require('@radix-ui/react-slot');
|
5
|
-
var classVarianceAuthority = require('class-variance-authority');
|
6
3
|
var clsx = require('clsx');
|
7
4
|
var tailwindMerge = require('tailwind-merge');
|
5
|
+
var React2 = require('react');
|
8
6
|
var jsxRuntime = require('react/jsx-runtime');
|
9
|
-
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
10
7
|
var iconsReact = require('@tabler/icons-react');
|
8
|
+
var reactSlot = require('@radix-ui/react-slot');
|
9
|
+
var classVarianceAuthority = require('class-variance-authority');
|
10
|
+
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
11
11
|
var TogglePrimitive = require('@radix-ui/react-toggle');
|
12
12
|
var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
|
13
13
|
var SliderPrimitive = require('@radix-ui/react-slider');
|
@@ -17,7 +17,9 @@ var SheetPrimitive = require('@radix-ui/react-dialog');
|
|
17
17
|
var cmdk = require('cmdk');
|
18
18
|
var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
|
19
19
|
var ContextMenuPrimitive = require('@radix-ui/react-context-menu');
|
20
|
-
var
|
20
|
+
var dynamic = require('next/dynamic');
|
21
|
+
|
22
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
21
23
|
|
22
24
|
function _interopNamespace(e) {
|
23
25
|
if (e && e.__esModule) return e;
|
@@ -47,8 +49,17 @@ var HoverCardPrimitive__namespace = /*#__PURE__*/_interopNamespace(HoverCardPrim
|
|
47
49
|
var SheetPrimitive__namespace = /*#__PURE__*/_interopNamespace(SheetPrimitive);
|
48
50
|
var CollapsiblePrimitive__namespace = /*#__PURE__*/_interopNamespace(CollapsiblePrimitive);
|
49
51
|
var ContextMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(ContextMenuPrimitive);
|
52
|
+
var dynamic__default = /*#__PURE__*/_interopDefault(dynamic);
|
50
53
|
|
51
|
-
|
54
|
+
var __defProp = Object.defineProperty;
|
55
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
56
|
+
var __esm = (fn, res) => function __init() {
|
57
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
58
|
+
};
|
59
|
+
var __export = (target, all) => {
|
60
|
+
for (var name in all)
|
61
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
62
|
+
};
|
52
63
|
function cn(...inputs) {
|
53
64
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
54
65
|
}
|
@@ -64,6 +75,285 @@ function filterDOMProps(props, propNames) {
|
|
64
75
|
propNames.forEach((name) => delete result[name]);
|
65
76
|
return result;
|
66
77
|
}
|
78
|
+
var init_utils = __esm({
|
79
|
+
"src/lib/utils.ts"() {
|
80
|
+
}
|
81
|
+
});
|
82
|
+
|
83
|
+
// src/themes/theme-provider.tsx
|
84
|
+
var theme_provider_exports = {};
|
85
|
+
__export(theme_provider_exports, {
|
86
|
+
ThemeProvider: () => ThemeProvider,
|
87
|
+
ThemeProviderNoSSR: () => ThemeProviderNoSSR
|
88
|
+
});
|
89
|
+
function ThemeProvider({
|
90
|
+
children,
|
91
|
+
...props
|
92
|
+
}) {
|
93
|
+
const [NextThemesProvider, setNextThemesProvider] = React2__namespace.useState(null);
|
94
|
+
const [mounted, setMounted] = React2__namespace.useState(false);
|
95
|
+
React2__namespace.useEffect(() => {
|
96
|
+
import('next-themes').then(({ ThemeProvider: Provider }) => {
|
97
|
+
setNextThemesProvider(() => Provider);
|
98
|
+
setMounted(true);
|
99
|
+
});
|
100
|
+
}, []);
|
101
|
+
if (!mounted || !NextThemesProvider) {
|
102
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
103
|
+
}
|
104
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
105
|
+
NextThemesProvider,
|
106
|
+
{
|
107
|
+
attribute: "class",
|
108
|
+
defaultTheme: "system",
|
109
|
+
enableSystem: true,
|
110
|
+
disableTransitionOnChange: true,
|
111
|
+
...props,
|
112
|
+
children
|
113
|
+
}
|
114
|
+
);
|
115
|
+
}
|
116
|
+
function ThemeProviderNoSSR({
|
117
|
+
children,
|
118
|
+
...props
|
119
|
+
}) {
|
120
|
+
const [mounted, setMounted] = React2__namespace.useState(false);
|
121
|
+
React2__namespace.useEffect(() => {
|
122
|
+
setMounted(true);
|
123
|
+
}, []);
|
124
|
+
if (!mounted) {
|
125
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
126
|
+
}
|
127
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ThemeProvider, { ...props, children });
|
128
|
+
}
|
129
|
+
var init_theme_provider = __esm({
|
130
|
+
"src/themes/theme-provider.tsx"() {
|
131
|
+
"use client";
|
132
|
+
}
|
133
|
+
});
|
134
|
+
|
135
|
+
// src/lib/theme-utils.ts
|
136
|
+
exports.mapColorToShadcnVariant = void 0; exports.mapVariantToShadcnVariant = void 0; exports.getColorVariantClasses = void 0; exports.isDarkTheme = void 0;
|
137
|
+
var init_theme_utils = __esm({
|
138
|
+
"src/lib/theme-utils.ts"() {
|
139
|
+
exports.mapColorToShadcnVariant = (color) => {
|
140
|
+
switch (color) {
|
141
|
+
case "brand":
|
142
|
+
return "default";
|
143
|
+
case "error":
|
144
|
+
return "destructive";
|
145
|
+
case "warning":
|
146
|
+
case "success":
|
147
|
+
return "secondary";
|
148
|
+
// Will need additional classes
|
149
|
+
default:
|
150
|
+
return "default";
|
151
|
+
}
|
152
|
+
};
|
153
|
+
exports.mapVariantToShadcnVariant = (variant) => {
|
154
|
+
switch (variant) {
|
155
|
+
case "primary":
|
156
|
+
return "default";
|
157
|
+
case "secondary":
|
158
|
+
return "outline";
|
159
|
+
case "tertiary":
|
160
|
+
return "ghost";
|
161
|
+
default:
|
162
|
+
return "default";
|
163
|
+
}
|
164
|
+
};
|
165
|
+
exports.getColorVariantClasses = (color, variant) => {
|
166
|
+
const colorVariantMap = {
|
167
|
+
primary: {
|
168
|
+
brand: "bg-brand-600 hover:bg-brand-700 text-white focus-visible:ring-brand-500",
|
169
|
+
error: "bg-error-600 hover:bg-error-700 text-white focus-visible:ring-error-500",
|
170
|
+
warning: "bg-warning-600 hover:bg-warning-700 text-white focus-visible:ring-warning-500",
|
171
|
+
success: "bg-success-600 hover:bg-success-700 text-white focus-visible:ring-success-500"
|
172
|
+
},
|
173
|
+
secondary: {
|
174
|
+
brand: "border-brand-300 text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500",
|
175
|
+
error: "border-error-300 text-error-700 hover:bg-error-50 focus-visible:ring-error-500",
|
176
|
+
warning: "border-warning-300 text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500",
|
177
|
+
success: "border-success-300 text-success-700 hover:bg-success-50 focus-visible:ring-success-500"
|
178
|
+
},
|
179
|
+
tertiary: {
|
180
|
+
brand: "text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500",
|
181
|
+
error: "text-error-700 hover:bg-error-50 focus-visible:ring-error-500",
|
182
|
+
warning: "text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500",
|
183
|
+
success: "text-success-700 hover:bg-success-50 focus-visible:ring-success-500"
|
184
|
+
}
|
185
|
+
};
|
186
|
+
return colorVariantMap[variant]?.[color] || "";
|
187
|
+
};
|
188
|
+
exports.isDarkTheme = (theme, systemTheme) => {
|
189
|
+
if (theme === "system") {
|
190
|
+
return systemTheme === "dark";
|
191
|
+
}
|
192
|
+
return theme === "dark";
|
193
|
+
};
|
194
|
+
}
|
195
|
+
});
|
196
|
+
function useTheme() {
|
197
|
+
const [themeData, setThemeData] = React2__namespace.useState({
|
198
|
+
theme: "system",
|
199
|
+
setTheme: (theme) => {
|
200
|
+
},
|
201
|
+
resolvedTheme: "light",
|
202
|
+
isDark: false
|
203
|
+
});
|
204
|
+
const [mounted, setMounted] = React2__namespace.useState(false);
|
205
|
+
React2__namespace.useEffect(() => {
|
206
|
+
import('next-themes').then(({ useTheme: useNextTheme }) => {
|
207
|
+
const { theme, setTheme, resolvedTheme, systemTheme } = useNextTheme();
|
208
|
+
const isDark = exports.isDarkTheme(theme, systemTheme);
|
209
|
+
setThemeData({
|
210
|
+
theme: theme || "system",
|
211
|
+
setTheme,
|
212
|
+
resolvedTheme: resolvedTheme || "light",
|
213
|
+
isDark
|
214
|
+
});
|
215
|
+
setMounted(true);
|
216
|
+
});
|
217
|
+
}, []);
|
218
|
+
if (!mounted) {
|
219
|
+
return {
|
220
|
+
theme: "system",
|
221
|
+
setTheme: (theme) => {
|
222
|
+
},
|
223
|
+
resolvedTheme: "light",
|
224
|
+
isDark: false
|
225
|
+
};
|
226
|
+
}
|
227
|
+
return themeData;
|
228
|
+
}
|
229
|
+
function useThemeServer() {
|
230
|
+
return {
|
231
|
+
theme: "system",
|
232
|
+
setTheme: (theme) => {
|
233
|
+
},
|
234
|
+
resolvedTheme: "light",
|
235
|
+
isDark: false
|
236
|
+
};
|
237
|
+
}
|
238
|
+
function ThemeContextProvider({
|
239
|
+
children
|
240
|
+
}) {
|
241
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
242
|
+
}
|
243
|
+
var init_theme_context = __esm({
|
244
|
+
"src/themes/theme-context.tsx"() {
|
245
|
+
"use client";
|
246
|
+
init_theme_utils();
|
247
|
+
}
|
248
|
+
});
|
249
|
+
function ThemeToggle({
|
250
|
+
className,
|
251
|
+
variant = "icon",
|
252
|
+
size = "md",
|
253
|
+
...props
|
254
|
+
}) {
|
255
|
+
const { theme, setTheme, resolvedTheme } = useTheme();
|
256
|
+
const [mounted, setMounted] = React2__namespace.useState(false);
|
257
|
+
React2__namespace.useEffect(() => {
|
258
|
+
setMounted(true);
|
259
|
+
}, []);
|
260
|
+
if (!mounted) return null;
|
261
|
+
const toggleTheme = () => {
|
262
|
+
setTheme(resolvedTheme === "dark" ? "light" : "dark");
|
263
|
+
};
|
264
|
+
const iconSize = {
|
265
|
+
sm: 16,
|
266
|
+
md: 20,
|
267
|
+
lg: 24
|
268
|
+
};
|
269
|
+
const sizeClasses = {
|
270
|
+
sm: "h-8 w-8",
|
271
|
+
md: "h-10 w-10",
|
272
|
+
lg: "h-12 w-12"
|
273
|
+
};
|
274
|
+
const textSizeClasses = {
|
275
|
+
sm: "text-xs",
|
276
|
+
md: "text-sm",
|
277
|
+
lg: "text-base"
|
278
|
+
};
|
279
|
+
if (variant === "icon") {
|
280
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
281
|
+
"button",
|
282
|
+
{
|
283
|
+
type: "button",
|
284
|
+
onClick: toggleTheme,
|
285
|
+
className: cn(
|
286
|
+
"inline-flex items-center justify-center rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
287
|
+
sizeClasses[size],
|
288
|
+
className
|
289
|
+
),
|
290
|
+
"aria-label": resolvedTheme === "dark" ? "Switch to light theme" : "Switch to dark theme",
|
291
|
+
...props,
|
292
|
+
children: resolvedTheme === "dark" ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSun, { size: iconSize[size], stroke: 1.5 }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconMoon, { size: iconSize[size], stroke: 1.5 })
|
293
|
+
}
|
294
|
+
);
|
295
|
+
}
|
296
|
+
if (variant === "button") {
|
297
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
298
|
+
"button",
|
299
|
+
{
|
300
|
+
type: "button",
|
301
|
+
onClick: toggleTheme,
|
302
|
+
className: cn(
|
303
|
+
"inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2",
|
304
|
+
textSizeClasses[size],
|
305
|
+
"hover:bg-accent hover:text-accent-foreground",
|
306
|
+
className
|
307
|
+
),
|
308
|
+
...props,
|
309
|
+
children: resolvedTheme === "dark" ? "Light Mode" : "Dark Mode"
|
310
|
+
}
|
311
|
+
);
|
312
|
+
}
|
313
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
314
|
+
"button",
|
315
|
+
{
|
316
|
+
type: "button",
|
317
|
+
onClick: toggleTheme,
|
318
|
+
className: cn(
|
319
|
+
"inline-flex items-center justify-center rounded-md px-3 py-2 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
320
|
+
textSizeClasses[size],
|
321
|
+
resolvedTheme === "dark" ? "bg-accent text-accent-foreground hover:bg-accent/80" : "bg-muted text-muted-foreground hover:bg-muted/80",
|
322
|
+
className
|
323
|
+
),
|
324
|
+
"aria-label": resolvedTheme === "dark" ? "Switch to light theme" : "Switch to dark theme",
|
325
|
+
...props,
|
326
|
+
children: resolvedTheme === "dark" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center", children: [
|
327
|
+
/* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSun, { size: iconSize[size], stroke: 1.5, className: "mr-2" }),
|
328
|
+
"Light"
|
329
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center", children: [
|
330
|
+
/* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconMoon, { size: iconSize[size], stroke: 1.5, className: "mr-2" }),
|
331
|
+
"Dark"
|
332
|
+
] })
|
333
|
+
}
|
334
|
+
);
|
335
|
+
}
|
336
|
+
var init_theme_toggle = __esm({
|
337
|
+
"src/components/ui/theme-toggle/theme-toggle.tsx"() {
|
338
|
+
"use client";
|
339
|
+
init_theme_context();
|
340
|
+
init_utils();
|
341
|
+
}
|
342
|
+
});
|
343
|
+
|
344
|
+
// src/components/ui/theme-toggle/index.ts
|
345
|
+
var theme_toggle_exports = {};
|
346
|
+
__export(theme_toggle_exports, {
|
347
|
+
ThemeToggle: () => ThemeToggle
|
348
|
+
});
|
349
|
+
var init_theme_toggle2 = __esm({
|
350
|
+
"src/components/ui/theme-toggle/index.ts"() {
|
351
|
+
init_theme_toggle();
|
352
|
+
}
|
353
|
+
});
|
354
|
+
|
355
|
+
// src/components/ui/button.tsx
|
356
|
+
init_utils();
|
67
357
|
var buttonVariants = classVarianceAuthority.cva(
|
68
358
|
"float-button inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[4px] text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
69
359
|
{
|
@@ -168,6 +458,9 @@ var Button = React2__namespace.forwardRef(
|
|
168
458
|
}
|
169
459
|
);
|
170
460
|
Button.displayName = "Button";
|
461
|
+
|
462
|
+
// src/components/ui/dropdown-menu/dropdown-menu.tsx
|
463
|
+
init_utils();
|
171
464
|
var DropdownMenuRoot = DropdownMenuPrimitive__namespace.Root;
|
172
465
|
var DropdownMenuTrigger = React2__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
173
466
|
DropdownMenuPrimitive__namespace.Trigger,
|
@@ -349,6 +642,9 @@ var DropdownMenu = {
|
|
349
642
|
SubContent: DropdownMenuSubContent,
|
350
643
|
SubTrigger: DropdownMenuSubTrigger
|
351
644
|
};
|
645
|
+
|
646
|
+
// src/components/typography/heading/heading.tsx
|
647
|
+
init_utils();
|
352
648
|
var Heading = React2__namespace.forwardRef(
|
353
649
|
({
|
354
650
|
level = 1,
|
@@ -417,6 +713,9 @@ var Heading = React2__namespace.forwardRef(
|
|
417
713
|
}
|
418
714
|
);
|
419
715
|
Heading.displayName = "Heading";
|
716
|
+
|
717
|
+
// src/components/typography/text/text.tsx
|
718
|
+
init_utils();
|
420
719
|
var Text = React2__namespace.forwardRef(
|
421
720
|
({
|
422
721
|
size = "md",
|
@@ -469,6 +768,9 @@ var Text = React2__namespace.forwardRef(
|
|
469
768
|
}
|
470
769
|
);
|
471
770
|
Text.displayName = "Text";
|
771
|
+
|
772
|
+
// src/components/ui/toggle.tsx
|
773
|
+
init_utils();
|
472
774
|
var Toggle = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
473
775
|
TogglePrimitive__namespace.Root,
|
474
776
|
{
|
@@ -481,6 +783,9 @@ var Toggle = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @
|
|
481
783
|
}
|
482
784
|
));
|
483
785
|
Toggle.displayName = TogglePrimitive__namespace.Root.displayName;
|
786
|
+
|
787
|
+
// src/components/ui/toggle-group.tsx
|
788
|
+
init_utils();
|
484
789
|
var ToggleGroup = React2__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
485
790
|
ToggleGroupPrimitive__namespace.Root,
|
486
791
|
{
|
@@ -503,6 +808,9 @@ var ToggleGroupItem = React2__namespace.forwardRef(({ className, ...props }, ref
|
|
503
808
|
}
|
504
809
|
));
|
505
810
|
ToggleGroupItem.displayName = ToggleGroupPrimitive__namespace.Item.displayName;
|
811
|
+
|
812
|
+
// src/components/ui/slider.tsx
|
813
|
+
init_utils();
|
506
814
|
var Slider = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
507
815
|
SliderPrimitive__namespace.Root,
|
508
816
|
{
|
@@ -519,6 +827,9 @@ var Slider = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @
|
|
519
827
|
}
|
520
828
|
));
|
521
829
|
Slider.displayName = SliderPrimitive__namespace.Root.displayName;
|
830
|
+
|
831
|
+
// src/components/ui/popover.tsx
|
832
|
+
init_utils();
|
522
833
|
var Popover = PopoverPrimitive__namespace.Root;
|
523
834
|
var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
|
524
835
|
var PopoverAnchor = PopoverPrimitive__namespace.Anchor;
|
@@ -536,6 +847,9 @@ var PopoverContent = React2__namespace.forwardRef(({ className, align = "center"
|
|
536
847
|
}
|
537
848
|
) }));
|
538
849
|
PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
|
850
|
+
|
851
|
+
// src/components/ui/hover-card.tsx
|
852
|
+
init_utils();
|
539
853
|
var HoverCard = HoverCardPrimitive__namespace.Root;
|
540
854
|
var HoverCardTrigger = HoverCardPrimitive__namespace.Trigger;
|
541
855
|
var HoverCardContent = React2__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
@@ -552,6 +866,9 @@ var HoverCardContent = React2__namespace.forwardRef(({ className, align = "cente
|
|
552
866
|
}
|
553
867
|
));
|
554
868
|
HoverCardContent.displayName = HoverCardPrimitive__namespace.Content.displayName;
|
869
|
+
|
870
|
+
// src/components/ui/sheet.tsx
|
871
|
+
init_utils();
|
555
872
|
var Sheet = SheetPrimitive__namespace.Root;
|
556
873
|
var SheetTrigger = SheetPrimitive__namespace.Trigger;
|
557
874
|
var SheetClose = SheetPrimitive__namespace.Close;
|
@@ -645,6 +962,12 @@ var SheetDescription = React2__namespace.forwardRef(({ className, ...props }, re
|
|
645
962
|
}
|
646
963
|
));
|
647
964
|
SheetDescription.displayName = SheetPrimitive__namespace.Description.displayName;
|
965
|
+
|
966
|
+
// src/components/ui/command.tsx
|
967
|
+
init_utils();
|
968
|
+
|
969
|
+
// src/components/ui/dialog.tsx
|
970
|
+
init_utils();
|
648
971
|
var Dialog = SheetPrimitive__namespace.Root;
|
649
972
|
var DialogPortal = SheetPrimitive__namespace.Portal;
|
650
973
|
var DialogOverlay = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
@@ -802,6 +1125,9 @@ CommandShortcut.displayName = "CommandShortcut";
|
|
802
1125
|
var Collapsible = CollapsiblePrimitive__namespace.Root;
|
803
1126
|
var CollapsibleTrigger2 = CollapsiblePrimitive__namespace.CollapsibleTrigger;
|
804
1127
|
var CollapsibleContent2 = CollapsiblePrimitive__namespace.CollapsibleContent;
|
1128
|
+
|
1129
|
+
// src/components/ui/context-menu.tsx
|
1130
|
+
init_utils();
|
805
1131
|
var ContextMenu = ContextMenuPrimitive__namespace.Root;
|
806
1132
|
var ContextMenuTrigger = ContextMenuPrimitive__namespace.Trigger;
|
807
1133
|
var ContextMenuGroup = ContextMenuPrimitive__namespace.Group;
|
@@ -1222,6 +1548,9 @@ var EmailFooter = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("div", { styl
|
|
1222
1548
|
] })
|
1223
1549
|
] }) });
|
1224
1550
|
|
1551
|
+
// src/index.ts
|
1552
|
+
init_utils();
|
1553
|
+
|
1225
1554
|
// src/tokens/colors.ts
|
1226
1555
|
var colors = {
|
1227
1556
|
// Base colors
|
@@ -1493,182 +1822,46 @@ var tokens = {
|
|
1493
1822
|
radius,
|
1494
1823
|
shadows
|
1495
1824
|
};
|
1496
|
-
function ThemeProvider({
|
1497
|
-
children,
|
1498
|
-
...props
|
1499
|
-
}) {
|
1500
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
1501
|
-
nextThemes.ThemeProvider,
|
1502
|
-
{
|
1503
|
-
attribute: "class",
|
1504
|
-
defaultTheme: "system",
|
1505
|
-
enableSystem: true,
|
1506
|
-
disableTransitionOnChange: true,
|
1507
|
-
...props,
|
1508
|
-
children
|
1509
|
-
}
|
1510
|
-
);
|
1511
|
-
}
|
1512
1825
|
|
1513
|
-
// src/
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1518
|
-
|
1519
|
-
|
1520
|
-
|
1521
|
-
|
1522
|
-
return "secondary";
|
1523
|
-
// Will need additional classes
|
1524
|
-
default:
|
1525
|
-
return "default";
|
1826
|
+
// src/themes/index.ts
|
1827
|
+
init_theme_provider();
|
1828
|
+
init_theme_context();
|
1829
|
+
init_theme_toggle2();
|
1830
|
+
var DynamicThemeProvider = dynamic__default.default(
|
1831
|
+
() => Promise.resolve().then(() => (init_theme_provider(), theme_provider_exports)).then((mod) => ({ default: mod.ThemeProvider })),
|
1832
|
+
{
|
1833
|
+
ssr: false,
|
1834
|
+
loading: () => /* @__PURE__ */ jsxRuntime.jsx("div", { style: { visibility: "hidden" } })
|
1526
1835
|
}
|
1527
|
-
|
1528
|
-
var
|
1529
|
-
|
1530
|
-
|
1531
|
-
|
1532
|
-
|
1533
|
-
return "outline";
|
1534
|
-
case "tertiary":
|
1535
|
-
return "ghost";
|
1536
|
-
default:
|
1537
|
-
return "default";
|
1836
|
+
);
|
1837
|
+
var DynamicThemeProviderNoSSR = dynamic__default.default(
|
1838
|
+
() => Promise.resolve().then(() => (init_theme_provider(), theme_provider_exports)).then((mod) => ({ default: mod.ThemeProviderNoSSR })),
|
1839
|
+
{
|
1840
|
+
ssr: false,
|
1841
|
+
loading: () => /* @__PURE__ */ jsxRuntime.jsx("div", { style: { visibility: "hidden" } })
|
1538
1842
|
}
|
1539
|
-
|
1540
|
-
var
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1545
|
-
warning: "bg-warning-600 hover:bg-warning-700 text-white focus-visible:ring-warning-500",
|
1546
|
-
success: "bg-success-600 hover:bg-success-700 text-white focus-visible:ring-success-500"
|
1547
|
-
},
|
1548
|
-
secondary: {
|
1549
|
-
brand: "border-brand-300 text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500",
|
1550
|
-
error: "border-error-300 text-error-700 hover:bg-error-50 focus-visible:ring-error-500",
|
1551
|
-
warning: "border-warning-300 text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500",
|
1552
|
-
success: "border-success-300 text-success-700 hover:bg-success-50 focus-visible:ring-success-500"
|
1553
|
-
},
|
1554
|
-
tertiary: {
|
1555
|
-
brand: "text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-500",
|
1556
|
-
error: "text-error-700 hover:bg-error-50 focus-visible:ring-error-500",
|
1557
|
-
warning: "text-warning-700 hover:bg-warning-50 focus-visible:ring-warning-500",
|
1558
|
-
success: "text-success-700 hover:bg-success-50 focus-visible:ring-success-500"
|
1559
|
-
}
|
1560
|
-
};
|
1561
|
-
return colorVariantMap[variant]?.[color] || "";
|
1562
|
-
};
|
1563
|
-
var isDarkTheme = (theme, systemTheme) => {
|
1564
|
-
if (theme === "system") {
|
1565
|
-
return systemTheme === "dark";
|
1843
|
+
);
|
1844
|
+
var DynamicThemeToggle = dynamic__default.default(
|
1845
|
+
() => Promise.resolve().then(() => (init_theme_toggle2(), theme_toggle_exports)).then((mod) => ({ default: mod.ThemeToggle })),
|
1846
|
+
{
|
1847
|
+
ssr: false,
|
1848
|
+
loading: () => /* @__PURE__ */ jsxRuntime.jsx("div", { style: { visibility: "hidden" } })
|
1566
1849
|
}
|
1567
|
-
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
const isDark = isDarkTheme(theme, systemTheme);
|
1572
|
-
return {
|
1573
|
-
theme: theme || "system",
|
1574
|
-
setTheme,
|
1575
|
-
resolvedTheme: resolvedTheme || "light",
|
1576
|
-
isDark
|
1577
|
-
};
|
1578
|
-
}
|
1579
|
-
function ThemeContextProvider({
|
1580
|
-
children
|
1581
|
-
}) {
|
1582
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
1583
|
-
}
|
1584
|
-
function ThemeToggle({
|
1585
|
-
className,
|
1586
|
-
variant = "icon",
|
1587
|
-
size = "md",
|
1850
|
+
);
|
1851
|
+
function SafeThemeProvider({
|
1852
|
+
children,
|
1853
|
+
noSSR = false,
|
1588
1854
|
...props
|
1589
1855
|
}) {
|
1590
|
-
|
1591
|
-
|
1592
|
-
React2__namespace.useEffect(() => {
|
1593
|
-
setMounted(true);
|
1594
|
-
}, []);
|
1595
|
-
if (!mounted) return null;
|
1596
|
-
const toggleTheme = () => {
|
1597
|
-
setTheme(resolvedTheme === "dark" ? "light" : "dark");
|
1598
|
-
};
|
1599
|
-
const iconSize = {
|
1600
|
-
sm: 16,
|
1601
|
-
md: 20,
|
1602
|
-
lg: 24
|
1603
|
-
};
|
1604
|
-
const sizeClasses = {
|
1605
|
-
sm: "h-8 w-8",
|
1606
|
-
md: "h-10 w-10",
|
1607
|
-
lg: "h-12 w-12"
|
1608
|
-
};
|
1609
|
-
const textSizeClasses = {
|
1610
|
-
sm: "text-xs",
|
1611
|
-
md: "text-sm",
|
1612
|
-
lg: "text-base"
|
1613
|
-
};
|
1614
|
-
if (variant === "icon") {
|
1615
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
1616
|
-
"button",
|
1617
|
-
{
|
1618
|
-
type: "button",
|
1619
|
-
onClick: toggleTheme,
|
1620
|
-
className: cn(
|
1621
|
-
"inline-flex items-center justify-center rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
1622
|
-
sizeClasses[size],
|
1623
|
-
className
|
1624
|
-
),
|
1625
|
-
"aria-label": resolvedTheme === "dark" ? "Switch to light theme" : "Switch to dark theme",
|
1626
|
-
...props,
|
1627
|
-
children: resolvedTheme === "dark" ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSun, { size: iconSize[size], stroke: 1.5 }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconMoon, { size: iconSize[size], stroke: 1.5 })
|
1628
|
-
}
|
1629
|
-
);
|
1630
|
-
}
|
1631
|
-
if (variant === "button") {
|
1632
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
1633
|
-
"button",
|
1634
|
-
{
|
1635
|
-
type: "button",
|
1636
|
-
onClick: toggleTheme,
|
1637
|
-
className: cn(
|
1638
|
-
"inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2",
|
1639
|
-
textSizeClasses[size],
|
1640
|
-
"hover:bg-accent hover:text-accent-foreground",
|
1641
|
-
className
|
1642
|
-
),
|
1643
|
-
...props,
|
1644
|
-
children: resolvedTheme === "dark" ? "Light Mode" : "Dark Mode"
|
1645
|
-
}
|
1646
|
-
);
|
1856
|
+
if (noSSR) {
|
1857
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DynamicThemeProviderNoSSR, { ...props, children });
|
1647
1858
|
}
|
1648
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
1649
|
-
"button",
|
1650
|
-
{
|
1651
|
-
type: "button",
|
1652
|
-
onClick: toggleTheme,
|
1653
|
-
className: cn(
|
1654
|
-
"inline-flex items-center justify-center rounded-md px-3 py-2 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
1655
|
-
textSizeClasses[size],
|
1656
|
-
resolvedTheme === "dark" ? "bg-accent text-accent-foreground hover:bg-accent/80" : "bg-muted text-muted-foreground hover:bg-muted/80",
|
1657
|
-
className
|
1658
|
-
),
|
1659
|
-
"aria-label": resolvedTheme === "dark" ? "Switch to light theme" : "Switch to dark theme",
|
1660
|
-
...props,
|
1661
|
-
children: resolvedTheme === "dark" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center", children: [
|
1662
|
-
/* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSun, { size: iconSize[size], stroke: 1.5, className: "mr-2" }),
|
1663
|
-
"Light"
|
1664
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center", children: [
|
1665
|
-
/* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconMoon, { size: iconSize[size], stroke: 1.5, className: "mr-2" }),
|
1666
|
-
"Dark"
|
1667
|
-
] })
|
1668
|
-
}
|
1669
|
-
);
|
1859
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DynamicThemeProvider, { ...props, children });
|
1670
1860
|
}
|
1671
1861
|
|
1862
|
+
// src/themes/index.ts
|
1863
|
+
init_theme_utils();
|
1864
|
+
|
1672
1865
|
exports.Button = Button;
|
1673
1866
|
exports.Collapsible = Collapsible;
|
1674
1867
|
exports.CollapsibleContent = CollapsibleContent2;
|
@@ -1698,6 +1891,9 @@ exports.ContextMenuSubContent = ContextMenuSubContent;
|
|
1698
1891
|
exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
|
1699
1892
|
exports.ContextMenuTrigger = ContextMenuTrigger;
|
1700
1893
|
exports.DropdownMenu = DropdownMenu;
|
1894
|
+
exports.DynamicThemeProvider = DynamicThemeProvider;
|
1895
|
+
exports.DynamicThemeProviderNoSSR = DynamicThemeProviderNoSSR;
|
1896
|
+
exports.DynamicThemeToggle = DynamicThemeToggle;
|
1701
1897
|
exports.EmailButton = EmailButton;
|
1702
1898
|
exports.EmailCaption = EmailCaption;
|
1703
1899
|
exports.EmailContainer = EmailContainer;
|
@@ -1715,6 +1911,7 @@ exports.Popover = Popover;
|
|
1715
1911
|
exports.PopoverAnchor = PopoverAnchor;
|
1716
1912
|
exports.PopoverContent = PopoverContent;
|
1717
1913
|
exports.PopoverTrigger = PopoverTrigger;
|
1914
|
+
exports.SafeThemeProvider = SafeThemeProvider;
|
1718
1915
|
exports.Sheet = Sheet;
|
1719
1916
|
exports.SheetClose = SheetClose;
|
1720
1917
|
exports.SheetContent = SheetContent;
|
@@ -1729,6 +1926,7 @@ exports.Slider = Slider;
|
|
1729
1926
|
exports.Text = Text;
|
1730
1927
|
exports.ThemeContextProvider = ThemeContextProvider;
|
1731
1928
|
exports.ThemeProvider = ThemeProvider;
|
1929
|
+
exports.ThemeProviderNoSSR = ThemeProviderNoSSR;
|
1732
1930
|
exports.ThemeToggle = ThemeToggle;
|
1733
1931
|
exports.Toggle = Toggle;
|
1734
1932
|
exports.ToggleGroup = ToggleGroup;
|
@@ -1738,16 +1936,13 @@ exports.cn = cn;
|
|
1738
1936
|
exports.colors = colors;
|
1739
1937
|
exports.filterDOMProps = filterDOMProps;
|
1740
1938
|
exports.generateId = generateId;
|
1741
|
-
exports.getColorVariantClasses = getColorVariantClasses;
|
1742
|
-
exports.isDarkTheme = isDarkTheme;
|
1743
1939
|
exports.isNotNullOrUndefined = isNotNullOrUndefined;
|
1744
|
-
exports.mapColorToShadcnVariant = mapColorToShadcnVariant;
|
1745
|
-
exports.mapVariantToShadcnVariant = mapVariantToShadcnVariant;
|
1746
1940
|
exports.radius = radius;
|
1747
1941
|
exports.shadows = shadows;
|
1748
1942
|
exports.spacing = spacing;
|
1749
1943
|
exports.tokens = tokens;
|
1750
1944
|
exports.typography = typography;
|
1751
1945
|
exports.useTheme = useTheme;
|
1946
|
+
exports.useThemeServer = useThemeServer;
|
1752
1947
|
//# sourceMappingURL=index.js.map
|
1753
1948
|
//# sourceMappingURL=index.js.map
|