@epicbagel/saas-kit 1.2.3 → 1.4.0
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/README.md +115 -0
- package/dist/chunk-2TKLS73N.js +121 -0
- package/dist/chunk-4UUTKR3V.cjs +53 -0
- package/dist/chunk-BTHYGHOH.cjs +143 -0
- package/dist/chunk-D5EHW3O2.cjs +52 -0
- package/dist/chunk-F3DAFAMD.js +271 -0
- package/dist/chunk-GRY77463.cjs +121 -0
- package/dist/chunk-HAP6USTP.cjs +46 -0
- package/dist/chunk-HAQOT2CD.js +46 -0
- package/dist/chunk-HHV4G77I.js +55 -0
- package/dist/{chunk-KYQPX754.js → chunk-HRLP4BHJ.js} +7 -7
- package/dist/{chunk-N6V3DDKU.cjs → chunk-IH3COANJ.cjs} +7 -7
- package/dist/chunk-JTI4244T.js +143 -0
- package/dist/chunk-QEJ2STIV.js +53 -0
- package/dist/chunk-TWCJMFST.js +260 -0
- package/dist/chunk-U3YFP6ZV.cjs +273 -0
- package/dist/chunk-VLXPLKFR.cjs +55 -0
- package/dist/chunk-X3PRMR5G.js +52 -0
- package/dist/chunk-ZJFYOXSM.cjs +260 -0
- package/dist/lib/neutral-theme.cjs +39 -236
- package/dist/lib/neutral-theme.d.cts +44 -2
- package/dist/lib/neutral-theme.d.ts +44 -2
- package/dist/lib/neutral-theme.js +23 -219
- package/dist/primitives/activity-feed.cjs +3 -3
- package/dist/primitives/activity-feed.js +4 -4
- package/dist/primitives/board-view.cjs +6 -6
- package/dist/primitives/board-view.js +5 -5
- package/dist/primitives/chat.cjs +14 -14
- package/dist/primitives/chat.js +12 -12
- package/dist/primitives/code-block.cjs +5 -50
- package/dist/primitives/code-block.js +5 -50
- package/dist/primitives/connection.cjs +6 -6
- package/dist/primitives/connection.js +7 -7
- package/dist/primitives/copy-button.cjs +3 -3
- package/dist/primitives/copy-button.js +2 -2
- package/dist/primitives/document-preview.cjs +54 -0
- package/dist/primitives/document-preview.d.cts +30 -0
- package/dist/primitives/document-preview.d.ts +30 -0
- package/dist/primitives/document-preview.js +54 -0
- package/dist/primitives/editable-list.cjs +1 -1
- package/dist/primitives/editable-list.js +1 -1
- package/dist/primitives/field.cjs +12 -239
- package/dist/primitives/field.js +16 -243
- package/dist/primitives/file-dropzone.cjs +3 -3
- package/dist/primitives/file-dropzone.js +2 -2
- package/dist/primitives/file-preview-internals.cjs +20 -0
- package/dist/primitives/file-preview-internals.d.cts +44 -0
- package/dist/primitives/file-preview-internals.d.ts +44 -0
- package/dist/primitives/file-preview-internals.js +20 -0
- package/dist/primitives/file-preview.cjs +327 -0
- package/dist/primitives/file-preview.d.cts +92 -0
- package/dist/primitives/file-preview.d.ts +92 -0
- package/dist/primitives/file-preview.js +327 -0
- package/dist/primitives/filter-bar.cjs +4 -4
- package/dist/primitives/filter-bar.js +3 -3
- package/dist/primitives/image.cjs +4 -48
- package/dist/primitives/image.js +3 -47
- package/dist/primitives/radio-group.cjs +4 -39
- package/dist/primitives/radio-group.js +4 -39
- package/dist/primitives/resource-list.cjs +6 -6
- package/dist/primitives/resource-list.js +5 -5
- package/dist/primitives/responsive-dialog.cjs +26 -142
- package/dist/primitives/responsive-dialog.js +13 -129
- package/dist/primitives/section.cjs +2 -2
- package/dist/primitives/section.js +3 -3
- package/dist/primitives/switch-field.cjs +2 -2
- package/dist/primitives/switch-field.js +3 -3
- package/dist/primitives/theme-selector.cjs +188 -0
- package/dist/primitives/theme-selector.d.cts +78 -0
- package/dist/primitives/theme-selector.d.ts +78 -0
- package/dist/primitives/theme-selector.js +188 -0
- package/dist/primitives/toggle-group.cjs +5 -45
- package/dist/primitives/toggle-group.js +5 -45
- package/package.json +31 -1
- package/dist/{chunk-6OTAGP2I.cjs → chunk-KADJ56AH.cjs} +2 -2
- package/dist/{chunk-EHKMVJ6O.js → chunk-M7FYGAGO.js} +3 -3
- package/dist/{chunk-PVZ4JGDU.js → chunk-MLHNYRFX.js} +6 -6
- package/dist/{chunk-PWOQMTPX.js → chunk-NW3OWKBN.js} +3 -3
- package/dist/{chunk-CYH63OCL.cjs → chunk-SGW4FWBX.cjs} +6 -6
- package/dist/{chunk-ENJNZ323.cjs → chunk-VKIGJNJR.cjs} +2 -2
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
// src/lib/neutral-theme.ts
|
|
2
|
+
var SEMANTIC_TOKENS = [
|
|
3
|
+
"background",
|
|
4
|
+
"foreground",
|
|
5
|
+
"card",
|
|
6
|
+
"card-foreground",
|
|
7
|
+
"popover",
|
|
8
|
+
"popover-foreground",
|
|
9
|
+
"primary",
|
|
10
|
+
"primary-foreground",
|
|
11
|
+
"secondary",
|
|
12
|
+
"secondary-foreground",
|
|
13
|
+
"muted",
|
|
14
|
+
"muted-foreground",
|
|
15
|
+
"accent",
|
|
16
|
+
"accent-foreground",
|
|
17
|
+
"destructive",
|
|
18
|
+
"destructive-foreground",
|
|
19
|
+
"border",
|
|
20
|
+
"input",
|
|
21
|
+
"ring",
|
|
22
|
+
"chart-1",
|
|
23
|
+
"chart-2",
|
|
24
|
+
"chart-3",
|
|
25
|
+
"chart-4",
|
|
26
|
+
"chart-5",
|
|
27
|
+
"sidebar-background",
|
|
28
|
+
"sidebar-foreground",
|
|
29
|
+
"sidebar-primary",
|
|
30
|
+
"sidebar-primary-foreground",
|
|
31
|
+
"sidebar-accent",
|
|
32
|
+
"sidebar-accent-foreground",
|
|
33
|
+
"sidebar-border",
|
|
34
|
+
"sidebar-ring"
|
|
35
|
+
];
|
|
36
|
+
function hexToRgb(hex) {
|
|
37
|
+
const h = hex.replace("#", "").trim();
|
|
38
|
+
const full = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
39
|
+
if (!/^[0-9a-fA-F]{6}$/.test(full)) {
|
|
40
|
+
throw new Error(`Not a hex colour: ${hex}`);
|
|
41
|
+
}
|
|
42
|
+
return [
|
|
43
|
+
parseInt(full.slice(0, 2), 16),
|
|
44
|
+
parseInt(full.slice(2, 4), 16),
|
|
45
|
+
parseInt(full.slice(4, 6), 16)
|
|
46
|
+
];
|
|
47
|
+
}
|
|
48
|
+
function hexToHsl(hex) {
|
|
49
|
+
const [r255, g255, b255] = hexToRgb(hex);
|
|
50
|
+
const r = r255 / 255;
|
|
51
|
+
const g = g255 / 255;
|
|
52
|
+
const b = b255 / 255;
|
|
53
|
+
const max = Math.max(r, g, b);
|
|
54
|
+
const min = Math.min(r, g, b);
|
|
55
|
+
const l = (max + min) / 2;
|
|
56
|
+
const d = max - min;
|
|
57
|
+
let h = 0;
|
|
58
|
+
let s = 0;
|
|
59
|
+
if (d !== 0) {
|
|
60
|
+
s = d / (1 - Math.abs(2 * l - 1));
|
|
61
|
+
if (max === r) h = (g - b) / d % 6;
|
|
62
|
+
else if (max === g) h = (b - r) / d + 2;
|
|
63
|
+
else h = (r - g) / d + 4;
|
|
64
|
+
h *= 60;
|
|
65
|
+
if (h < 0) h += 360;
|
|
66
|
+
}
|
|
67
|
+
const round = (n) => Math.round(n * 10) / 10;
|
|
68
|
+
return `${round(h)} ${round(s * 100)}% ${round(l * 100)}%`;
|
|
69
|
+
}
|
|
70
|
+
function luminance(hex) {
|
|
71
|
+
const [r, g, b] = hexToRgb(hex).map((v) => {
|
|
72
|
+
const c = v / 255;
|
|
73
|
+
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
74
|
+
});
|
|
75
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
76
|
+
}
|
|
77
|
+
function contrastRatio(a, b) {
|
|
78
|
+
const la = luminance(a);
|
|
79
|
+
const lb = luminance(b);
|
|
80
|
+
const [hi, lo] = la > lb ? [la, lb] : [lb, la];
|
|
81
|
+
return (hi + 0.05) / (lo + 0.05);
|
|
82
|
+
}
|
|
83
|
+
function bestForeground(bg, candidates) {
|
|
84
|
+
let best = candidates[0];
|
|
85
|
+
let bestRatio = 0;
|
|
86
|
+
for (const c of candidates) {
|
|
87
|
+
const ratio = contrastRatio(bg, c);
|
|
88
|
+
if (ratio > bestRatio) {
|
|
89
|
+
best = c;
|
|
90
|
+
bestRatio = ratio;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return best;
|
|
94
|
+
}
|
|
95
|
+
var NEUTRAL_RADIUS = "0rem";
|
|
96
|
+
function neutral(mode) {
|
|
97
|
+
const light = mode === "light";
|
|
98
|
+
const danger = "#d71921";
|
|
99
|
+
const mono = light ? {
|
|
100
|
+
bg: "#ffffff",
|
|
101
|
+
fg: "#000000",
|
|
102
|
+
surface: "#f5f5f5",
|
|
103
|
+
subtle: "#666666",
|
|
104
|
+
border: "#e5e5e5",
|
|
105
|
+
sidebar: "#fafafa",
|
|
106
|
+
strong: "#333333"
|
|
107
|
+
} : {
|
|
108
|
+
bg: "#000000",
|
|
109
|
+
fg: "#ffffff",
|
|
110
|
+
surface: "#1a1a1a",
|
|
111
|
+
subtle: "#999999",
|
|
112
|
+
border: "#333333",
|
|
113
|
+
sidebar: "#0d0d0d",
|
|
114
|
+
strong: "#cccccc"
|
|
115
|
+
};
|
|
116
|
+
return {
|
|
117
|
+
background: mono.bg,
|
|
118
|
+
foreground: mono.fg,
|
|
119
|
+
card: mono.bg,
|
|
120
|
+
"card-foreground": mono.fg,
|
|
121
|
+
popover: mono.bg,
|
|
122
|
+
"popover-foreground": mono.fg,
|
|
123
|
+
primary: mono.fg,
|
|
124
|
+
"primary-foreground": mono.bg,
|
|
125
|
+
secondary: mono.surface,
|
|
126
|
+
"secondary-foreground": mono.fg,
|
|
127
|
+
muted: mono.surface,
|
|
128
|
+
"muted-foreground": mono.subtle,
|
|
129
|
+
accent: mono.surface,
|
|
130
|
+
"accent-foreground": mono.fg,
|
|
131
|
+
destructive: danger,
|
|
132
|
+
"destructive-foreground": bestForeground(danger, ["#ffffff", "#000000"]),
|
|
133
|
+
border: mono.border,
|
|
134
|
+
input: mono.border,
|
|
135
|
+
ring: mono.fg,
|
|
136
|
+
"chart-1": light ? "#333333" : "#cccccc",
|
|
137
|
+
"chart-2": light ? "#4d4d4d" : "#b3b3b3",
|
|
138
|
+
"chart-3": light ? "#666666" : "#999999",
|
|
139
|
+
"chart-4": light ? "#808080" : "#808080",
|
|
140
|
+
"chart-5": light ? "#999999" : "#666666",
|
|
141
|
+
"sidebar-background": mono.sidebar,
|
|
142
|
+
"sidebar-foreground": mono.fg,
|
|
143
|
+
"sidebar-primary": mono.fg,
|
|
144
|
+
"sidebar-primary-foreground": mono.bg,
|
|
145
|
+
"sidebar-accent": mono.surface,
|
|
146
|
+
"sidebar-accent-foreground": mono.fg,
|
|
147
|
+
"sidebar-border": mono.border,
|
|
148
|
+
"sidebar-ring": mono.border
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
var NEUTRAL = {
|
|
152
|
+
light: neutral("light"),
|
|
153
|
+
dark: neutral("dark")
|
|
154
|
+
};
|
|
155
|
+
var NEUTRAL_THEME_ID = "minimal";
|
|
156
|
+
var NEUTRAL_PALETTE = {
|
|
157
|
+
id: NEUTRAL_THEME_ID,
|
|
158
|
+
label: "Neutral",
|
|
159
|
+
description: "Black and white, square corners.",
|
|
160
|
+
radius: NEUTRAL_RADIUS,
|
|
161
|
+
light: NEUTRAL.light,
|
|
162
|
+
dark: NEUTRAL.dark
|
|
163
|
+
};
|
|
164
|
+
function colorAlias(token) {
|
|
165
|
+
if (token.startsWith("chart-")) return null;
|
|
166
|
+
if (token === "sidebar-background") return "--color-sidebar";
|
|
167
|
+
return `--color-${token}`;
|
|
168
|
+
}
|
|
169
|
+
var RADIUS_SCALE = [
|
|
170
|
+
["--radius-sm", "calc(var(--radius) - 4px)"],
|
|
171
|
+
["--radius-md", "calc(var(--radius) - 2px)"],
|
|
172
|
+
["--radius-lg", "var(--radius)"],
|
|
173
|
+
["--radius-xl", "calc(var(--radius) + 4px)"],
|
|
174
|
+
["--radius-2xl", "calc(var(--radius) + 8px)"]
|
|
175
|
+
];
|
|
176
|
+
function paletteDeclarations(tokens, names, radius, { indent = " ", aliasSource = "neutral-theme.ts" } = {}) {
|
|
177
|
+
const value = (token) => {
|
|
178
|
+
const hex = tokens[token];
|
|
179
|
+
if (hex === void 0) throw new Error(`Missing token: ${token}`);
|
|
180
|
+
return hexToHsl(hex);
|
|
181
|
+
};
|
|
182
|
+
const lines = [`${indent}--radius: ${radius};`];
|
|
183
|
+
for (const token of names) {
|
|
184
|
+
lines.push(`${indent}--${token}: ${value(token)};`);
|
|
185
|
+
}
|
|
186
|
+
lines.push(`${indent}--sidebar: ${value("sidebar-background")};`);
|
|
187
|
+
lines.push(`${indent}/* Tailwind-facing aliases \u2014 see ${aliasSource} */`);
|
|
188
|
+
for (const token of names) {
|
|
189
|
+
const alias = colorAlias(token);
|
|
190
|
+
if (alias) lines.push(`${indent}${alias}: hsl(var(--${token}));`);
|
|
191
|
+
}
|
|
192
|
+
for (const [name, scale] of RADIUS_SCALE) {
|
|
193
|
+
lines.push(`${indent}${name}: ${scale};`);
|
|
194
|
+
}
|
|
195
|
+
return lines.join("\n");
|
|
196
|
+
}
|
|
197
|
+
function paletteStyle(tokens, radius, names = SEMANTIC_TOKENS) {
|
|
198
|
+
const value = (token) => {
|
|
199
|
+
const hex = tokens[token];
|
|
200
|
+
if (hex === void 0) throw new Error(`Missing token: ${token}`);
|
|
201
|
+
return hexToHsl(hex);
|
|
202
|
+
};
|
|
203
|
+
const style = {};
|
|
204
|
+
if (radius !== void 0) style["--radius"] = radius;
|
|
205
|
+
for (const token of names) style[`--${token}`] = value(token);
|
|
206
|
+
style["--sidebar"] = value("sidebar-background");
|
|
207
|
+
for (const token of names) {
|
|
208
|
+
const alias = colorAlias(token);
|
|
209
|
+
if (alias) style[alias] = `hsl(var(--${token}))`;
|
|
210
|
+
}
|
|
211
|
+
for (const [name, scale] of RADIUS_SCALE) style[name] = scale;
|
|
212
|
+
return style;
|
|
213
|
+
}
|
|
214
|
+
function paletteBlock(selector, declarations, indent = "") {
|
|
215
|
+
const head = selector.split("\n").map((line) => indent + line).join("\n");
|
|
216
|
+
return `${head} {
|
|
217
|
+
${declarations}
|
|
218
|
+
${indent}}
|
|
219
|
+
`;
|
|
220
|
+
}
|
|
221
|
+
function layerBlock(name, rules) {
|
|
222
|
+
return `@layer ${name} {
|
|
223
|
+
${rules.join("\n")}}
|
|
224
|
+
`;
|
|
225
|
+
}
|
|
226
|
+
var DARK_ROOT_SELECTOR = ":root:where(.dark)";
|
|
227
|
+
function baseLayerPalette(light, dark, indent = " ") {
|
|
228
|
+
return layerBlock("base", [
|
|
229
|
+
paletteBlock(":root", light, indent),
|
|
230
|
+
paletteBlock(DARK_ROOT_SELECTOR, dark, indent)
|
|
231
|
+
]);
|
|
232
|
+
}
|
|
233
|
+
var PALETTE_GENERATED_HEADER = `/* GENERATED FILE \u2014 do not edit.
|
|
234
|
+
* Source: src/lib/neutral-theme.ts \xB7 Regenerate: pnpm gen:themes
|
|
235
|
+
*
|
|
236
|
+
* The neutral palette: light on :root, dark when the root carries the
|
|
237
|
+
* \`.dark\` class. It sits in \`@layer base\`, so any unlayered palette rule
|
|
238
|
+
* or a host's own :root overrides wins on layer order alone. Imported by
|
|
239
|
+
* tokens.css; every --color-* alias and the radius scale are re-declared
|
|
240
|
+
* alongside the tokens they read.
|
|
241
|
+
*/`;
|
|
242
|
+
function renderPaletteCss() {
|
|
243
|
+
const declarations = (mode) => paletteDeclarations(NEUTRAL[mode], SEMANTIC_TOKENS, NEUTRAL_RADIUS, {
|
|
244
|
+
indent: " "
|
|
245
|
+
});
|
|
246
|
+
return [
|
|
247
|
+
PALETTE_GENERATED_HEADER,
|
|
248
|
+
baseLayerPalette(declarations("light"), declarations("dark"))
|
|
249
|
+
].join("\n");
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export {
|
|
253
|
+
SEMANTIC_TOKENS,
|
|
254
|
+
hexToRgb,
|
|
255
|
+
hexToHsl,
|
|
256
|
+
luminance,
|
|
257
|
+
contrastRatio,
|
|
258
|
+
bestForeground,
|
|
259
|
+
NEUTRAL_RADIUS,
|
|
260
|
+
NEUTRAL,
|
|
261
|
+
NEUTRAL_THEME_ID,
|
|
262
|
+
NEUTRAL_PALETTE,
|
|
263
|
+
colorAlias,
|
|
264
|
+
paletteDeclarations,
|
|
265
|
+
paletteStyle,
|
|
266
|
+
paletteBlock,
|
|
267
|
+
layerBlock,
|
|
268
|
+
baseLayerPalette,
|
|
269
|
+
PALETTE_GENERATED_HEADER,
|
|
270
|
+
renderPaletteCss
|
|
271
|
+
};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkBTHYGHOHcjs = require('./chunk-BTHYGHOH.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkT2ZFSPE4cjs = require('./chunk-T2ZFSPE4.cjs');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _chunkL4DH72UFcjs = require('./chunk-L4DH72UF.cjs');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
19
|
+
|
|
20
|
+
// src/primitives/file-preview-internals.tsx
|
|
21
|
+
var _lucidereact = require('lucide-react');
|
|
22
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
23
|
+
function PreviewDialog({
|
|
24
|
+
open,
|
|
25
|
+
onOpenChange,
|
|
26
|
+
title,
|
|
27
|
+
onDownload,
|
|
28
|
+
downloading,
|
|
29
|
+
downloadLabel,
|
|
30
|
+
children
|
|
31
|
+
}) {
|
|
32
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogContent, { presentation: "preview", className: "h-[92dvh] outline-none", children: [
|
|
33
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogHeader, { className: "shrink-0 border-b border-border", children: [
|
|
34
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
35
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogTitle, { className: "min-w-0 flex-1 truncate text-left", children: title }),
|
|
36
|
+
onDownload && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37
|
+
_chunkL4DH72UFcjs.Button,
|
|
38
|
+
{
|
|
39
|
+
type: "button",
|
|
40
|
+
size: "icon-compact",
|
|
41
|
+
variant: "ghost",
|
|
42
|
+
onClick: onDownload,
|
|
43
|
+
disabled: downloading,
|
|
44
|
+
title: downloadLabel,
|
|
45
|
+
"aria-label": downloadLabel,
|
|
46
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT2ZFSPE4cjs.Icon, { icon: downloading ? _lucidereact.Loader2 : _lucidereact.Download, size: "sm", spin: downloading })
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogClose, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
50
|
+
_chunkL4DH72UFcjs.Button,
|
|
51
|
+
{
|
|
52
|
+
type: "button",
|
|
53
|
+
size: "icon-compact",
|
|
54
|
+
variant: "ghost",
|
|
55
|
+
title: "Close preview",
|
|
56
|
+
"aria-label": "Close preview",
|
|
57
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT2ZFSPE4cjs.Icon, { icon: _lucidereact.X, size: "sm" })
|
|
58
|
+
}
|
|
59
|
+
) })
|
|
60
|
+
] }),
|
|
61
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogDescription, { className: "sr-only", children: [
|
|
62
|
+
"Preview of ",
|
|
63
|
+
title
|
|
64
|
+
] })
|
|
65
|
+
] }),
|
|
66
|
+
children
|
|
67
|
+
] }) });
|
|
68
|
+
}
|
|
69
|
+
function PreviewStage({
|
|
70
|
+
layout = "center",
|
|
71
|
+
label,
|
|
72
|
+
children
|
|
73
|
+
}) {
|
|
74
|
+
const scrolls = layout === "scroll";
|
|
75
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
76
|
+
"div",
|
|
77
|
+
{
|
|
78
|
+
"data-slot": "preview-stage",
|
|
79
|
+
role: scrolls ? "region" : void 0,
|
|
80
|
+
"aria-label": scrolls ? label : void 0,
|
|
81
|
+
tabIndex: scrolls ? 0 : void 0,
|
|
82
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
83
|
+
"min-h-0 flex-1",
|
|
84
|
+
scrolls ? "overflow-y-auto overscroll-contain bg-background p-4 outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring/50 sm:p-6" : "flex items-center justify-center overflow-hidden bg-muted"
|
|
85
|
+
),
|
|
86
|
+
children
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
function PreviewLoading({ label }) {
|
|
91
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { role: "status", className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
92
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT2ZFSPE4cjs.Icon, { icon: _lucidereact.Loader2, size: "sm", spin: true }),
|
|
93
|
+
label
|
|
94
|
+
] });
|
|
95
|
+
}
|
|
96
|
+
function PreviewNotice({
|
|
97
|
+
icon,
|
|
98
|
+
alert = false,
|
|
99
|
+
message,
|
|
100
|
+
children
|
|
101
|
+
}) {
|
|
102
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
103
|
+
"div",
|
|
104
|
+
{
|
|
105
|
+
role: alert ? "alert" : void 0,
|
|
106
|
+
className: "flex max-w-sm flex-col items-center gap-3 p-6 text-center text-sm text-muted-foreground",
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT2ZFSPE4cjs.Icon, { icon, size: "lg" }),
|
|
109
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: message }),
|
|
110
|
+
children
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
exports.PreviewDialog = PreviewDialog; exports.PreviewStage = PreviewStage; exports.PreviewLoading = PreviewLoading; exports.PreviewNotice = PreviewNotice;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
5
|
+
|
|
6
|
+
// src/primitives/radio-group.tsx
|
|
7
|
+
var _reactradiogroup = require('@radix-ui/react-radio-group'); var RadioGroupPrimitive = _interopRequireWildcard(_reactradiogroup);
|
|
8
|
+
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
9
|
+
var _lucidereact = require('lucide-react');
|
|
10
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
11
|
+
var RadioGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12
|
+
RadioGroupPrimitive.Root,
|
|
13
|
+
{
|
|
14
|
+
ref,
|
|
15
|
+
"data-slot": "radio-group",
|
|
16
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, "grid gap-3", className),
|
|
17
|
+
...props
|
|
18
|
+
}
|
|
19
|
+
));
|
|
20
|
+
RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
|
|
21
|
+
var RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22
|
+
RadioGroupPrimitive.Item,
|
|
23
|
+
{
|
|
24
|
+
ref,
|
|
25
|
+
"data-slot": "radio-group-item",
|
|
26
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
27
|
+
"aspect-square size-4 shrink-0 rounded-full border border-input text-primary shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
|
|
28
|
+
className
|
|
29
|
+
),
|
|
30
|
+
...props,
|
|
31
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32
|
+
RadioGroupPrimitive.Indicator,
|
|
33
|
+
{
|
|
34
|
+
"data-slot": "radio-group-indicator",
|
|
35
|
+
className: "relative flex items-center justify-center",
|
|
36
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleIcon, { className: "absolute left-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
));
|
|
41
|
+
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-G6SRSWXB.js";
|
|
5
|
+
|
|
6
|
+
// src/primitives/radio-group.tsx
|
|
7
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
import { CircleIcon } from "lucide-react";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
var RadioGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
12
|
+
RadioGroupPrimitive.Root,
|
|
13
|
+
{
|
|
14
|
+
ref,
|
|
15
|
+
"data-slot": "radio-group",
|
|
16
|
+
className: cn("grid gap-3", className),
|
|
17
|
+
...props
|
|
18
|
+
}
|
|
19
|
+
));
|
|
20
|
+
RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
|
|
21
|
+
var RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
22
|
+
RadioGroupPrimitive.Item,
|
|
23
|
+
{
|
|
24
|
+
ref,
|
|
25
|
+
"data-slot": "radio-group-item",
|
|
26
|
+
className: cn(
|
|
27
|
+
"aspect-square size-4 shrink-0 rounded-full border border-input text-primary shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
|
|
28
|
+
className
|
|
29
|
+
),
|
|
30
|
+
...props,
|
|
31
|
+
children: /* @__PURE__ */ jsx(
|
|
32
|
+
RadioGroupPrimitive.Indicator,
|
|
33
|
+
{
|
|
34
|
+
"data-slot": "radio-group-indicator",
|
|
35
|
+
className: "relative flex items-center justify-center",
|
|
36
|
+
children: /* @__PURE__ */ jsx(CircleIcon, { className: "absolute left-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
));
|
|
41
|
+
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
42
|
+
|
|
43
|
+
export {
|
|
44
|
+
RadioGroup,
|
|
45
|
+
RadioGroupItem
|
|
46
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
CopyButton
|
|
4
|
+
} from "./chunk-NW3OWKBN.js";
|
|
5
|
+
import {
|
|
6
|
+
cn
|
|
7
|
+
} from "./chunk-G6SRSWXB.js";
|
|
8
|
+
|
|
9
|
+
// src/primitives/code-block.tsx
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
var HEIGHTS = {
|
|
12
|
+
none: "",
|
|
13
|
+
sm: "max-h-40 overflow-y-auto",
|
|
14
|
+
md: "max-h-64 overflow-y-auto",
|
|
15
|
+
lg: "max-h-96 overflow-y-auto",
|
|
16
|
+
viewport: "min-h-[55vh] max-h-[65vh] overflow-y-auto"
|
|
17
|
+
};
|
|
18
|
+
function CodeBlock({
|
|
19
|
+
children,
|
|
20
|
+
copy,
|
|
21
|
+
copyLabel,
|
|
22
|
+
wrap = false,
|
|
23
|
+
maxHeight = "none",
|
|
24
|
+
className
|
|
25
|
+
}) {
|
|
26
|
+
const copyText = typeof copy === "string" ? copy : children;
|
|
27
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("relative", className), children: [
|
|
28
|
+
/* @__PURE__ */ jsx(
|
|
29
|
+
"pre",
|
|
30
|
+
{
|
|
31
|
+
className: cn(
|
|
32
|
+
"rounded-md border border-border bg-muted/40 p-3 font-mono text-xs leading-relaxed",
|
|
33
|
+
wrap ? "whitespace-pre-wrap break-words" : "overflow-x-auto",
|
|
34
|
+
HEIGHTS[maxHeight],
|
|
35
|
+
copy ? "pr-12" : void 0
|
|
36
|
+
),
|
|
37
|
+
children
|
|
38
|
+
}
|
|
39
|
+
),
|
|
40
|
+
copy ? /* @__PURE__ */ jsx(
|
|
41
|
+
CopyButton,
|
|
42
|
+
{
|
|
43
|
+
text: copyText,
|
|
44
|
+
label: copyLabel,
|
|
45
|
+
size: "sm",
|
|
46
|
+
variant: "ghost",
|
|
47
|
+
className: "absolute right-1.5 top-1.5"
|
|
48
|
+
}
|
|
49
|
+
) : null
|
|
50
|
+
] });
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
CodeBlock
|
|
55
|
+
};
|
|
@@ -7,16 +7,16 @@ import {
|
|
|
7
7
|
} from "./chunk-J3GQXM37.js";
|
|
8
8
|
import {
|
|
9
9
|
FilterBar
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MLHNYRFX.js";
|
|
11
|
+
import {
|
|
12
|
+
Heading
|
|
13
|
+
} from "./chunk-H2O6NMLZ.js";
|
|
11
14
|
import {
|
|
12
15
|
Tooltip,
|
|
13
16
|
TooltipContent,
|
|
14
17
|
TooltipProvider,
|
|
15
18
|
TooltipTrigger
|
|
16
19
|
} from "./chunk-ZRLUUZHK.js";
|
|
17
|
-
import {
|
|
18
|
-
Heading
|
|
19
|
-
} from "./chunk-H2O6NMLZ.js";
|
|
20
20
|
import {
|
|
21
21
|
BoardColumnComponent,
|
|
22
22
|
MobileBoardView
|
|
@@ -24,15 +24,15 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
ScrollArea
|
|
26
26
|
} from "./chunk-LELFPLTE.js";
|
|
27
|
-
import {
|
|
28
|
-
useIsMobile
|
|
29
|
-
} from "./chunk-PIU5SSUV.js";
|
|
30
27
|
import {
|
|
31
28
|
Input
|
|
32
29
|
} from "./chunk-QMA3WVB7.js";
|
|
33
30
|
import {
|
|
34
31
|
Button
|
|
35
32
|
} from "./chunk-HQRWRRZJ.js";
|
|
33
|
+
import {
|
|
34
|
+
useIsMobile
|
|
35
|
+
} from "./chunk-PIU5SSUV.js";
|
|
36
36
|
import {
|
|
37
37
|
cn
|
|
38
38
|
} from "./chunk-G6SRSWXB.js";
|
|
@@ -7,16 +7,16 @@ var _chunkPNWNU6JWcjs = require('./chunk-PNWNU6JW.cjs');
|
|
|
7
7
|
var _chunkFNDBM67Kcjs = require('./chunk-FNDBM67K.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkSGW4FWBXcjs = require('./chunk-SGW4FWBX.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
var _chunkLELBCBDTcjs = require('./chunk-LELBCBDT.cjs');
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
|
|
16
|
-
var _chunkU2NES7VRcjs = require('./chunk-U2NES7VR.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkU2NES7VRcjs = require('./chunk-U2NES7VR.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
@@ -26,15 +26,15 @@ var _chunkYYFVG5A6cjs = require('./chunk-YYFVG5A6.cjs');
|
|
|
26
26
|
var _chunkXLIAY56Vcjs = require('./chunk-XLIAY56V.cjs');
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var _chunkR35FT53Gcjs = require('./chunk-R35FT53G.cjs');
|
|
30
|
-
|
|
31
|
-
|
|
32
29
|
var _chunkPQUSJEXLcjs = require('./chunk-PQUSJEXL.cjs');
|
|
33
30
|
|
|
34
31
|
|
|
35
32
|
var _chunkL4DH72UFcjs = require('./chunk-L4DH72UF.cjs');
|
|
36
33
|
|
|
37
34
|
|
|
35
|
+
var _chunkR35FT53Gcjs = require('./chunk-R35FT53G.cjs');
|
|
36
|
+
|
|
37
|
+
|
|
38
38
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
39
39
|
|
|
40
40
|
// src/primitives/resource-list.tsx
|
|
@@ -268,7 +268,7 @@ function ResourceList({
|
|
|
268
268
|
const controlsVisible = !(hideControlsWhenEmpty && !loading && !error && _optionalChain([data, 'optionalAccess', _5 => _5.length]) === 0);
|
|
269
269
|
const filterOnQuickRow = filterBarVisible && !toolbarHasOtherControls && hasQuickFilters;
|
|
270
270
|
const filterBarNode = filterBarVisible ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
271
|
-
|
|
271
|
+
_chunkSGW4FWBXcjs.FilterBar,
|
|
272
272
|
{
|
|
273
273
|
filters: filterSchema,
|
|
274
274
|
onFiltersChange,
|