@liketysplit/react-luna 0.1.1
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/LICENSE +10 -0
- package/README.md +36 -0
- package/dist/index.js +1089 -0
- package/dist/style.css +1 -0
- package/package.json +67 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
All Rights Reserved
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rick Boles
|
|
4
|
+
|
|
5
|
+
All rights reserved.
|
|
6
|
+
|
|
7
|
+
This source code and associated documentation are proprietary and confidential.
|
|
8
|
+
Unauthorized copying, modification, distribution, or use of this software,
|
|
9
|
+
in whole or in part, is strictly prohibited without prior written permission
|
|
10
|
+
from the copyright holder.
|
package/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
@liketysplit/react-luna
|
|
2
|
+
|
|
3
|
+
Statement
|
|
4
|
+
@liketysplit/react-luna is a self-sufficient React component library designed to be a durable foundation for personal applications. It targets a clean, lunar aesthetic with a default light and dark theme that can be overridden at the project level after installation.
|
|
5
|
+
|
|
6
|
+
Goals
|
|
7
|
+
- Provide a complete set of reusable UI primitives and layouts.
|
|
8
|
+
- Keep the library independent from third-party UI frameworks.
|
|
9
|
+
- Ship a default Lunar theme with light and dark variants.
|
|
10
|
+
- Allow downstream projects to override theme tokens and component styling.
|
|
11
|
+
|
|
12
|
+
Non-goals
|
|
13
|
+
- Depending on external UI component libraries.
|
|
14
|
+
|
|
15
|
+
Design Approach
|
|
16
|
+
- Theme tokens first, component styles derived from tokens.
|
|
17
|
+
- Accessible defaults and consistent spacing/typography scales.
|
|
18
|
+
- Clear layering of primitives, composites, and templates.
|
|
19
|
+
|
|
20
|
+
Tooling
|
|
21
|
+
- React for component implementation.
|
|
22
|
+
- Storybook for interactive component exploration and configuration.
|
|
23
|
+
- Changesets for package versioning and release notes.
|
|
24
|
+
|
|
25
|
+
Release Flow
|
|
26
|
+
- Add a changeset with `npm run changeset` for any package change that should affect the published version.
|
|
27
|
+
- Merge to `main`.
|
|
28
|
+
- GitHub Actions opens or updates a release pull request with version bumps and changelog updates.
|
|
29
|
+
- Merging that release pull request publishes the package to npm.
|
|
30
|
+
|
|
31
|
+
Publishing Prerequisites
|
|
32
|
+
- `NPM_TOKEN` must be set in GitHub Actions secrets.
|
|
33
|
+
- The repository release workflow publishes from `main`.
|
|
34
|
+
|
|
35
|
+
Licensing
|
|
36
|
+
All rights reserved.
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,1089 @@
|
|
|
1
|
+
import k from "react";
|
|
2
|
+
const gr = {
|
|
3
|
+
colors: {
|
|
4
|
+
scale: {
|
|
5
|
+
primary: {
|
|
6
|
+
50: "#eef2ff",
|
|
7
|
+
100: "#e0e7ff",
|
|
8
|
+
200: "#c7d2fe",
|
|
9
|
+
300: "#a5b4fc",
|
|
10
|
+
400: "#818cf8",
|
|
11
|
+
500: "#6366f1",
|
|
12
|
+
600: "#4f46e5",
|
|
13
|
+
700: "#4338ca",
|
|
14
|
+
800: "#3730a3",
|
|
15
|
+
900: "#312e81"
|
|
16
|
+
},
|
|
17
|
+
neutral: {
|
|
18
|
+
50: "#f8fafc",
|
|
19
|
+
100: "#f1f5f9",
|
|
20
|
+
200: "#e2e8f0",
|
|
21
|
+
300: "#cbd5e1",
|
|
22
|
+
400: "#94a3b8",
|
|
23
|
+
500: "#64748b",
|
|
24
|
+
600: "#475569",
|
|
25
|
+
700: "#334155",
|
|
26
|
+
800: "#1f2937",
|
|
27
|
+
900: "#0f172a"
|
|
28
|
+
},
|
|
29
|
+
accent: {
|
|
30
|
+
50: "#f5f3ff",
|
|
31
|
+
100: "#ede9fe",
|
|
32
|
+
200: "#ddd6fe",
|
|
33
|
+
300: "#c4b5fd",
|
|
34
|
+
400: "#a78bfa",
|
|
35
|
+
500: "#8b5cf6",
|
|
36
|
+
600: "#7c3aed",
|
|
37
|
+
700: "#6d28d9",
|
|
38
|
+
800: "#5b21b6",
|
|
39
|
+
900: "#4c1d95"
|
|
40
|
+
},
|
|
41
|
+
success: {
|
|
42
|
+
50: "#ecfdf5",
|
|
43
|
+
100: "#d1fae5",
|
|
44
|
+
200: "#a7f3d0",
|
|
45
|
+
300: "#6ee7b7",
|
|
46
|
+
400: "#34d399",
|
|
47
|
+
500: "#10b981",
|
|
48
|
+
600: "#059669",
|
|
49
|
+
700: "#047857",
|
|
50
|
+
800: "#065f46",
|
|
51
|
+
900: "#064e3b"
|
|
52
|
+
},
|
|
53
|
+
warning: {
|
|
54
|
+
50: "#fff7ed",
|
|
55
|
+
100: "#ffedd5",
|
|
56
|
+
200: "#fed7aa",
|
|
57
|
+
300: "#fdba74",
|
|
58
|
+
400: "#fb923c",
|
|
59
|
+
500: "#f97316",
|
|
60
|
+
600: "#ea580c",
|
|
61
|
+
700: "#c2410c",
|
|
62
|
+
800: "#9a3412",
|
|
63
|
+
900: "#7c2d12"
|
|
64
|
+
},
|
|
65
|
+
danger: {
|
|
66
|
+
50: "#fef2f2",
|
|
67
|
+
100: "#fee2e2",
|
|
68
|
+
200: "#fecaca",
|
|
69
|
+
300: "#fca5a5",
|
|
70
|
+
400: "#f87171",
|
|
71
|
+
500: "#ef4444",
|
|
72
|
+
600: "#dc2626",
|
|
73
|
+
700: "#b91c1c",
|
|
74
|
+
800: "#991b1b",
|
|
75
|
+
900: "#7f1d1d"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
custom: {}
|
|
79
|
+
},
|
|
80
|
+
modes: {
|
|
81
|
+
light: {
|
|
82
|
+
background: "neutral.50",
|
|
83
|
+
foreground: "neutral.900",
|
|
84
|
+
surface: "neutral.100",
|
|
85
|
+
border: "neutral.200",
|
|
86
|
+
muted: "neutral.500"
|
|
87
|
+
},
|
|
88
|
+
dark: {
|
|
89
|
+
background: "neutral.900",
|
|
90
|
+
foreground: "neutral.50",
|
|
91
|
+
surface: "neutral.800",
|
|
92
|
+
border: "neutral.700",
|
|
93
|
+
muted: "neutral.400"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
typography: {
|
|
97
|
+
fontFamily: '"Work Sans", system-ui, sans-serif',
|
|
98
|
+
sizes: {
|
|
99
|
+
xs: "0.75rem",
|
|
100
|
+
sm: "0.875rem",
|
|
101
|
+
md: "1rem",
|
|
102
|
+
lg: "1.125rem",
|
|
103
|
+
xl: "1.25rem",
|
|
104
|
+
xxl: "1.5rem"
|
|
105
|
+
},
|
|
106
|
+
weights: {
|
|
107
|
+
regular: 400,
|
|
108
|
+
medium: 500,
|
|
109
|
+
semibold: 600,
|
|
110
|
+
bold: 700
|
|
111
|
+
},
|
|
112
|
+
lineHeights: {
|
|
113
|
+
tight: "1.1",
|
|
114
|
+
normal: "1.4",
|
|
115
|
+
relaxed: "1.6"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
spacing: {
|
|
119
|
+
0: "0",
|
|
120
|
+
1: "0.25rem",
|
|
121
|
+
2: "0.5rem",
|
|
122
|
+
3: "0.75rem",
|
|
123
|
+
4: "1rem",
|
|
124
|
+
5: "1.25rem",
|
|
125
|
+
6: "1.5rem",
|
|
126
|
+
8: "2rem",
|
|
127
|
+
10: "2.5rem",
|
|
128
|
+
12: "3rem",
|
|
129
|
+
16: "4rem"
|
|
130
|
+
},
|
|
131
|
+
radii: {
|
|
132
|
+
sm: "0.375rem",
|
|
133
|
+
md: "0.5rem",
|
|
134
|
+
lg: "0.75rem",
|
|
135
|
+
pill: "999px"
|
|
136
|
+
},
|
|
137
|
+
shadows: {
|
|
138
|
+
sm: "0 2px 8px rgba(15, 23, 42, 0.12)",
|
|
139
|
+
md: "0 8px 24px rgba(15, 23, 42, 0.18)",
|
|
140
|
+
lg: "0 16px 40px rgba(15, 23, 42, 0.22)"
|
|
141
|
+
},
|
|
142
|
+
motion: {
|
|
143
|
+
fast: "120ms",
|
|
144
|
+
base: "180ms",
|
|
145
|
+
slow: "260ms"
|
|
146
|
+
},
|
|
147
|
+
components: {
|
|
148
|
+
button: {
|
|
149
|
+
defaultSize: "medium",
|
|
150
|
+
defaultIconDirection: "right",
|
|
151
|
+
radius: "md",
|
|
152
|
+
fontWeight: 600,
|
|
153
|
+
modes: {
|
|
154
|
+
light: {
|
|
155
|
+
bg: "primary.600",
|
|
156
|
+
fg: "#ffffff",
|
|
157
|
+
hoverBg: "primary.700",
|
|
158
|
+
outlineFg: "#ffffff",
|
|
159
|
+
outlineBorder: "neutral.300",
|
|
160
|
+
outlineHoverBg: "neutral.100",
|
|
161
|
+
flatFg: "neutral.900",
|
|
162
|
+
infoFg: "primary.500",
|
|
163
|
+
infoHoverFg: "primary.600"
|
|
164
|
+
},
|
|
165
|
+
dark: {
|
|
166
|
+
bg: "primary.400",
|
|
167
|
+
fg: "#ffffff",
|
|
168
|
+
hoverBg: "primary.300",
|
|
169
|
+
outlineFg: "neutral.50",
|
|
170
|
+
outlineBorder: "neutral.500",
|
|
171
|
+
outlineHoverBg: "neutral.700",
|
|
172
|
+
flatFg: "neutral.50",
|
|
173
|
+
infoFg: "primary.200",
|
|
174
|
+
infoHoverFg: "primary.100"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
sizes: {
|
|
178
|
+
"x-small": {
|
|
179
|
+
paddingX: "2",
|
|
180
|
+
paddingY: "1",
|
|
181
|
+
fontSize: "xs",
|
|
182
|
+
minHeight: "1.75rem",
|
|
183
|
+
gap: "1",
|
|
184
|
+
iconSize: "0.875rem"
|
|
185
|
+
},
|
|
186
|
+
small: {
|
|
187
|
+
paddingX: "3",
|
|
188
|
+
paddingY: "1",
|
|
189
|
+
fontSize: "xs",
|
|
190
|
+
minHeight: "2rem",
|
|
191
|
+
gap: "1",
|
|
192
|
+
iconSize: "0.875rem"
|
|
193
|
+
},
|
|
194
|
+
medium: {
|
|
195
|
+
paddingX: "4",
|
|
196
|
+
paddingY: "2",
|
|
197
|
+
fontSize: "sm",
|
|
198
|
+
minHeight: "2.5rem",
|
|
199
|
+
gap: "2",
|
|
200
|
+
iconSize: "1rem"
|
|
201
|
+
},
|
|
202
|
+
large: {
|
|
203
|
+
paddingX: "5",
|
|
204
|
+
paddingY: "2",
|
|
205
|
+
fontSize: "md",
|
|
206
|
+
minHeight: "3rem",
|
|
207
|
+
gap: "2",
|
|
208
|
+
iconSize: "1.125rem"
|
|
209
|
+
},
|
|
210
|
+
"x-large": {
|
|
211
|
+
paddingX: "6",
|
|
212
|
+
paddingY: "3",
|
|
213
|
+
fontSize: "lg",
|
|
214
|
+
minHeight: "3.5rem",
|
|
215
|
+
gap: "3",
|
|
216
|
+
iconSize: "1.25rem"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
colors: {
|
|
220
|
+
primary: {
|
|
221
|
+
bg: "primary.600",
|
|
222
|
+
fg: "#ffffff"
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
var Ee = { exports: {} }, q = {};
|
|
229
|
+
/**
|
|
230
|
+
* @license React
|
|
231
|
+
* react-jsx-runtime.production.min.js
|
|
232
|
+
*
|
|
233
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
234
|
+
*
|
|
235
|
+
* This source code is licensed under the MIT license found in the
|
|
236
|
+
* LICENSE file in the root directory of this source tree.
|
|
237
|
+
*/
|
|
238
|
+
var Ye;
|
|
239
|
+
function pr() {
|
|
240
|
+
if (Ye) return q;
|
|
241
|
+
Ye = 1;
|
|
242
|
+
var n = k, l = Symbol.for("react.element"), a = Symbol.for("react.fragment"), g = Object.prototype.hasOwnProperty, s = n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, o = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
243
|
+
function m(d, i, T) {
|
|
244
|
+
var y, h = {}, C = null, N = null;
|
|
245
|
+
T !== void 0 && (C = "" + T), i.key !== void 0 && (C = "" + i.key), i.ref !== void 0 && (N = i.ref);
|
|
246
|
+
for (y in i) g.call(i, y) && !o.hasOwnProperty(y) && (h[y] = i[y]);
|
|
247
|
+
if (d && d.defaultProps) for (y in i = d.defaultProps, i) h[y] === void 0 && (h[y] = i[y]);
|
|
248
|
+
return { $$typeof: l, type: d, key: C, ref: N, props: h, _owner: s.current };
|
|
249
|
+
}
|
|
250
|
+
return q.Fragment = a, q.jsx = m, q.jsxs = m, q;
|
|
251
|
+
}
|
|
252
|
+
var G = {};
|
|
253
|
+
/**
|
|
254
|
+
* @license React
|
|
255
|
+
* react-jsx-runtime.development.js
|
|
256
|
+
*
|
|
257
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
258
|
+
*
|
|
259
|
+
* This source code is licensed under the MIT license found in the
|
|
260
|
+
* LICENSE file in the root directory of this source tree.
|
|
261
|
+
*/
|
|
262
|
+
var Le;
|
|
263
|
+
function mr() {
|
|
264
|
+
return Le || (Le = 1, process.env.NODE_ENV !== "production" && function() {
|
|
265
|
+
var n = k, l = Symbol.for("react.element"), a = Symbol.for("react.portal"), g = Symbol.for("react.fragment"), s = Symbol.for("react.strict_mode"), o = Symbol.for("react.profiler"), m = Symbol.for("react.provider"), d = Symbol.for("react.context"), i = Symbol.for("react.forward_ref"), T = Symbol.for("react.suspense"), y = Symbol.for("react.suspense_list"), h = Symbol.for("react.memo"), C = Symbol.for("react.lazy"), N = Symbol.for("react.offscreen"), M = Symbol.iterator, se = "@@iterator";
|
|
266
|
+
function Z(e) {
|
|
267
|
+
if (e === null || typeof e != "object")
|
|
268
|
+
return null;
|
|
269
|
+
var r = M && e[M] || e[se];
|
|
270
|
+
return typeof r == "function" ? r : null;
|
|
271
|
+
}
|
|
272
|
+
var j = n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
273
|
+
function E(e) {
|
|
274
|
+
{
|
|
275
|
+
for (var r = arguments.length, t = new Array(r > 1 ? r - 1 : 0), u = 1; u < r; u++)
|
|
276
|
+
t[u - 1] = arguments[u];
|
|
277
|
+
le("error", e, t);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function le(e, r, t) {
|
|
281
|
+
{
|
|
282
|
+
var u = j.ReactDebugCurrentFrame, v = u.getStackAddendum();
|
|
283
|
+
v !== "" && (r += "%s", t = t.concat([v]));
|
|
284
|
+
var p = t.map(function(c) {
|
|
285
|
+
return String(c);
|
|
286
|
+
});
|
|
287
|
+
p.unshift("Warning: " + r), Function.prototype.apply.call(console[e], console, p);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
var Y = !1, Q = !1, fe = !1, Re = !1, ce = !1, ee;
|
|
291
|
+
ee = Symbol.for("react.module.reference");
|
|
292
|
+
function de(e) {
|
|
293
|
+
return !!(typeof e == "string" || typeof e == "function" || e === g || e === o || ce || e === s || e === T || e === y || Re || e === N || Y || Q || fe || typeof e == "object" && e !== null && (e.$$typeof === C || e.$$typeof === h || e.$$typeof === m || e.$$typeof === d || e.$$typeof === i || // This needs to include all possible module reference object
|
|
294
|
+
// types supported by any Flight configuration anywhere since
|
|
295
|
+
// we don't know which Flight build this will end up being used
|
|
296
|
+
// with.
|
|
297
|
+
e.$$typeof === ee || e.getModuleId !== void 0));
|
|
298
|
+
}
|
|
299
|
+
function Se(e, r, t) {
|
|
300
|
+
var u = e.displayName;
|
|
301
|
+
if (u)
|
|
302
|
+
return u;
|
|
303
|
+
var v = r.displayName || r.name || "";
|
|
304
|
+
return v !== "" ? t + "(" + v + ")" : t;
|
|
305
|
+
}
|
|
306
|
+
function re(e) {
|
|
307
|
+
return e.displayName || "Context";
|
|
308
|
+
}
|
|
309
|
+
function P(e) {
|
|
310
|
+
if (e == null)
|
|
311
|
+
return null;
|
|
312
|
+
if (typeof e.tag == "number" && E("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function")
|
|
313
|
+
return e.displayName || e.name || null;
|
|
314
|
+
if (typeof e == "string")
|
|
315
|
+
return e;
|
|
316
|
+
switch (e) {
|
|
317
|
+
case g:
|
|
318
|
+
return "Fragment";
|
|
319
|
+
case a:
|
|
320
|
+
return "Portal";
|
|
321
|
+
case o:
|
|
322
|
+
return "Profiler";
|
|
323
|
+
case s:
|
|
324
|
+
return "StrictMode";
|
|
325
|
+
case T:
|
|
326
|
+
return "Suspense";
|
|
327
|
+
case y:
|
|
328
|
+
return "SuspenseList";
|
|
329
|
+
}
|
|
330
|
+
if (typeof e == "object")
|
|
331
|
+
switch (e.$$typeof) {
|
|
332
|
+
case d:
|
|
333
|
+
var r = e;
|
|
334
|
+
return re(r) + ".Consumer";
|
|
335
|
+
case m:
|
|
336
|
+
var t = e;
|
|
337
|
+
return re(t._context) + ".Provider";
|
|
338
|
+
case i:
|
|
339
|
+
return Se(e, e.render, "ForwardRef");
|
|
340
|
+
case h:
|
|
341
|
+
var u = e.displayName || null;
|
|
342
|
+
return u !== null ? u : P(e.type) || "Memo";
|
|
343
|
+
case C: {
|
|
344
|
+
var v = e, p = v._payload, c = v._init;
|
|
345
|
+
try {
|
|
346
|
+
return P(c(p));
|
|
347
|
+
} catch {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
var F = Object.assign, A = 0, L, ne, W, B, X, z, te;
|
|
355
|
+
function ae() {
|
|
356
|
+
}
|
|
357
|
+
ae.__reactDisabledLog = !0;
|
|
358
|
+
function ve() {
|
|
359
|
+
{
|
|
360
|
+
if (A === 0) {
|
|
361
|
+
L = console.log, ne = console.info, W = console.warn, B = console.error, X = console.group, z = console.groupCollapsed, te = console.groupEnd;
|
|
362
|
+
var e = {
|
|
363
|
+
configurable: !0,
|
|
364
|
+
enumerable: !0,
|
|
365
|
+
value: ae,
|
|
366
|
+
writable: !0
|
|
367
|
+
};
|
|
368
|
+
Object.defineProperties(console, {
|
|
369
|
+
info: e,
|
|
370
|
+
log: e,
|
|
371
|
+
warn: e,
|
|
372
|
+
error: e,
|
|
373
|
+
group: e,
|
|
374
|
+
groupCollapsed: e,
|
|
375
|
+
groupEnd: e
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
A++;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
function ge() {
|
|
382
|
+
{
|
|
383
|
+
if (A--, A === 0) {
|
|
384
|
+
var e = {
|
|
385
|
+
configurable: !0,
|
|
386
|
+
enumerable: !0,
|
|
387
|
+
writable: !0
|
|
388
|
+
};
|
|
389
|
+
Object.defineProperties(console, {
|
|
390
|
+
log: F({}, e, {
|
|
391
|
+
value: L
|
|
392
|
+
}),
|
|
393
|
+
info: F({}, e, {
|
|
394
|
+
value: ne
|
|
395
|
+
}),
|
|
396
|
+
warn: F({}, e, {
|
|
397
|
+
value: W
|
|
398
|
+
}),
|
|
399
|
+
error: F({}, e, {
|
|
400
|
+
value: B
|
|
401
|
+
}),
|
|
402
|
+
group: F({}, e, {
|
|
403
|
+
value: X
|
|
404
|
+
}),
|
|
405
|
+
groupCollapsed: F({}, e, {
|
|
406
|
+
value: z
|
|
407
|
+
}),
|
|
408
|
+
groupEnd: F({}, e, {
|
|
409
|
+
value: te
|
|
410
|
+
})
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
A < 0 && E("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
var J = j.ReactCurrentDispatcher, V;
|
|
417
|
+
function D(e, r, t) {
|
|
418
|
+
{
|
|
419
|
+
if (V === void 0)
|
|
420
|
+
try {
|
|
421
|
+
throw Error();
|
|
422
|
+
} catch (v) {
|
|
423
|
+
var u = v.stack.trim().match(/\n( *(at )?)/);
|
|
424
|
+
V = u && u[1] || "";
|
|
425
|
+
}
|
|
426
|
+
return `
|
|
427
|
+
` + V + e;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
var pe = !1, oe;
|
|
431
|
+
{
|
|
432
|
+
var Ve = typeof WeakMap == "function" ? WeakMap : Map;
|
|
433
|
+
oe = new Ve();
|
|
434
|
+
}
|
|
435
|
+
function xe(e, r) {
|
|
436
|
+
if (!e || pe)
|
|
437
|
+
return "";
|
|
438
|
+
{
|
|
439
|
+
var t = oe.get(e);
|
|
440
|
+
if (t !== void 0)
|
|
441
|
+
return t;
|
|
442
|
+
}
|
|
443
|
+
var u;
|
|
444
|
+
pe = !0;
|
|
445
|
+
var v = Error.prepareStackTrace;
|
|
446
|
+
Error.prepareStackTrace = void 0;
|
|
447
|
+
var p;
|
|
448
|
+
p = J.current, J.current = null, ve();
|
|
449
|
+
try {
|
|
450
|
+
if (r) {
|
|
451
|
+
var c = function() {
|
|
452
|
+
throw Error();
|
|
453
|
+
};
|
|
454
|
+
if (Object.defineProperty(c.prototype, "props", {
|
|
455
|
+
set: function() {
|
|
456
|
+
throw Error();
|
|
457
|
+
}
|
|
458
|
+
}), typeof Reflect == "object" && Reflect.construct) {
|
|
459
|
+
try {
|
|
460
|
+
Reflect.construct(c, []);
|
|
461
|
+
} catch (O) {
|
|
462
|
+
u = O;
|
|
463
|
+
}
|
|
464
|
+
Reflect.construct(e, [], c);
|
|
465
|
+
} else {
|
|
466
|
+
try {
|
|
467
|
+
c.call();
|
|
468
|
+
} catch (O) {
|
|
469
|
+
u = O;
|
|
470
|
+
}
|
|
471
|
+
e.call(c.prototype);
|
|
472
|
+
}
|
|
473
|
+
} else {
|
|
474
|
+
try {
|
|
475
|
+
throw Error();
|
|
476
|
+
} catch (O) {
|
|
477
|
+
u = O;
|
|
478
|
+
}
|
|
479
|
+
e();
|
|
480
|
+
}
|
|
481
|
+
} catch (O) {
|
|
482
|
+
if (O && u && typeof O.stack == "string") {
|
|
483
|
+
for (var f = O.stack.split(`
|
|
484
|
+
`), S = u.stack.split(`
|
|
485
|
+
`), b = f.length - 1, _ = S.length - 1; b >= 1 && _ >= 0 && f[b] !== S[_]; )
|
|
486
|
+
_--;
|
|
487
|
+
for (; b >= 1 && _ >= 0; b--, _--)
|
|
488
|
+
if (f[b] !== S[_]) {
|
|
489
|
+
if (b !== 1 || _ !== 1)
|
|
490
|
+
do
|
|
491
|
+
if (b--, _--, _ < 0 || f[b] !== S[_]) {
|
|
492
|
+
var w = `
|
|
493
|
+
` + f[b].replace(" at new ", " at ");
|
|
494
|
+
return e.displayName && w.includes("<anonymous>") && (w = w.replace("<anonymous>", e.displayName)), typeof e == "function" && oe.set(e, w), w;
|
|
495
|
+
}
|
|
496
|
+
while (b >= 1 && _ >= 0);
|
|
497
|
+
break;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
} finally {
|
|
501
|
+
pe = !1, J.current = p, ge(), Error.prepareStackTrace = v;
|
|
502
|
+
}
|
|
503
|
+
var U = e ? e.displayName || e.name : "", I = U ? D(U) : "";
|
|
504
|
+
return typeof e == "function" && oe.set(e, I), I;
|
|
505
|
+
}
|
|
506
|
+
function He(e, r, t) {
|
|
507
|
+
return xe(e, !1);
|
|
508
|
+
}
|
|
509
|
+
function Ue(e) {
|
|
510
|
+
var r = e.prototype;
|
|
511
|
+
return !!(r && r.isReactComponent);
|
|
512
|
+
}
|
|
513
|
+
function ie(e, r, t) {
|
|
514
|
+
if (e == null)
|
|
515
|
+
return "";
|
|
516
|
+
if (typeof e == "function")
|
|
517
|
+
return xe(e, Ue(e));
|
|
518
|
+
if (typeof e == "string")
|
|
519
|
+
return D(e);
|
|
520
|
+
switch (e) {
|
|
521
|
+
case T:
|
|
522
|
+
return D("Suspense");
|
|
523
|
+
case y:
|
|
524
|
+
return D("SuspenseList");
|
|
525
|
+
}
|
|
526
|
+
if (typeof e == "object")
|
|
527
|
+
switch (e.$$typeof) {
|
|
528
|
+
case i:
|
|
529
|
+
return He(e.render);
|
|
530
|
+
case h:
|
|
531
|
+
return ie(e.type, r, t);
|
|
532
|
+
case C: {
|
|
533
|
+
var u = e, v = u._payload, p = u._init;
|
|
534
|
+
try {
|
|
535
|
+
return ie(p(v), r, t);
|
|
536
|
+
} catch {
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
return "";
|
|
541
|
+
}
|
|
542
|
+
var K = Object.prototype.hasOwnProperty, Te = {}, je = j.ReactDebugCurrentFrame;
|
|
543
|
+
function ue(e) {
|
|
544
|
+
if (e) {
|
|
545
|
+
var r = e._owner, t = ie(e.type, e._source, r ? r.type : null);
|
|
546
|
+
je.setExtraStackFrame(t);
|
|
547
|
+
} else
|
|
548
|
+
je.setExtraStackFrame(null);
|
|
549
|
+
}
|
|
550
|
+
function Xe(e, r, t, u, v) {
|
|
551
|
+
{
|
|
552
|
+
var p = Function.call.bind(K);
|
|
553
|
+
for (var c in e)
|
|
554
|
+
if (p(e, c)) {
|
|
555
|
+
var f = void 0;
|
|
556
|
+
try {
|
|
557
|
+
if (typeof e[c] != "function") {
|
|
558
|
+
var S = Error((u || "React class") + ": " + t + " type `" + c + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[c] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
|
|
559
|
+
throw S.name = "Invariant Violation", S;
|
|
560
|
+
}
|
|
561
|
+
f = e[c](r, c, u, t, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
|
|
562
|
+
} catch (b) {
|
|
563
|
+
f = b;
|
|
564
|
+
}
|
|
565
|
+
f && !(f instanceof Error) && (ue(v), E("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", u || "React class", t, c, typeof f), ue(null)), f instanceof Error && !(f.message in Te) && (Te[f.message] = !0, ue(v), E("Failed %s type: %s", t, f.message), ue(null));
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
var Je = Array.isArray;
|
|
570
|
+
function me(e) {
|
|
571
|
+
return Je(e);
|
|
572
|
+
}
|
|
573
|
+
function Ke(e) {
|
|
574
|
+
{
|
|
575
|
+
var r = typeof Symbol == "function" && Symbol.toStringTag, t = r && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
576
|
+
return t;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
function qe(e) {
|
|
580
|
+
try {
|
|
581
|
+
return Oe(e), !1;
|
|
582
|
+
} catch {
|
|
583
|
+
return !0;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
function Oe(e) {
|
|
587
|
+
return "" + e;
|
|
588
|
+
}
|
|
589
|
+
function we(e) {
|
|
590
|
+
if (qe(e))
|
|
591
|
+
return E("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Ke(e)), Oe(e);
|
|
592
|
+
}
|
|
593
|
+
var Ce = j.ReactCurrentOwner, Ge = {
|
|
594
|
+
key: !0,
|
|
595
|
+
ref: !0,
|
|
596
|
+
__self: !0,
|
|
597
|
+
__source: !0
|
|
598
|
+
}, Pe, ke;
|
|
599
|
+
function Me(e) {
|
|
600
|
+
if (K.call(e, "ref")) {
|
|
601
|
+
var r = Object.getOwnPropertyDescriptor(e, "ref").get;
|
|
602
|
+
if (r && r.isReactWarning)
|
|
603
|
+
return !1;
|
|
604
|
+
}
|
|
605
|
+
return e.ref !== void 0;
|
|
606
|
+
}
|
|
607
|
+
function Ze(e) {
|
|
608
|
+
if (K.call(e, "key")) {
|
|
609
|
+
var r = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
610
|
+
if (r && r.isReactWarning)
|
|
611
|
+
return !1;
|
|
612
|
+
}
|
|
613
|
+
return e.key !== void 0;
|
|
614
|
+
}
|
|
615
|
+
function Qe(e, r) {
|
|
616
|
+
typeof e.ref == "string" && Ce.current;
|
|
617
|
+
}
|
|
618
|
+
function er(e, r) {
|
|
619
|
+
{
|
|
620
|
+
var t = function() {
|
|
621
|
+
Pe || (Pe = !0, E("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r));
|
|
622
|
+
};
|
|
623
|
+
t.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
624
|
+
get: t,
|
|
625
|
+
configurable: !0
|
|
626
|
+
});
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
function rr(e, r) {
|
|
630
|
+
{
|
|
631
|
+
var t = function() {
|
|
632
|
+
ke || (ke = !0, E("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r));
|
|
633
|
+
};
|
|
634
|
+
t.isReactWarning = !0, Object.defineProperty(e, "ref", {
|
|
635
|
+
get: t,
|
|
636
|
+
configurable: !0
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
var nr = function(e, r, t, u, v, p, c) {
|
|
641
|
+
var f = {
|
|
642
|
+
// This tag allows us to uniquely identify this as a React Element
|
|
643
|
+
$$typeof: l,
|
|
644
|
+
// Built-in properties that belong on the element
|
|
645
|
+
type: e,
|
|
646
|
+
key: r,
|
|
647
|
+
ref: t,
|
|
648
|
+
props: c,
|
|
649
|
+
// Record the component responsible for creating this element.
|
|
650
|
+
_owner: p
|
|
651
|
+
};
|
|
652
|
+
return f._store = {}, Object.defineProperty(f._store, "validated", {
|
|
653
|
+
configurable: !1,
|
|
654
|
+
enumerable: !1,
|
|
655
|
+
writable: !0,
|
|
656
|
+
value: !1
|
|
657
|
+
}), Object.defineProperty(f, "_self", {
|
|
658
|
+
configurable: !1,
|
|
659
|
+
enumerable: !1,
|
|
660
|
+
writable: !1,
|
|
661
|
+
value: u
|
|
662
|
+
}), Object.defineProperty(f, "_source", {
|
|
663
|
+
configurable: !1,
|
|
664
|
+
enumerable: !1,
|
|
665
|
+
writable: !1,
|
|
666
|
+
value: v
|
|
667
|
+
}), Object.freeze && (Object.freeze(f.props), Object.freeze(f)), f;
|
|
668
|
+
};
|
|
669
|
+
function tr(e, r, t, u, v) {
|
|
670
|
+
{
|
|
671
|
+
var p, c = {}, f = null, S = null;
|
|
672
|
+
t !== void 0 && (we(t), f = "" + t), Ze(r) && (we(r.key), f = "" + r.key), Me(r) && (S = r.ref, Qe(r, v));
|
|
673
|
+
for (p in r)
|
|
674
|
+
K.call(r, p) && !Ge.hasOwnProperty(p) && (c[p] = r[p]);
|
|
675
|
+
if (e && e.defaultProps) {
|
|
676
|
+
var b = e.defaultProps;
|
|
677
|
+
for (p in b)
|
|
678
|
+
c[p] === void 0 && (c[p] = b[p]);
|
|
679
|
+
}
|
|
680
|
+
if (f || S) {
|
|
681
|
+
var _ = typeof e == "function" ? e.displayName || e.name || "Unknown" : e;
|
|
682
|
+
f && er(c, _), S && rr(c, _);
|
|
683
|
+
}
|
|
684
|
+
return nr(e, f, S, v, u, Ce.current, c);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
var be = j.ReactCurrentOwner, Fe = j.ReactDebugCurrentFrame;
|
|
688
|
+
function H(e) {
|
|
689
|
+
if (e) {
|
|
690
|
+
var r = e._owner, t = ie(e.type, e._source, r ? r.type : null);
|
|
691
|
+
Fe.setExtraStackFrame(t);
|
|
692
|
+
} else
|
|
693
|
+
Fe.setExtraStackFrame(null);
|
|
694
|
+
}
|
|
695
|
+
var ye;
|
|
696
|
+
ye = !1;
|
|
697
|
+
function _e(e) {
|
|
698
|
+
return typeof e == "object" && e !== null && e.$$typeof === l;
|
|
699
|
+
}
|
|
700
|
+
function Ae() {
|
|
701
|
+
{
|
|
702
|
+
if (be.current) {
|
|
703
|
+
var e = P(be.current.type);
|
|
704
|
+
if (e)
|
|
705
|
+
return `
|
|
706
|
+
|
|
707
|
+
Check the render method of \`` + e + "`.";
|
|
708
|
+
}
|
|
709
|
+
return "";
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
function ar(e) {
|
|
713
|
+
return "";
|
|
714
|
+
}
|
|
715
|
+
var ze = {};
|
|
716
|
+
function or(e) {
|
|
717
|
+
{
|
|
718
|
+
var r = Ae();
|
|
719
|
+
if (!r) {
|
|
720
|
+
var t = typeof e == "string" ? e : e.displayName || e.name;
|
|
721
|
+
t && (r = `
|
|
722
|
+
|
|
723
|
+
Check the top-level render call using <` + t + ">.");
|
|
724
|
+
}
|
|
725
|
+
return r;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
function De(e, r) {
|
|
729
|
+
{
|
|
730
|
+
if (!e._store || e._store.validated || e.key != null)
|
|
731
|
+
return;
|
|
732
|
+
e._store.validated = !0;
|
|
733
|
+
var t = or(r);
|
|
734
|
+
if (ze[t])
|
|
735
|
+
return;
|
|
736
|
+
ze[t] = !0;
|
|
737
|
+
var u = "";
|
|
738
|
+
e && e._owner && e._owner !== be.current && (u = " It was passed a child from " + P(e._owner.type) + "."), H(e), E('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', t, u), H(null);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
function Ie(e, r) {
|
|
742
|
+
{
|
|
743
|
+
if (typeof e != "object")
|
|
744
|
+
return;
|
|
745
|
+
if (me(e))
|
|
746
|
+
for (var t = 0; t < e.length; t++) {
|
|
747
|
+
var u = e[t];
|
|
748
|
+
_e(u) && De(u, r);
|
|
749
|
+
}
|
|
750
|
+
else if (_e(e))
|
|
751
|
+
e._store && (e._store.validated = !0);
|
|
752
|
+
else if (e) {
|
|
753
|
+
var v = Z(e);
|
|
754
|
+
if (typeof v == "function" && v !== e.entries)
|
|
755
|
+
for (var p = v.call(e), c; !(c = p.next()).done; )
|
|
756
|
+
_e(c.value) && De(c.value, r);
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
function ir(e) {
|
|
761
|
+
{
|
|
762
|
+
var r = e.type;
|
|
763
|
+
if (r == null || typeof r == "string")
|
|
764
|
+
return;
|
|
765
|
+
var t;
|
|
766
|
+
if (typeof r == "function")
|
|
767
|
+
t = r.propTypes;
|
|
768
|
+
else if (typeof r == "object" && (r.$$typeof === i || // Note: Memo only checks outer props here.
|
|
769
|
+
// Inner props are checked in the reconciler.
|
|
770
|
+
r.$$typeof === h))
|
|
771
|
+
t = r.propTypes;
|
|
772
|
+
else
|
|
773
|
+
return;
|
|
774
|
+
if (t) {
|
|
775
|
+
var u = P(r);
|
|
776
|
+
Xe(t, e.props, "prop", u, e);
|
|
777
|
+
} else if (r.PropTypes !== void 0 && !ye) {
|
|
778
|
+
ye = !0;
|
|
779
|
+
var v = P(r);
|
|
780
|
+
E("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", v || "Unknown");
|
|
781
|
+
}
|
|
782
|
+
typeof r.getDefaultProps == "function" && !r.getDefaultProps.isReactClassApproved && E("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
function ur(e) {
|
|
786
|
+
{
|
|
787
|
+
for (var r = Object.keys(e.props), t = 0; t < r.length; t++) {
|
|
788
|
+
var u = r[t];
|
|
789
|
+
if (u !== "children" && u !== "key") {
|
|
790
|
+
H(e), E("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", u), H(null);
|
|
791
|
+
break;
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
e.ref !== null && (H(e), E("Invalid attribute `ref` supplied to `React.Fragment`."), H(null));
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
var $e = {};
|
|
798
|
+
function Ne(e, r, t, u, v, p) {
|
|
799
|
+
{
|
|
800
|
+
var c = de(e);
|
|
801
|
+
if (!c) {
|
|
802
|
+
var f = "";
|
|
803
|
+
(e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && (f += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
|
|
804
|
+
var S = ar();
|
|
805
|
+
S ? f += S : f += Ae();
|
|
806
|
+
var b;
|
|
807
|
+
e === null ? b = "null" : me(e) ? b = "array" : e !== void 0 && e.$$typeof === l ? (b = "<" + (P(e.type) || "Unknown") + " />", f = " Did you accidentally export a JSX literal instead of a component?") : b = typeof e, E("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", b, f);
|
|
808
|
+
}
|
|
809
|
+
var _ = tr(e, r, t, v, p);
|
|
810
|
+
if (_ == null)
|
|
811
|
+
return _;
|
|
812
|
+
if (c) {
|
|
813
|
+
var w = r.children;
|
|
814
|
+
if (w !== void 0)
|
|
815
|
+
if (u)
|
|
816
|
+
if (me(w)) {
|
|
817
|
+
for (var U = 0; U < w.length; U++)
|
|
818
|
+
Ie(w[U], e);
|
|
819
|
+
Object.freeze && Object.freeze(w);
|
|
820
|
+
} else
|
|
821
|
+
E("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
822
|
+
else
|
|
823
|
+
Ie(w, e);
|
|
824
|
+
}
|
|
825
|
+
if (K.call(r, "key")) {
|
|
826
|
+
var I = P(e), O = Object.keys(r).filter(function(vr) {
|
|
827
|
+
return vr !== "key";
|
|
828
|
+
}), he = O.length > 0 ? "{key: someKey, " + O.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
829
|
+
if (!$e[I + he]) {
|
|
830
|
+
var dr = O.length > 0 ? "{" + O.join(": ..., ") + ": ...}" : "{}";
|
|
831
|
+
E(`A props object containing a "key" prop is being spread into JSX:
|
|
832
|
+
let props = %s;
|
|
833
|
+
<%s {...props} />
|
|
834
|
+
React keys must be passed directly to JSX without using spread:
|
|
835
|
+
let props = %s;
|
|
836
|
+
<%s key={someKey} {...props} />`, he, I, dr, I), $e[I + he] = !0;
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
return e === g ? ur(_) : ir(_), _;
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
function sr(e, r, t) {
|
|
843
|
+
return Ne(e, r, t, !0);
|
|
844
|
+
}
|
|
845
|
+
function lr(e, r, t) {
|
|
846
|
+
return Ne(e, r, t, !1);
|
|
847
|
+
}
|
|
848
|
+
var fr = lr, cr = sr;
|
|
849
|
+
G.Fragment = g, G.jsx = fr, G.jsxs = cr;
|
|
850
|
+
}()), G;
|
|
851
|
+
}
|
|
852
|
+
process.env.NODE_ENV === "production" ? Ee.exports = pr() : Ee.exports = mr();
|
|
853
|
+
var x = Ee.exports;
|
|
854
|
+
function We(n, l) {
|
|
855
|
+
if (!l)
|
|
856
|
+
return n;
|
|
857
|
+
if (Array.isArray(n) || typeof n != "object" || n === null)
|
|
858
|
+
return l ?? n;
|
|
859
|
+
const a = { ...n }, g = l;
|
|
860
|
+
for (const s of Object.keys(g)) {
|
|
861
|
+
const o = n[s], m = g[s];
|
|
862
|
+
if (Array.isArray(o)) {
|
|
863
|
+
a[s] = m ?? o;
|
|
864
|
+
continue;
|
|
865
|
+
}
|
|
866
|
+
if (typeof o == "object" && o !== null && typeof m == "object" && m !== null) {
|
|
867
|
+
a[s] = We(o, m);
|
|
868
|
+
continue;
|
|
869
|
+
}
|
|
870
|
+
a[s] = m ?? o;
|
|
871
|
+
}
|
|
872
|
+
return a;
|
|
873
|
+
}
|
|
874
|
+
const br = [/^#/, /^rgb/, /^hsl/, /^var\(/], yr = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
875
|
+
function _r(n) {
|
|
876
|
+
if (!n)
|
|
877
|
+
return;
|
|
878
|
+
const l = Number(n);
|
|
879
|
+
if (yr.includes(l))
|
|
880
|
+
return l;
|
|
881
|
+
}
|
|
882
|
+
function hr(n) {
|
|
883
|
+
return br.some((l) => l.test(n));
|
|
884
|
+
}
|
|
885
|
+
function R(n, l) {
|
|
886
|
+
if (hr(l))
|
|
887
|
+
return l;
|
|
888
|
+
if (n.colors.custom[l])
|
|
889
|
+
return n.colors.custom[l];
|
|
890
|
+
const [a, g] = l.split("."), s = n.colors.scale[a];
|
|
891
|
+
if (s) {
|
|
892
|
+
const o = _r(g);
|
|
893
|
+
return o ? s[o] : s[600];
|
|
894
|
+
}
|
|
895
|
+
return l;
|
|
896
|
+
}
|
|
897
|
+
function Er(n, l) {
|
|
898
|
+
const a = n.modes[l];
|
|
899
|
+
return {
|
|
900
|
+
background: R(n, a.background),
|
|
901
|
+
foreground: R(n, a.foreground),
|
|
902
|
+
surface: R(n, a.surface),
|
|
903
|
+
border: R(n, a.border),
|
|
904
|
+
muted: R(n, a.muted)
|
|
905
|
+
};
|
|
906
|
+
}
|
|
907
|
+
function $(n, l) {
|
|
908
|
+
if (l)
|
|
909
|
+
return n[l] ?? l;
|
|
910
|
+
}
|
|
911
|
+
function Rr(n, l) {
|
|
912
|
+
var m;
|
|
913
|
+
const a = {}, g = Er(n, l);
|
|
914
|
+
a["--luna-background"] = g.background, a["--luna-foreground"] = g.foreground, a["--luna-surface"] = g.surface, a["--luna-border"] = g.border, a["--luna-muted"] = g.muted, a["--luna-font-family"] = n.typography.fontFamily;
|
|
915
|
+
for (const [d, i] of Object.entries(n.colors.scale))
|
|
916
|
+
for (const [T, y] of Object.entries(i))
|
|
917
|
+
a[`--luna-color-${d}-${T}`] = y;
|
|
918
|
+
for (const [d, i] of Object.entries(n.colors.custom))
|
|
919
|
+
a[`--luna-color-${d}`] = R(n, i);
|
|
920
|
+
for (const [d, i] of Object.entries(n.spacing))
|
|
921
|
+
a[`--luna-space-${d}`] = i;
|
|
922
|
+
for (const [d, i] of Object.entries(n.radii))
|
|
923
|
+
a[`--luna-radius-${d}`] = i;
|
|
924
|
+
for (const [d, i] of Object.entries(n.shadows))
|
|
925
|
+
a[`--luna-shadow-${d}`] = i;
|
|
926
|
+
for (const [d, i] of Object.entries(n.motion))
|
|
927
|
+
a[`--luna-motion-${d}`] = i;
|
|
928
|
+
const s = n.components.button;
|
|
929
|
+
s != null && s.defaultSize && (a["--luna-btn-size-default"] = s.defaultSize), s != null && s.defaultIconDirection && (a["--luna-btn-icon-direction-default"] = s.defaultIconDirection), s != null && s.radius && (a["--luna-btn-radius"] = $(n.radii, s.radius) ?? s.radius), s != null && s.fontWeight && (a["--luna-btn-font-weight"] = String(s.fontWeight));
|
|
930
|
+
const o = (m = s == null ? void 0 : s.modes) == null ? void 0 : m[l];
|
|
931
|
+
if (o != null && o.bg && (a["--luna-btn-bg-default"] = R(n, o.bg)), o != null && o.fg && (a["--luna-btn-fg-default"] = R(n, o.fg)), o != null && o.hoverBg && (a["--luna-btn-hover-bg"] = R(n, o.hoverBg)), o != null && o.outlineFg && (a["--luna-btn-outline-fg"] = R(n, o.outlineFg)), o != null && o.outlineBorder && (a["--luna-btn-outline-border"] = R(n, o.outlineBorder)), o != null && o.outlineHoverBg && (a["--luna-btn-outline-hover-bg"] = R(n, o.outlineHoverBg)), o != null && o.flatFg && (a["--luna-btn-flat-fg"] = R(n, o.flatFg)), o != null && o.infoFg && (a["--luna-btn-info-fg"] = R(n, o.infoFg)), o != null && o.infoHoverFg && (a["--luna-btn-info-hover-fg"] = R(n, o.infoHoverFg)), s != null && s.sizes)
|
|
932
|
+
for (const [d, i] of Object.entries(s.sizes))
|
|
933
|
+
i.paddingX && (a[`--luna-btn-size-${d}-padding-x`] = $(n.spacing, i.paddingX) ?? i.paddingX), i.paddingY && (a[`--luna-btn-size-${d}-padding-y`] = $(n.spacing, i.paddingY) ?? i.paddingY), i.fontSize && (a[`--luna-btn-size-${d}-font-size`] = $(n.typography.sizes, i.fontSize) ?? i.fontSize), i.minHeight && (a[`--luna-btn-size-${d}-min-height`] = $(n.spacing, i.minHeight) ?? i.minHeight), i.gap && (a[`--luna-btn-size-${d}-gap`] = $(n.spacing, i.gap) ?? i.gap), i.iconSize && (a[`--luna-btn-size-${d}-icon-size`] = $(n.typography.sizes, i.iconSize) ?? i.iconSize);
|
|
934
|
+
return a;
|
|
935
|
+
}
|
|
936
|
+
const Be = k.createContext(void 0);
|
|
937
|
+
function Cr({
|
|
938
|
+
children: n,
|
|
939
|
+
mode: l,
|
|
940
|
+
theme: a,
|
|
941
|
+
colors: g,
|
|
942
|
+
className: s,
|
|
943
|
+
style: o
|
|
944
|
+
}) {
|
|
945
|
+
const [m, d] = k.useState(
|
|
946
|
+
l ?? "light"
|
|
947
|
+
);
|
|
948
|
+
k.useEffect(() => {
|
|
949
|
+
l && d(l);
|
|
950
|
+
}, [l]);
|
|
951
|
+
const i = k.useMemo(() => {
|
|
952
|
+
const h = We(gr, a);
|
|
953
|
+
return !g || Object.keys(g).length === 0 ? h : {
|
|
954
|
+
...h,
|
|
955
|
+
colors: {
|
|
956
|
+
...h.colors,
|
|
957
|
+
custom: {
|
|
958
|
+
...h.colors.custom,
|
|
959
|
+
...g
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
};
|
|
963
|
+
}, [a, g]), T = k.useMemo(
|
|
964
|
+
() => Rr(i, m),
|
|
965
|
+
[i, m]
|
|
966
|
+
), y = k.useMemo(
|
|
967
|
+
() => ({ theme: i, mode: m, vars: T, setMode: d }),
|
|
968
|
+
[i, m, T]
|
|
969
|
+
);
|
|
970
|
+
return /* @__PURE__ */ x.jsx(Be.Provider, { value: y, children: /* @__PURE__ */ x.jsx("div", { "data-luna-theme": !0, "data-luna-mode": m, className: s, style: { ...T, ...o }, children: n }) });
|
|
971
|
+
}
|
|
972
|
+
function Sr() {
|
|
973
|
+
const n = k.useContext(Be);
|
|
974
|
+
if (!n)
|
|
975
|
+
throw new Error("useTheme must be used within ThemeProvider");
|
|
976
|
+
return n;
|
|
977
|
+
}
|
|
978
|
+
const xr = {
|
|
979
|
+
bounce: "bounce 3s infinite",
|
|
980
|
+
wiggle: "wiggle 4s infinite",
|
|
981
|
+
pulse: "pulse 2s infinite"
|
|
982
|
+
};
|
|
983
|
+
function Tr(n) {
|
|
984
|
+
return n.filter(Boolean).join(" ");
|
|
985
|
+
}
|
|
986
|
+
function jr(n, l) {
|
|
987
|
+
if (n)
|
|
988
|
+
return R(l, n);
|
|
989
|
+
}
|
|
990
|
+
function Or(n) {
|
|
991
|
+
if (!n)
|
|
992
|
+
return;
|
|
993
|
+
const a = (xr[n] ?? n).trim(), [g, ...s] = a.split(/\s+/);
|
|
994
|
+
return !g || s.length < 2 ? void 0 : [g === "lunarPulse" ? "luna-button-lunar-pulse" : `luna-button-${g}`, ...s].join(" ");
|
|
995
|
+
}
|
|
996
|
+
const Pr = k.forwardRef(
|
|
997
|
+
function({
|
|
998
|
+
absolute: l,
|
|
999
|
+
animation: a,
|
|
1000
|
+
block: g,
|
|
1001
|
+
bottom: s,
|
|
1002
|
+
children: o,
|
|
1003
|
+
className: m,
|
|
1004
|
+
color: d,
|
|
1005
|
+
dark: i,
|
|
1006
|
+
depressed: T,
|
|
1007
|
+
disabled: y,
|
|
1008
|
+
fab: h,
|
|
1009
|
+
fixed: C,
|
|
1010
|
+
flat: N,
|
|
1011
|
+
icon: M,
|
|
1012
|
+
iconDirection: se,
|
|
1013
|
+
iconName: Z,
|
|
1014
|
+
info: j,
|
|
1015
|
+
left: E,
|
|
1016
|
+
light: le,
|
|
1017
|
+
loading: Y,
|
|
1018
|
+
loadingAnimation: Q = "lunar",
|
|
1019
|
+
outline: fe,
|
|
1020
|
+
right: Re,
|
|
1021
|
+
rounded: ce,
|
|
1022
|
+
size: ee,
|
|
1023
|
+
style: de,
|
|
1024
|
+
top: Se,
|
|
1025
|
+
type: re = "button",
|
|
1026
|
+
value: P,
|
|
1027
|
+
...F
|
|
1028
|
+
}, A) {
|
|
1029
|
+
var V, D;
|
|
1030
|
+
const { theme: L } = Sr(), ne = ee ?? ((V = L.components.button) == null ? void 0 : V.defaultSize) ?? "medium", W = se ?? ((D = L.components.button) == null ? void 0 : D.defaultIconDirection) ?? "right", B = jr(d, L), X = Or(a), z = M ?? (Z ? /* @__PURE__ */ x.jsx("span", { children: Z }) : null), te = o ?? P, ae = z && W === "left", ve = z && W === "right", ge = Tr([
|
|
1031
|
+
"luna-button",
|
|
1032
|
+
C && "luna-button--fixed",
|
|
1033
|
+
!C && l && "luna-button--absolute",
|
|
1034
|
+
g && "luna-button--block",
|
|
1035
|
+
j && "luna-button--info",
|
|
1036
|
+
!j && fe && "luna-button--outline",
|
|
1037
|
+
!j && N && "luna-button--flat",
|
|
1038
|
+
!j && T && "luna-button--depressed",
|
|
1039
|
+
!j && !h && ce && "luna-button--rounded",
|
|
1040
|
+
!j && h && "luna-button--fab",
|
|
1041
|
+
le && "luna-button--light",
|
|
1042
|
+
i && "luna-button--dark",
|
|
1043
|
+
m
|
|
1044
|
+
]), J = {
|
|
1045
|
+
...X ? { animation: X } : {},
|
|
1046
|
+
...B ? j ? { "--luna-btn-info-color": B } : { "--luna-btn-bg": B } : {},
|
|
1047
|
+
...de
|
|
1048
|
+
};
|
|
1049
|
+
return /* @__PURE__ */ x.jsxs(
|
|
1050
|
+
"button",
|
|
1051
|
+
{
|
|
1052
|
+
...F,
|
|
1053
|
+
ref: A,
|
|
1054
|
+
type: re,
|
|
1055
|
+
className: ge,
|
|
1056
|
+
"aria-busy": Y ? "true" : void 0,
|
|
1057
|
+
"data-disabled": y ? "true" : void 0,
|
|
1058
|
+
"data-icon-direction": W,
|
|
1059
|
+
"data-loading": Y ? "true" : void 0,
|
|
1060
|
+
"data-loading-animation": Y ? Q : void 0,
|
|
1061
|
+
"data-size": ne,
|
|
1062
|
+
disabled: y,
|
|
1063
|
+
style: J,
|
|
1064
|
+
children: [
|
|
1065
|
+
ae ? /* @__PURE__ */ x.jsx("span", { className: "luna-button__icon", children: z }) : null,
|
|
1066
|
+
/* @__PURE__ */ x.jsx("span", { className: "luna-button__content", children: te }),
|
|
1067
|
+
Y ? /* @__PURE__ */ x.jsx("span", { "aria-hidden": "true", className: "luna-button__loader", children: Q === "loading-star" ? /* @__PURE__ */ x.jsx("span", { className: "luna-button__loader-star" }) : /* @__PURE__ */ x.jsxs("span", { className: "luna-button__loader-phases", children: [
|
|
1068
|
+
/* @__PURE__ */ x.jsx("span", { className: "luna-button__moon luna-button__moon--new" }),
|
|
1069
|
+
/* @__PURE__ */ x.jsx("span", { className: "luna-button__moon luna-button__moon--waxing" }),
|
|
1070
|
+
/* @__PURE__ */ x.jsx("span", { className: "luna-button__moon luna-button__moon--full" }),
|
|
1071
|
+
/* @__PURE__ */ x.jsx("span", { className: "luna-button__moon luna-button__moon--waning" }),
|
|
1072
|
+
/* @__PURE__ */ x.jsx("span", { className: "luna-button__moon luna-button__moon--faint" })
|
|
1073
|
+
] }) }) : null,
|
|
1074
|
+
ve ? /* @__PURE__ */ x.jsx("span", { className: "luna-button__icon", children: z }) : null
|
|
1075
|
+
]
|
|
1076
|
+
}
|
|
1077
|
+
);
|
|
1078
|
+
}
|
|
1079
|
+
);
|
|
1080
|
+
export {
|
|
1081
|
+
Pr as LunaButton,
|
|
1082
|
+
Cr as ThemeProvider,
|
|
1083
|
+
hr as isRawColor,
|
|
1084
|
+
gr as lunarTheme,
|
|
1085
|
+
Er as resolveModeTokens,
|
|
1086
|
+
$ as resolveScaleValue,
|
|
1087
|
+
R as resolveTokenValue,
|
|
1088
|
+
Sr as useTheme
|
|
1089
|
+
};
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.luna-button{--luna-btn-loader-gap: .28rem;--luna-btn-loader-min-width: 4.35rem;--luna-btn-loader-moon-size: .58rem;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--luna-btn-size-medium-gap, var(--luna-space-2));min-height:var(--luna-btn-size-medium-min-height, 2.5rem);padding:var(--luna-btn-size-medium-padding-y, var(--luna-space-2)) var(--luna-btn-size-medium-padding-x, var(--luna-space-4));border:1px solid transparent;border-radius:var(--luna-btn-radius, var(--luna-radius-md));background:var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600)));color:var(--luna-btn-fg-default, #ffffff);box-shadow:var(--luna-shadow-md);font-family:var(--luna-font-family);font-size:var(--luna-btn-size-medium-font-size, var(--luna-font-size-sm, .875rem));font-weight:var(--luna-btn-font-weight, 600);line-height:1;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;transition:background-color var(--luna-motion-base),border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),color var(--luna-motion-base),opacity var(--luna-motion-base),transform var(--luna-motion-fast)}.luna-button:hover{background:var( --luna-btn-hover-bg, color-mix(in srgb, var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600))) 88%, #000000) )}.luna-button:focus-visible{outline:2px solid var(--luna-color-accent-400);outline-offset:2px}.luna-button:active{transform:translateY(1px)}.luna-button:disabled,.luna-button[data-disabled=true]{cursor:not-allowed;opacity:.56}.luna-button--block{display:flex;width:100%}.luna-button--absolute{position:absolute}.luna-button--fixed{position:fixed}.luna-button--outline{color:var(--luna-btn-outline-fg, var(--luna-foreground));border-color:var(--luna-btn-outline-border, var(--luna-border))}.luna-button--flat{background:transparent;color:var(--luna-btn-flat-fg, var(--luna-foreground))}.luna-button--flat:hover{background:transparent}.luna-button--depressed{box-shadow:none}.luna-button--rounded{border-radius:var(--luna-radius-pill)}.luna-button--info{background:transparent;box-shadow:none;border-color:transparent;color:var(--luna-btn-info-color, var(--luna-btn-info-fg, var(--luna-color-primary-500)));min-height:auto;padding:0;text-decoration:underline;text-underline-offset:.18em}.luna-button--info:hover{background:transparent;color:var(--luna-btn-info-hover-fg, color-mix(in srgb, var(--luna-btn-info-color, var(--luna-btn-info-fg, var(--luna-color-primary-500))) 84%, #000000))}.luna-button--fab{border-radius:999px;min-width:var(--luna-btn-size-medium-min-height, 2.5rem);padding-inline:0}.luna-button--light{background:var(--luna-background);color:var(--luna-foreground)}.luna-button--dark{background:var(--luna-foreground);color:var(--luna-background)}.luna-button[data-size=x-small]{--luna-btn-loader-gap: .22rem;--luna-btn-loader-min-width: 3.5rem;--luna-btn-loader-moon-size: .48rem;gap:var(--luna-btn-size-x-small-gap, var(--luna-space-1));min-height:var(--luna-btn-size-x-small-min-height, 1.75rem);padding:var(--luna-btn-size-x-small-padding-y, var(--luna-space-1)) var(--luna-btn-size-x-small-padding-x, var(--luna-space-2));font-size:var(--luna-btn-size-x-small-font-size, .75rem)}.luna-button[data-size=small]{--luna-btn-loader-gap: .24rem;--luna-btn-loader-min-width: 3.9rem;--luna-btn-loader-moon-size: .52rem;gap:var(--luna-btn-size-small-gap, var(--luna-space-1));min-height:var(--luna-btn-size-small-min-height, 2rem);padding:var(--luna-btn-size-small-padding-y, var(--luna-space-1)) var(--luna-btn-size-small-padding-x, var(--luna-space-3));font-size:var(--luna-btn-size-small-font-size, .75rem)}.luna-button[data-size=medium]{gap:var(--luna-btn-size-medium-gap, var(--luna-space-2));min-height:var(--luna-btn-size-medium-min-height, 2.5rem);padding:var(--luna-btn-size-medium-padding-y, var(--luna-space-2)) var(--luna-btn-size-medium-padding-x, var(--luna-space-4));font-size:var(--luna-btn-size-medium-font-size, .875rem)}.luna-button[data-size=large]{--luna-btn-loader-gap: .32rem;--luna-btn-loader-min-width: 4.9rem;--luna-btn-loader-moon-size: .64rem;gap:var(--luna-btn-size-large-gap, var(--luna-space-2));min-height:var(--luna-btn-size-large-min-height, 3rem);padding:var(--luna-btn-size-large-padding-y, var(--luna-space-2)) var(--luna-btn-size-large-padding-x, var(--luna-space-5));font-size:var(--luna-btn-size-large-font-size, 1rem)}.luna-button[data-size=x-large]{--luna-btn-loader-gap: .36rem;--luna-btn-loader-min-width: 5.35rem;--luna-btn-loader-moon-size: .7rem;gap:var(--luna-btn-size-x-large-gap, var(--luna-space-3));min-height:var(--luna-btn-size-x-large-min-height, 3.5rem);padding:var(--luna-btn-size-x-large-padding-y, var(--luna-space-3)) var(--luna-btn-size-x-large-padding-x, var(--luna-space-6));font-size:var(--luna-btn-size-x-large-font-size, 1.125rem)}.luna-button__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:inherit;position:relative;z-index:1}.luna-button__content{display:inline-flex;align-items:center;position:relative;z-index:1;transition:opacity .18s ease,transform .18s ease}.luna-button[data-loading=true] .luna-button__content,.luna-button[data-loading=true] .luna-button__icon{opacity:0;transform:scale(.97)}.luna-button__loader{position:absolute;top:0;right:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;pointer-events:none;z-index:2;opacity:0;transition:opacity .18s ease,transform .18s ease;transform:scale(.97)}.luna-button[data-loading=true] .luna-button__loader{opacity:1;transform:scale(1)}.luna-button__loader-phases{display:inline-flex;align-items:center;justify-content:center;gap:var(--luna-btn-loader-gap);min-width:var(--luna-btn-loader-min-width)}.luna-button__moon{width:var(--luna-btn-loader-moon-size);height:var(--luna-btn-loader-moon-size);border-radius:999px;flex:0 0 auto;box-shadow:0 0 0 1px #ffffff0d;will-change:transform,opacity,filter;animation:luna-button-lunar-pulse 1.8s infinite ease-in-out}.luna-button__moon:nth-child(2){animation-delay:.18s}.luna-button__moon:nth-child(3){animation-delay:.36s}.luna-button__moon:nth-child(4){animation-delay:.54s}.luna-button__moon:nth-child(5){animation-delay:.72s}.luna-button__moon--new{background:color-mix(in srgb,currentColor 58%,transparent)}.luna-button__moon--waxing{background:linear-gradient(90deg,color-mix(in srgb,currentColor 62%,transparent) 50%,#ffffff29 50%)}.luna-button__moon--full{background:color-mix(in srgb,currentColor 88%,#ffffff)}.luna-button__moon--waning{background:linear-gradient(90deg,#ffffff29 50%,color-mix(in srgb,currentColor 88%,#ffffff) 50%)}.luna-button__moon--faint{background:color-mix(in srgb,currentColor 30%,transparent)}.luna-button__loader-star{width:calc(100% - 4px);height:calc(100% - 4px);border-radius:inherit;position:relative;overflow:hidden}.luna-button__loader-star:before{content:"";position:absolute;width:220%;height:220%;top:-60%;left:-60%;background-image:conic-gradient(transparent 0deg,transparent 258deg,rgb(255 255 255 / .06) 286deg,currentColor 318deg,rgb(255 255 255 / .14) 334deg,transparent 356deg,transparent 360deg);animation:luna-button-loading-star 2.4s linear infinite}.luna-button__loader-star:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:inherit;background:var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600)))}.luna-button.is-bouncing{animation:luna-button-bounce 3s infinite}.luna-button.is-wiggling{animation:luna-button-wiggle 4s infinite}.luna-button.is-pulsing{animation:luna-button-pulse 2s infinite}.luna-button[data-loading-animation=lunar] .luna-button__moon{animation-name:luna-button-lunar-pulse}.luna-button[data-loading-animation=loading-star] .luna-button__loader-star{display:block}@keyframes luna-button-lunar-pulse{0%,to{transform:translateY(0) scale(.96);opacity:.42;filter:brightness(.95)}50%{transform:translateY(-1px) scale(1);opacity:1;filter:brightness(1.08)}}@keyframes luna-button-loading-star{to{transform:rotate(360deg)}}@keyframes luna-button-bounce{0%,24%,to{transform:translateY(0)}6%{transform:translateY(-10px)}12%{transform:translateY(2px)}18%{transform:translateY(-4px)}}@keyframes luna-button-wiggle{0%,16%,to{transform:rotate(0)}4%{transform:rotate(-3deg)}8%{transform:rotate(2deg)}12%{transform:rotate(-1.5deg)}}@keyframes luna-button-pulse{0%,to{transform:scale(1);box-shadow:var(--luna-shadow-md)}10%{transform:scale(1.02);box-shadow:var(--luna-shadow-md),0 0 18px #8cb4ff38}20%{transform:scale(1);box-shadow:var(--luna-shadow-md)}}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@liketysplit/react-luna",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"description": "Self-sufficient React component library with a lunar theme.",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./styles.css": "./dist/style.css"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/liketysplit/react-luna.git"
|
|
25
|
+
},
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/liketysplit/react-luna/issues"
|
|
28
|
+
},
|
|
29
|
+
"homepage": "https://github.com/liketysplit/react-luna#readme",
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"dev": "vite",
|
|
35
|
+
"build": "tsc -p tsconfig.build.json && vite build",
|
|
36
|
+
"preview": "vite preview",
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"test:watch": "vitest",
|
|
39
|
+
"changeset": "changeset",
|
|
40
|
+
"version-packages": "changeset version",
|
|
41
|
+
"release": "changeset publish",
|
|
42
|
+
"storybook": "storybook dev -p 6006",
|
|
43
|
+
"storybook:build": "storybook build"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"react": ">=18.0.0",
|
|
47
|
+
"react-dom": ">=18.0.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@storybook/addon-essentials": "^8.5.0",
|
|
51
|
+
"@storybook/react": "^8.5.0",
|
|
52
|
+
"@storybook/react-vite": "^8.5.0",
|
|
53
|
+
"@changesets/cli": "^2.29.6",
|
|
54
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
55
|
+
"@testing-library/react": "^16.3.2",
|
|
56
|
+
"@testing-library/user-event": "^14.6.1",
|
|
57
|
+
"@types/react": "^18.2.0",
|
|
58
|
+
"@types/react-dom": "^18.2.0",
|
|
59
|
+
"@vitejs/plugin-react": "^4.3.0",
|
|
60
|
+
"jsdom": "^24.1.3",
|
|
61
|
+
"react": "^18.2.0",
|
|
62
|
+
"react-dom": "^18.2.0",
|
|
63
|
+
"typescript": "^5.5.0",
|
|
64
|
+
"vite": "^5.4.0",
|
|
65
|
+
"vitest": "^2.0.0"
|
|
66
|
+
}
|
|
67
|
+
}
|