@flamingo-stack/openframe-frontend-core 0.0.247 → 0.0.249
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/dist/{chunk-AGU44B7B.js → chunk-2FCXJTOV.js} +55 -357
- package/dist/chunk-2FCXJTOV.js.map +1 -0
- package/dist/{chunk-3JRA55FZ.cjs → chunk-3DZ7QYNA.cjs} +166 -15
- package/dist/chunk-3DZ7QYNA.cjs.map +1 -0
- package/dist/{chunk-P2G5X6AW.cjs → chunk-3VTHSACO.cjs} +34 -32
- package/dist/chunk-3VTHSACO.cjs.map +1 -0
- package/dist/{chunk-ESADULCN.cjs → chunk-4EED3YEI.cjs} +1550 -5971
- package/dist/chunk-4EED3YEI.cjs.map +1 -0
- package/dist/{chunk-ZXECERJ4.js → chunk-4HHYUEMD.js} +3 -3
- package/dist/{chunk-UECRKCKH.js → chunk-4RDJZIHW.js} +115 -279
- package/dist/chunk-4RDJZIHW.js.map +1 -0
- package/dist/{chunk-QRGODKEG.js → chunk-5ZVPKTXM.js} +167 -16
- package/dist/chunk-5ZVPKTXM.js.map +1 -0
- package/dist/chunk-6JINAOI7.cjs +311 -0
- package/dist/chunk-6JINAOI7.cjs.map +1 -0
- package/dist/chunk-6LK4VEXE.cjs +4514 -0
- package/dist/chunk-6LK4VEXE.cjs.map +1 -0
- package/dist/chunk-DAAFVOTL.cjs +172 -0
- package/dist/chunk-DAAFVOTL.cjs.map +1 -0
- package/dist/{chunk-27VVOBDB.cjs → chunk-ELF4OOHC.cjs} +16 -180
- package/dist/chunk-ELF4OOHC.cjs.map +1 -0
- package/dist/{chunk-PINAV6VJ.cjs → chunk-LHZYI23D.cjs} +32 -30
- package/dist/chunk-LHZYI23D.cjs.map +1 -0
- package/dist/chunk-LKI3YCAX.js +4514 -0
- package/dist/chunk-LKI3YCAX.js.map +1 -0
- package/dist/{chunk-GMFDA36U.cjs → chunk-LZL6P7SN.cjs} +12 -12
- package/dist/{chunk-GMFDA36U.cjs.map → chunk-LZL6P7SN.cjs.map} +1 -1
- package/dist/chunk-M2OCXTNT.js +311 -0
- package/dist/chunk-M2OCXTNT.js.map +1 -0
- package/dist/{chunk-NZST65RV.js → chunk-PCXI7ZB2.js} +4928 -9349
- package/dist/chunk-PCXI7ZB2.js.map +1 -0
- package/dist/{chunk-DB4HW42V.js → chunk-PVAYXHYF.js} +7 -5
- package/dist/{chunk-DB4HW42V.js.map → chunk-PVAYXHYF.js.map} +1 -1
- package/dist/{chunk-GRTZ23GL.cjs → chunk-TU26IZPO.cjs} +16 -318
- package/dist/chunk-TU26IZPO.cjs.map +1 -0
- package/dist/{chunk-VI7GW7PE.js → chunk-VAKBNCV6.js} +7 -5
- package/dist/{chunk-VI7GW7PE.js.map → chunk-VAKBNCV6.js.map} +1 -1
- package/dist/chunk-ZXZJSTNV.js +172 -0
- package/dist/chunk-ZXZJSTNV.js.map +1 -0
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +11 -7
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +53 -49
- package/dist/components/contact/index.cjs +11 -8
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +10 -7
- package/dist/components/features/index.cjs +11 -7
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +26 -22
- package/dist/components/index.cjs +112 -109
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +134 -131
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +10 -7
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +9 -6
- package/dist/components/onboarding-guides/index.cjs +43 -53
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +25 -35
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +11 -11
- package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +11 -8
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.js +10 -7
- package/dist/components/tickets/index.cjs +96 -93
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +21 -18
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +52 -50
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +6 -4
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +16 -11
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +102 -97
- package/dist/contexts/index.cjs +2 -2
- package/dist/contexts/index.js +5 -5
- package/dist/hooks/index.cjs +6 -4
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +8 -6
- package/dist/index.cjs +17 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +157 -151
- package/package.json +1 -1
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +6 -1
- package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +28 -33
- package/dist/chunk-27VVOBDB.cjs.map +0 -1
- package/dist/chunk-3JRA55FZ.cjs.map +0 -1
- package/dist/chunk-AGU44B7B.js.map +0 -1
- package/dist/chunk-ESADULCN.cjs.map +0 -1
- package/dist/chunk-GRTZ23GL.cjs.map +0 -1
- package/dist/chunk-LXDA67PW.js +0 -162
- package/dist/chunk-LXDA67PW.js.map +0 -1
- package/dist/chunk-NZST65RV.js.map +0 -1
- package/dist/chunk-P2G5X6AW.cjs.map +0 -1
- package/dist/chunk-PINAV6VJ.cjs.map +0 -1
- package/dist/chunk-QRGODKEG.js.map +0 -1
- package/dist/chunk-UECRKCKH.js.map +0 -1
- package/dist/chunk-YJVDQZ5Y.cjs +0 -162
- package/dist/chunk-YJVDQZ5Y.cjs.map +0 -1
- /package/dist/{chunk-ZXECERJ4.js.map → chunk-4HHYUEMD.js.map} +0 -0
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
cn,
|
|
8
8
|
init_cn
|
|
9
9
|
} from "./chunk-XTCBRQN2.js";
|
|
10
|
-
import {
|
|
11
|
-
CheckboxCheckmarkIcon
|
|
12
|
-
} from "./chunk-6U3IUD57.js";
|
|
13
10
|
import {
|
|
14
11
|
__esm
|
|
15
12
|
} from "./chunk-GGWZFCYS.js";
|
|
@@ -38,8 +35,8 @@ var init_button_styles = __esm({
|
|
|
38
35
|
// src/components/ui/button/button.tsx
|
|
39
36
|
import { Slot } from "@radix-ui/react-slot";
|
|
40
37
|
import { cva } from "class-variance-authority";
|
|
41
|
-
import
|
|
42
|
-
import { Fragment, jsx
|
|
38
|
+
import React from "react";
|
|
39
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
43
40
|
var buttonVariants, splitShellVariants, splitSlotVariants, Spinner, Button;
|
|
44
41
|
var init_button = __esm({
|
|
45
42
|
"src/components/ui/button/button.tsx"() {
|
|
@@ -146,9 +143,9 @@ var init_button = __esm({
|
|
|
146
143
|
defaultVariants: { slot: "main", size: "default", variant: "accent" }
|
|
147
144
|
}
|
|
148
145
|
);
|
|
149
|
-
Spinner = () => /* @__PURE__ */
|
|
150
|
-
/* @__PURE__ */
|
|
151
|
-
/* @__PURE__ */
|
|
146
|
+
Spinner = () => /* @__PURE__ */ jsxs("svg", { className: "animate-spin", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
|
|
147
|
+
/* @__PURE__ */ jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
148
|
+
/* @__PURE__ */ jsx(
|
|
152
149
|
"path",
|
|
153
150
|
{
|
|
154
151
|
className: "opacity-75",
|
|
@@ -157,7 +154,7 @@ var init_button = __esm({
|
|
|
157
154
|
}
|
|
158
155
|
)
|
|
159
156
|
] });
|
|
160
|
-
Button =
|
|
157
|
+
Button = React.forwardRef(function Button2({
|
|
161
158
|
className,
|
|
162
159
|
variant,
|
|
163
160
|
size,
|
|
@@ -188,16 +185,16 @@ var init_button = __esm({
|
|
|
188
185
|
);
|
|
189
186
|
const mainSlotClass = splitSlotVariants({ slot: "main", size: safeSize, variant: safeVariant });
|
|
190
187
|
const iconSlotClass = splitSlotVariants({ slot: "icon", size: safeSize, variant: safeVariant });
|
|
191
|
-
const splitContent = /* @__PURE__ */
|
|
192
|
-
/* @__PURE__ */
|
|
193
|
-
/* @__PURE__ */
|
|
194
|
-
leftIcon && /* @__PURE__ */
|
|
188
|
+
const splitContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
189
|
+
/* @__PURE__ */ jsxs("span", { className: cn("contents", loading && "invisible"), children: [
|
|
190
|
+
/* @__PURE__ */ jsxs("span", { className: mainSlotClass, children: [
|
|
191
|
+
leftIcon && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center", children: leftIcon }),
|
|
195
192
|
children,
|
|
196
|
-
rightIcon && /* @__PURE__ */
|
|
193
|
+
rightIcon && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center", children: rightIcon })
|
|
197
194
|
] }),
|
|
198
|
-
/* @__PURE__ */
|
|
195
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: iconSlotClass, children: splitIcon })
|
|
199
196
|
] }),
|
|
200
|
-
loading && /* @__PURE__ */
|
|
197
|
+
loading && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 inline-flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ jsx(Spinner, {}) })
|
|
201
198
|
] });
|
|
202
199
|
const splitAnchor = linkProps ?? (href ? {
|
|
203
200
|
href,
|
|
@@ -206,7 +203,7 @@ var init_button = __esm({
|
|
|
206
203
|
onClick
|
|
207
204
|
} : null);
|
|
208
205
|
if (splitAnchor) {
|
|
209
|
-
return /* @__PURE__ */
|
|
206
|
+
return /* @__PURE__ */ jsx(
|
|
210
207
|
next_link_default,
|
|
211
208
|
{
|
|
212
209
|
href: splitAnchor.href,
|
|
@@ -221,7 +218,7 @@ var init_button = __esm({
|
|
|
221
218
|
}
|
|
222
219
|
);
|
|
223
220
|
}
|
|
224
|
-
return /* @__PURE__ */
|
|
221
|
+
return /* @__PURE__ */ jsx(
|
|
225
222
|
"button",
|
|
226
223
|
{
|
|
227
224
|
ref,
|
|
@@ -235,15 +232,15 @@ var init_button = __esm({
|
|
|
235
232
|
}
|
|
236
233
|
const classes = cn(buttonVariants({ variant, size, fullWidth, noPaddingX }), className);
|
|
237
234
|
if (asChild) {
|
|
238
|
-
return /* @__PURE__ */
|
|
235
|
+
return /* @__PURE__ */ jsx(Slot, { ref, className: classes, ...props, children });
|
|
239
236
|
}
|
|
240
|
-
const content = /* @__PURE__ */
|
|
241
|
-
/* @__PURE__ */
|
|
242
|
-
leftIcon && /* @__PURE__ */
|
|
237
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
238
|
+
/* @__PURE__ */ jsxs("span", { className: cn("contents", loading && "invisible"), children: [
|
|
239
|
+
leftIcon && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center", children: leftIcon }),
|
|
243
240
|
children,
|
|
244
|
-
rightIcon && /* @__PURE__ */
|
|
241
|
+
rightIcon && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center", children: rightIcon })
|
|
245
242
|
] }),
|
|
246
|
-
loading && /* @__PURE__ */
|
|
243
|
+
loading && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 inline-flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ jsx(Spinner, {}) })
|
|
247
244
|
] });
|
|
248
245
|
const anchor = linkProps ?? (href ? {
|
|
249
246
|
href,
|
|
@@ -252,7 +249,7 @@ var init_button = __esm({
|
|
|
252
249
|
onClick
|
|
253
250
|
} : null);
|
|
254
251
|
if (anchor) {
|
|
255
|
-
return /* @__PURE__ */
|
|
252
|
+
return /* @__PURE__ */ jsx(
|
|
256
253
|
next_link_default,
|
|
257
254
|
{
|
|
258
255
|
href: anchor.href,
|
|
@@ -267,7 +264,7 @@ var init_button = __esm({
|
|
|
267
264
|
}
|
|
268
265
|
);
|
|
269
266
|
}
|
|
270
|
-
return /* @__PURE__ */
|
|
267
|
+
return /* @__PURE__ */ jsx(
|
|
271
268
|
"button",
|
|
272
269
|
{
|
|
273
270
|
ref,
|
|
@@ -284,12 +281,12 @@ var init_button = __esm({
|
|
|
284
281
|
|
|
285
282
|
// src/components/ui/button/split-button.tsx
|
|
286
283
|
import { cva as cva2 } from "class-variance-authority";
|
|
287
|
-
import
|
|
288
|
-
import { jsx as
|
|
284
|
+
import React2 from "react";
|
|
285
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
289
286
|
function Half({ variant, size, side, href, openInNewTab, prefetch, onClick, disabled, type = "button", ariaLabel, children }) {
|
|
290
287
|
const classes = splitHalfVariants({ variant, size, side });
|
|
291
288
|
if (href) {
|
|
292
|
-
return /* @__PURE__ */
|
|
289
|
+
return /* @__PURE__ */ jsx2(
|
|
293
290
|
next_link_default,
|
|
294
291
|
{
|
|
295
292
|
href,
|
|
@@ -305,7 +302,7 @@ function Half({ variant, size, side, href, openInNewTab, prefetch, onClick, disa
|
|
|
305
302
|
}
|
|
306
303
|
);
|
|
307
304
|
}
|
|
308
|
-
return /* @__PURE__ */
|
|
305
|
+
return /* @__PURE__ */ jsx2(
|
|
309
306
|
"button",
|
|
310
307
|
{
|
|
311
308
|
type,
|
|
@@ -371,7 +368,7 @@ var init_split_button = __esm({
|
|
|
371
368
|
],
|
|
372
369
|
defaultVariants: { variant: "accent", size: "default", side: "main" }
|
|
373
370
|
});
|
|
374
|
-
SplitButton =
|
|
371
|
+
SplitButton = React2.forwardRef(function SplitButton2({
|
|
375
372
|
variant = "accent",
|
|
376
373
|
size = "default",
|
|
377
374
|
fullWidth = false,
|
|
@@ -390,7 +387,7 @@ var init_split_button = __esm({
|
|
|
390
387
|
"aria-label": ariaLabel,
|
|
391
388
|
groupAriaLabel
|
|
392
389
|
}, ref) {
|
|
393
|
-
return /* @__PURE__ */
|
|
390
|
+
return /* @__PURE__ */ jsxs2(
|
|
394
391
|
"div",
|
|
395
392
|
{
|
|
396
393
|
ref,
|
|
@@ -398,7 +395,7 @@ var init_split_button = __esm({
|
|
|
398
395
|
"aria-label": groupAriaLabel,
|
|
399
396
|
className: cn("inline-flex items-stretch", fullWidth && "w-full", className),
|
|
400
397
|
children: [
|
|
401
|
-
/* @__PURE__ */
|
|
398
|
+
/* @__PURE__ */ jsxs2(
|
|
402
399
|
Half,
|
|
403
400
|
{
|
|
404
401
|
variant,
|
|
@@ -412,13 +409,13 @@ var init_split_button = __esm({
|
|
|
412
409
|
type,
|
|
413
410
|
ariaLabel,
|
|
414
411
|
children: [
|
|
415
|
-
leftIcon && /* @__PURE__ */
|
|
416
|
-
/* @__PURE__ */
|
|
417
|
-
rightIcon && /* @__PURE__ */
|
|
412
|
+
leftIcon && /* @__PURE__ */ jsx2("span", { className: "inline-flex items-center", children: leftIcon }),
|
|
413
|
+
/* @__PURE__ */ jsx2("span", { children }),
|
|
414
|
+
rightIcon && /* @__PURE__ */ jsx2("span", { className: "inline-flex items-center", children: rightIcon })
|
|
418
415
|
]
|
|
419
416
|
}
|
|
420
417
|
),
|
|
421
|
-
/* @__PURE__ */
|
|
418
|
+
/* @__PURE__ */ jsx2(
|
|
422
419
|
Half,
|
|
423
420
|
{
|
|
424
421
|
variant,
|
|
@@ -430,7 +427,7 @@ var init_split_button = __esm({
|
|
|
430
427
|
onClick: iconAction.onClick,
|
|
431
428
|
disabled: disabled || iconAction.disabled,
|
|
432
429
|
ariaLabel: iconAction["aria-label"],
|
|
433
|
-
children: /* @__PURE__ */
|
|
430
|
+
children: /* @__PURE__ */ jsx2("span", { className: "inline-flex items-center", children: iconAction.icon })
|
|
434
431
|
}
|
|
435
432
|
)
|
|
436
433
|
]
|
|
@@ -449,173 +446,30 @@ var init_button2 = __esm({
|
|
|
449
446
|
}
|
|
450
447
|
});
|
|
451
448
|
|
|
452
|
-
// src/components/ui/field-wrapper.tsx
|
|
453
|
-
init_cn();
|
|
454
|
-
import * as React from "react";
|
|
455
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
456
|
-
var errorVariantClasses = {
|
|
457
|
-
error: "text-ods-error",
|
|
458
|
-
warning: "text-[var(--ods-attention-yellow-warning)]"
|
|
459
|
-
};
|
|
460
|
-
var FieldWrapper = React.forwardRef(
|
|
461
|
-
({ label, error, errorVariant = "error", className, children }, ref) => {
|
|
462
|
-
const hasChrome = label != null || error != null;
|
|
463
|
-
return /* @__PURE__ */ jsxs("div", { ref, className: cn(hasChrome ? "relative flex w-full flex-col" : "contents", className), children: [
|
|
464
|
-
label && /* @__PURE__ */ jsx("label", { className: "text-h4 text-ods-text-primary mb-1", children: label }),
|
|
465
|
-
children,
|
|
466
|
-
error && /* @__PURE__ */ jsx("p", { className: cn("absolute bottom-0 left-0 right-0 translate-y-full text-h6 truncate", errorVariantClasses[errorVariant]), title: error, children: error })
|
|
467
|
-
] });
|
|
468
|
-
}
|
|
469
|
-
);
|
|
470
|
-
FieldWrapper.displayName = "FieldWrapper";
|
|
471
|
-
|
|
472
|
-
// src/components/ui/input.tsx
|
|
473
|
-
init_cn();
|
|
474
|
-
import * as React2 from "react";
|
|
475
|
-
import { Loader2 } from "lucide-react";
|
|
476
|
-
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
477
|
-
var invalidBorderClasses = {
|
|
478
|
-
error: "border-ods-error hover:border-ods-error has-[:focus]:border-ods-error",
|
|
479
|
-
warning: "!border-[var(--ods-attention-yellow-warning)] hover:!border-[var(--ods-attention-yellow-warning)] has-[:focus]:!border-[var(--ods-attention-yellow-warning)]"
|
|
480
|
-
};
|
|
481
|
-
var Input = React2.forwardRef(
|
|
482
|
-
({ className, type, invalid = false, startAdornment, endAdornment, label, error, errorVariant = "error", loading = false, ...props }, ref) => {
|
|
483
|
-
const isInvalid = invalid || !!error;
|
|
484
|
-
if (type === "range") {
|
|
485
|
-
const rangeInput = /* @__PURE__ */ jsx2(
|
|
486
|
-
"input",
|
|
487
|
-
{
|
|
488
|
-
type: "range",
|
|
489
|
-
className: cn(
|
|
490
|
-
"w-full cursor-pointer appearance-none rounded-full bg-white/30 h-1",
|
|
491
|
-
// Webkit (Chrome/Safari) thumb
|
|
492
|
-
"[&::-webkit-slider-thumb]:appearance-none",
|
|
493
|
-
"[&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3",
|
|
494
|
-
"[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white",
|
|
495
|
-
"[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:shadow-sm",
|
|
496
|
-
// Firefox thumb
|
|
497
|
-
"[&::-moz-range-thumb]:w-3 [&::-moz-range-thumb]:h-3",
|
|
498
|
-
"[&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-white",
|
|
499
|
-
"[&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:cursor-pointer",
|
|
500
|
-
// Firefox track
|
|
501
|
-
"[&::-moz-range-track]:bg-transparent",
|
|
502
|
-
// Disabled
|
|
503
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
504
|
-
className
|
|
505
|
-
),
|
|
506
|
-
ref,
|
|
507
|
-
...props
|
|
508
|
-
}
|
|
509
|
-
);
|
|
510
|
-
return label ? /* @__PURE__ */ jsx2(FieldWrapper, { label, error, errorVariant, children: rangeInput }) : rangeInput;
|
|
511
|
-
}
|
|
512
|
-
const content = /* @__PURE__ */ jsxs2(
|
|
513
|
-
"label",
|
|
514
|
-
{
|
|
515
|
-
"data-invalid": isInvalid || void 0,
|
|
516
|
-
className: cn(
|
|
517
|
-
// Layout & spacing
|
|
518
|
-
"flex w-full items-center gap-2 rounded-[6px] border px-3 h-11 md:h-12 cursor-text",
|
|
519
|
-
// Focus-within states
|
|
520
|
-
"has-[:focus-visible]:outline-none",
|
|
521
|
-
"group",
|
|
522
|
-
// Animations & touch UX
|
|
523
|
-
"transition-colors duration-200",
|
|
524
|
-
// Theme palette
|
|
525
|
-
"bg-ods-card border-ods-border has-[:focus]:border-ods-accent",
|
|
526
|
-
// Hover & active (not disabled)
|
|
527
|
-
!props.disabled && "hover:bg-ods-bg-hover hover:border-ods-border-hover active:bg-ods-bg-active active:border-ods-border-active",
|
|
528
|
-
// Disabled
|
|
529
|
-
props.disabled && "!cursor-not-allowed bg-ods-bg",
|
|
530
|
-
// Invalid
|
|
531
|
-
isInvalid && invalidBorderClasses[errorVariant],
|
|
532
|
-
className
|
|
533
|
-
),
|
|
534
|
-
children: [
|
|
535
|
-
startAdornment && /* @__PURE__ */ jsx2("span", { className: "text-h6 flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent group-data-[invalid]:text-ods-error [&_svg]:size-4 md:[&_svg]:size-6", children: startAdornment }),
|
|
536
|
-
/* @__PURE__ */ jsx2(
|
|
537
|
-
"input",
|
|
538
|
-
{
|
|
539
|
-
type,
|
|
540
|
-
className: cn(
|
|
541
|
-
// Layout
|
|
542
|
-
"flex-1 min-w-0 bg-transparent border-none outline-none",
|
|
543
|
-
// Typography
|
|
544
|
-
"text-h4",
|
|
545
|
-
// Colors
|
|
546
|
-
"text-ods-text-primary placeholder:text-ods-text-secondary",
|
|
547
|
-
// File input adjustments
|
|
548
|
-
"file:border-0 file:bg-transparent",
|
|
549
|
-
// Disabled
|
|
550
|
-
"disabled:cursor-not-allowed disabled:text-ods-text-disabled disabled:placeholder:text-ods-border",
|
|
551
|
-
// Touch
|
|
552
|
-
"touch-manipulation",
|
|
553
|
-
// Autofill override
|
|
554
|
-
"[&:-webkit-autofill]:[-webkit-box-shadow:0_0_0_9999px_transparent_inset] [&:-webkit-autofill]:[-webkit-text-fill-color:var(--color-text-primary)] [&:-webkit-autofill]:[caret-color:var(--color-text-primary)] [&:-webkit-autofill]:[transition:background-color_9999s_ease-in-out_0s]"
|
|
555
|
-
),
|
|
556
|
-
ref,
|
|
557
|
-
...props
|
|
558
|
-
}
|
|
559
|
-
),
|
|
560
|
-
loading && /* @__PURE__ */ jsx2(Loader2, { className: "animate-spin flex-shrink-0 text-ods-text-secondary size-4 md:size-6" }),
|
|
561
|
-
!loading && endAdornment && /* @__PURE__ */ jsx2("span", { className: "text-h6 flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent group-data-[invalid]:text-ods-error [&_svg]:size-4 md:[&_svg]:size-6", children: endAdornment })
|
|
562
|
-
]
|
|
563
|
-
}
|
|
564
|
-
);
|
|
565
|
-
return /* @__PURE__ */ jsx2(FieldWrapper, { label, error, errorVariant, children: content });
|
|
566
|
-
}
|
|
567
|
-
);
|
|
568
|
-
Input.displayName = "Input";
|
|
569
|
-
|
|
570
|
-
// src/components/ui/checkbox.tsx
|
|
571
|
-
init_cn();
|
|
572
|
-
import * as React5 from "react";
|
|
573
|
-
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
574
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
575
|
-
var Checkbox = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
576
|
-
CheckboxPrimitive.Root,
|
|
577
|
-
{
|
|
578
|
-
ref,
|
|
579
|
-
className: cn(
|
|
580
|
-
"peer h-4 w-4 shrink-0 rounded-sm border border-ods-border bg-ods-card focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-ods-accent data-[state=checked]:border-ods-accent",
|
|
581
|
-
className
|
|
582
|
-
),
|
|
583
|
-
...props,
|
|
584
|
-
children: /* @__PURE__ */ jsx5(
|
|
585
|
-
CheckboxPrimitive.Indicator,
|
|
586
|
-
{
|
|
587
|
-
className: cn("flex items-center justify-center text-ods-text-on-accent"),
|
|
588
|
-
children: /* @__PURE__ */ jsx5(CheckboxCheckmarkIcon, { size: 10 })
|
|
589
|
-
}
|
|
590
|
-
)
|
|
591
|
-
}
|
|
592
|
-
));
|
|
593
|
-
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
594
|
-
|
|
595
449
|
// src/components/ui/dropdown-menu.tsx
|
|
596
450
|
init_cn();
|
|
597
|
-
import * as
|
|
451
|
+
import * as React4 from "react";
|
|
598
452
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
599
453
|
import { Check, ChevronRight, Circle } from "lucide-react";
|
|
600
454
|
|
|
601
455
|
// src/components/ui/portal-container.tsx
|
|
602
|
-
import * as
|
|
603
|
-
var PortalContainerContext =
|
|
456
|
+
import * as React3 from "react";
|
|
457
|
+
var PortalContainerContext = React3.createContext(
|
|
604
458
|
null
|
|
605
459
|
);
|
|
606
460
|
function usePortalContainer() {
|
|
607
|
-
return
|
|
461
|
+
return React3.useContext(PortalContainerContext);
|
|
608
462
|
}
|
|
609
463
|
|
|
610
464
|
// src/components/ui/dropdown-menu.tsx
|
|
611
|
-
import { jsx as
|
|
465
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
612
466
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
613
467
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
614
468
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
615
469
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
616
470
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
617
471
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
618
|
-
var DropdownMenuSubTrigger =
|
|
472
|
+
var DropdownMenuSubTrigger = React4.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs3(
|
|
619
473
|
DropdownMenuPrimitive.SubTrigger,
|
|
620
474
|
{
|
|
621
475
|
ref,
|
|
@@ -627,12 +481,12 @@ var DropdownMenuSubTrigger = React7.forwardRef(({ className, inset, children, ..
|
|
|
627
481
|
...props,
|
|
628
482
|
children: [
|
|
629
483
|
children,
|
|
630
|
-
/* @__PURE__ */
|
|
484
|
+
/* @__PURE__ */ jsx3(ChevronRight, { className: "ml-auto" })
|
|
631
485
|
]
|
|
632
486
|
}
|
|
633
487
|
));
|
|
634
488
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
635
|
-
var DropdownMenuSubContent =
|
|
489
|
+
var DropdownMenuSubContent = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
636
490
|
DropdownMenuPrimitive.SubContent,
|
|
637
491
|
{
|
|
638
492
|
ref,
|
|
@@ -644,9 +498,9 @@ var DropdownMenuSubContent = React7.forwardRef(({ className, ...props }, ref) =>
|
|
|
644
498
|
}
|
|
645
499
|
));
|
|
646
500
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
647
|
-
var DropdownMenuContent =
|
|
501
|
+
var DropdownMenuContent = React4.forwardRef(({ className, sideOffset = 4, ...props }, ref) => {
|
|
648
502
|
const container = usePortalContainer();
|
|
649
|
-
return /* @__PURE__ */
|
|
503
|
+
return /* @__PURE__ */ jsx3(DropdownMenuPrimitive.Portal, { container: container ?? void 0, children: /* @__PURE__ */ jsx3(
|
|
650
504
|
DropdownMenuPrimitive.Content,
|
|
651
505
|
{
|
|
652
506
|
ref,
|
|
@@ -660,7 +514,7 @@ var DropdownMenuContent = React7.forwardRef(({ className, sideOffset = 4, ...pro
|
|
|
660
514
|
) });
|
|
661
515
|
});
|
|
662
516
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
663
|
-
var DropdownMenuItem =
|
|
517
|
+
var DropdownMenuItem = React4.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
664
518
|
DropdownMenuPrimitive.Item,
|
|
665
519
|
{
|
|
666
520
|
ref,
|
|
@@ -673,7 +527,7 @@ var DropdownMenuItem = React7.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
673
527
|
}
|
|
674
528
|
));
|
|
675
529
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
676
|
-
var DropdownMenuCheckboxItem =
|
|
530
|
+
var DropdownMenuCheckboxItem = React4.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs3(
|
|
677
531
|
DropdownMenuPrimitive.CheckboxItem,
|
|
678
532
|
{
|
|
679
533
|
ref,
|
|
@@ -684,13 +538,13 @@ var DropdownMenuCheckboxItem = React7.forwardRef(({ className, children, checked
|
|
|
684
538
|
checked,
|
|
685
539
|
...props,
|
|
686
540
|
children: [
|
|
687
|
-
/* @__PURE__ */
|
|
541
|
+
/* @__PURE__ */ jsx3("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx3(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx3(Check, { className: "h-4 w-4" }) }) }),
|
|
688
542
|
children
|
|
689
543
|
]
|
|
690
544
|
}
|
|
691
545
|
));
|
|
692
546
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
693
|
-
var DropdownMenuRadioItem =
|
|
547
|
+
var DropdownMenuRadioItem = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs3(
|
|
694
548
|
DropdownMenuPrimitive.RadioItem,
|
|
695
549
|
{
|
|
696
550
|
ref,
|
|
@@ -700,13 +554,13 @@ var DropdownMenuRadioItem = React7.forwardRef(({ className, children, ...props }
|
|
|
700
554
|
),
|
|
701
555
|
...props,
|
|
702
556
|
children: [
|
|
703
|
-
/* @__PURE__ */
|
|
557
|
+
/* @__PURE__ */ jsx3("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx3(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx3(Circle, { className: "h-2 w-2 fill-ods-accent" }) }) }),
|
|
704
558
|
children
|
|
705
559
|
]
|
|
706
560
|
}
|
|
707
561
|
));
|
|
708
562
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
709
|
-
var DropdownMenuLabel =
|
|
563
|
+
var DropdownMenuLabel = React4.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
710
564
|
DropdownMenuPrimitive.Label,
|
|
711
565
|
{
|
|
712
566
|
ref,
|
|
@@ -719,7 +573,7 @@ var DropdownMenuLabel = React7.forwardRef(({ className, inset, ...props }, ref)
|
|
|
719
573
|
}
|
|
720
574
|
));
|
|
721
575
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
722
|
-
var DropdownMenuSeparator =
|
|
576
|
+
var DropdownMenuSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
723
577
|
DropdownMenuPrimitive.Separator,
|
|
724
578
|
{
|
|
725
579
|
ref,
|
|
@@ -732,7 +586,7 @@ var DropdownMenuShortcut = ({
|
|
|
732
586
|
className,
|
|
733
587
|
...props
|
|
734
588
|
}) => {
|
|
735
|
-
return /* @__PURE__ */
|
|
589
|
+
return /* @__PURE__ */ jsx3(
|
|
736
590
|
"span",
|
|
737
591
|
{
|
|
738
592
|
className: cn("ml-auto text-xs tracking-widest text-ods-text-secondary opacity-60", className),
|
|
@@ -742,160 +596,12 @@ var DropdownMenuShortcut = ({
|
|
|
742
596
|
};
|
|
743
597
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
744
598
|
|
|
745
|
-
// src/components/ui/skeleton.tsx
|
|
746
|
-
init_cn();
|
|
747
|
-
import * as React8 from "react";
|
|
748
|
-
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
749
|
-
var Skeleton = React8.forwardRef(
|
|
750
|
-
({ className, ...props }, ref) => {
|
|
751
|
-
return /* @__PURE__ */ jsx7(
|
|
752
|
-
"div",
|
|
753
|
-
{
|
|
754
|
-
ref,
|
|
755
|
-
className: cn(
|
|
756
|
-
"animate-pulse rounded-md bg-ods-border",
|
|
757
|
-
className
|
|
758
|
-
),
|
|
759
|
-
...props
|
|
760
|
-
}
|
|
761
|
-
);
|
|
762
|
-
}
|
|
763
|
-
);
|
|
764
|
-
Skeleton.displayName = "Skeleton";
|
|
765
|
-
var SkeletonText = React8.forwardRef(
|
|
766
|
-
({ lines = 1, className, ...props }, ref) => {
|
|
767
|
-
return /* @__PURE__ */ jsx7("div", { ref, className: cn("space-y-2", className), ...props, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx7(
|
|
768
|
-
Skeleton,
|
|
769
|
-
{
|
|
770
|
-
className: cn(
|
|
771
|
-
"h-4",
|
|
772
|
-
i === lines - 1 && lines > 1 && "w-3/4"
|
|
773
|
-
// Last line shorter for multi-line
|
|
774
|
-
)
|
|
775
|
-
},
|
|
776
|
-
i
|
|
777
|
-
)) });
|
|
778
|
-
}
|
|
779
|
-
);
|
|
780
|
-
SkeletonText.displayName = "SkeletonText";
|
|
781
|
-
var SkeletonCard = React8.forwardRef(
|
|
782
|
-
({ showImage = false, className, ...props }, ref) => {
|
|
783
|
-
return /* @__PURE__ */ jsxs6(
|
|
784
|
-
"div",
|
|
785
|
-
{
|
|
786
|
-
ref,
|
|
787
|
-
className: cn(
|
|
788
|
-
"rounded-lg border border-ods-border overflow-hidden",
|
|
789
|
-
className
|
|
790
|
-
),
|
|
791
|
-
...props,
|
|
792
|
-
children: [
|
|
793
|
-
showImage && /* @__PURE__ */ jsx7(Skeleton, { className: "h-48 w-full" }),
|
|
794
|
-
/* @__PURE__ */ jsxs6("div", { className: "p-6", children: [
|
|
795
|
-
/* @__PURE__ */ jsx7(Skeleton, { className: "h-6 w-3/4 mb-4" }),
|
|
796
|
-
/* @__PURE__ */ jsx7(SkeletonText, { lines: 3 })
|
|
797
|
-
] })
|
|
798
|
-
]
|
|
799
|
-
}
|
|
800
|
-
);
|
|
801
|
-
}
|
|
802
|
-
);
|
|
803
|
-
SkeletonCard.displayName = "SkeletonCard";
|
|
804
|
-
var SkeletonGrid = React8.forwardRef(
|
|
805
|
-
({ columns = 3, items = 6, showImages = false, className, ...props }, ref) => {
|
|
806
|
-
return /* @__PURE__ */ jsx7(
|
|
807
|
-
"div",
|
|
808
|
-
{
|
|
809
|
-
ref,
|
|
810
|
-
className: cn(
|
|
811
|
-
`grid grid-cols-1 gap-6`,
|
|
812
|
-
columns === 2 && "md:grid-cols-2",
|
|
813
|
-
columns === 3 && "md:grid-cols-3",
|
|
814
|
-
columns === 4 && "md:grid-cols-4",
|
|
815
|
-
className
|
|
816
|
-
),
|
|
817
|
-
...props,
|
|
818
|
-
children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsx7(SkeletonCard, { showImage: showImages }, i))
|
|
819
|
-
}
|
|
820
|
-
);
|
|
821
|
-
}
|
|
822
|
-
);
|
|
823
|
-
SkeletonGrid.displayName = "SkeletonGrid";
|
|
824
|
-
var SkeletonButton = React8.forwardRef(
|
|
825
|
-
({ size = "default", className, ...props }, ref) => {
|
|
826
|
-
const sizeClasses = {
|
|
827
|
-
sm: "h-8 w-20",
|
|
828
|
-
default: "h-10 w-32",
|
|
829
|
-
lg: "h-12 w-40"
|
|
830
|
-
};
|
|
831
|
-
return /* @__PURE__ */ jsx7(
|
|
832
|
-
Skeleton,
|
|
833
|
-
{
|
|
834
|
-
ref,
|
|
835
|
-
className: cn(
|
|
836
|
-
"rounded-lg",
|
|
837
|
-
sizeClasses[size],
|
|
838
|
-
className
|
|
839
|
-
),
|
|
840
|
-
...props
|
|
841
|
-
}
|
|
842
|
-
);
|
|
843
|
-
}
|
|
844
|
-
);
|
|
845
|
-
SkeletonButton.displayName = "SkeletonButton";
|
|
846
|
-
var SkeletonHeading = React8.forwardRef(
|
|
847
|
-
({ level = 1, className, ...props }, ref) => {
|
|
848
|
-
const heightClasses = {
|
|
849
|
-
1: "h-12",
|
|
850
|
-
2: "h-10",
|
|
851
|
-
3: "h-8",
|
|
852
|
-
4: "h-7",
|
|
853
|
-
5: "h-6",
|
|
854
|
-
6: "h-5"
|
|
855
|
-
};
|
|
856
|
-
return /* @__PURE__ */ jsx7(
|
|
857
|
-
Skeleton,
|
|
858
|
-
{
|
|
859
|
-
ref,
|
|
860
|
-
className: cn(
|
|
861
|
-
heightClasses[level],
|
|
862
|
-
"w-3/4",
|
|
863
|
-
className
|
|
864
|
-
),
|
|
865
|
-
...props
|
|
866
|
-
}
|
|
867
|
-
);
|
|
868
|
-
}
|
|
869
|
-
);
|
|
870
|
-
SkeletonHeading.displayName = "SkeletonHeading";
|
|
871
|
-
var SkeletonList = React8.forwardRef(
|
|
872
|
-
({ items = 5, className, ...props }, ref) => {
|
|
873
|
-
return /* @__PURE__ */ jsx7("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-3", children: [
|
|
874
|
-
/* @__PURE__ */ jsx7(Skeleton, { className: "h-10 w-10 rounded-full flex-shrink-0" }),
|
|
875
|
-
/* @__PURE__ */ jsxs6("div", { className: "flex-1", children: [
|
|
876
|
-
/* @__PURE__ */ jsx7(Skeleton, { className: "h-4 w-1/3 mb-1" }),
|
|
877
|
-
/* @__PURE__ */ jsx7(Skeleton, { className: "h-3 w-1/2" })
|
|
878
|
-
] })
|
|
879
|
-
] }, i)) });
|
|
880
|
-
}
|
|
881
|
-
);
|
|
882
|
-
SkeletonList.displayName = "SkeletonList";
|
|
883
|
-
var SkeletonNavigation = React8.forwardRef(
|
|
884
|
-
({ items = 6, className, ...props }, ref) => {
|
|
885
|
-
return /* @__PURE__ */ jsx7("div", { ref, className: cn("flex items-center gap-6", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsx7(Skeleton, { className: "h-5 w-20" }, i)) });
|
|
886
|
-
}
|
|
887
|
-
);
|
|
888
|
-
SkeletonNavigation.displayName = "SkeletonNavigation";
|
|
889
|
-
|
|
890
599
|
export {
|
|
891
|
-
FieldWrapper,
|
|
892
|
-
Input,
|
|
893
600
|
buttonVariants,
|
|
894
601
|
Button,
|
|
895
602
|
init_button,
|
|
896
603
|
SplitButton,
|
|
897
604
|
init_button2,
|
|
898
|
-
Checkbox,
|
|
899
605
|
PortalContainerContext,
|
|
900
606
|
usePortalContainer,
|
|
901
607
|
DropdownMenu,
|
|
@@ -912,14 +618,6 @@ export {
|
|
|
912
618
|
DropdownMenuRadioItem,
|
|
913
619
|
DropdownMenuLabel,
|
|
914
620
|
DropdownMenuSeparator,
|
|
915
|
-
DropdownMenuShortcut
|
|
916
|
-
Skeleton,
|
|
917
|
-
SkeletonText,
|
|
918
|
-
SkeletonCard,
|
|
919
|
-
SkeletonGrid,
|
|
920
|
-
SkeletonButton,
|
|
921
|
-
SkeletonHeading,
|
|
922
|
-
SkeletonList,
|
|
923
|
-
SkeletonNavigation
|
|
621
|
+
DropdownMenuShortcut
|
|
924
622
|
};
|
|
925
|
-
//# sourceMappingURL=chunk-
|
|
623
|
+
//# sourceMappingURL=chunk-2FCXJTOV.js.map
|