@lukeashford/aurelius 1.0.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 +93 -0
- package/dist/chunk-7DDWFQNU.mjs +136 -0
- package/dist/chunk-7DDWFQNU.mjs.map +1 -0
- package/dist/chunk-OPJXDW4C.mjs +150 -0
- package/dist/chunk-OPJXDW4C.mjs.map +1 -0
- package/dist/index.d.mts +136 -0
- package/dist/index.d.ts +136 -0
- package/dist/index.js +816 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +505 -0
- package/dist/index.mjs.map +1 -0
- package/dist/llms.md +325 -0
- package/dist/styles/base.css +537 -0
- package/dist/styles/fonts/1Ptsg8zYS_SKggPNyCg4Q4FqL_KWxWMT.woff2 +0 -0
- package/dist/styles/fonts/1Ptsg8zYS_SKggPNyCg4QIFqL_KWxWMT.woff2 +0 -0
- package/dist/styles/fonts/1Ptsg8zYS_SKggPNyCg4QoFqL_KWxWMT.woff2 +0 -0
- package/dist/styles/fonts/1Ptsg8zYS_SKggPNyCg4SYFqL_KWxWMT.woff2 +0 -0
- package/dist/styles/fonts/1Ptsg8zYS_SKggPNyCg4TYFqL_KWxQ.woff2 +0 -0
- package/dist/styles/fonts/1Ptug8zYS_SKggPNyC0IT4ttDfA.woff2 +0 -0
- package/dist/styles/fonts/1Ptug8zYS_SKggPNyCAIT4ttDfCmxA.woff2 +0 -0
- package/dist/styles/fonts/1Ptug8zYS_SKggPNyCIIT4ttDfCmxA.woff2 +0 -0
- package/dist/styles/fonts/1Ptug8zYS_SKggPNyCMIT4ttDfCmxA.woff2 +0 -0
- package/dist/styles/fonts/1Ptug8zYS_SKggPNyCkIT4ttDfCmxA.woff2 +0 -0
- package/dist/styles/fonts/OFL_JetBrainsMono.txt +93 -0
- package/dist/styles/fonts/OFL_Marcellus.txt +93 -0
- package/dist/styles/fonts/OFL_Raleway.txt +93 -0
- package/dist/styles/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.woff2 +0 -0
- package/dist/styles/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.woff2 +0 -0
- package/dist/styles/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2 +0 -0
- package/dist/styles/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.woff2 +0 -0
- package/dist/styles/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.woff2 +0 -0
- package/dist/styles/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.woff2 +0 -0
- package/dist/styles/fonts/wEO_EBrOk8hQLDvIAF81VvoK_kgXiQ.woff2 +0 -0
- package/dist/styles/fonts/wEO_EBrOk8hQLDvIAF81WPoK_kgXiYvO.woff2 +0 -0
- package/dist/styles/fonts.css +317 -0
- package/dist/tailwind.preset.d.mts +5 -0
- package/dist/tailwind.preset.d.ts +5 -0
- package/dist/tailwind.preset.js +288 -0
- package/dist/tailwind.preset.js.map +1 -0
- package/dist/tailwind.preset.mjs +8 -0
- package/dist/tailwind.preset.mjs.map +1 -0
- package/dist/tokens/index.d.mts +156 -0
- package/dist/tokens/index.d.ts +156 -0
- package/dist/tokens/index.js +182 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/index.mjs +19 -0
- package/dist/tokens/index.mjs.map +1 -0
- package/package.json +65 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,816 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
Alert: () => Alert,
|
|
34
|
+
Avatar: () => Avatar,
|
|
35
|
+
Badge: () => Badge,
|
|
36
|
+
Button: () => Button,
|
|
37
|
+
Card: () => Card,
|
|
38
|
+
Checkbox: () => Checkbox,
|
|
39
|
+
HelperText: () => HelperText,
|
|
40
|
+
Input: () => Input,
|
|
41
|
+
Label: () => Label,
|
|
42
|
+
Modal: () => Modal,
|
|
43
|
+
Radio: () => Radio,
|
|
44
|
+
Select: () => Select,
|
|
45
|
+
Skeleton: () => Skeleton,
|
|
46
|
+
Spinner: () => Spinner,
|
|
47
|
+
Switch: () => Switch,
|
|
48
|
+
Textarea: () => Textarea,
|
|
49
|
+
Tooltip: () => Tooltip,
|
|
50
|
+
colors: () => colors,
|
|
51
|
+
duration: () => duration,
|
|
52
|
+
easing: () => easing,
|
|
53
|
+
radii: () => radii,
|
|
54
|
+
shadows: () => shadows,
|
|
55
|
+
spacing: () => spacing,
|
|
56
|
+
tailwindPreset: () => tailwind_preset_default,
|
|
57
|
+
typography: () => typography,
|
|
58
|
+
version: () => version
|
|
59
|
+
});
|
|
60
|
+
module.exports = __toCommonJS(index_exports);
|
|
61
|
+
|
|
62
|
+
// src/tokens/colors.ts
|
|
63
|
+
var colors = {
|
|
64
|
+
// Black spectrum
|
|
65
|
+
void: "#000000",
|
|
66
|
+
obsidian: "#0a0a0a",
|
|
67
|
+
charcoal: "#141414",
|
|
68
|
+
graphite: "#1f1f1f",
|
|
69
|
+
slate: "#2a2a2a",
|
|
70
|
+
ash: "#3d3d3d",
|
|
71
|
+
// Gold spectrum
|
|
72
|
+
gold: "#c9a227",
|
|
73
|
+
goldLight: "#d4b84a",
|
|
74
|
+
goldBright: "#e5c84d",
|
|
75
|
+
goldMuted: "#8b7355",
|
|
76
|
+
goldPale: "#d4c4a8",
|
|
77
|
+
goldGlow: "rgba(201, 162, 39, 0.15)",
|
|
78
|
+
// Neutrals
|
|
79
|
+
white: "#ffffff",
|
|
80
|
+
silver: "#a3a3a3",
|
|
81
|
+
zinc: "#71717a",
|
|
82
|
+
dim: "#52525b",
|
|
83
|
+
// Semantic
|
|
84
|
+
success: "#22c55e",
|
|
85
|
+
successMuted: "#166534",
|
|
86
|
+
error: "#dc2626",
|
|
87
|
+
errorMuted: "#991b1b",
|
|
88
|
+
warning: "#d97706",
|
|
89
|
+
warningMuted: "#92400e",
|
|
90
|
+
info: "#0ea5e9",
|
|
91
|
+
infoMuted: "#0369a1"
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// src/tokens/typography.ts
|
|
95
|
+
var typography = {
|
|
96
|
+
// Headings use Marcellus, a classic serif
|
|
97
|
+
fontHeading: ["Marcellus", "serif"],
|
|
98
|
+
// Body and UI use Raleway
|
|
99
|
+
fontBody: ["Raleway", "system-ui", "sans-serif"],
|
|
100
|
+
fontMono: ["JetBrains Mono", "Fira Code", "SF Mono", "monospace"],
|
|
101
|
+
fontSize: {
|
|
102
|
+
xs: ["0.75rem", { lineHeight: "1rem" }],
|
|
103
|
+
sm: ["0.875rem", { lineHeight: "1.25rem" }],
|
|
104
|
+
base: ["1rem", { lineHeight: "1.5rem" }],
|
|
105
|
+
lg: ["1.125rem", { lineHeight: "1.75rem" }],
|
|
106
|
+
xl: ["1.25rem", { lineHeight: "1.75rem" }],
|
|
107
|
+
"2xl": ["1.5rem", { lineHeight: "2rem" }],
|
|
108
|
+
"3xl": ["1.875rem", { lineHeight: "2.25rem" }],
|
|
109
|
+
"4xl": ["2.25rem", { lineHeight: "2.5rem" }],
|
|
110
|
+
"5xl": ["3rem", { lineHeight: "1" }],
|
|
111
|
+
"6xl": ["3.75rem", { lineHeight: "1" }]
|
|
112
|
+
},
|
|
113
|
+
fontWeight: {
|
|
114
|
+
normal: "400",
|
|
115
|
+
medium: "500",
|
|
116
|
+
semibold: "600",
|
|
117
|
+
bold: "700"
|
|
118
|
+
},
|
|
119
|
+
lineHeight: {
|
|
120
|
+
none: "1",
|
|
121
|
+
tight: "1.25",
|
|
122
|
+
snug: "1.375",
|
|
123
|
+
normal: "1.5",
|
|
124
|
+
relaxed: "1.625",
|
|
125
|
+
loose: "2"
|
|
126
|
+
},
|
|
127
|
+
letterSpacing: {
|
|
128
|
+
tighter: "-0.05em",
|
|
129
|
+
tight: "-0.025em",
|
|
130
|
+
normal: "0",
|
|
131
|
+
wide: "0.025em",
|
|
132
|
+
wider: "0.05em",
|
|
133
|
+
widest: "0.1em"
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// src/tokens/spacing.ts
|
|
138
|
+
var spacing = {
|
|
139
|
+
px: "1px",
|
|
140
|
+
0: "0",
|
|
141
|
+
0.5: "0.125rem",
|
|
142
|
+
1: "0.25rem",
|
|
143
|
+
1.5: "0.375rem",
|
|
144
|
+
2: "0.5rem",
|
|
145
|
+
2.5: "0.625rem",
|
|
146
|
+
3: "0.75rem",
|
|
147
|
+
3.5: "0.875rem",
|
|
148
|
+
4: "1rem",
|
|
149
|
+
5: "1.25rem",
|
|
150
|
+
6: "1.5rem",
|
|
151
|
+
7: "1.75rem",
|
|
152
|
+
8: "2rem",
|
|
153
|
+
9: "2.25rem",
|
|
154
|
+
10: "2.5rem",
|
|
155
|
+
11: "2.75rem",
|
|
156
|
+
12: "3rem",
|
|
157
|
+
14: "3.5rem",
|
|
158
|
+
16: "4rem",
|
|
159
|
+
20: "5rem",
|
|
160
|
+
24: "6rem",
|
|
161
|
+
28: "7rem",
|
|
162
|
+
32: "8rem"
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
// src/tokens/shadows.ts
|
|
166
|
+
var shadows = {
|
|
167
|
+
sm: "0 1px 2px 0 rgba(0, 0, 0, 0.4)",
|
|
168
|
+
md: "0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3)",
|
|
169
|
+
lg: "0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.3)",
|
|
170
|
+
xl: "0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(0, 0, 0, 0.3)",
|
|
171
|
+
"2xl": "0 25px 50px -12px rgba(0, 0, 0, 0.5)",
|
|
172
|
+
glow: "0 0 20px rgba(201, 162, 39, 0.3)",
|
|
173
|
+
"glow-sm": "0 0 10px rgba(201, 162, 39, 0.2)",
|
|
174
|
+
"glow-lg": "0 0 40px rgba(201, 162, 39, 0.4)",
|
|
175
|
+
inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.3)"
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
// src/tokens/transitions.ts
|
|
179
|
+
var duration = {
|
|
180
|
+
instant: "75ms",
|
|
181
|
+
fast: "150ms",
|
|
182
|
+
normal: "200ms",
|
|
183
|
+
slow: "300ms",
|
|
184
|
+
slower: "500ms"
|
|
185
|
+
};
|
|
186
|
+
var easing = {
|
|
187
|
+
smooth: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
188
|
+
snap: "cubic-bezier(0.5, 0, 0.1, 1)"
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
// src/tokens/radii.ts
|
|
192
|
+
var radii = {
|
|
193
|
+
sm: "0.125rem",
|
|
194
|
+
md: "0.25rem",
|
|
195
|
+
lg: "0.375rem",
|
|
196
|
+
xl: "0.5rem",
|
|
197
|
+
"2xl": "0.75rem",
|
|
198
|
+
"3xl": "1rem",
|
|
199
|
+
full: "9999px"
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
// src/tailwind.preset.ts
|
|
203
|
+
var preset = {
|
|
204
|
+
// Safelist color utilities used dynamically in the demo so Tailwind doesn't purge them
|
|
205
|
+
safelist: [
|
|
206
|
+
// Black spectrum
|
|
207
|
+
"bg-void",
|
|
208
|
+
"bg-obsidian",
|
|
209
|
+
"bg-charcoal",
|
|
210
|
+
"bg-graphite",
|
|
211
|
+
"bg-slate",
|
|
212
|
+
"bg-ash",
|
|
213
|
+
// Gold spectrum
|
|
214
|
+
"bg-gold",
|
|
215
|
+
"bg-gold-light",
|
|
216
|
+
"bg-gold-bright",
|
|
217
|
+
"bg-gold-muted",
|
|
218
|
+
"bg-gold-pale",
|
|
219
|
+
// Neutrals
|
|
220
|
+
"bg-white",
|
|
221
|
+
"bg-silver",
|
|
222
|
+
"bg-zinc",
|
|
223
|
+
"bg-dim",
|
|
224
|
+
// Semantic
|
|
225
|
+
"bg-success",
|
|
226
|
+
"bg-success-muted",
|
|
227
|
+
"bg-error",
|
|
228
|
+
"bg-error-muted",
|
|
229
|
+
"bg-warning",
|
|
230
|
+
"bg-warning-muted",
|
|
231
|
+
"bg-info",
|
|
232
|
+
"bg-info-muted"
|
|
233
|
+
],
|
|
234
|
+
theme: {
|
|
235
|
+
extend: {
|
|
236
|
+
colors: {
|
|
237
|
+
// Black spectrum
|
|
238
|
+
void: colors.void,
|
|
239
|
+
obsidian: colors.obsidian,
|
|
240
|
+
charcoal: colors.charcoal,
|
|
241
|
+
graphite: colors.graphite,
|
|
242
|
+
slate: colors.slate,
|
|
243
|
+
ash: colors.ash,
|
|
244
|
+
// Gold spectrum
|
|
245
|
+
gold: {
|
|
246
|
+
DEFAULT: colors.gold,
|
|
247
|
+
light: colors.goldLight,
|
|
248
|
+
bright: colors.goldBright,
|
|
249
|
+
muted: colors.goldMuted,
|
|
250
|
+
pale: colors.goldPale,
|
|
251
|
+
glow: colors.goldGlow
|
|
252
|
+
},
|
|
253
|
+
// Neutrals
|
|
254
|
+
white: colors.white,
|
|
255
|
+
silver: colors.silver,
|
|
256
|
+
zinc: colors.zinc,
|
|
257
|
+
dim: colors.dim,
|
|
258
|
+
// Semantic
|
|
259
|
+
success: {
|
|
260
|
+
DEFAULT: colors.success,
|
|
261
|
+
muted: colors.successMuted
|
|
262
|
+
},
|
|
263
|
+
error: {
|
|
264
|
+
DEFAULT: colors.error,
|
|
265
|
+
muted: colors.errorMuted
|
|
266
|
+
},
|
|
267
|
+
warning: {
|
|
268
|
+
DEFAULT: colors.warning,
|
|
269
|
+
muted: colors.warningMuted
|
|
270
|
+
},
|
|
271
|
+
info: {
|
|
272
|
+
DEFAULT: colors.info,
|
|
273
|
+
muted: colors.infoMuted
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
fontFamily: {
|
|
277
|
+
heading: typography.fontHeading,
|
|
278
|
+
body: typography.fontBody,
|
|
279
|
+
mono: typography.fontMono
|
|
280
|
+
},
|
|
281
|
+
fontSize: typography.fontSize,
|
|
282
|
+
fontWeight: typography.fontWeight,
|
|
283
|
+
lineHeight: typography.lineHeight,
|
|
284
|
+
letterSpacing: typography.letterSpacing,
|
|
285
|
+
spacing,
|
|
286
|
+
borderRadius: radii,
|
|
287
|
+
boxShadow: shadows,
|
|
288
|
+
transitionDuration: duration,
|
|
289
|
+
transitionTimingFunction: easing,
|
|
290
|
+
animation: {
|
|
291
|
+
"fade-in": "fade-in 200ms ease-out",
|
|
292
|
+
"fade-out": "fade-out 150ms ease-in",
|
|
293
|
+
"slide-in-right": `slide-in-right 300ms ${easing.smooth}`,
|
|
294
|
+
"slide-out-right": "slide-out-right 200ms ease-in",
|
|
295
|
+
"pulse-glow": "pulse-glow 2s ease-in-out infinite"
|
|
296
|
+
},
|
|
297
|
+
keyframes: {
|
|
298
|
+
"fade-in": {
|
|
299
|
+
"0%": { opacity: "0" },
|
|
300
|
+
"100%": { opacity: "1" }
|
|
301
|
+
},
|
|
302
|
+
"fade-out": {
|
|
303
|
+
"0%": { opacity: "1" },
|
|
304
|
+
"100%": { opacity: "0" }
|
|
305
|
+
},
|
|
306
|
+
"slide-in-right": {
|
|
307
|
+
"0%": { transform: "translateX(100%)", opacity: "0" },
|
|
308
|
+
"100%": { transform: "translateX(0)", opacity: "1" }
|
|
309
|
+
},
|
|
310
|
+
"slide-out-right": {
|
|
311
|
+
"0%": { transform: "translateX(0)", opacity: "1" },
|
|
312
|
+
"100%": { transform: "translateX(100%)", opacity: "0" }
|
|
313
|
+
},
|
|
314
|
+
"pulse-glow": {
|
|
315
|
+
"0%, 100%": { boxShadow: "0 0 20px rgba(201, 162, 39, 0.3)" },
|
|
316
|
+
"50%": { boxShadow: "0 0 30px rgba(201, 162, 39, 0.5)" }
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
var tailwind_preset_default = preset;
|
|
323
|
+
|
|
324
|
+
// src/components/Button.tsx
|
|
325
|
+
var import_react = __toESM(require("react"));
|
|
326
|
+
function cx(...classes) {
|
|
327
|
+
return classes.filter(Boolean).join(" ");
|
|
328
|
+
}
|
|
329
|
+
var Button = import_react.default.forwardRef(
|
|
330
|
+
({ variant = "primary", size = "md", loading = false, className, disabled, children, ...rest }, ref) => {
|
|
331
|
+
const isDisabled = disabled || loading;
|
|
332
|
+
const variantClass = variant === "primary" ? "btn-primary" : variant === "important" ? "btn-important" : variant === "elevated" ? "btn-elevated" : variant === "outlined" ? "btn-outlined" : variant === "featured" ? "btn-featured" : variant === "ghost" ? "btn-ghost" : "btn-danger";
|
|
333
|
+
const sizeClass = `btn-${size}`;
|
|
334
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
335
|
+
"button",
|
|
336
|
+
{
|
|
337
|
+
ref,
|
|
338
|
+
className: cx("btn", variantClass, sizeClass, loading && "opacity-80", className),
|
|
339
|
+
disabled: isDisabled,
|
|
340
|
+
...rest
|
|
341
|
+
},
|
|
342
|
+
loading && /* @__PURE__ */ import_react.default.createElement(
|
|
343
|
+
"span",
|
|
344
|
+
{
|
|
345
|
+
className: "mr-2 inline-block h-4 w-4 animate-pulse rounded-full bg-gold",
|
|
346
|
+
"aria-hidden": true
|
|
347
|
+
}
|
|
348
|
+
),
|
|
349
|
+
children
|
|
350
|
+
);
|
|
351
|
+
}
|
|
352
|
+
);
|
|
353
|
+
Button.displayName = "Button";
|
|
354
|
+
|
|
355
|
+
// src/components/Input.tsx
|
|
356
|
+
var import_react2 = __toESM(require("react"));
|
|
357
|
+
function cx2(...classes) {
|
|
358
|
+
return classes.filter(Boolean).join(" ");
|
|
359
|
+
}
|
|
360
|
+
var Input = import_react2.default.forwardRef(
|
|
361
|
+
({ error = false, className, leadingIcon, trailingIcon, disabled, ...rest }, ref) => {
|
|
362
|
+
const base = "input";
|
|
363
|
+
const errorCls = error ? "input-error" : "";
|
|
364
|
+
return /* @__PURE__ */ import_react2.default.createElement("div", { className: cx2("relative", disabled && "opacity-90") }, leadingIcon && /* @__PURE__ */ import_react2.default.createElement("span", { className: "pointer-events-none absolute inset-y-0 left-3 flex items-center text-silver" }, leadingIcon), /* @__PURE__ */ import_react2.default.createElement(
|
|
365
|
+
"input",
|
|
366
|
+
{
|
|
367
|
+
ref,
|
|
368
|
+
className: cx2(
|
|
369
|
+
base,
|
|
370
|
+
errorCls,
|
|
371
|
+
(leadingIcon || trailingIcon) && "pl-9 pr-9",
|
|
372
|
+
className
|
|
373
|
+
),
|
|
374
|
+
disabled,
|
|
375
|
+
...rest
|
|
376
|
+
}
|
|
377
|
+
), trailingIcon && /* @__PURE__ */ import_react2.default.createElement("span", { className: "pointer-events-none absolute inset-y-0 right-3 flex items-center text-silver" }, trailingIcon));
|
|
378
|
+
}
|
|
379
|
+
);
|
|
380
|
+
Input.displayName = "Input";
|
|
381
|
+
|
|
382
|
+
// src/components/Card.tsx
|
|
383
|
+
var import_react3 = __toESM(require("react"));
|
|
384
|
+
function cx3(...classes) {
|
|
385
|
+
return classes.filter(Boolean).join(" ");
|
|
386
|
+
}
|
|
387
|
+
var Card = import_react3.default.forwardRef(
|
|
388
|
+
({ variant = "default", interactive = false, className, ...rest }, ref) => {
|
|
389
|
+
const base = "card";
|
|
390
|
+
const variantClass = variant === "elevated" ? "card-elevated" : variant === "outlined" ? "card-outlined" : variant === "ghost" ? "bg-transparent shadow-none border-0" : variant === "featured" ? "card-featured" : "";
|
|
391
|
+
const interactiveClass = interactive ? "card-interactive" : "";
|
|
392
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
393
|
+
"div",
|
|
394
|
+
{
|
|
395
|
+
ref,
|
|
396
|
+
className: cx3(base, variantClass, interactiveClass, className),
|
|
397
|
+
...rest
|
|
398
|
+
}
|
|
399
|
+
);
|
|
400
|
+
}
|
|
401
|
+
);
|
|
402
|
+
Card.displayName = "Card";
|
|
403
|
+
|
|
404
|
+
// src/components/Avatar.tsx
|
|
405
|
+
var import_react4 = __toESM(require("react"));
|
|
406
|
+
function cx4(...classes) {
|
|
407
|
+
return classes.filter(Boolean).join(" ");
|
|
408
|
+
}
|
|
409
|
+
var sizeMap = {
|
|
410
|
+
xs: "h-6 w-6 text-[10px]",
|
|
411
|
+
sm: "h-8 w-8 text-[11px]",
|
|
412
|
+
md: "h-10 w-10 text-xs",
|
|
413
|
+
lg: "h-12 w-12 text-sm",
|
|
414
|
+
xl: "h-16 w-16 text-base",
|
|
415
|
+
"2xl": "h-24 w-24 text-lg"
|
|
416
|
+
};
|
|
417
|
+
function initials(name) {
|
|
418
|
+
if (!name) return "";
|
|
419
|
+
const parts = name.trim().split(/\s+/);
|
|
420
|
+
return parts.slice(0, 2).map((p) => p[0].toUpperCase()).join("");
|
|
421
|
+
}
|
|
422
|
+
var Avatar = import_react4.default.forwardRef(
|
|
423
|
+
({ src, alt = "", name, size = "md", status, className, ...rest }, ref) => {
|
|
424
|
+
const statusColor = status === "online" ? "bg-success" : status === "busy" ? "bg-warning" : "bg-zinc";
|
|
425
|
+
return /* @__PURE__ */ import_react4.default.createElement(
|
|
426
|
+
"div",
|
|
427
|
+
{
|
|
428
|
+
ref,
|
|
429
|
+
className: cx4(
|
|
430
|
+
"relative inline-flex items-center justify-center rounded-full border-2 border-ash bg-slate text-silver font-semibold select-none overflow-hidden",
|
|
431
|
+
sizeMap[size],
|
|
432
|
+
className
|
|
433
|
+
),
|
|
434
|
+
...rest
|
|
435
|
+
},
|
|
436
|
+
src ? (
|
|
437
|
+
// eslint-disable-next-line @next/next/no-img-element
|
|
438
|
+
/* @__PURE__ */ import_react4.default.createElement("img", { src, alt: alt || name || "Avatar", className: "h-full w-full object-cover" })
|
|
439
|
+
) : /* @__PURE__ */ import_react4.default.createElement("span", { "aria-hidden": true }, initials(name) || "\xB7"),
|
|
440
|
+
status && /* @__PURE__ */ import_react4.default.createElement(
|
|
441
|
+
"span",
|
|
442
|
+
{
|
|
443
|
+
className: cx4(
|
|
444
|
+
"absolute bottom-0 right-0 rounded-full ring-2 ring-charcoal",
|
|
445
|
+
// 25% of avatar size
|
|
446
|
+
size === "xs" ? "h-1.5 w-1.5" : size === "sm" ? "h-2 w-2" : size === "md" ? "h-2.5 w-2.5" : size === "lg" ? "h-3 w-3" : size === "xl" ? "h-4 w-4" : "h-5 w-5",
|
|
447
|
+
statusColor
|
|
448
|
+
)
|
|
449
|
+
}
|
|
450
|
+
)
|
|
451
|
+
);
|
|
452
|
+
}
|
|
453
|
+
);
|
|
454
|
+
Avatar.displayName = "Avatar";
|
|
455
|
+
|
|
456
|
+
// src/components/Badge.tsx
|
|
457
|
+
var import_react5 = __toESM(require("react"));
|
|
458
|
+
function cx5(...classes) {
|
|
459
|
+
return classes.filter(Boolean).join(" ");
|
|
460
|
+
}
|
|
461
|
+
var Badge = import_react5.default.forwardRef(
|
|
462
|
+
({ variant = "default", className, ...rest }, ref) => {
|
|
463
|
+
const variantClass = variant === "gold" ? "badge-gold" : variant === "success" ? "badge-success" : variant === "error" ? "badge-error" : variant === "warning" ? "bg-warning/20 text-warning border-warning/30" : variant === "info" ? "bg-info/20 text-info border-info/30" : "badge-default";
|
|
464
|
+
return /* @__PURE__ */ import_react5.default.createElement("span", { ref, className: cx5("badge", variantClass, className), ...rest });
|
|
465
|
+
}
|
|
466
|
+
);
|
|
467
|
+
Badge.displayName = "Badge";
|
|
468
|
+
|
|
469
|
+
// src/components/Tooltip.tsx
|
|
470
|
+
var import_react6 = __toESM(require("react"));
|
|
471
|
+
function cx6(...classes) {
|
|
472
|
+
return classes.filter(Boolean).join(" ");
|
|
473
|
+
}
|
|
474
|
+
var Tooltip = ({ content, children, open = false, side = "top" }) => {
|
|
475
|
+
return /* @__PURE__ */ import_react6.default.createElement("span", { className: "relative inline-block" }, children, /* @__PURE__ */ import_react6.default.createElement(
|
|
476
|
+
"span",
|
|
477
|
+
{
|
|
478
|
+
role: "tooltip",
|
|
479
|
+
className: cx6(
|
|
480
|
+
"pointer-events-none absolute z-50 whitespace-nowrap rounded-md border border-ash bg-graphite px-3 py-1.5 text-sm text-white shadow-lg transition-opacity duration-fast ease-out",
|
|
481
|
+
open ? "opacity-100" : "opacity-0",
|
|
482
|
+
side === "top" && "left-1/2 -translate-x-1/2 -top-2 translate-y-[-100%]",
|
|
483
|
+
side === "bottom" && "left-1/2 -translate-x-1/2 -bottom-2 translate-y-[100%]",
|
|
484
|
+
side === "left" && "top-1/2 -translate-y-1/2 -left-2 -translate-x-[100%]",
|
|
485
|
+
side === "right" && "top-1/2 -translate-y-1/2 -right-2 translate-x-[100%]"
|
|
486
|
+
)
|
|
487
|
+
},
|
|
488
|
+
content
|
|
489
|
+
));
|
|
490
|
+
};
|
|
491
|
+
|
|
492
|
+
// src/components/Label.tsx
|
|
493
|
+
var import_react7 = __toESM(require("react"));
|
|
494
|
+
function cx7(...classes) {
|
|
495
|
+
return classes.filter(Boolean).join(" ");
|
|
496
|
+
}
|
|
497
|
+
var Label = import_react7.default.forwardRef(
|
|
498
|
+
({ className, required, children, ...rest }, ref) => {
|
|
499
|
+
return /* @__PURE__ */ import_react7.default.createElement(
|
|
500
|
+
"label",
|
|
501
|
+
{
|
|
502
|
+
ref,
|
|
503
|
+
className: cx7("label", required && "label-required", className),
|
|
504
|
+
...rest
|
|
505
|
+
},
|
|
506
|
+
children
|
|
507
|
+
);
|
|
508
|
+
}
|
|
509
|
+
);
|
|
510
|
+
Label.displayName = "Label";
|
|
511
|
+
|
|
512
|
+
// src/components/HelperText.tsx
|
|
513
|
+
var import_react8 = __toESM(require("react"));
|
|
514
|
+
function cx8(...classes) {
|
|
515
|
+
return classes.filter(Boolean).join(" ");
|
|
516
|
+
}
|
|
517
|
+
var HelperText = import_react8.default.forwardRef(
|
|
518
|
+
({ className, error, children, ...rest }, ref) => {
|
|
519
|
+
return /* @__PURE__ */ import_react8.default.createElement(
|
|
520
|
+
"p",
|
|
521
|
+
{
|
|
522
|
+
ref,
|
|
523
|
+
className: cx8("mt-1.5 text-xs", error ? "text-error" : "text-silver", className),
|
|
524
|
+
...rest
|
|
525
|
+
},
|
|
526
|
+
children
|
|
527
|
+
);
|
|
528
|
+
}
|
|
529
|
+
);
|
|
530
|
+
HelperText.displayName = "HelperText";
|
|
531
|
+
|
|
532
|
+
// src/components/Textarea.tsx
|
|
533
|
+
var import_react9 = __toESM(require("react"));
|
|
534
|
+
function cx9(...classes) {
|
|
535
|
+
return classes.filter(Boolean).join(" ");
|
|
536
|
+
}
|
|
537
|
+
var Textarea = import_react9.default.forwardRef(
|
|
538
|
+
({ error = false, className, disabled, ...rest }, ref) => {
|
|
539
|
+
const base = "textarea";
|
|
540
|
+
const errorCls = error ? "border-error focus:border-error focus:ring-error" : "";
|
|
541
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
542
|
+
"textarea",
|
|
543
|
+
{
|
|
544
|
+
ref,
|
|
545
|
+
className: cx9(base, errorCls, disabled && "opacity-90", className),
|
|
546
|
+
disabled,
|
|
547
|
+
...rest
|
|
548
|
+
}
|
|
549
|
+
);
|
|
550
|
+
}
|
|
551
|
+
);
|
|
552
|
+
Textarea.displayName = "Textarea";
|
|
553
|
+
|
|
554
|
+
// src/components/Select.tsx
|
|
555
|
+
var import_react10 = __toESM(require("react"));
|
|
556
|
+
function cx10(...classes) {
|
|
557
|
+
return classes.filter(Boolean).join(" ");
|
|
558
|
+
}
|
|
559
|
+
var Select = import_react10.default.forwardRef(
|
|
560
|
+
({ error = false, className, disabled, options, children, ...rest }, ref) => {
|
|
561
|
+
const base = "select";
|
|
562
|
+
const errorCls = error ? "border-error focus:border-error focus:ring-error" : "";
|
|
563
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
564
|
+
"select",
|
|
565
|
+
{
|
|
566
|
+
ref,
|
|
567
|
+
className: cx10(base, errorCls, disabled && "opacity-90", className),
|
|
568
|
+
disabled,
|
|
569
|
+
...rest
|
|
570
|
+
},
|
|
571
|
+
options ? options.map((opt) => /* @__PURE__ */ import_react10.default.createElement("option", { key: opt.value, value: opt.value }, opt.label)) : children
|
|
572
|
+
);
|
|
573
|
+
}
|
|
574
|
+
);
|
|
575
|
+
Select.displayName = "Select";
|
|
576
|
+
|
|
577
|
+
// src/components/Checkbox.tsx
|
|
578
|
+
var import_react11 = __toESM(require("react"));
|
|
579
|
+
function cx11(...classes) {
|
|
580
|
+
return classes.filter(Boolean).join(" ");
|
|
581
|
+
}
|
|
582
|
+
var Checkbox = import_react11.default.forwardRef(
|
|
583
|
+
({ className, label, id, ...rest }, ref) => {
|
|
584
|
+
const inputId = id || rest.name || Math.random().toString(36).substr(2, 9);
|
|
585
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react11.default.createElement(
|
|
586
|
+
"input",
|
|
587
|
+
{
|
|
588
|
+
type: "checkbox",
|
|
589
|
+
id: inputId,
|
|
590
|
+
ref,
|
|
591
|
+
className: cx11("checkbox", className),
|
|
592
|
+
...rest
|
|
593
|
+
}
|
|
594
|
+
), label && /* @__PURE__ */ import_react11.default.createElement("label", { htmlFor: inputId, className: "ml-2 text-sm text-silver cursor-pointer select-none" }, label));
|
|
595
|
+
}
|
|
596
|
+
);
|
|
597
|
+
Checkbox.displayName = "Checkbox";
|
|
598
|
+
|
|
599
|
+
// src/components/Radio.tsx
|
|
600
|
+
var import_react12 = __toESM(require("react"));
|
|
601
|
+
function cx12(...classes) {
|
|
602
|
+
return classes.filter(Boolean).join(" ");
|
|
603
|
+
}
|
|
604
|
+
var Radio = import_react12.default.forwardRef(
|
|
605
|
+
({ className, label, id, ...rest }, ref) => {
|
|
606
|
+
const inputId = id || rest.name || Math.random().toString(36).substr(2, 9);
|
|
607
|
+
return /* @__PURE__ */ import_react12.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react12.default.createElement(
|
|
608
|
+
"input",
|
|
609
|
+
{
|
|
610
|
+
type: "radio",
|
|
611
|
+
id: inputId,
|
|
612
|
+
ref,
|
|
613
|
+
className: cx12("radio", className),
|
|
614
|
+
...rest
|
|
615
|
+
}
|
|
616
|
+
), label && /* @__PURE__ */ import_react12.default.createElement("label", { htmlFor: inputId, className: "ml-2 text-sm text-silver cursor-pointer select-none" }, label));
|
|
617
|
+
}
|
|
618
|
+
);
|
|
619
|
+
Radio.displayName = "Radio";
|
|
620
|
+
|
|
621
|
+
// src/components/Switch.tsx
|
|
622
|
+
var import_react13 = __toESM(require("react"));
|
|
623
|
+
function cx13(...classes) {
|
|
624
|
+
return classes.filter(Boolean).join(" ");
|
|
625
|
+
}
|
|
626
|
+
var Switch = import_react13.default.forwardRef(
|
|
627
|
+
({ checked: controlledChecked, defaultChecked = false, onCheckedChange, disabled, className, label, ...rest }, ref) => {
|
|
628
|
+
const [internalChecked, setInternalChecked] = (0, import_react13.useState)(defaultChecked);
|
|
629
|
+
const isControlled = controlledChecked !== void 0;
|
|
630
|
+
const checked = isControlled ? controlledChecked : internalChecked;
|
|
631
|
+
const handleClick = (e) => {
|
|
632
|
+
if (disabled) return;
|
|
633
|
+
const newChecked = !checked;
|
|
634
|
+
if (!isControlled) {
|
|
635
|
+
setInternalChecked(newChecked);
|
|
636
|
+
}
|
|
637
|
+
onCheckedChange?.(newChecked);
|
|
638
|
+
rest.onClick?.(e);
|
|
639
|
+
};
|
|
640
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react13.default.createElement(
|
|
641
|
+
"button",
|
|
642
|
+
{
|
|
643
|
+
type: "button",
|
|
644
|
+
role: "switch",
|
|
645
|
+
"aria-checked": checked,
|
|
646
|
+
"data-state": checked ? "checked" : "unchecked",
|
|
647
|
+
disabled,
|
|
648
|
+
ref,
|
|
649
|
+
onClick: handleClick,
|
|
650
|
+
className: cx13("switch", className),
|
|
651
|
+
...rest
|
|
652
|
+
},
|
|
653
|
+
/* @__PURE__ */ import_react13.default.createElement("span", { className: "switch-thumb" })
|
|
654
|
+
), label && /* @__PURE__ */ import_react13.default.createElement("span", { className: "text-sm text-silver cursor-pointer", onClick: () => !disabled && handleClick({}) }, label));
|
|
655
|
+
}
|
|
656
|
+
);
|
|
657
|
+
Switch.displayName = "Switch";
|
|
658
|
+
|
|
659
|
+
// src/components/Alert.tsx
|
|
660
|
+
var import_react14 = __toESM(require("react"));
|
|
661
|
+
var import_lucide_react = require("lucide-react");
|
|
662
|
+
function cx14(...classes) {
|
|
663
|
+
return classes.filter(Boolean).join(" ");
|
|
664
|
+
}
|
|
665
|
+
var icons = {
|
|
666
|
+
info: import_lucide_react.Info,
|
|
667
|
+
success: import_lucide_react.CheckCircle,
|
|
668
|
+
warning: import_lucide_react.AlertTriangle,
|
|
669
|
+
error: import_lucide_react.XCircle
|
|
670
|
+
};
|
|
671
|
+
var Alert = import_react14.default.forwardRef(
|
|
672
|
+
({ variant = "info", title, children, className, ...rest }, ref) => {
|
|
673
|
+
const Icon = icons[variant];
|
|
674
|
+
const variantClass = `alert-${variant}`;
|
|
675
|
+
return /* @__PURE__ */ import_react14.default.createElement(
|
|
676
|
+
"div",
|
|
677
|
+
{
|
|
678
|
+
ref,
|
|
679
|
+
role: "alert",
|
|
680
|
+
className: cx14("alert", variantClass, "flex gap-3", className),
|
|
681
|
+
...rest
|
|
682
|
+
},
|
|
683
|
+
/* @__PURE__ */ import_react14.default.createElement(Icon, { className: "h-5 w-5 shrink-0" }),
|
|
684
|
+
/* @__PURE__ */ import_react14.default.createElement("div", { className: "flex-1" }, title && /* @__PURE__ */ import_react14.default.createElement("h5", { className: "mb-1 font-medium leading-none tracking-tight text-current" }, title), /* @__PURE__ */ import_react14.default.createElement("div", { className: "text-sm opacity-90" }, children))
|
|
685
|
+
);
|
|
686
|
+
}
|
|
687
|
+
);
|
|
688
|
+
Alert.displayName = "Alert";
|
|
689
|
+
|
|
690
|
+
// src/components/Spinner.tsx
|
|
691
|
+
var import_react15 = __toESM(require("react"));
|
|
692
|
+
function cx15(...classes) {
|
|
693
|
+
return classes.filter(Boolean).join(" ");
|
|
694
|
+
}
|
|
695
|
+
var Spinner = ({ className, size = "md", ...rest }) => {
|
|
696
|
+
const sizeClass = size === "sm" ? "h-4 w-4" : size === "lg" ? "h-8 w-8" : "h-6 w-6";
|
|
697
|
+
return /* @__PURE__ */ import_react15.default.createElement(
|
|
698
|
+
"svg",
|
|
699
|
+
{
|
|
700
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
701
|
+
viewBox: "0 0 24 24",
|
|
702
|
+
fill: "none",
|
|
703
|
+
stroke: "currentColor",
|
|
704
|
+
strokeWidth: "2",
|
|
705
|
+
strokeLinecap: "round",
|
|
706
|
+
strokeLinejoin: "round",
|
|
707
|
+
className: cx15("animate-spin text-gold", sizeClass, className),
|
|
708
|
+
...rest
|
|
709
|
+
},
|
|
710
|
+
/* @__PURE__ */ import_react15.default.createElement("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
|
|
711
|
+
);
|
|
712
|
+
};
|
|
713
|
+
Spinner.displayName = "Spinner";
|
|
714
|
+
|
|
715
|
+
// src/components/Skeleton.tsx
|
|
716
|
+
var import_react16 = __toESM(require("react"));
|
|
717
|
+
function cx16(...classes) {
|
|
718
|
+
return classes.filter(Boolean).join(" ");
|
|
719
|
+
}
|
|
720
|
+
var Skeleton = import_react16.default.forwardRef(
|
|
721
|
+
({ className, ...rest }, ref) => {
|
|
722
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
723
|
+
"div",
|
|
724
|
+
{
|
|
725
|
+
ref,
|
|
726
|
+
className: cx16("animate-pulse bg-ash rounded-sm", className),
|
|
727
|
+
...rest
|
|
728
|
+
}
|
|
729
|
+
);
|
|
730
|
+
}
|
|
731
|
+
);
|
|
732
|
+
Skeleton.displayName = "Skeleton";
|
|
733
|
+
|
|
734
|
+
// src/components/Modal.tsx
|
|
735
|
+
var import_react17 = __toESM(require("react"));
|
|
736
|
+
var import_react_dom = require("react-dom");
|
|
737
|
+
var import_lucide_react2 = require("lucide-react");
|
|
738
|
+
function cx17(...classes) {
|
|
739
|
+
return classes.filter(Boolean).join(" ");
|
|
740
|
+
}
|
|
741
|
+
var Modal = ({ isOpen, onClose, title, children, className }) => {
|
|
742
|
+
const [mounted, setMounted] = (0, import_react17.useState)(false);
|
|
743
|
+
(0, import_react17.useEffect)(() => {
|
|
744
|
+
setMounted(true);
|
|
745
|
+
}, []);
|
|
746
|
+
(0, import_react17.useEffect)(() => {
|
|
747
|
+
if (isOpen) {
|
|
748
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
749
|
+
document.body.style.overflow = "hidden";
|
|
750
|
+
document.body.style.paddingRight = `${scrollbarWidth}px`;
|
|
751
|
+
} else {
|
|
752
|
+
document.body.style.overflow = "unset";
|
|
753
|
+
document.body.style.paddingRight = "0px";
|
|
754
|
+
}
|
|
755
|
+
return () => {
|
|
756
|
+
document.body.style.overflow = "unset";
|
|
757
|
+
document.body.style.paddingRight = "0px";
|
|
758
|
+
};
|
|
759
|
+
}, [isOpen]);
|
|
760
|
+
(0, import_react17.useEffect)(() => {
|
|
761
|
+
const handleEsc = (e) => {
|
|
762
|
+
if (e.key === "Escape") onClose();
|
|
763
|
+
};
|
|
764
|
+
window.addEventListener("keydown", handleEsc);
|
|
765
|
+
return () => window.removeEventListener("keydown", handleEsc);
|
|
766
|
+
}, [onClose]);
|
|
767
|
+
if (!mounted) return null;
|
|
768
|
+
if (!isOpen) return null;
|
|
769
|
+
const content = /* @__PURE__ */ import_react17.default.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4 sm:p-6", onClick: onClose }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "modal-backdrop", "aria-hidden": "true" }), /* @__PURE__ */ import_react17.default.createElement(
|
|
770
|
+
"div",
|
|
771
|
+
{
|
|
772
|
+
role: "dialog",
|
|
773
|
+
"aria-modal": "true",
|
|
774
|
+
className: cx17("modal-content relative", className),
|
|
775
|
+
"data-state": "open",
|
|
776
|
+
onClick: (e) => e.stopPropagation()
|
|
777
|
+
},
|
|
778
|
+
/* @__PURE__ */ import_react17.default.createElement("div", { className: "flex items-center justify-between mb-2" }, title ? /* @__PURE__ */ import_react17.default.createElement("h3", { className: "text-xl font-semibold text-white m-0" }, title) : /* @__PURE__ */ import_react17.default.createElement("div", null), /* @__PURE__ */ import_react17.default.createElement("button", { onClick: onClose, className: "text-silver hover:text-white transition-colors ml-auto" }, /* @__PURE__ */ import_react17.default.createElement(import_lucide_react2.X, { className: "h-5 w-5" }), /* @__PURE__ */ import_react17.default.createElement("span", { className: "sr-only" }, "Close"))),
|
|
779
|
+
/* @__PURE__ */ import_react17.default.createElement("div", null, children)
|
|
780
|
+
));
|
|
781
|
+
return (0, import_react_dom.createPortal)(content, document.body);
|
|
782
|
+
};
|
|
783
|
+
Modal.displayName = "Modal";
|
|
784
|
+
|
|
785
|
+
// src/index.ts
|
|
786
|
+
var version = "1.0.0";
|
|
787
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
788
|
+
0 && (module.exports = {
|
|
789
|
+
Alert,
|
|
790
|
+
Avatar,
|
|
791
|
+
Badge,
|
|
792
|
+
Button,
|
|
793
|
+
Card,
|
|
794
|
+
Checkbox,
|
|
795
|
+
HelperText,
|
|
796
|
+
Input,
|
|
797
|
+
Label,
|
|
798
|
+
Modal,
|
|
799
|
+
Radio,
|
|
800
|
+
Select,
|
|
801
|
+
Skeleton,
|
|
802
|
+
Spinner,
|
|
803
|
+
Switch,
|
|
804
|
+
Textarea,
|
|
805
|
+
Tooltip,
|
|
806
|
+
colors,
|
|
807
|
+
duration,
|
|
808
|
+
easing,
|
|
809
|
+
radii,
|
|
810
|
+
shadows,
|
|
811
|
+
spacing,
|
|
812
|
+
tailwindPreset,
|
|
813
|
+
typography,
|
|
814
|
+
version
|
|
815
|
+
});
|
|
816
|
+
//# sourceMappingURL=index.js.map
|