@ekkolyth/ui 0.1.17 → 0.1.18

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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +153 -97
  3. package/dist/base.css +263 -0
  4. package/dist/blocks.d.ts +4 -0
  5. package/dist/blocks.js +4 -0
  6. package/dist/container-BBg21poC.js +10 -0
  7. package/dist/convex.d.ts +2 -0
  8. package/dist/convex.js +2 -0
  9. package/dist/hooks.d.ts +2 -0
  10. package/dist/hooks.js +2 -0
  11. package/dist/icon-picker-ByfHyJ7i.js +4078 -0
  12. package/dist/index-Bwp0YMmG.d.ts +5 -0
  13. package/dist/index-BxcqwZNT.d.ts +30 -0
  14. package/dist/index-DHF8OR1R.d.ts +60 -0
  15. package/dist/index-DsLGf2HX.d.ts +9 -0
  16. package/dist/index-qji4ohJZ.d.ts +24 -0
  17. package/dist/index.d.ts +793 -533
  18. package/dist/index.js +3236 -5578
  19. package/dist/layout.d.ts +2 -0
  20. package/dist/layout.js +2 -0
  21. package/dist/loading-screen-DB3youyT.js +63 -0
  22. package/dist/shiki-code-Bg__Vnt1.js +29 -0
  23. package/dist/text.d.ts +17 -0
  24. package/dist/text.js +177 -0
  25. package/dist/themes/catpuccin/frappe.css +33 -33
  26. package/dist/themes/catpuccin/latte.css +33 -33
  27. package/dist/themes/catpuccin/macchiato.css +33 -33
  28. package/dist/themes/catpuccin/mocha.css +33 -33
  29. package/dist/themes/ekko-os.css +92 -37
  30. package/dist/themes/ekkolyth.css +2 -2
  31. package/dist/themes/index.css +7 -66
  32. package/dist/themes/provider.d.ts +62 -0
  33. package/dist/themes/provider.js +271 -0
  34. package/dist/themes/tokyo-night.css +33 -33
  35. package/dist/themes.css +7 -66
  36. package/dist/toggle-B2PFPImC.js +182 -0
  37. package/dist/use-mobile-BVGje-2e.d.ts +4 -0
  38. package/dist/use-mobile-CqHXB_Nc.js +18 -0
  39. package/dist/utils-C_uf36nf.js +8 -0
  40. package/dist/widget-C2vjxQms.js +94 -0
  41. package/dist/widget.d.ts +6 -0
  42. package/dist/widget.js +19 -0
  43. package/package.json +125 -170
  44. package/dist/catpuccin/frappe.css +0 -35
  45. package/dist/catpuccin/latte.css +0 -35
  46. package/dist/catpuccin/macchiato.css +0 -35
  47. package/dist/catpuccin/mocha.css +0 -35
  48. package/dist/ekko-os.css +0 -71
  49. package/dist/ekko-playlist.css +0 -71
  50. package/dist/ekkolyth.css +0 -70
  51. package/dist/index-C3ceanPz.d.ts +0 -18
  52. package/dist/index-C7t_lwpi.d.ts +0 -13
  53. package/dist/next.d.ts +0 -13
  54. package/dist/next.js +0 -271
  55. package/dist/providers/next.d.ts +0 -25
  56. package/dist/providers/next.js +0 -216
  57. package/dist/providers/tanstack.d.ts +0 -24
  58. package/dist/providers/tanstack.js +0 -120
  59. package/dist/tanstack.d.ts +0 -12
  60. package/dist/tanstack.js +0 -203
  61. package/dist/themes/ekko-playlist.css +0 -71
  62. package/dist/themes/theme-select.d.ts +0 -12
  63. package/dist/themes/theme-select.js +0 -357
  64. package/dist/themes/theme-toggle.d.ts +0 -15
  65. package/dist/themes/theme-toggle.js +0 -179
  66. package/dist/tokyo-night.css +0 -35
  67. package/dist/types-fUfvw1Mz.d.ts +0 -8
package/dist/themes.css CHANGED
@@ -1,66 +1,7 @@
1
- @import "tailwindcss";
2
- @import "tw-animate-css";
3
-
4
- /* Import all theme CSS files */
5
- @import "./themes/catpuccin/latte.css";
6
- @import "./themes/catpuccin/frappe.css";
7
- @import "./themes/catpuccin/macchiato.css";
8
- @import "./themes/catpuccin/mocha.css";
9
- @import "./themes/ekko-os.css";
10
- @import "./themes/tokyo-night.css";
11
- @import "./themes/ekkolyth.css";
12
- @import "./themes/ekko-playlist.css";
13
-
14
- @custom-variant dark (&:is(.dark *));
15
-
16
- @theme inline {
17
- --color-background: var(--background);
18
- --color-foreground: var(--foreground);
19
- --font-sans: var(--font-sans);
20
- --font-mono: var(--font-geist-mono);
21
- --color-sidebar-ring: var(--sidebar-ring);
22
- --color-sidebar-border: var(--sidebar-border);
23
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
24
- --color-sidebar-accent: var(--sidebar-accent);
25
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
26
- --color-sidebar-primary: var(--sidebar-primary);
27
- --color-sidebar-foreground: var(--sidebar-foreground);
28
- --color-sidebar: var(--sidebar);
29
- --color-chart-5: var(--chart-5);
30
- --color-chart-4: var(--chart-4);
31
- --color-chart-3: var(--chart-3);
32
- --color-chart-2: var(--chart-2);
33
- --color-chart-1: var(--chart-1);
34
- --color-ring: var(--ring);
35
- --color-input: var(--input);
36
- --color-border: var(--border);
37
- --color-destructive: var(--destructive);
38
- --color-accent-foreground: var(--accent-foreground);
39
- --color-accent: var(--accent);
40
- --color-muted-foreground: var(--muted-foreground);
41
- --color-muted: var(--muted);
42
- --color-secondary-foreground: var(--secondary-foreground);
43
- --color-secondary: var(--secondary);
44
- --color-primary-foreground: var(--primary-foreground);
45
- --color-primary: var(--primary);
46
- --color-popover-foreground: var(--popover-foreground);
47
- --color-popover: var(--popover);
48
- --color-card-foreground: var(--card-foreground);
49
- --color-card: var(--card);
50
- --radius-sm: calc(var(--radius) - 4px);
51
- --radius-md: calc(var(--radius) - 2px);
52
- --radius-lg: var(--radius);
53
- --radius-xl: calc(var(--radius) + 4px);
54
- --radius-2xl: calc(var(--radius) + 8px);
55
- --radius-3xl: calc(var(--radius) + 12px);
56
- --radius-4xl: calc(var(--radius) + 16px);
57
- }
58
-
59
- @layer base {
60
- * {
61
- @apply border-border outline-ring/50;
62
- }
63
- body {
64
- @apply bg-background text-foreground;
65
- }
66
- }
1
+ @import './themes/catpuccin/latte.css';
2
+ @import './themes/catpuccin/frappe.css';
3
+ @import './themes/catpuccin/macchiato.css';
4
+ @import './themes/catpuccin/mocha.css';
5
+ @import './themes/ekko-os.css';
6
+ @import './themes/tokyo-night.css';
7
+ @import './themes/ekkolyth.css';
@@ -0,0 +1,182 @@
1
+ import { t as cn } from "./utils-C_uf36nf.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
5
+ import { createContext, use } from "react";
6
+ import * as SelectPrimitive from "@radix-ui/react-select";
7
+ import { Toaster } from "sonner";
8
+ import * as TogglePrimitive from "@radix-ui/react-toggle";
9
+ //#region src/components/ui/select/index.tsx
10
+ function Select({ ...props }) {
11
+ return /* @__PURE__ */ jsx(SelectPrimitive.Root, {
12
+ "data-slot": "select",
13
+ ...props
14
+ });
15
+ }
16
+ function SelectGroup({ ...props }) {
17
+ return /* @__PURE__ */ jsx(SelectPrimitive.Group, {
18
+ "data-slot": "select-group",
19
+ ...props
20
+ });
21
+ }
22
+ function SelectValue({ ...props }) {
23
+ return /* @__PURE__ */ jsx(SelectPrimitive.Value, {
24
+ "data-slot": "select-value",
25
+ ...props
26
+ });
27
+ }
28
+ function SelectTrigger({ className, size = "default", children, ...props }) {
29
+ return /* @__PURE__ */ jsxs(SelectPrimitive.Trigger, {
30
+ className: cn("bg-input hover:bg-input/80 cursor-pointer data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:ring-ring/50 aria-invalid:ring-destructive/40 flex w-fit items-center justify-between gap-2 rounded-md px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] aria-invalid:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
31
+ "data-size": size,
32
+ "data-slot": "select-trigger",
33
+ ...props,
34
+ children: [children, /* @__PURE__ */ jsx(SelectPrimitive.Icon, {
35
+ asChild: true,
36
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" })
37
+ })]
38
+ });
39
+ }
40
+ function SelectContent({ className, children, position = "popper", ...props }) {
41
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(SelectPrimitive.Content, {
42
+ className: cn("bg-popover text-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 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", position === "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", className),
43
+ "data-slot": "select-content",
44
+ position,
45
+ ...props,
46
+ children: [
47
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
48
+ /* @__PURE__ */ jsx(SelectPrimitive.Viewport, {
49
+ className: cn("p-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),
50
+ children
51
+ }),
52
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
53
+ ]
54
+ }) });
55
+ }
56
+ function SelectLabel({ className, ...props }) {
57
+ return /* @__PURE__ */ jsx(SelectPrimitive.Label, {
58
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
59
+ "data-slot": "select-label",
60
+ ...props
61
+ });
62
+ }
63
+ function SelectItem({ className, children, ...props }) {
64
+ return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
65
+ className: cn("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-pointer 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", className),
66
+ "data-slot": "select-item",
67
+ ...props,
68
+ children: [/* @__PURE__ */ jsx("span", {
69
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
70
+ children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
71
+ }), /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })]
72
+ });
73
+ }
74
+ function SelectSeparator({ className, ...props }) {
75
+ return /* @__PURE__ */ jsx(SelectPrimitive.Separator, {
76
+ className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
77
+ "data-slot": "select-separator",
78
+ ...props
79
+ });
80
+ }
81
+ function SelectScrollUpButton({ className, ...props }) {
82
+ return /* @__PURE__ */ jsx(SelectPrimitive.ScrollUpButton, {
83
+ className: cn("flex cursor-default items-center justify-center py-1", className),
84
+ "data-slot": "select-scroll-up-button",
85
+ ...props,
86
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, { className: "size-4" })
87
+ });
88
+ }
89
+ function SelectScrollDownButton({ className, ...props }) {
90
+ return /* @__PURE__ */ jsx(SelectPrimitive.ScrollDownButton, {
91
+ className: cn("flex cursor-default items-center justify-center py-1", className),
92
+ "data-slot": "select-scroll-down-button",
93
+ ...props,
94
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4" })
95
+ });
96
+ }
97
+ //#endregion
98
+ //#region src/components/themes/context.tsx
99
+ const ThemeContext = createContext(null);
100
+ function normalizeMode(mode) {
101
+ return mode === "normal" ? "light" : mode;
102
+ }
103
+ function applyTheme(theme, mode) {
104
+ if (typeof document === "undefined") return;
105
+ const root = document.documentElement;
106
+ root.setAttribute("data-theme", theme);
107
+ root.classList.toggle("dark", mode === "dark");
108
+ }
109
+ function useTheme() {
110
+ const context = use(ThemeContext);
111
+ if (context === null) throw new Error("useTheme must be used within a ThemeProvider");
112
+ return context;
113
+ }
114
+ function useThemeContext() {
115
+ return use(ThemeContext);
116
+ }
117
+ //#endregion
118
+ //#region src/components/ui/sonner/index.tsx
119
+ const Toaster$1 = ({ ...props }) => {
120
+ const theme = useThemeContext();
121
+ return /* @__PURE__ */ jsx(Toaster, {
122
+ className: "toaster group",
123
+ position: "bottom-right",
124
+ richColors: true,
125
+ style: {
126
+ "--normal-bg": "var(--popover)",
127
+ "--normal-text": "var(--popover-foreground)",
128
+ "--normal-border": "var(--border)",
129
+ "--success-bg": "var(--popover)",
130
+ "--success-text": "var(--popover-foreground)",
131
+ "--success-border": "var(--success)",
132
+ "--error-bg": "var(--popover)",
133
+ "--error-text": "var(--popover-foreground)",
134
+ "--error-border": "var(--destructive)",
135
+ "--warning-bg": "var(--popover)",
136
+ "--warning-text": "var(--popover-foreground)",
137
+ "--warning-border": "var(--warning)",
138
+ "--info-bg": "var(--popover)",
139
+ "--info-text": "var(--popover-foreground)",
140
+ "--info-border": "var(--border)"
141
+ },
142
+ theme: theme?.resolvedMode ?? "system",
143
+ toastOptions: { classNames: {
144
+ error: "group-[.toaster]:[&_[data-button]]:border-destructive group-[.toaster]:[&_[data-button]]:text-destructive group-[.toaster]:[&_[data-icon]]:text-destructive",
145
+ warning: "group-[.toaster]:[&_[data-button]]:border-warning group-[.toaster]:[&_[data-button]]:text-warning group-[.toaster]:[&_[data-icon]]:text-warning",
146
+ success: "group-[.toaster]:[&_[data-button]]:border-success group-[.toaster]:[&_[data-button]]:text-success group-[.toaster]:[&_[data-icon]]:text-success"
147
+ } },
148
+ ...props
149
+ });
150
+ };
151
+ //#endregion
152
+ //#region src/components/ui/toggle/index.tsx
153
+ const toggleVariants = cva("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap", {
154
+ variants: {
155
+ variant: {
156
+ default: "bg-transparent",
157
+ outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
158
+ },
159
+ size: {
160
+ default: "h-9 px-2 min-w-9",
161
+ sm: "h-8 px-1.5 min-w-8",
162
+ lg: "h-10 px-2.5 min-w-10"
163
+ }
164
+ },
165
+ defaultVariants: {
166
+ variant: "default",
167
+ size: "default"
168
+ }
169
+ });
170
+ function Toggle({ className, variant, size, ...props }) {
171
+ return /* @__PURE__ */ jsx(TogglePrimitive.Root, {
172
+ className: cn(toggleVariants({
173
+ variant,
174
+ size,
175
+ className
176
+ })),
177
+ "data-slot": "toggle",
178
+ ...props
179
+ });
180
+ }
181
+ //#endregion
182
+ export { SelectTrigger as _, applyTheme as a, useThemeContext as c, SelectGroup as d, SelectItem as f, SelectSeparator as g, SelectScrollUpButton as h, ThemeContext as i, Select as l, SelectScrollDownButton as m, toggleVariants as n, normalizeMode as o, SelectLabel as p, Toaster$1 as r, useTheme as s, Toggle as t, SelectContent as u, SelectValue as v };
@@ -0,0 +1,4 @@
1
+ //#region src/hooks/use-mobile.d.ts
2
+ declare function useIsMobile(): boolean;
3
+ //#endregion
4
+ export { useIsMobile as t };
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ //#region src/hooks/use-mobile.ts
3
+ const MOBILE_BREAKPOINT = 768;
4
+ function useIsMobile() {
5
+ const [isMobile, setIsMobile] = React.useState(void 0);
6
+ React.useEffect(() => {
7
+ const mql = window.matchMedia(`(max-width: 767px)`);
8
+ const onChange = () => {
9
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
10
+ };
11
+ mql.addEventListener("change", onChange);
12
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
13
+ return () => mql.removeEventListener("change", onChange);
14
+ }, []);
15
+ return !!isMobile;
16
+ }
17
+ //#endregion
18
+ export { useIsMobile as t };
@@ -0,0 +1,8 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ //#region src/lib/utils.ts
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+ //#endregion
8
+ export { cn as t };
@@ -0,0 +1,94 @@
1
+ import { t as cn } from "./utils-C_uf36nf.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { ChevronRight } from "lucide-react";
4
+ //#region src/components/ui/card/index.tsx
5
+ function Card({ className, ...props }) {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ className: cn("bg-card text-card-foreground flex flex-col gap-4 rounded-sm border border-border py-5 shadow-sm", className),
8
+ "data-slot": "card",
9
+ ...props
10
+ });
11
+ }
12
+ function CardHeader({ className, ...props }) {
13
+ return /* @__PURE__ */ jsx("div", {
14
+ className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className),
15
+ "data-slot": "card-header",
16
+ ...props
17
+ });
18
+ }
19
+ function CardTitle({ className, ...props }) {
20
+ return /* @__PURE__ */ jsx("div", {
21
+ className: cn("leading-none font-semibold", className),
22
+ "data-slot": "card-title",
23
+ ...props
24
+ });
25
+ }
26
+ function CardDescription({ className, ...props }) {
27
+ return /* @__PURE__ */ jsx("div", {
28
+ className: cn("text-muted-foreground text-sm", className),
29
+ "data-slot": "card-description",
30
+ ...props
31
+ });
32
+ }
33
+ function CardAction({ className, ...props }) {
34
+ return /* @__PURE__ */ jsx("div", {
35
+ className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className),
36
+ "data-slot": "card-action",
37
+ ...props
38
+ });
39
+ }
40
+ function CardContent({ className, ...props }) {
41
+ return /* @__PURE__ */ jsx("div", {
42
+ className: cn("px-6", className),
43
+ "data-slot": "card-content",
44
+ ...props
45
+ });
46
+ }
47
+ function CardFooter({ className, ...props }) {
48
+ return /* @__PURE__ */ jsx("div", {
49
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className),
50
+ "data-slot": "card-footer",
51
+ ...props
52
+ });
53
+ }
54
+ //#endregion
55
+ //#region src/components/blocks/widget/index.tsx
56
+ function AnchorLink({ children, className, href }) {
57
+ return /* @__PURE__ */ jsx("a", {
58
+ className,
59
+ href,
60
+ children
61
+ });
62
+ }
63
+ function Widget({ children, contentClassName, count, emptyLabel, href, icon, isLoading, linkComponent, title }) {
64
+ return /* @__PURE__ */ jsxs(Card, { children: [/* @__PURE__ */ jsxs(CardHeader, { children: [/* @__PURE__ */ jsxs(CardTitle, {
65
+ className: "flex items-center gap-2 text-base",
66
+ children: [icon, title]
67
+ }), /* @__PURE__ */ jsx(CardAction, { children: /* @__PURE__ */ jsxs(linkComponent ?? AnchorLink, {
68
+ className: "flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground",
69
+ href,
70
+ children: [count !== void 0 && /* @__PURE__ */ jsx("span", { children: count }), /* @__PURE__ */ jsx(ChevronRight, { className: "size-4" })]
71
+ }) })] }), /* @__PURE__ */ jsx(CardContent, {
72
+ className: contentClassName,
73
+ children: isLoading ? /* @__PURE__ */ jsx("div", {
74
+ className: "flex flex-col gap-2",
75
+ children: [
76
+ 0,
77
+ 1,
78
+ 2
79
+ ].map((i) => /* @__PURE__ */ jsxs("div", {
80
+ className: "flex flex-col gap-1",
81
+ "data-testid": "widget-skeleton-row",
82
+ children: [/* @__PURE__ */ jsx("div", { className: "h-3 bg-muted rounded animate-pulse" }), /* @__PURE__ */ jsx("div", { className: "h-2 bg-muted/60 rounded animate-pulse w-1/2" })]
83
+ }, i))
84
+ }) : Boolean(children) ? /* @__PURE__ */ jsx("div", {
85
+ className: "flex flex-col gap-1",
86
+ children
87
+ }) : emptyLabel ? /* @__PURE__ */ jsx("div", {
88
+ className: "text-sm text-muted-foreground py-2",
89
+ children: emptyLabel
90
+ }) : null
91
+ })] });
92
+ }
93
+ //#endregion
94
+ export { CardDescription as a, CardTitle as c, CardContent as i, Card as n, CardFooter as o, CardAction as r, CardHeader as s, Widget as t };
@@ -0,0 +1,6 @@
1
+ import { r as WidgetProps$1 } from "./index-qji4ohJZ.js";
2
+ //#region src/widget/widget.d.ts
3
+ type WidgetProps = Omit<WidgetProps$1, 'linkComponent'>;
4
+ declare function Widget(props: WidgetProps): import("react").JSX.Element;
5
+ //#endregion
6
+ export { Widget, type WidgetProps };
package/dist/widget.js ADDED
@@ -0,0 +1,19 @@
1
+ import { t as Widget$1 } from "./widget-C2vjxQms.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import NextLink from "next/link.js";
4
+ //#region src/widget/widget.tsx
5
+ function NextWidgetLink({ children, className, href }) {
6
+ return /* @__PURE__ */ jsx(NextLink, {
7
+ className,
8
+ href,
9
+ children
10
+ });
11
+ }
12
+ function Widget(props) {
13
+ return /* @__PURE__ */ jsx(Widget$1, {
14
+ ...props,
15
+ linkComponent: NextWidgetLink
16
+ });
17
+ }
18
+ //#endregion
19
+ export { Widget };