@ekkolyth/ui 0.1.16 → 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 (59) 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 -0
  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/index-C3ceanPz.d.ts +0 -18
  45. package/dist/index-C7t_lwpi.d.ts +0 -13
  46. package/dist/next.d.ts +0 -13
  47. package/dist/next.js +0 -271
  48. package/dist/providers/next.d.ts +0 -25
  49. package/dist/providers/next.js +0 -216
  50. package/dist/providers/tanstack.d.ts +0 -24
  51. package/dist/providers/tanstack.js +0 -120
  52. package/dist/tanstack.d.ts +0 -12
  53. package/dist/tanstack.js +0 -203
  54. package/dist/themes/ekko-playlist.css +0 -71
  55. package/dist/themes/theme-select.d.ts +0 -12
  56. package/dist/themes/theme-select.js +0 -357
  57. package/dist/themes/theme-toggle.d.ts +0 -15
  58. package/dist/themes/theme-toggle.js +0 -179
  59. package/dist/types-fUfvw1Mz.d.ts +0 -8
@@ -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 };
package/package.json CHANGED
@@ -1,177 +1,132 @@
1
1
  {
2
- "name": "@ekkolyth/ui",
3
- "version": "0.1.16",
4
- "description": "Shared UI Library for my personal projects",
5
- "keywords": [
6
- "theme",
7
- "dark-mode",
8
- "next-themes",
9
- "tanstack-router",
10
- "react"
11
- ],
12
- "repository": {
13
- "type": "git",
14
- "url": "git+https://github.com/ekkolyth/ui.git"
15
- },
16
- "license": "MIT",
17
- "author": "ekkolyth",
18
- "type": "module",
19
- "main": "./dist/index.js",
20
- "types": "./dist/index.d.ts",
21
- "files": [
22
- "dist",
23
- "README.md",
24
- "LICENSE"
25
- ],
26
- "scripts": {
27
- "dev": "storybook dev -p 3000 --no-open",
28
- "build": "tsup",
29
- "build:clean": "rm -rf dist && npm run build",
30
- "start": "next start",
31
- "lint": "biome lint .",
32
- "format": "biome check --write .",
33
- "format:check": "biome check .",
34
- "build-storybook": "storybook build",
35
- "ui-update": "node scripts/shadcn-update.js add",
36
- "pub": "node scripts/publish.js"
37
- },
38
- "exports": {
39
- ".": {
40
- "types": "./dist/index.d.ts",
41
- "import": "./dist/index.js"
2
+ "name": "@ekkolyth/ui",
3
+ "version": "0.1.18",
4
+ "description": "Shared UI Library for my personal projects",
5
+ "keywords": [
6
+ "theme",
7
+ "dark-mode",
8
+ "react"
9
+ ],
10
+ "license": "MIT",
11
+ "author": "ekkolyth",
12
+ "type": "module",
13
+ "main": "./dist/index.js",
14
+ "module": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "sideEffects": [
17
+ "**/*.css"
18
+ ],
19
+ "files": [
20
+ "dist",
21
+ "README.md",
22
+ "LICENSE"
23
+ ],
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/index.js"
28
+ },
29
+ "./text": {
30
+ "types": "./dist/text.d.ts",
31
+ "import": "./dist/text.js"
32
+ },
33
+ "./layout": {
34
+ "types": "./dist/layout.d.ts",
35
+ "import": "./dist/layout.js"
36
+ },
37
+ "./blocks": {
38
+ "types": "./dist/blocks.d.ts",
39
+ "import": "./dist/blocks.js"
40
+ },
41
+ "./hooks": {
42
+ "types": "./dist/hooks.d.ts",
43
+ "import": "./dist/hooks.js"
44
+ },
45
+ "./widget": {
46
+ "types": "./dist/widget.d.ts",
47
+ "import": "./dist/widget.js"
48
+ },
49
+ "./convex": {
50
+ "types": "./dist/convex.d.ts",
51
+ "import": "./dist/convex.js"
52
+ },
53
+ "./themes/provider": {
54
+ "types": "./dist/themes/provider.d.ts",
55
+ "import": "./dist/themes/provider.js"
56
+ },
57
+ "./themes": {
58
+ "style": "./dist/themes.css",
59
+ "default": "./dist/themes.css"
60
+ },
61
+ "./themes/*": {
62
+ "style": "./dist/themes/*.css",
63
+ "default": "./dist/themes/*.css"
64
+ },
65
+ "./base.css": "./dist/base.css"
42
66
  },
43
- "./next": {
44
- "types": "./dist/next.d.ts",
45
- "import": "./dist/next.js"
67
+ "dependencies": {
68
+ "@base-ui/react": "^1.1.0",
69
+ "@radix-ui/react-accordion": "^1.2.12",
70
+ "@radix-ui/react-alert-dialog": "^1.1.15",
71
+ "@radix-ui/react-aspect-ratio": "^1.1.8",
72
+ "@radix-ui/react-avatar": "^1.1.11",
73
+ "@radix-ui/react-checkbox": "^1.3.3",
74
+ "@radix-ui/react-collapsible": "^1.1.12",
75
+ "@radix-ui/react-context-menu": "^2.2.16",
76
+ "@radix-ui/react-dialog": "^1.1.15",
77
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
78
+ "@radix-ui/react-hover-card": "^1.1.15",
79
+ "@radix-ui/react-label": "^2.1.8",
80
+ "@radix-ui/react-menubar": "^1.1.16",
81
+ "@radix-ui/react-navigation-menu": "^1.2.14",
82
+ "@radix-ui/react-popover": "^1.1.15",
83
+ "@radix-ui/react-progress": "^1.1.8",
84
+ "@radix-ui/react-radio-group": "^1.3.8",
85
+ "@radix-ui/react-scroll-area": "^1.2.10",
86
+ "@radix-ui/react-select": "^2.2.6",
87
+ "@radix-ui/react-separator": "^1.1.8",
88
+ "@radix-ui/react-slider": "^1.3.6",
89
+ "@radix-ui/react-slot": "^1.2.4",
90
+ "@radix-ui/react-switch": "^1.2.6",
91
+ "@radix-ui/react-tabs": "^1.1.13",
92
+ "@radix-ui/react-toggle": "^1.1.10",
93
+ "@radix-ui/react-toggle-group": "^1.1.11",
94
+ "@radix-ui/react-tooltip": "^1.2.8",
95
+ "@tailwindcss/typography": "^0.5.19",
96
+ "@tanstack/react-form": "^1.28.3",
97
+ "@tanstack/react-pacer": "^0.20.0",
98
+ "@tanstack/react-table": "^8.21.3",
99
+ "@tiptap/core": "^3.27.1",
100
+ "class-variance-authority": "^0.7.1",
101
+ "clsx": "^2.1.1",
102
+ "cmdk": "^1.1.1",
103
+ "date-fns": "^4.1.0",
104
+ "embla-carousel-react": "^8.6.0",
105
+ "input-otp": "^1.4.2",
106
+ "lucide-react": "^0.562.0",
107
+ "react-day-picker": "^9.13.2",
108
+ "react-hook-form": "^7.71.1",
109
+ "react-resizable-panels": "^4.6.0",
110
+ "recharts": "2.15.4",
111
+ "shadcn": "^3.8.5",
112
+ "shiki": "^3.16.0",
113
+ "sonner": "^2.0.7",
114
+ "tailwind-merge": "^3.5.0",
115
+ "tw-animate-css": "^1.4.0",
116
+ "vaul": "^1.1.2",
117
+ "zod": "^4.3.6"
46
118
  },
47
- "./tanstack": {
48
- "types": "./dist/tanstack.d.ts",
49
- "import": "./dist/tanstack.js"
119
+ "peerDependencies": {
120
+ "react": "^19.2.0",
121
+ "react-dom": "^19.2.0",
122
+ "next": "^16.1.6"
50
123
  },
51
- "./themes": {
52
- "style": "./dist/themes.css",
53
- "default": "./dist/themes.css"
124
+ "peerDependenciesMeta": {
125
+ "next": {
126
+ "optional": true
127
+ }
54
128
  },
55
- "./themes/theme-toggle": {
56
- "types": "./dist/themes/theme-toggle.d.ts",
57
- "import": "./dist/themes/theme-toggle.js"
58
- },
59
- "./themes/theme-select": {
60
- "types": "./dist/themes/theme-select.d.ts",
61
- "import": "./dist/themes/theme-select.js"
62
- },
63
- "./catpuccin/latte": {
64
- "style": "./dist/catpuccin/latte.css",
65
- "default": "./dist/catpuccin/latte.css"
66
- },
67
- "./catpuccin/frappe": {
68
- "style": "./dist/catpuccin/frappe.css",
69
- "default": "./dist/catpuccin/frappe.css"
70
- },
71
- "./catpuccin/macchiato": {
72
- "style": "./dist/catpuccin/macchiato.css",
73
- "default": "./dist/catpuccin/macchiato.css"
74
- },
75
- "./catpuccin/mocha": {
76
- "style": "./dist/catpuccin/mocha.css",
77
- "default": "./dist/catpuccin/mocha.css"
78
- },
79
- "./ekko-os": {
80
- "style": "./dist/ekko-os.css",
81
- "default": "./dist/ekko-os.css"
82
- },
83
- "./tokyo-night": {
84
- "style": "./dist/tokyo-night.css",
85
- "default": "./dist/tokyo-night.css"
86
- },
87
- "./ekkolyth": {
88
- "style": "./dist/ekkolyth.css",
89
- "default": "./dist/ekkolyth.css"
90
- },
91
- "./ekko-playlist": {
92
- "style": "./dist/ekko-playlist.css",
93
- "default": "./dist/ekko-playlist.css"
94
- }
95
- },
96
- "dependencies": {
97
- "@base-ui/react": "^1.1.0",
98
- "class-variance-authority": "^0.7.1",
99
- "clsx": "^2.1.1",
100
- "cmdk": "^1.1.1",
101
- "date-fns": "^4.1.0",
102
- "embla-carousel-react": "^8.6.0",
103
- "input-otp": "^1.4.2",
104
- "lucide-react": "^0.562.0",
105
- "next": "16.1.2",
106
- "radix-ui": "^1.4.3",
107
- "react-day-picker": "^9.13.0",
108
- "react-resizable-panels": "^4.4.1",
109
- "recharts": "2.15.4",
110
- "shadcn": "^3.7.0",
111
- "sonner": "^2.0.7",
112
- "tailwind-merge": "^3.4.0",
113
- "tw-animate-css": "^1.4.0",
114
- "vaul": "^1.1.2"
115
- },
116
- "devDependencies": {
117
- "@biomejs/biome": "^2.3.12",
118
- "@chromatic-com/storybook": "^5.0.0",
119
- "@storybook/addon-a11y": "^10.1.11",
120
- "@storybook/addon-docs": "^10.1.11",
121
- "@storybook/addon-onboarding": "^10.1.11",
122
- "@storybook/addon-themes": "^10.1.11",
123
- "@storybook/addon-vitest": "^10.1.11",
124
- "@storybook/nextjs-vite": "^10.1.11",
125
- "@tailwindcss/postcss": "^4.1.18",
126
- "@tanstack/react-router": "^1.150.0",
127
- "@testing-library/jest-dom": "^6.9.1",
128
- "@testing-library/react": "^16.3.1",
129
- "@testing-library/user-event": "^14.6.1",
130
- "@types/node": "^20.19.30",
131
- "@types/postcss-import": "^14.0.3",
132
- "@types/react": "^19.2.8",
133
- "@types/react-dom": "^19.2.3",
134
- "@vitejs/plugin-react": "^5.1.2",
135
- "@vitest/browser-playwright": "^4.0.17",
136
- "@vitest/coverage-v8": "^4.0.17",
137
- "@vueless/storybook-dark-mode": "^10.0.6",
138
- "jsdom": "^27.4.0",
139
- "next-themes": "^0.4.6",
140
- "playwright": "^1.57.0",
141
- "postcss": "^8.5.6",
142
- "postcss-import": "^16.1.1",
143
- "storybook": "^10.1.11",
144
- "tailwindcss": "^4.1.18",
145
- "tsup": "^8.5.1",
146
- "typescript": "^5.9.3",
147
- "vite": "^7.3.1",
148
- "vite-tsconfig-paths": "^6.0.4",
149
- "vitest": "^4.0.17"
150
- },
151
- "peerDependencies": {
152
- "react": "^19.2.3",
153
- "react-dom": "^19.2.3",
154
- "next-themes": "^0.4.6",
155
- "@tanstack/react-router": "^1.150.0"
156
- },
157
- "peerDependenciesMeta": {
158
- "next-themes": {
159
- "optional": true
160
- },
161
- "@tanstack/react-router": {
162
- "optional": true
129
+ "publishConfig": {
130
+ "access": "public"
163
131
  }
164
- },
165
- "publishConfig": {
166
- "access": "public"
167
- },
168
- "module": "./dist/index.js",
169
- "ignoreScripts": [
170
- "sharp",
171
- "unrs-resolver"
172
- ],
173
- "trustedDependencies": [
174
- "sharp",
175
- "unrs-resolver"
176
- ]
177
132
  }
@@ -1,18 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import { Select as Select$1 } from 'radix-ui';
4
-
5
- declare function Select({ ...props }: React.ComponentProps<typeof Select$1.Root>): react_jsx_runtime.JSX.Element;
6
- declare function SelectGroup({ ...props }: React.ComponentProps<typeof Select$1.Group>): react_jsx_runtime.JSX.Element;
7
- declare function SelectValue({ ...props }: React.ComponentProps<typeof Select$1.Value>): react_jsx_runtime.JSX.Element;
8
- declare function SelectTrigger({ className, size, children, ...props }: React.ComponentProps<typeof Select$1.Trigger> & {
9
- size?: "sm" | "default";
10
- }): react_jsx_runtime.JSX.Element;
11
- declare function SelectContent({ className, children, position, align, ...props }: React.ComponentProps<typeof Select$1.Content>): react_jsx_runtime.JSX.Element;
12
- declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof Select$1.Label>): react_jsx_runtime.JSX.Element;
13
- declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof Select$1.Item>): react_jsx_runtime.JSX.Element;
14
- declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof Select$1.Separator>): react_jsx_runtime.JSX.Element;
15
- declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof Select$1.ScrollUpButton>): react_jsx_runtime.JSX.Element;
16
- declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof Select$1.ScrollDownButton>): react_jsx_runtime.JSX.Element;
17
-
18
- export { Select as S, SelectContent as a, SelectGroup as b, SelectItem as c, SelectLabel as d, SelectScrollDownButton as e, SelectScrollUpButton as f, SelectSeparator as g, SelectTrigger as h, SelectValue as i };