@lessly/ui 0.21.0 → 0.22.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/dist/index.d.ts +27 -2
- package/dist/index.js +747 -715
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -324,22 +324,53 @@ var labelVariants = cva2(
|
|
|
324
324
|
var Label2 = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
325
325
|
Label2.displayName = LabelPrimitive.Root.displayName;
|
|
326
326
|
|
|
327
|
+
// src/components/page-header.tsx
|
|
328
|
+
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
329
|
+
function PageHeader({ title, subtitle, icon: Icon, media, badge, actions, id }) {
|
|
330
|
+
if (Icon && !subtitle && !media && process.env.NODE_ENV !== "production") {
|
|
331
|
+
console.warn("PageHeader: `icon` needs a `subtitle` to render the medallion; medallion dropped.");
|
|
332
|
+
}
|
|
333
|
+
const leading = media ?? (Icon && subtitle ? /* @__PURE__ */ jsx7(
|
|
334
|
+
"span",
|
|
335
|
+
{
|
|
336
|
+
"data-slot": "page-header-medallion",
|
|
337
|
+
className: "inline-flex size-12 shrink-0 items-center justify-center rounded-full border border-border-subtle bg-bg-secondary text-text-secondary",
|
|
338
|
+
children: /* @__PURE__ */ jsx7(Icon, { className: "size-6", "aria-hidden": true })
|
|
339
|
+
}
|
|
340
|
+
) : null);
|
|
341
|
+
const heading = /* @__PURE__ */ jsx7("h2", { id, className: "text-lg font-semibold text-text-primary", children: title });
|
|
342
|
+
if (!leading && !subtitle && !badge && !actions) {
|
|
343
|
+
return heading;
|
|
344
|
+
}
|
|
345
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-3", children: [
|
|
346
|
+
leading,
|
|
347
|
+
/* @__PURE__ */ jsxs3("div", { className: "min-w-0", children: [
|
|
348
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
|
|
349
|
+
heading,
|
|
350
|
+
badge
|
|
351
|
+
] }),
|
|
352
|
+
subtitle && /* @__PURE__ */ jsx7("p", { className: "text-sm text-text-secondary", children: subtitle })
|
|
353
|
+
] }),
|
|
354
|
+
actions && /* @__PURE__ */ jsx7("div", { className: "ml-auto shrink-0", children: actions })
|
|
355
|
+
] });
|
|
356
|
+
}
|
|
357
|
+
|
|
327
358
|
// src/components/section-intro.tsx
|
|
328
359
|
import { Info } from "lucide-react";
|
|
329
|
-
import { jsx as
|
|
360
|
+
import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
330
361
|
function SectionIntro({ what, when }) {
|
|
331
|
-
return /* @__PURE__ */
|
|
332
|
-
/* @__PURE__ */
|
|
333
|
-
/* @__PURE__ */
|
|
334
|
-
/* @__PURE__ */
|
|
335
|
-
/* @__PURE__ */
|
|
362
|
+
return /* @__PURE__ */ jsxs4("div", { className: "bg-bg-brand-subtle rounded-xl px-5 py-4 flex items-start gap-3 mb-5", children: [
|
|
363
|
+
/* @__PURE__ */ jsx8(Info, { className: "w-4 h-4 text-text-brand mt-0.5 flex-shrink-0", "aria-hidden": "true" }),
|
|
364
|
+
/* @__PURE__ */ jsxs4("div", { children: [
|
|
365
|
+
/* @__PURE__ */ jsx8("p", { className: "text-[0.8125rem] text-text-primary leading-relaxed", children: what }),
|
|
366
|
+
/* @__PURE__ */ jsx8("p", { className: "text-[0.8125rem] text-text-secondary leading-relaxed mt-1", children: when })
|
|
336
367
|
] })
|
|
337
368
|
] });
|
|
338
369
|
}
|
|
339
370
|
|
|
340
371
|
// src/components/select.tsx
|
|
341
372
|
import { ChevronDown } from "lucide-react";
|
|
342
|
-
import { jsx as
|
|
373
|
+
import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
343
374
|
function Select({
|
|
344
375
|
value,
|
|
345
376
|
onValueChange,
|
|
@@ -354,8 +385,8 @@ function Select({
|
|
|
354
385
|
optionTestId
|
|
355
386
|
}) {
|
|
356
387
|
const selected = options.find((o) => o.value === value);
|
|
357
|
-
return /* @__PURE__ */
|
|
358
|
-
/* @__PURE__ */
|
|
388
|
+
return /* @__PURE__ */ jsxs5(DropdownMenu, { children: [
|
|
389
|
+
/* @__PURE__ */ jsxs5(
|
|
359
390
|
DropdownMenuTrigger,
|
|
360
391
|
{
|
|
361
392
|
type: "button",
|
|
@@ -369,24 +400,24 @@ function Select({
|
|
|
369
400
|
className
|
|
370
401
|
),
|
|
371
402
|
children: [
|
|
372
|
-
/* @__PURE__ */
|
|
373
|
-
/* @__PURE__ */
|
|
403
|
+
/* @__PURE__ */ jsx9("span", { className: cn("truncate", !selected && "text-text-tertiary"), children: selected ? selected.label : placeholder }),
|
|
404
|
+
/* @__PURE__ */ jsx9(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 text-text-tertiary" })
|
|
374
405
|
]
|
|
375
406
|
}
|
|
376
407
|
),
|
|
377
|
-
/* @__PURE__ */
|
|
408
|
+
/* @__PURE__ */ jsx9(
|
|
378
409
|
DropdownMenuContent,
|
|
379
410
|
{
|
|
380
411
|
align: "start",
|
|
381
412
|
className: "max-h-64 w-[var(--radix-dropdown-menu-trigger-width)] overflow-y-auto",
|
|
382
|
-
children: /* @__PURE__ */
|
|
413
|
+
children: /* @__PURE__ */ jsx9(DropdownMenuRadioGroup, { value: value ?? "", onValueChange, children: options.map((o) => /* @__PURE__ */ jsx9(DropdownMenuRadioItem, { value: o.value, "data-testid": optionTestId?.(o.value), children: o.label }, o.value)) })
|
|
383
414
|
}
|
|
384
415
|
)
|
|
385
416
|
] });
|
|
386
417
|
}
|
|
387
418
|
|
|
388
419
|
// src/components/switch.tsx
|
|
389
|
-
import { jsx as
|
|
420
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
390
421
|
function Switch({
|
|
391
422
|
checked,
|
|
392
423
|
onCheckedChange,
|
|
@@ -396,7 +427,7 @@ function Switch({
|
|
|
396
427
|
"aria-label": ariaLabel,
|
|
397
428
|
"data-testid": testId
|
|
398
429
|
}) {
|
|
399
|
-
return /* @__PURE__ */
|
|
430
|
+
return /* @__PURE__ */ jsx10(
|
|
400
431
|
"button",
|
|
401
432
|
{
|
|
402
433
|
type: "button",
|
|
@@ -408,7 +439,7 @@ function Switch({
|
|
|
408
439
|
disabled,
|
|
409
440
|
onClick: () => onCheckedChange(!checked),
|
|
410
441
|
className: `relative inline-flex h-6 w-10 shrink-0 cursor-pointer rounded-full transition-colors outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface ${checked ? "bg-bg-brand-bright" : "bg-border-default"} ${disabled ? "cursor-not-allowed opacity-50" : ""} ${className}`,
|
|
411
|
-
children: /* @__PURE__ */
|
|
442
|
+
children: /* @__PURE__ */ jsx10(
|
|
412
443
|
"span",
|
|
413
444
|
{
|
|
414
445
|
"aria-hidden": "true",
|
|
@@ -423,8 +454,8 @@ function Switch({
|
|
|
423
454
|
import * as React7 from "react";
|
|
424
455
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
425
456
|
import { Check as Check2 } from "lucide-react";
|
|
426
|
-
import { jsx as
|
|
427
|
-
var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
457
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
458
|
+
var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
428
459
|
CheckboxPrimitive.Root,
|
|
429
460
|
{
|
|
430
461
|
ref,
|
|
@@ -433,7 +464,7 @@ var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
433
464
|
className
|
|
434
465
|
),
|
|
435
466
|
...props,
|
|
436
|
-
children: /* @__PURE__ */
|
|
467
|
+
children: /* @__PURE__ */ jsx11(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx11(Check2, { className: "h-4 w-4" }) })
|
|
437
468
|
}
|
|
438
469
|
));
|
|
439
470
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
@@ -442,10 +473,10 @@ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
|
442
473
|
import * as React8 from "react";
|
|
443
474
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
444
475
|
import { Circle as Circle2 } from "lucide-react";
|
|
445
|
-
import { jsx as
|
|
446
|
-
var RadioGroup2 = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
476
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
477
|
+
var RadioGroup2 = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-2", className), ...props }));
|
|
447
478
|
RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
|
|
448
|
-
var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
479
|
+
var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
449
480
|
RadioGroupPrimitive.Item,
|
|
450
481
|
{
|
|
451
482
|
ref,
|
|
@@ -454,17 +485,17 @@ var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
454
485
|
className
|
|
455
486
|
),
|
|
456
487
|
...props,
|
|
457
|
-
children: /* @__PURE__ */
|
|
488
|
+
children: /* @__PURE__ */ jsx12(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx12(Circle2, { className: "h-2.5 w-2.5 fill-blue-400 text-blue-400" }) })
|
|
458
489
|
}
|
|
459
490
|
));
|
|
460
491
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
461
492
|
|
|
462
493
|
// src/components/textarea.tsx
|
|
463
494
|
import * as React9 from "react";
|
|
464
|
-
import { jsx as
|
|
495
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
465
496
|
var Textarea = React9.forwardRef(
|
|
466
497
|
({ className, ...props }, ref) => {
|
|
467
|
-
return /* @__PURE__ */
|
|
498
|
+
return /* @__PURE__ */ jsx13(
|
|
468
499
|
"textarea",
|
|
469
500
|
{
|
|
470
501
|
ref,
|
|
@@ -482,18 +513,18 @@ Textarea.displayName = "Textarea";
|
|
|
482
513
|
// src/components/slider.tsx
|
|
483
514
|
import * as React10 from "react";
|
|
484
515
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
485
|
-
import { jsx as
|
|
516
|
+
import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
486
517
|
var Slider = React10.forwardRef(({ className, ...props }, ref) => {
|
|
487
518
|
const thumbCount = (Array.isArray(props.value) ? props.value.length : void 0) ?? (Array.isArray(props.defaultValue) ? props.defaultValue.length : void 0) ?? 1;
|
|
488
|
-
return /* @__PURE__ */
|
|
519
|
+
return /* @__PURE__ */ jsxs6(
|
|
489
520
|
SliderPrimitive.Root,
|
|
490
521
|
{
|
|
491
522
|
ref,
|
|
492
523
|
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
493
524
|
...props,
|
|
494
525
|
children: [
|
|
495
|
-
/* @__PURE__ */
|
|
496
|
-
Array.from({ length: thumbCount }).map((_, i) => /* @__PURE__ */
|
|
526
|
+
/* @__PURE__ */ jsx14(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-bg-secondary", children: /* @__PURE__ */ jsx14(SliderPrimitive.Range, { className: "absolute h-full bg-blue-400" }) }),
|
|
527
|
+
Array.from({ length: thumbCount }).map((_, i) => /* @__PURE__ */ jsx14(
|
|
497
528
|
SliderPrimitive.Thumb,
|
|
498
529
|
{
|
|
499
530
|
className: "block size-5 rounded-full border border-border-brand bg-bg-elevated shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
@@ -510,7 +541,7 @@ Slider.displayName = SliderPrimitive.Root.displayName;
|
|
|
510
541
|
import * as React11 from "react";
|
|
511
542
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
512
543
|
import { cva as cva3 } from "class-variance-authority";
|
|
513
|
-
import { jsx as
|
|
544
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
514
545
|
var toggleVariants = cva3(
|
|
515
546
|
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-bg-secondary hover:text-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-bg-secondary data-[state=on]:text-text-primary [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
516
547
|
{
|
|
@@ -528,30 +559,30 @@ var toggleVariants = cva3(
|
|
|
528
559
|
defaultVariants: { variant: "default", size: "default" }
|
|
529
560
|
}
|
|
530
561
|
);
|
|
531
|
-
var Toggle = React11.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */
|
|
562
|
+
var Toggle = React11.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx15(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
532
563
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
533
564
|
|
|
534
565
|
// src/components/toggle-group.tsx
|
|
535
566
|
import * as React12 from "react";
|
|
536
567
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
537
|
-
import { jsx as
|
|
568
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
538
569
|
var ToggleGroupContext = React12.createContext({
|
|
539
570
|
size: "default",
|
|
540
571
|
variant: "default"
|
|
541
572
|
});
|
|
542
|
-
var ToggleGroup = React12.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */
|
|
573
|
+
var ToggleGroup = React12.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
543
574
|
ToggleGroupPrimitive.Root,
|
|
544
575
|
{
|
|
545
576
|
ref,
|
|
546
577
|
className: cn("flex items-center justify-center gap-1", className),
|
|
547
578
|
...props,
|
|
548
|
-
children: /* @__PURE__ */
|
|
579
|
+
children: /* @__PURE__ */ jsx16(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
549
580
|
}
|
|
550
581
|
));
|
|
551
582
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
552
583
|
var ToggleGroupItem = React12.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
553
584
|
const context = React12.useContext(ToggleGroupContext);
|
|
554
|
-
return /* @__PURE__ */
|
|
585
|
+
return /* @__PURE__ */ jsx16(
|
|
555
586
|
ToggleGroupPrimitive.Item,
|
|
556
587
|
{
|
|
557
588
|
ref,
|
|
@@ -567,8 +598,8 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
567
598
|
import * as React13 from "react";
|
|
568
599
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
569
600
|
import { Minus } from "lucide-react";
|
|
570
|
-
import { jsx as
|
|
571
|
-
var InputOTP = React13.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */
|
|
601
|
+
import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
602
|
+
var InputOTP = React13.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
572
603
|
OTPInput,
|
|
573
604
|
{
|
|
574
605
|
ref,
|
|
@@ -579,7 +610,7 @@ var InputOTP = React13.forwardRef(({ className, containerClassName, ...props },
|
|
|
579
610
|
));
|
|
580
611
|
InputOTP.displayName = "InputOTP";
|
|
581
612
|
var InputOTPGroup = React13.forwardRef(
|
|
582
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
613
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx17("div", { ref, className: cn("flex items-center", className), ...props })
|
|
583
614
|
);
|
|
584
615
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
585
616
|
var InputOTPSlot = React13.forwardRef(({ index, className, ...props }, ref) => {
|
|
@@ -588,7 +619,7 @@ var InputOTPSlot = React13.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
588
619
|
const char = slot?.char;
|
|
589
620
|
const hasFakeCaret = slot?.hasFakeCaret;
|
|
590
621
|
const isActive = slot?.isActive;
|
|
591
|
-
return /* @__PURE__ */
|
|
622
|
+
return /* @__PURE__ */ jsxs7(
|
|
592
623
|
"div",
|
|
593
624
|
{
|
|
594
625
|
ref,
|
|
@@ -600,25 +631,25 @@ var InputOTPSlot = React13.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
600
631
|
...props,
|
|
601
632
|
children: [
|
|
602
633
|
char,
|
|
603
|
-
hasFakeCaret && /* @__PURE__ */
|
|
634
|
+
hasFakeCaret && /* @__PURE__ */ jsx17("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx17("div", { className: "h-4 w-px animate-pulse bg-text-primary" }) })
|
|
604
635
|
]
|
|
605
636
|
}
|
|
606
637
|
);
|
|
607
638
|
});
|
|
608
639
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
609
640
|
var InputOTPSeparator = React13.forwardRef(
|
|
610
|
-
({ ...props }, ref) => /* @__PURE__ */
|
|
641
|
+
({ ...props }, ref) => /* @__PURE__ */ jsx17("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx17(Minus, { className: "h-4 w-4 text-text-tertiary" }) })
|
|
611
642
|
);
|
|
612
643
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
613
644
|
|
|
614
645
|
// src/components/popover.tsx
|
|
615
646
|
import * as React14 from "react";
|
|
616
647
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
617
|
-
import { jsx as
|
|
648
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
618
649
|
var Popover = PopoverPrimitive.Root;
|
|
619
650
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
620
651
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
621
|
-
var PopoverContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
652
|
+
var PopoverContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
|
|
622
653
|
PopoverPrimitive.Content,
|
|
623
654
|
{
|
|
624
655
|
ref,
|
|
@@ -636,11 +667,11 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
|
636
667
|
// src/components/tooltip.tsx
|
|
637
668
|
import * as React15 from "react";
|
|
638
669
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
639
|
-
import { jsx as
|
|
670
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
640
671
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
641
672
|
var Tooltip = TooltipPrimitive.Root;
|
|
642
673
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
643
|
-
var TooltipContent = React15.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
674
|
+
var TooltipContent = React15.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx19(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx19(
|
|
644
675
|
TooltipPrimitive.Content,
|
|
645
676
|
{
|
|
646
677
|
ref,
|
|
@@ -657,10 +688,10 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
|
657
688
|
// src/components/hover-card.tsx
|
|
658
689
|
import * as React16 from "react";
|
|
659
690
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
660
|
-
import { jsx as
|
|
691
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
661
692
|
var HoverCard = HoverCardPrimitive.Root;
|
|
662
693
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
663
|
-
var HoverCardContent = React16.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
694
|
+
var HoverCardContent = React16.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx20(HoverCardPrimitive.Portal, { children: /* @__PURE__ */ jsx20(
|
|
664
695
|
HoverCardPrimitive.Content,
|
|
665
696
|
{
|
|
666
697
|
ref,
|
|
@@ -680,12 +711,12 @@ import * as React17 from "react";
|
|
|
680
711
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
681
712
|
import { cva as cva4 } from "class-variance-authority";
|
|
682
713
|
import { X as X2 } from "lucide-react";
|
|
683
|
-
import { jsx as
|
|
714
|
+
import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
684
715
|
var Sheet = SheetPrimitive.Root;
|
|
685
716
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
686
717
|
var SheetClose = SheetPrimitive.Close;
|
|
687
718
|
var SheetPortal = SheetPrimitive.Portal;
|
|
688
|
-
var SheetOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
719
|
+
var SheetOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
689
720
|
SheetPrimitive.Overlay,
|
|
690
721
|
{
|
|
691
722
|
ref,
|
|
@@ -713,9 +744,9 @@ var sheetVariants = cva4(
|
|
|
713
744
|
}
|
|
714
745
|
}
|
|
715
746
|
);
|
|
716
|
-
var SheetContent = React17.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */
|
|
717
|
-
/* @__PURE__ */
|
|
718
|
-
/* @__PURE__ */
|
|
747
|
+
var SheetContent = React17.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(SheetPortal, { children: [
|
|
748
|
+
/* @__PURE__ */ jsx21(SheetOverlay, {}),
|
|
749
|
+
/* @__PURE__ */ jsxs8(
|
|
719
750
|
SheetPrimitive.Content,
|
|
720
751
|
{
|
|
721
752
|
ref,
|
|
@@ -723,16 +754,16 @@ var SheetContent = React17.forwardRef(({ side = "right", className, children, ..
|
|
|
723
754
|
...props,
|
|
724
755
|
children: [
|
|
725
756
|
children,
|
|
726
|
-
/* @__PURE__ */
|
|
727
|
-
/* @__PURE__ */
|
|
728
|
-
/* @__PURE__ */
|
|
757
|
+
/* @__PURE__ */ jsxs8(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm text-text-tertiary opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-border-focus disabled:pointer-events-none", children: [
|
|
758
|
+
/* @__PURE__ */ jsx21(X2, { className: "h-4 w-4" }),
|
|
759
|
+
/* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Close" })
|
|
729
760
|
] })
|
|
730
761
|
]
|
|
731
762
|
}
|
|
732
763
|
)
|
|
733
764
|
] }));
|
|
734
765
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
735
|
-
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
766
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx21(
|
|
736
767
|
"div",
|
|
737
768
|
{
|
|
738
769
|
className: cn("flex flex-col gap-1.5 text-left", className),
|
|
@@ -740,7 +771,7 @@ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx20(
|
|
|
740
771
|
}
|
|
741
772
|
);
|
|
742
773
|
SheetHeader.displayName = "SheetHeader";
|
|
743
|
-
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
774
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx21(
|
|
744
775
|
"div",
|
|
745
776
|
{
|
|
746
777
|
className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
|
|
@@ -748,7 +779,7 @@ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx20(
|
|
|
748
779
|
}
|
|
749
780
|
);
|
|
750
781
|
SheetFooter.displayName = "SheetFooter";
|
|
751
|
-
var SheetTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
782
|
+
var SheetTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
752
783
|
SheetPrimitive.Title,
|
|
753
784
|
{
|
|
754
785
|
ref,
|
|
@@ -757,7 +788,7 @@ var SheetTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
757
788
|
}
|
|
758
789
|
));
|
|
759
790
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
760
|
-
var SheetDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
791
|
+
var SheetDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
761
792
|
SheetPrimitive.Description,
|
|
762
793
|
{
|
|
763
794
|
ref,
|
|
@@ -770,16 +801,16 @@ SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
|
770
801
|
// src/components/drawer.tsx
|
|
771
802
|
import * as React18 from "react";
|
|
772
803
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
773
|
-
import { jsx as
|
|
804
|
+
import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
774
805
|
var Drawer = ({
|
|
775
806
|
shouldScaleBackground = true,
|
|
776
807
|
...props
|
|
777
|
-
}) => /* @__PURE__ */
|
|
808
|
+
}) => /* @__PURE__ */ jsx22(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
|
|
778
809
|
Drawer.displayName = "Drawer";
|
|
779
810
|
var DrawerTrigger = DrawerPrimitive.Trigger;
|
|
780
811
|
var DrawerPortal = DrawerPrimitive.Portal;
|
|
781
812
|
var DrawerClose = DrawerPrimitive.Close;
|
|
782
|
-
var DrawerOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
813
|
+
var DrawerOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
783
814
|
DrawerPrimitive.Overlay,
|
|
784
815
|
{
|
|
785
816
|
ref,
|
|
@@ -788,9 +819,9 @@ var DrawerOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
788
819
|
}
|
|
789
820
|
));
|
|
790
821
|
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
791
|
-
var DrawerContent = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
792
|
-
/* @__PURE__ */
|
|
793
|
-
/* @__PURE__ */
|
|
822
|
+
var DrawerContent = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(DrawerPortal, { children: [
|
|
823
|
+
/* @__PURE__ */ jsx22(DrawerOverlay, {}),
|
|
824
|
+
/* @__PURE__ */ jsxs9(
|
|
794
825
|
DrawerPrimitive.Content,
|
|
795
826
|
{
|
|
796
827
|
ref,
|
|
@@ -800,18 +831,18 @@ var DrawerContent = React18.forwardRef(({ className, children, ...props }, ref)
|
|
|
800
831
|
),
|
|
801
832
|
...props,
|
|
802
833
|
children: [
|
|
803
|
-
/* @__PURE__ */
|
|
834
|
+
/* @__PURE__ */ jsx22("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-bg-secondary" }),
|
|
804
835
|
children
|
|
805
836
|
]
|
|
806
837
|
}
|
|
807
838
|
)
|
|
808
839
|
] }));
|
|
809
840
|
DrawerContent.displayName = "DrawerContent";
|
|
810
|
-
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
841
|
+
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx22("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-left", className), ...props });
|
|
811
842
|
DrawerHeader.displayName = "DrawerHeader";
|
|
812
|
-
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
843
|
+
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx22("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
|
|
813
844
|
DrawerFooter.displayName = "DrawerFooter";
|
|
814
|
-
var DrawerTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
845
|
+
var DrawerTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
815
846
|
DrawerPrimitive.Title,
|
|
816
847
|
{
|
|
817
848
|
ref,
|
|
@@ -820,7 +851,7 @@ var DrawerTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
820
851
|
}
|
|
821
852
|
));
|
|
822
853
|
DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
823
|
-
var DrawerDescription = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
854
|
+
var DrawerDescription = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
824
855
|
DrawerPrimitive.Description,
|
|
825
856
|
{
|
|
826
857
|
ref,
|
|
@@ -833,11 +864,11 @@ DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
|
|
|
833
864
|
// src/components/alert-dialog.tsx
|
|
834
865
|
import * as React19 from "react";
|
|
835
866
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
836
|
-
import { jsx as
|
|
867
|
+
import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
837
868
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
838
869
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
839
870
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
840
|
-
var AlertDialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
871
|
+
var AlertDialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
841
872
|
AlertDialogPrimitive.Overlay,
|
|
842
873
|
{
|
|
843
874
|
ref,
|
|
@@ -849,9 +880,9 @@ var AlertDialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /*
|
|
|
849
880
|
}
|
|
850
881
|
));
|
|
851
882
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
852
|
-
var AlertDialogContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
853
|
-
/* @__PURE__ */
|
|
854
|
-
/* @__PURE__ */
|
|
883
|
+
var AlertDialogContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs10(AlertDialogPortal, { children: [
|
|
884
|
+
/* @__PURE__ */ jsx23(AlertDialogOverlay, {}),
|
|
885
|
+
/* @__PURE__ */ jsx23(
|
|
855
886
|
AlertDialogPrimitive.Content,
|
|
856
887
|
{
|
|
857
888
|
ref,
|
|
@@ -864,7 +895,7 @@ var AlertDialogContent = React19.forwardRef(({ className, ...props }, ref) => /*
|
|
|
864
895
|
)
|
|
865
896
|
] }));
|
|
866
897
|
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
867
|
-
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
898
|
+
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx23(
|
|
868
899
|
"div",
|
|
869
900
|
{
|
|
870
901
|
className: cn("flex flex-col gap-1.5 text-left", className),
|
|
@@ -872,7 +903,7 @@ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx22(
|
|
|
872
903
|
}
|
|
873
904
|
);
|
|
874
905
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
875
|
-
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
906
|
+
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx23(
|
|
876
907
|
"div",
|
|
877
908
|
{
|
|
878
909
|
className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
|
|
@@ -880,7 +911,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx22(
|
|
|
880
911
|
}
|
|
881
912
|
);
|
|
882
913
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
883
|
-
var AlertDialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
914
|
+
var AlertDialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
884
915
|
AlertDialogPrimitive.Title,
|
|
885
916
|
{
|
|
886
917
|
ref,
|
|
@@ -889,7 +920,7 @@ var AlertDialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
889
920
|
}
|
|
890
921
|
));
|
|
891
922
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
892
|
-
var AlertDialogDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
923
|
+
var AlertDialogDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
893
924
|
AlertDialogPrimitive.Description,
|
|
894
925
|
{
|
|
895
926
|
ref,
|
|
@@ -898,7 +929,7 @@ var AlertDialogDescription = React19.forwardRef(({ className, ...props }, ref) =
|
|
|
898
929
|
}
|
|
899
930
|
));
|
|
900
931
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
901
|
-
var AlertDialogAction = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
932
|
+
var AlertDialogAction = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
902
933
|
AlertDialogPrimitive.Action,
|
|
903
934
|
{
|
|
904
935
|
ref,
|
|
@@ -907,7 +938,7 @@ var AlertDialogAction = React19.forwardRef(({ className, ...props }, ref) => /*
|
|
|
907
938
|
}
|
|
908
939
|
));
|
|
909
940
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
910
|
-
var AlertDialogCancel = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
941
|
+
var AlertDialogCancel = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
911
942
|
AlertDialogPrimitive.Cancel,
|
|
912
943
|
{
|
|
913
944
|
ref,
|
|
@@ -921,14 +952,14 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
|
921
952
|
import * as React20 from "react";
|
|
922
953
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
923
954
|
import { Check as Check3, ChevronRight as ChevronRight2, Circle as Circle3 } from "lucide-react";
|
|
924
|
-
import { jsx as
|
|
955
|
+
import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
925
956
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
926
957
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
927
958
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
928
959
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
929
960
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
930
961
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
931
|
-
var ContextMenuSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */
|
|
962
|
+
var ContextMenuSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
932
963
|
ContextMenuPrimitive.SubTrigger,
|
|
933
964
|
{
|
|
934
965
|
ref,
|
|
@@ -940,12 +971,12 @@ var ContextMenuSubTrigger = React20.forwardRef(({ className, inset, children, ..
|
|
|
940
971
|
...props,
|
|
941
972
|
children: [
|
|
942
973
|
children,
|
|
943
|
-
/* @__PURE__ */
|
|
974
|
+
/* @__PURE__ */ jsx24(ChevronRight2, { className: "ml-auto h-4 w-4" })
|
|
944
975
|
]
|
|
945
976
|
}
|
|
946
977
|
));
|
|
947
978
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
948
|
-
var ContextMenuSubContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
979
|
+
var ContextMenuSubContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
949
980
|
ContextMenuPrimitive.SubContent,
|
|
950
981
|
{
|
|
951
982
|
ref,
|
|
@@ -957,7 +988,7 @@ var ContextMenuSubContent = React20.forwardRef(({ className, ...props }, ref) =>
|
|
|
957
988
|
}
|
|
958
989
|
));
|
|
959
990
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
960
|
-
var ContextMenuContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
991
|
+
var ContextMenuContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx24(
|
|
961
992
|
ContextMenuPrimitive.Content,
|
|
962
993
|
{
|
|
963
994
|
ref,
|
|
@@ -969,7 +1000,7 @@ var ContextMenuContent = React20.forwardRef(({ className, ...props }, ref) => /*
|
|
|
969
1000
|
}
|
|
970
1001
|
) }));
|
|
971
1002
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
972
|
-
var ContextMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
1003
|
+
var ContextMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
973
1004
|
ContextMenuPrimitive.Item,
|
|
974
1005
|
{
|
|
975
1006
|
ref,
|
|
@@ -982,7 +1013,7 @@ var ContextMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
982
1013
|
}
|
|
983
1014
|
));
|
|
984
1015
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
985
|
-
var ContextMenuCheckboxItem = React20.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */
|
|
1016
|
+
var ContextMenuCheckboxItem = React20.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
986
1017
|
ContextMenuPrimitive.CheckboxItem,
|
|
987
1018
|
{
|
|
988
1019
|
ref,
|
|
@@ -993,13 +1024,13 @@ var ContextMenuCheckboxItem = React20.forwardRef(({ className, children, checked
|
|
|
993
1024
|
checked,
|
|
994
1025
|
...props,
|
|
995
1026
|
children: [
|
|
996
|
-
/* @__PURE__ */
|
|
1027
|
+
/* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Check3, { className: "h-4 w-4" }) }) }),
|
|
997
1028
|
children
|
|
998
1029
|
]
|
|
999
1030
|
}
|
|
1000
1031
|
));
|
|
1001
1032
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1002
|
-
var ContextMenuRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1033
|
+
var ContextMenuRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1003
1034
|
ContextMenuPrimitive.RadioItem,
|
|
1004
1035
|
{
|
|
1005
1036
|
ref,
|
|
@@ -1009,13 +1040,13 @@ var ContextMenuRadioItem = React20.forwardRef(({ className, children, ...props }
|
|
|
1009
1040
|
),
|
|
1010
1041
|
...props,
|
|
1011
1042
|
children: [
|
|
1012
|
-
/* @__PURE__ */
|
|
1043
|
+
/* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Circle3, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1013
1044
|
children
|
|
1014
1045
|
]
|
|
1015
1046
|
}
|
|
1016
1047
|
));
|
|
1017
1048
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1018
|
-
var ContextMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
1049
|
+
var ContextMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
1019
1050
|
ContextMenuPrimitive.Label,
|
|
1020
1051
|
{
|
|
1021
1052
|
ref,
|
|
@@ -1024,7 +1055,7 @@ var ContextMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1024
1055
|
}
|
|
1025
1056
|
));
|
|
1026
1057
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1027
|
-
var ContextMenuSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1058
|
+
var ContextMenuSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
1028
1059
|
ContextMenuPrimitive.Separator,
|
|
1029
1060
|
{
|
|
1030
1061
|
ref,
|
|
@@ -1034,7 +1065,7 @@ var ContextMenuSeparator = React20.forwardRef(({ className, ...props }, ref) =>
|
|
|
1034
1065
|
));
|
|
1035
1066
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1036
1067
|
var ContextMenuShortcut = ({ className, ...props }) => {
|
|
1037
|
-
return /* @__PURE__ */
|
|
1068
|
+
return /* @__PURE__ */ jsx24("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1038
1069
|
};
|
|
1039
1070
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
1040
1071
|
|
|
@@ -1042,14 +1073,14 @@ ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
|
1042
1073
|
import * as React21 from "react";
|
|
1043
1074
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
1044
1075
|
import { Check as Check4, ChevronRight as ChevronRight3, Circle as Circle4 } from "lucide-react";
|
|
1045
|
-
import { jsx as
|
|
1046
|
-
var MenubarMenu = (props) => /* @__PURE__ */
|
|
1076
|
+
import { jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1077
|
+
var MenubarMenu = (props) => /* @__PURE__ */ jsx25(MenubarPrimitive.Menu, { ...props });
|
|
1047
1078
|
MenubarMenu.displayName = "MenubarMenu";
|
|
1048
1079
|
var MenubarGroup = MenubarPrimitive.Group;
|
|
1049
1080
|
var MenubarPortal = MenubarPrimitive.Portal;
|
|
1050
1081
|
var MenubarSub = MenubarPrimitive.Sub;
|
|
1051
1082
|
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
1052
|
-
var Menubar = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1083
|
+
var Menubar = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
1053
1084
|
MenubarPrimitive.Root,
|
|
1054
1085
|
{
|
|
1055
1086
|
ref,
|
|
@@ -1061,7 +1092,7 @@ var Menubar = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1061
1092
|
}
|
|
1062
1093
|
));
|
|
1063
1094
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
1064
|
-
var MenubarTrigger = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1095
|
+
var MenubarTrigger = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
1065
1096
|
MenubarPrimitive.Trigger,
|
|
1066
1097
|
{
|
|
1067
1098
|
ref,
|
|
@@ -1073,7 +1104,7 @@ var MenubarTrigger = React21.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
1073
1104
|
}
|
|
1074
1105
|
));
|
|
1075
1106
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
1076
|
-
var MenubarSubTrigger = React21.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */
|
|
1107
|
+
var MenubarSubTrigger = React21.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
|
|
1077
1108
|
MenubarPrimitive.SubTrigger,
|
|
1078
1109
|
{
|
|
1079
1110
|
ref,
|
|
@@ -1085,12 +1116,12 @@ var MenubarSubTrigger = React21.forwardRef(({ className, inset, children, ...pro
|
|
|
1085
1116
|
...props,
|
|
1086
1117
|
children: [
|
|
1087
1118
|
children,
|
|
1088
|
-
/* @__PURE__ */
|
|
1119
|
+
/* @__PURE__ */ jsx25(ChevronRight3, { className: "ml-auto h-4 w-4" })
|
|
1089
1120
|
]
|
|
1090
1121
|
}
|
|
1091
1122
|
));
|
|
1092
1123
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
1093
|
-
var MenubarSubContent = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1124
|
+
var MenubarSubContent = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
1094
1125
|
MenubarPrimitive.SubContent,
|
|
1095
1126
|
{
|
|
1096
1127
|
ref,
|
|
@@ -1102,7 +1133,7 @@ var MenubarSubContent = React21.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1102
1133
|
}
|
|
1103
1134
|
));
|
|
1104
1135
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
1105
|
-
var MenubarContent = React21.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */
|
|
1136
|
+
var MenubarContent = React21.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx25(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx25(
|
|
1106
1137
|
MenubarPrimitive.Content,
|
|
1107
1138
|
{
|
|
1108
1139
|
ref,
|
|
@@ -1117,7 +1148,7 @@ var MenubarContent = React21.forwardRef(({ className, align = "start", alignOffs
|
|
|
1117
1148
|
}
|
|
1118
1149
|
) }));
|
|
1119
1150
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
1120
|
-
var MenubarItem = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
1151
|
+
var MenubarItem = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
1121
1152
|
MenubarPrimitive.Item,
|
|
1122
1153
|
{
|
|
1123
1154
|
ref,
|
|
@@ -1130,7 +1161,7 @@ var MenubarItem = React21.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
1130
1161
|
}
|
|
1131
1162
|
));
|
|
1132
1163
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
1133
|
-
var MenubarCheckboxItem = React21.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */
|
|
1164
|
+
var MenubarCheckboxItem = React21.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs12(
|
|
1134
1165
|
MenubarPrimitive.CheckboxItem,
|
|
1135
1166
|
{
|
|
1136
1167
|
ref,
|
|
@@ -1141,13 +1172,13 @@ var MenubarCheckboxItem = React21.forwardRef(({ className, children, checked, ..
|
|
|
1141
1172
|
checked,
|
|
1142
1173
|
...props,
|
|
1143
1174
|
children: [
|
|
1144
|
-
/* @__PURE__ */
|
|
1175
|
+
/* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(Check4, { className: "h-4 w-4" }) }) }),
|
|
1145
1176
|
children
|
|
1146
1177
|
]
|
|
1147
1178
|
}
|
|
1148
1179
|
));
|
|
1149
1180
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
1150
|
-
var MenubarRadioItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1181
|
+
var MenubarRadioItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
|
|
1151
1182
|
MenubarPrimitive.RadioItem,
|
|
1152
1183
|
{
|
|
1153
1184
|
ref,
|
|
@@ -1157,13 +1188,13 @@ var MenubarRadioItem = React21.forwardRef(({ className, children, ...props }, re
|
|
|
1157
1188
|
),
|
|
1158
1189
|
...props,
|
|
1159
1190
|
children: [
|
|
1160
|
-
/* @__PURE__ */
|
|
1191
|
+
/* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(Circle4, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1161
1192
|
children
|
|
1162
1193
|
]
|
|
1163
1194
|
}
|
|
1164
1195
|
));
|
|
1165
1196
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
1166
|
-
var MenubarLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
1197
|
+
var MenubarLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
1167
1198
|
MenubarPrimitive.Label,
|
|
1168
1199
|
{
|
|
1169
1200
|
ref,
|
|
@@ -1172,7 +1203,7 @@ var MenubarLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
1172
1203
|
}
|
|
1173
1204
|
));
|
|
1174
1205
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
1175
|
-
var MenubarSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1206
|
+
var MenubarSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
1176
1207
|
MenubarPrimitive.Separator,
|
|
1177
1208
|
{
|
|
1178
1209
|
ref,
|
|
@@ -1182,14 +1213,14 @@ var MenubarSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
1182
1213
|
));
|
|
1183
1214
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
1184
1215
|
var MenubarShortcut = ({ className, ...props }) => {
|
|
1185
|
-
return /* @__PURE__ */
|
|
1216
|
+
return /* @__PURE__ */ jsx25("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1186
1217
|
};
|
|
1187
1218
|
MenubarShortcut.displayName = "MenubarShortcut";
|
|
1188
1219
|
|
|
1189
1220
|
// src/components/badge.tsx
|
|
1190
1221
|
import * as React22 from "react";
|
|
1191
1222
|
import { cva as cva5 } from "class-variance-authority";
|
|
1192
|
-
import { jsx as
|
|
1223
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1193
1224
|
var badgeVariants = cva5(
|
|
1194
1225
|
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
1195
1226
|
{
|
|
@@ -1207,22 +1238,22 @@ var badgeVariants = cva5(
|
|
|
1207
1238
|
}
|
|
1208
1239
|
);
|
|
1209
1240
|
var Badge = React22.forwardRef(
|
|
1210
|
-
({ className, variant, ...props }, ref) => /* @__PURE__ */
|
|
1241
|
+
({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx26("div", { ref, className: cn(badgeVariants({ variant }), className), ...props })
|
|
1211
1242
|
);
|
|
1212
1243
|
Badge.displayName = "Badge";
|
|
1213
1244
|
|
|
1214
1245
|
// src/components/table.tsx
|
|
1215
1246
|
import * as React23 from "react";
|
|
1216
|
-
import { jsx as
|
|
1247
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1217
1248
|
var Table = React23.forwardRef(
|
|
1218
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1249
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx27("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx27("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
1219
1250
|
);
|
|
1220
1251
|
Table.displayName = "Table";
|
|
1221
|
-
var TableHeader = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1252
|
+
var TableHeader = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27("thead", { ref, className: cn("[&_tr]:border-b [&_tr]:border-border-subtle", className), ...props }));
|
|
1222
1253
|
TableHeader.displayName = "TableHeader";
|
|
1223
|
-
var TableBody = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1254
|
+
var TableBody = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
|
|
1224
1255
|
TableBody.displayName = "TableBody";
|
|
1225
|
-
var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1256
|
+
var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
1226
1257
|
"tfoot",
|
|
1227
1258
|
{
|
|
1228
1259
|
ref,
|
|
@@ -1235,7 +1266,7 @@ var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1235
1266
|
));
|
|
1236
1267
|
TableFooter.displayName = "TableFooter";
|
|
1237
1268
|
var TableRow = React23.forwardRef(
|
|
1238
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1269
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
1239
1270
|
"tr",
|
|
1240
1271
|
{
|
|
1241
1272
|
ref,
|
|
@@ -1248,7 +1279,7 @@ var TableRow = React23.forwardRef(
|
|
|
1248
1279
|
)
|
|
1249
1280
|
);
|
|
1250
1281
|
TableRow.displayName = "TableRow";
|
|
1251
|
-
var TableHead = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1282
|
+
var TableHead = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
1252
1283
|
"th",
|
|
1253
1284
|
{
|
|
1254
1285
|
ref,
|
|
@@ -1260,7 +1291,7 @@ var TableHead = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1260
1291
|
}
|
|
1261
1292
|
));
|
|
1262
1293
|
TableHead.displayName = "TableHead";
|
|
1263
|
-
var TableCell = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1294
|
+
var TableCell = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
1264
1295
|
"td",
|
|
1265
1296
|
{
|
|
1266
1297
|
ref,
|
|
@@ -1269,22 +1300,22 @@ var TableCell = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1269
1300
|
}
|
|
1270
1301
|
));
|
|
1271
1302
|
TableCell.displayName = "TableCell";
|
|
1272
|
-
var TableCaption = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1303
|
+
var TableCaption = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27("caption", { ref, className: cn("mt-4 text-sm text-text-secondary", className), ...props }));
|
|
1273
1304
|
TableCaption.displayName = "TableCaption";
|
|
1274
1305
|
|
|
1275
1306
|
// src/components/skeleton.tsx
|
|
1276
1307
|
import * as React24 from "react";
|
|
1277
|
-
import { jsx as
|
|
1308
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1278
1309
|
var Skeleton = React24.forwardRef(
|
|
1279
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1310
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx28("div", { ref, className: cn("animate-pulse rounded-md bg-bg-secondary", className), ...props })
|
|
1280
1311
|
);
|
|
1281
1312
|
Skeleton.displayName = "Skeleton";
|
|
1282
1313
|
|
|
1283
1314
|
// src/components/avatar.tsx
|
|
1284
1315
|
import * as React25 from "react";
|
|
1285
1316
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
1286
|
-
import { jsx as
|
|
1287
|
-
var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1317
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1318
|
+
var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1288
1319
|
AvatarPrimitive.Root,
|
|
1289
1320
|
{
|
|
1290
1321
|
ref,
|
|
@@ -1293,9 +1324,9 @@ var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1293
1324
|
}
|
|
1294
1325
|
));
|
|
1295
1326
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
1296
|
-
var AvatarImage = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1327
|
+
var AvatarImage = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full", className), ...props }));
|
|
1297
1328
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
1298
|
-
var AvatarFallback = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1329
|
+
var AvatarFallback = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1299
1330
|
AvatarPrimitive.Fallback,
|
|
1300
1331
|
{
|
|
1301
1332
|
ref,
|
|
@@ -1311,8 +1342,8 @@ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
|
1311
1342
|
// src/components/separator.tsx
|
|
1312
1343
|
import * as React26 from "react";
|
|
1313
1344
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
1314
|
-
import { jsx as
|
|
1315
|
-
var Separator4 = React26.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */
|
|
1345
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1346
|
+
var Separator4 = React26.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1316
1347
|
SeparatorPrimitive.Root,
|
|
1317
1348
|
{
|
|
1318
1349
|
ref,
|
|
@@ -1331,15 +1362,15 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
1331
1362
|
// src/components/progress.tsx
|
|
1332
1363
|
import * as React27 from "react";
|
|
1333
1364
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
1334
|
-
import { jsx as
|
|
1335
|
-
var Progress = React27.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */
|
|
1365
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1366
|
+
var Progress = React27.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
1336
1367
|
ProgressPrimitive.Root,
|
|
1337
1368
|
{
|
|
1338
1369
|
ref,
|
|
1339
1370
|
value,
|
|
1340
1371
|
className: cn("relative h-4 w-full overflow-hidden rounded-full bg-bg-secondary", className),
|
|
1341
1372
|
...props,
|
|
1342
|
-
children: /* @__PURE__ */
|
|
1373
|
+
children: /* @__PURE__ */ jsx31(
|
|
1343
1374
|
ProgressPrimitive.Indicator,
|
|
1344
1375
|
{
|
|
1345
1376
|
className: "h-full w-full flex-1 bg-blue-400 transition-all",
|
|
@@ -1357,9 +1388,9 @@ var AspectRatio = AspectRatioPrimitive.Root;
|
|
|
1357
1388
|
// src/components/tabs.tsx
|
|
1358
1389
|
import * as React28 from "react";
|
|
1359
1390
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
1360
|
-
import { jsx as
|
|
1391
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1361
1392
|
var Tabs = TabsPrimitive.Root;
|
|
1362
|
-
var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1393
|
+
var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
|
|
1363
1394
|
TabsPrimitive.List,
|
|
1364
1395
|
{
|
|
1365
1396
|
ref,
|
|
@@ -1371,7 +1402,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1371
1402
|
}
|
|
1372
1403
|
));
|
|
1373
1404
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
1374
|
-
var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1405
|
+
var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
|
|
1375
1406
|
TabsPrimitive.Trigger,
|
|
1376
1407
|
{
|
|
1377
1408
|
ref,
|
|
@@ -1383,7 +1414,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1383
1414
|
}
|
|
1384
1415
|
));
|
|
1385
1416
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
1386
|
-
var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1417
|
+
var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
|
|
1387
1418
|
TabsPrimitive.Content,
|
|
1388
1419
|
{
|
|
1389
1420
|
ref,
|
|
@@ -1400,9 +1431,9 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
|
1400
1431
|
import * as React29 from "react";
|
|
1401
1432
|
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
1402
1433
|
import { ChevronDown as ChevronDown2 } from "lucide-react";
|
|
1403
|
-
import { jsx as
|
|
1434
|
+
import { jsx as jsx33, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1404
1435
|
var Accordion = AccordionPrimitive.Root;
|
|
1405
|
-
var AccordionItem = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1436
|
+
var AccordionItem = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
1406
1437
|
AccordionPrimitive.Item,
|
|
1407
1438
|
{
|
|
1408
1439
|
ref,
|
|
@@ -1411,7 +1442,7 @@ var AccordionItem = React29.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1411
1442
|
}
|
|
1412
1443
|
));
|
|
1413
1444
|
AccordionItem.displayName = AccordionPrimitive.Item.displayName;
|
|
1414
|
-
var AccordionTrigger = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1445
|
+
var AccordionTrigger = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx33(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs13(
|
|
1415
1446
|
AccordionPrimitive.Trigger,
|
|
1416
1447
|
{
|
|
1417
1448
|
ref,
|
|
@@ -1422,12 +1453,12 @@ var AccordionTrigger = React29.forwardRef(({ className, children, ...props }, re
|
|
|
1422
1453
|
...props,
|
|
1423
1454
|
children: [
|
|
1424
1455
|
children,
|
|
1425
|
-
/* @__PURE__ */
|
|
1456
|
+
/* @__PURE__ */ jsx33(ChevronDown2, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
1426
1457
|
]
|
|
1427
1458
|
}
|
|
1428
1459
|
) }));
|
|
1429
1460
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
1430
|
-
var AccordionContent = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1461
|
+
var AccordionContent = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
1431
1462
|
AccordionPrimitive.Content,
|
|
1432
1463
|
{
|
|
1433
1464
|
ref,
|
|
@@ -1435,7 +1466,7 @@ var AccordionContent = React29.forwardRef(({ className, children, ...props }, re
|
|
|
1435
1466
|
"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
|
|
1436
1467
|
),
|
|
1437
1468
|
...props,
|
|
1438
|
-
children: /* @__PURE__ */
|
|
1469
|
+
children: /* @__PURE__ */ jsx33("div", { className: cn("pb-4 pt-0", className), children })
|
|
1439
1470
|
}
|
|
1440
1471
|
));
|
|
1441
1472
|
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
@@ -1443,10 +1474,10 @@ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
|
1443
1474
|
// src/components/collapsible.tsx
|
|
1444
1475
|
import * as React30 from "react";
|
|
1445
1476
|
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
1446
|
-
import { jsx as
|
|
1477
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1447
1478
|
var Collapsible = CollapsiblePrimitive.Root;
|
|
1448
1479
|
var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
1449
|
-
var CollapsibleContent2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1480
|
+
var CollapsibleContent2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
1450
1481
|
CollapsiblePrimitive.CollapsibleContent,
|
|
1451
1482
|
{
|
|
1452
1483
|
ref,
|
|
@@ -1462,22 +1493,22 @@ CollapsibleContent2.displayName = CollapsiblePrimitive.CollapsibleContent.displa
|
|
|
1462
1493
|
// src/components/scroll-area.tsx
|
|
1463
1494
|
import * as React31 from "react";
|
|
1464
1495
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
1465
|
-
import { jsx as
|
|
1466
|
-
var ScrollArea = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1496
|
+
import { jsx as jsx35, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1497
|
+
var ScrollArea = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
|
|
1467
1498
|
ScrollAreaPrimitive.Root,
|
|
1468
1499
|
{
|
|
1469
1500
|
ref,
|
|
1470
1501
|
className: cn("relative overflow-hidden", className),
|
|
1471
1502
|
...props,
|
|
1472
1503
|
children: [
|
|
1473
|
-
/* @__PURE__ */
|
|
1474
|
-
/* @__PURE__ */
|
|
1475
|
-
/* @__PURE__ */
|
|
1504
|
+
/* @__PURE__ */ jsx35(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
1505
|
+
/* @__PURE__ */ jsx35(ScrollBar, {}),
|
|
1506
|
+
/* @__PURE__ */ jsx35(ScrollAreaPrimitive.Corner, {})
|
|
1476
1507
|
]
|
|
1477
1508
|
}
|
|
1478
1509
|
));
|
|
1479
1510
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
1480
|
-
var ScrollBar = React31.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */
|
|
1511
|
+
var ScrollBar = React31.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
1481
1512
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
1482
1513
|
{
|
|
1483
1514
|
ref,
|
|
@@ -1489,7 +1520,7 @@ var ScrollBar = React31.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
1489
1520
|
className
|
|
1490
1521
|
),
|
|
1491
1522
|
...props,
|
|
1492
|
-
children: /* @__PURE__ */
|
|
1523
|
+
children: /* @__PURE__ */ jsx35(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border-default" })
|
|
1493
1524
|
}
|
|
1494
1525
|
));
|
|
1495
1526
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
@@ -1497,7 +1528,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
|
1497
1528
|
// src/components/alert.tsx
|
|
1498
1529
|
import * as React32 from "react";
|
|
1499
1530
|
import { cva as cva6 } from "class-variance-authority";
|
|
1500
|
-
import { jsx as
|
|
1531
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
1501
1532
|
var alertVariants = cva6(
|
|
1502
1533
|
"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4",
|
|
1503
1534
|
{
|
|
@@ -1512,7 +1543,7 @@ var alertVariants = cva6(
|
|
|
1512
1543
|
defaultVariants: { variant: "default" }
|
|
1513
1544
|
}
|
|
1514
1545
|
);
|
|
1515
|
-
var Alert = React32.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */
|
|
1546
|
+
var Alert = React32.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx36(
|
|
1516
1547
|
"div",
|
|
1517
1548
|
{
|
|
1518
1549
|
ref,
|
|
@@ -1522,7 +1553,7 @@ var Alert = React32.forwardRef(({ className, variant, ...props }, ref) => /* @__
|
|
|
1522
1553
|
}
|
|
1523
1554
|
));
|
|
1524
1555
|
Alert.displayName = "Alert";
|
|
1525
|
-
var AlertTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1556
|
+
var AlertTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
|
|
1526
1557
|
"h5",
|
|
1527
1558
|
{
|
|
1528
1559
|
ref,
|
|
@@ -1531,7 +1562,7 @@ var AlertTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
1531
1562
|
}
|
|
1532
1563
|
));
|
|
1533
1564
|
AlertTitle.displayName = "AlertTitle";
|
|
1534
|
-
var AlertDescription = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1565
|
+
var AlertDescription = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
|
|
1535
1566
|
"div",
|
|
1536
1567
|
{
|
|
1537
1568
|
ref,
|
|
@@ -1545,11 +1576,11 @@ AlertDescription.displayName = "AlertDescription";
|
|
|
1545
1576
|
import * as React33 from "react";
|
|
1546
1577
|
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
1547
1578
|
import { ChevronRight as ChevronRight4, MoreHorizontal } from "lucide-react";
|
|
1548
|
-
import { jsx as
|
|
1549
|
-
var Breadcrumb = React33.forwardRef(({ ...props }, ref) => /* @__PURE__ */
|
|
1579
|
+
import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1580
|
+
var Breadcrumb = React33.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx37("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
1550
1581
|
Breadcrumb.displayName = "Breadcrumb";
|
|
1551
1582
|
var BreadcrumbList = React33.forwardRef(
|
|
1552
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1583
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
1553
1584
|
"ol",
|
|
1554
1585
|
{
|
|
1555
1586
|
ref,
|
|
@@ -1563,12 +1594,12 @@ var BreadcrumbList = React33.forwardRef(
|
|
|
1563
1594
|
);
|
|
1564
1595
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
1565
1596
|
var BreadcrumbItem = React33.forwardRef(
|
|
1566
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1597
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx37("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
1567
1598
|
);
|
|
1568
1599
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
1569
1600
|
var BreadcrumbLink = React33.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
1570
1601
|
const Comp = asChild ? Slot2 : "a";
|
|
1571
|
-
return /* @__PURE__ */
|
|
1602
|
+
return /* @__PURE__ */ jsx37(
|
|
1572
1603
|
Comp,
|
|
1573
1604
|
{
|
|
1574
1605
|
ref,
|
|
@@ -1579,7 +1610,7 @@ var BreadcrumbLink = React33.forwardRef(({ asChild, className, ...props }, ref)
|
|
|
1579
1610
|
});
|
|
1580
1611
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
1581
1612
|
var BreadcrumbPage = React33.forwardRef(
|
|
1582
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1613
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
1583
1614
|
"span",
|
|
1584
1615
|
{
|
|
1585
1616
|
ref,
|
|
@@ -1596,18 +1627,18 @@ var BreadcrumbSeparator = ({
|
|
|
1596
1627
|
children,
|
|
1597
1628
|
className,
|
|
1598
1629
|
...props
|
|
1599
|
-
}) => /* @__PURE__ */
|
|
1630
|
+
}) => /* @__PURE__ */ jsx37(
|
|
1600
1631
|
"li",
|
|
1601
1632
|
{
|
|
1602
1633
|
role: "presentation",
|
|
1603
1634
|
"aria-hidden": "true",
|
|
1604
1635
|
className: cn("[&>svg]:h-4 [&>svg]:w-4", className),
|
|
1605
1636
|
...props,
|
|
1606
|
-
children: children ?? /* @__PURE__ */
|
|
1637
|
+
children: children ?? /* @__PURE__ */ jsx37(ChevronRight4, {})
|
|
1607
1638
|
}
|
|
1608
1639
|
);
|
|
1609
1640
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
1610
|
-
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */
|
|
1641
|
+
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
|
|
1611
1642
|
"span",
|
|
1612
1643
|
{
|
|
1613
1644
|
role: "presentation",
|
|
@@ -1615,8 +1646,8 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs14(
|
|
|
1615
1646
|
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
1616
1647
|
...props,
|
|
1617
1648
|
children: [
|
|
1618
|
-
/* @__PURE__ */
|
|
1619
|
-
/* @__PURE__ */
|
|
1649
|
+
/* @__PURE__ */ jsx37(MoreHorizontal, { className: "h-4 w-4" }),
|
|
1650
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "More" })
|
|
1620
1651
|
]
|
|
1621
1652
|
}
|
|
1622
1653
|
);
|
|
@@ -1625,8 +1656,8 @@ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
|
|
|
1625
1656
|
// src/components/pagination.tsx
|
|
1626
1657
|
import * as React34 from "react";
|
|
1627
1658
|
import { ChevronLeft, ChevronRight as ChevronRight5, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
|
|
1628
|
-
import { jsx as
|
|
1629
|
-
var Pagination = ({ className, ...props }) => /* @__PURE__ */
|
|
1659
|
+
import { jsx as jsx38, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1660
|
+
var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx38(
|
|
1630
1661
|
"nav",
|
|
1631
1662
|
{
|
|
1632
1663
|
role: "navigation",
|
|
@@ -1637,14 +1668,14 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx37(
|
|
|
1637
1668
|
);
|
|
1638
1669
|
Pagination.displayName = "Pagination";
|
|
1639
1670
|
var PaginationContent = React34.forwardRef(
|
|
1640
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1671
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx38("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
1641
1672
|
);
|
|
1642
1673
|
PaginationContent.displayName = "PaginationContent";
|
|
1643
1674
|
var PaginationItem = React34.forwardRef(
|
|
1644
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1675
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx38("li", { ref, className: cn("", className), ...props })
|
|
1645
1676
|
);
|
|
1646
1677
|
PaginationItem.displayName = "PaginationItem";
|
|
1647
|
-
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */
|
|
1678
|
+
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ jsx38(
|
|
1648
1679
|
"a",
|
|
1649
1680
|
{
|
|
1650
1681
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -1656,7 +1687,7 @@ var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @_
|
|
|
1656
1687
|
}
|
|
1657
1688
|
);
|
|
1658
1689
|
PaginationLink.displayName = "PaginationLink";
|
|
1659
|
-
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */
|
|
1690
|
+
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs16(
|
|
1660
1691
|
PaginationLink,
|
|
1661
1692
|
{
|
|
1662
1693
|
"aria-label": "Go to previous page",
|
|
@@ -1664,13 +1695,13 @@ var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
|
|
|
1664
1695
|
className: cn("gap-1 pl-2.5", className),
|
|
1665
1696
|
...props,
|
|
1666
1697
|
children: [
|
|
1667
|
-
/* @__PURE__ */
|
|
1668
|
-
/* @__PURE__ */
|
|
1698
|
+
/* @__PURE__ */ jsx38(ChevronLeft, { className: "h-4 w-4" }),
|
|
1699
|
+
/* @__PURE__ */ jsx38("span", { children: "Previous" })
|
|
1669
1700
|
]
|
|
1670
1701
|
}
|
|
1671
1702
|
);
|
|
1672
1703
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
1673
|
-
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */
|
|
1704
|
+
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs16(
|
|
1674
1705
|
PaginationLink,
|
|
1675
1706
|
{
|
|
1676
1707
|
"aria-label": "Go to next page",
|
|
@@ -1678,21 +1709,21 @@ var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
|
|
|
1678
1709
|
className: cn("gap-1 pr-2.5", className),
|
|
1679
1710
|
...props,
|
|
1680
1711
|
children: [
|
|
1681
|
-
/* @__PURE__ */
|
|
1682
|
-
/* @__PURE__ */
|
|
1712
|
+
/* @__PURE__ */ jsx38("span", { children: "Next" }),
|
|
1713
|
+
/* @__PURE__ */ jsx38(ChevronRight5, { className: "h-4 w-4" })
|
|
1683
1714
|
]
|
|
1684
1715
|
}
|
|
1685
1716
|
);
|
|
1686
1717
|
PaginationNext.displayName = "PaginationNext";
|
|
1687
|
-
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */
|
|
1718
|
+
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs16(
|
|
1688
1719
|
"span",
|
|
1689
1720
|
{
|
|
1690
1721
|
"aria-hidden": true,
|
|
1691
1722
|
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
1692
1723
|
...props,
|
|
1693
1724
|
children: [
|
|
1694
|
-
/* @__PURE__ */
|
|
1695
|
-
/* @__PURE__ */
|
|
1725
|
+
/* @__PURE__ */ jsx38(MoreHorizontal2, { className: "h-4 w-4" }),
|
|
1726
|
+
/* @__PURE__ */ jsx38("span", { className: "sr-only", children: "More pages" })
|
|
1696
1727
|
]
|
|
1697
1728
|
}
|
|
1698
1729
|
);
|
|
@@ -1702,8 +1733,8 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
|
1702
1733
|
import * as React35 from "react";
|
|
1703
1734
|
import { Command as CommandPrimitive } from "cmdk";
|
|
1704
1735
|
import { Search } from "lucide-react";
|
|
1705
|
-
import { jsx as
|
|
1706
|
-
var Command = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1736
|
+
import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1737
|
+
var Command = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1707
1738
|
CommandPrimitive,
|
|
1708
1739
|
{
|
|
1709
1740
|
ref,
|
|
@@ -1715,10 +1746,10 @@ var Command = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1715
1746
|
}
|
|
1716
1747
|
));
|
|
1717
1748
|
Command.displayName = CommandPrimitive.displayName;
|
|
1718
|
-
var CommandDialog = ({ children, ...props }) => /* @__PURE__ */
|
|
1719
|
-
var CommandInput = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1720
|
-
/* @__PURE__ */
|
|
1721
|
-
/* @__PURE__ */
|
|
1749
|
+
var CommandDialog = ({ children, ...props }) => /* @__PURE__ */ jsx39(Dialog, { ...props, children: /* @__PURE__ */ jsx39(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx39(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-text-tertiary [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
|
|
1750
|
+
var CommandInput = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs17("div", { className: "flex items-center border-b border-border-subtle px-3", "cmdk-input-wrapper": "", children: [
|
|
1751
|
+
/* @__PURE__ */ jsx39(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
1752
|
+
/* @__PURE__ */ jsx39(
|
|
1722
1753
|
CommandPrimitive.Input,
|
|
1723
1754
|
{
|
|
1724
1755
|
ref,
|
|
@@ -1731,7 +1762,7 @@ var CommandInput = React35.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1731
1762
|
)
|
|
1732
1763
|
] }));
|
|
1733
1764
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
1734
|
-
var CommandList = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1765
|
+
var CommandList = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1735
1766
|
CommandPrimitive.List,
|
|
1736
1767
|
{
|
|
1737
1768
|
ref,
|
|
@@ -1740,7 +1771,7 @@ var CommandList = React35.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1740
1771
|
}
|
|
1741
1772
|
));
|
|
1742
1773
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
1743
|
-
var CommandEmpty = React35.forwardRef((props, ref) => /* @__PURE__ */
|
|
1774
|
+
var CommandEmpty = React35.forwardRef((props, ref) => /* @__PURE__ */ jsx39(
|
|
1744
1775
|
CommandPrimitive.Empty,
|
|
1745
1776
|
{
|
|
1746
1777
|
ref,
|
|
@@ -1749,7 +1780,7 @@ var CommandEmpty = React35.forwardRef((props, ref) => /* @__PURE__ */ jsx38(
|
|
|
1749
1780
|
}
|
|
1750
1781
|
));
|
|
1751
1782
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
1752
|
-
var CommandGroup = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1783
|
+
var CommandGroup = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1753
1784
|
CommandPrimitive.Group,
|
|
1754
1785
|
{
|
|
1755
1786
|
ref,
|
|
@@ -1761,7 +1792,7 @@ var CommandGroup = React35.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1761
1792
|
}
|
|
1762
1793
|
));
|
|
1763
1794
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
1764
|
-
var CommandSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1795
|
+
var CommandSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1765
1796
|
CommandPrimitive.Separator,
|
|
1766
1797
|
{
|
|
1767
1798
|
ref,
|
|
@@ -1770,7 +1801,7 @@ var CommandSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
1770
1801
|
}
|
|
1771
1802
|
));
|
|
1772
1803
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
1773
|
-
var CommandItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1804
|
+
var CommandItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1774
1805
|
CommandPrimitive.Item,
|
|
1775
1806
|
{
|
|
1776
1807
|
ref,
|
|
@@ -1782,7 +1813,7 @@ var CommandItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1782
1813
|
}
|
|
1783
1814
|
));
|
|
1784
1815
|
CommandItem.displayName = CommandPrimitive.Item.displayName;
|
|
1785
|
-
var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */
|
|
1816
|
+
var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx39(
|
|
1786
1817
|
"span",
|
|
1787
1818
|
{
|
|
1788
1819
|
className: cn("ml-auto text-xs tracking-widest text-text-tertiary", className),
|
|
@@ -1796,8 +1827,8 @@ import * as React36 from "react";
|
|
|
1796
1827
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
1797
1828
|
import { cva as cva7 } from "class-variance-authority";
|
|
1798
1829
|
import { ChevronDown as ChevronDown3 } from "lucide-react";
|
|
1799
|
-
import { jsx as
|
|
1800
|
-
var NavigationMenu = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1830
|
+
import { jsx as jsx40, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1831
|
+
var NavigationMenu = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(
|
|
1801
1832
|
NavigationMenuPrimitive.Root,
|
|
1802
1833
|
{
|
|
1803
1834
|
ref,
|
|
@@ -1805,12 +1836,12 @@ var NavigationMenu = React36.forwardRef(({ className, children, ...props }, ref)
|
|
|
1805
1836
|
...props,
|
|
1806
1837
|
children: [
|
|
1807
1838
|
children,
|
|
1808
|
-
/* @__PURE__ */
|
|
1839
|
+
/* @__PURE__ */ jsx40(NavigationMenuViewport, {})
|
|
1809
1840
|
]
|
|
1810
1841
|
}
|
|
1811
1842
|
));
|
|
1812
1843
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
1813
|
-
var NavigationMenuList = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1844
|
+
var NavigationMenuList = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
1814
1845
|
NavigationMenuPrimitive.List,
|
|
1815
1846
|
{
|
|
1816
1847
|
ref,
|
|
@@ -1823,7 +1854,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
1823
1854
|
var navigationMenuTriggerStyle = cva7(
|
|
1824
1855
|
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-bg-elevated px-4 py-2 text-sm font-medium transition-colors hover:bg-bg-secondary hover:text-text-primary focus:bg-bg-secondary focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-bg-secondary"
|
|
1825
1856
|
);
|
|
1826
|
-
var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
1857
|
+
var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(
|
|
1827
1858
|
NavigationMenuPrimitive.Trigger,
|
|
1828
1859
|
{
|
|
1829
1860
|
ref,
|
|
@@ -1832,7 +1863,7 @@ var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props
|
|
|
1832
1863
|
children: [
|
|
1833
1864
|
children,
|
|
1834
1865
|
" ",
|
|
1835
|
-
/* @__PURE__ */
|
|
1866
|
+
/* @__PURE__ */ jsx40(
|
|
1836
1867
|
ChevronDown3,
|
|
1837
1868
|
{
|
|
1838
1869
|
className: "relative top-[1px] ml-1 h-4 w-4 transition duration-200 group-data-[state=open]:rotate-180",
|
|
@@ -1843,7 +1874,7 @@ var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props
|
|
|
1843
1874
|
}
|
|
1844
1875
|
));
|
|
1845
1876
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
1846
|
-
var NavigationMenuContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1877
|
+
var NavigationMenuContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
1847
1878
|
NavigationMenuPrimitive.Content,
|
|
1848
1879
|
{
|
|
1849
1880
|
ref,
|
|
@@ -1856,7 +1887,7 @@ var NavigationMenuContent = React36.forwardRef(({ className, ...props }, ref) =>
|
|
|
1856
1887
|
));
|
|
1857
1888
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
1858
1889
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
1859
|
-
var NavigationMenuViewport = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1890
|
+
var NavigationMenuViewport = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx40(
|
|
1860
1891
|
NavigationMenuPrimitive.Viewport,
|
|
1861
1892
|
{
|
|
1862
1893
|
ref,
|
|
@@ -1868,7 +1899,7 @@ var NavigationMenuViewport = React36.forwardRef(({ className, ...props }, ref) =
|
|
|
1868
1899
|
}
|
|
1869
1900
|
) }));
|
|
1870
1901
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
1871
|
-
var NavigationMenuIndicator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1902
|
+
var NavigationMenuIndicator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
1872
1903
|
NavigationMenuPrimitive.Indicator,
|
|
1873
1904
|
{
|
|
1874
1905
|
ref,
|
|
@@ -1877,7 +1908,7 @@ var NavigationMenuIndicator = React36.forwardRef(({ className, ...props }, ref)
|
|
|
1877
1908
|
className
|
|
1878
1909
|
),
|
|
1879
1910
|
...props,
|
|
1880
|
-
children: /* @__PURE__ */
|
|
1911
|
+
children: /* @__PURE__ */ jsx40("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border-subtle shadow-md" })
|
|
1881
1912
|
}
|
|
1882
1913
|
));
|
|
1883
1914
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
@@ -1940,10 +1971,10 @@ function useTheme() {
|
|
|
1940
1971
|
|
|
1941
1972
|
// src/components/sonner.tsx
|
|
1942
1973
|
import { Toaster as SonnerToaster, toast } from "sonner";
|
|
1943
|
-
import { jsx as
|
|
1974
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
1944
1975
|
var Toaster = ({ ...props }) => {
|
|
1945
1976
|
const { resolvedTheme } = useTheme();
|
|
1946
|
-
return /* @__PURE__ */
|
|
1977
|
+
return /* @__PURE__ */ jsx41(
|
|
1947
1978
|
SonnerToaster,
|
|
1948
1979
|
{
|
|
1949
1980
|
theme: resolvedTheme,
|
|
@@ -1963,7 +1994,7 @@ var Toaster = ({ ...props }) => {
|
|
|
1963
1994
|
|
|
1964
1995
|
// src/theme/ThemeToggle.tsx
|
|
1965
1996
|
import { Sun, Moon, Monitor } from "lucide-react";
|
|
1966
|
-
import { jsx as
|
|
1997
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
1967
1998
|
var icons = {
|
|
1968
1999
|
light: Sun,
|
|
1969
2000
|
dark: Moon,
|
|
@@ -1977,14 +2008,14 @@ var nextTheme = {
|
|
|
1977
2008
|
function ThemeToggle() {
|
|
1978
2009
|
const { theme, setTheme } = useTheme();
|
|
1979
2010
|
const Icon = icons[theme];
|
|
1980
|
-
return /* @__PURE__ */
|
|
2011
|
+
return /* @__PURE__ */ jsx42(
|
|
1981
2012
|
"button",
|
|
1982
2013
|
{
|
|
1983
2014
|
onClick: () => setTheme(nextTheme[theme]),
|
|
1984
2015
|
className: "p-2 rounded-lg text-text-secondary hover:bg-bg-secondary transition-colors",
|
|
1985
2016
|
"aria-label": `Switch to ${nextTheme[theme]} theme`,
|
|
1986
2017
|
title: `Theme: ${theme}`,
|
|
1987
|
-
children: /* @__PURE__ */
|
|
2018
|
+
children: /* @__PURE__ */ jsx42(Icon, { className: "w-4 h-4" })
|
|
1988
2019
|
}
|
|
1989
2020
|
);
|
|
1990
2021
|
}
|
|
@@ -1992,9 +2023,9 @@ function ThemeToggle() {
|
|
|
1992
2023
|
// src/components/calendar.tsx
|
|
1993
2024
|
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6 } from "lucide-react";
|
|
1994
2025
|
import { DayPicker } from "react-day-picker";
|
|
1995
|
-
import { jsx as
|
|
2026
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
1996
2027
|
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
1997
|
-
return /* @__PURE__ */
|
|
2028
|
+
return /* @__PURE__ */ jsx43(
|
|
1998
2029
|
DayPicker,
|
|
1999
2030
|
{
|
|
2000
2031
|
showOutsideDays,
|
|
@@ -2037,7 +2068,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
2037
2068
|
...classNames
|
|
2038
2069
|
},
|
|
2039
2070
|
components: {
|
|
2040
|
-
Chevron: ({ className: cls, orientation, ...rest }) => orientation === "left" ? /* @__PURE__ */
|
|
2071
|
+
Chevron: ({ className: cls, orientation, ...rest }) => orientation === "left" ? /* @__PURE__ */ jsx43(ChevronLeft2, { className: cn("size-4", cls), ...rest }) : /* @__PURE__ */ jsx43(ChevronRight6, { className: cn("size-4", cls), ...rest })
|
|
2041
2072
|
},
|
|
2042
2073
|
...props
|
|
2043
2074
|
}
|
|
@@ -2048,7 +2079,7 @@ Calendar.displayName = "Calendar";
|
|
|
2048
2079
|
// src/components/date-picker.tsx
|
|
2049
2080
|
import * as React37 from "react";
|
|
2050
2081
|
import { Calendar as CalendarIcon } from "lucide-react";
|
|
2051
|
-
import { jsx as
|
|
2082
|
+
import { jsx as jsx44, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2052
2083
|
var DEFAULT_FORMAT = {
|
|
2053
2084
|
year: "numeric",
|
|
2054
2085
|
month: "long",
|
|
@@ -2062,8 +2093,8 @@ function DatePicker({
|
|
|
2062
2093
|
className
|
|
2063
2094
|
}) {
|
|
2064
2095
|
const [open, setOpen] = React37.useState(false);
|
|
2065
|
-
return /* @__PURE__ */
|
|
2066
|
-
/* @__PURE__ */
|
|
2096
|
+
return /* @__PURE__ */ jsxs19(Popover, { open, onOpenChange: setOpen, children: [
|
|
2097
|
+
/* @__PURE__ */ jsx44(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs19(
|
|
2067
2098
|
Button,
|
|
2068
2099
|
{
|
|
2069
2100
|
type: "button",
|
|
@@ -2071,12 +2102,12 @@ function DatePicker({
|
|
|
2071
2102
|
disabled,
|
|
2072
2103
|
className: cn("w-[240px] justify-start gap-2 text-left font-normal", !value && "text-text-tertiary", className),
|
|
2073
2104
|
children: [
|
|
2074
|
-
/* @__PURE__ */
|
|
2105
|
+
/* @__PURE__ */ jsx44(CalendarIcon, { className: "size-4 shrink-0" }),
|
|
2075
2106
|
value ? value.toLocaleDateString(void 0, DEFAULT_FORMAT) : placeholder
|
|
2076
2107
|
]
|
|
2077
2108
|
}
|
|
2078
2109
|
) }),
|
|
2079
|
-
/* @__PURE__ */
|
|
2110
|
+
/* @__PURE__ */ jsx44(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx44(
|
|
2080
2111
|
Calendar,
|
|
2081
2112
|
{
|
|
2082
2113
|
mode: "single",
|
|
@@ -2096,7 +2127,7 @@ DatePicker.displayName = "DatePicker";
|
|
|
2096
2127
|
import * as React38 from "react";
|
|
2097
2128
|
import useEmblaCarousel from "embla-carousel-react";
|
|
2098
2129
|
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
2099
|
-
import { jsx as
|
|
2130
|
+
import { jsx as jsx45, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2100
2131
|
var CarouselContext = React38.createContext(null);
|
|
2101
2132
|
function useCarousel() {
|
|
2102
2133
|
const context = React38.useContext(CarouselContext);
|
|
@@ -2143,7 +2174,7 @@ var Carousel = React38.forwardRef(({ orientation = "horizontal", opts, setApi, p
|
|
|
2143
2174
|
api.off("select", onSelect);
|
|
2144
2175
|
};
|
|
2145
2176
|
}, [api, onSelect]);
|
|
2146
|
-
return /* @__PURE__ */
|
|
2177
|
+
return /* @__PURE__ */ jsx45(
|
|
2147
2178
|
CarouselContext.Provider,
|
|
2148
2179
|
{
|
|
2149
2180
|
value: {
|
|
@@ -2156,7 +2187,7 @@ var Carousel = React38.forwardRef(({ orientation = "horizontal", opts, setApi, p
|
|
|
2156
2187
|
canScrollPrev,
|
|
2157
2188
|
canScrollNext
|
|
2158
2189
|
},
|
|
2159
|
-
children: /* @__PURE__ */
|
|
2190
|
+
children: /* @__PURE__ */ jsx45(
|
|
2160
2191
|
"div",
|
|
2161
2192
|
{
|
|
2162
2193
|
ref,
|
|
@@ -2175,7 +2206,7 @@ Carousel.displayName = "Carousel";
|
|
|
2175
2206
|
var CarouselContent = React38.forwardRef(
|
|
2176
2207
|
({ className, ...props }, ref) => {
|
|
2177
2208
|
const { carouselRef, orientation } = useCarousel();
|
|
2178
|
-
return /* @__PURE__ */
|
|
2209
|
+
return /* @__PURE__ */ jsx45("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx45(
|
|
2179
2210
|
"div",
|
|
2180
2211
|
{
|
|
2181
2212
|
ref,
|
|
@@ -2189,7 +2220,7 @@ CarouselContent.displayName = "CarouselContent";
|
|
|
2189
2220
|
var CarouselItem = React38.forwardRef(
|
|
2190
2221
|
({ className, ...props }, ref) => {
|
|
2191
2222
|
const { orientation } = useCarousel();
|
|
2192
|
-
return /* @__PURE__ */
|
|
2223
|
+
return /* @__PURE__ */ jsx45(
|
|
2193
2224
|
"div",
|
|
2194
2225
|
{
|
|
2195
2226
|
ref,
|
|
@@ -2208,7 +2239,7 @@ var CarouselItem = React38.forwardRef(
|
|
|
2208
2239
|
CarouselItem.displayName = "CarouselItem";
|
|
2209
2240
|
var CarouselPrevious = React38.forwardRef(({ className, ...props }, ref) => {
|
|
2210
2241
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
2211
|
-
return /* @__PURE__ */
|
|
2242
|
+
return /* @__PURE__ */ jsxs20(
|
|
2212
2243
|
"button",
|
|
2213
2244
|
{
|
|
2214
2245
|
ref,
|
|
@@ -2223,8 +2254,8 @@ var CarouselPrevious = React38.forwardRef(({ className, ...props }, ref) => {
|
|
|
2223
2254
|
onClick: scrollPrev,
|
|
2224
2255
|
...props,
|
|
2225
2256
|
children: [
|
|
2226
|
-
/* @__PURE__ */
|
|
2227
|
-
/* @__PURE__ */
|
|
2257
|
+
/* @__PURE__ */ jsx45(ArrowLeft, { className: "size-4" }),
|
|
2258
|
+
/* @__PURE__ */ jsx45("span", { className: "sr-only", children: "Previous slide" })
|
|
2228
2259
|
]
|
|
2229
2260
|
}
|
|
2230
2261
|
);
|
|
@@ -2232,7 +2263,7 @@ var CarouselPrevious = React38.forwardRef(({ className, ...props }, ref) => {
|
|
|
2232
2263
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
2233
2264
|
var CarouselNext = React38.forwardRef(({ className, ...props }, ref) => {
|
|
2234
2265
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
2235
|
-
return /* @__PURE__ */
|
|
2266
|
+
return /* @__PURE__ */ jsxs20(
|
|
2236
2267
|
"button",
|
|
2237
2268
|
{
|
|
2238
2269
|
ref,
|
|
@@ -2247,8 +2278,8 @@ var CarouselNext = React38.forwardRef(({ className, ...props }, ref) => {
|
|
|
2247
2278
|
onClick: scrollNext,
|
|
2248
2279
|
...props,
|
|
2249
2280
|
children: [
|
|
2250
|
-
/* @__PURE__ */
|
|
2251
|
-
/* @__PURE__ */
|
|
2281
|
+
/* @__PURE__ */ jsx45(ArrowRight, { className: "size-4" }),
|
|
2282
|
+
/* @__PURE__ */ jsx45("span", { className: "sr-only", children: "Next slide" })
|
|
2252
2283
|
]
|
|
2253
2284
|
}
|
|
2254
2285
|
);
|
|
@@ -2264,11 +2295,11 @@ import {
|
|
|
2264
2295
|
useFormContext,
|
|
2265
2296
|
useFormState
|
|
2266
2297
|
} from "react-hook-form";
|
|
2267
|
-
import { jsx as
|
|
2298
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
2268
2299
|
var Form = FormProvider;
|
|
2269
2300
|
var FormFieldContext = React39.createContext(null);
|
|
2270
2301
|
function FormField({ ...props }) {
|
|
2271
|
-
return /* @__PURE__ */
|
|
2302
|
+
return /* @__PURE__ */ jsx46(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx46(Controller, { ...props }) });
|
|
2272
2303
|
}
|
|
2273
2304
|
var FormItemContext = React39.createContext(null);
|
|
2274
2305
|
function useFormField() {
|
|
@@ -2291,13 +2322,13 @@ function useFormField() {
|
|
|
2291
2322
|
var FormItem = React39.forwardRef(
|
|
2292
2323
|
({ className, ...props }, ref) => {
|
|
2293
2324
|
const id = React39.useId();
|
|
2294
|
-
return /* @__PURE__ */
|
|
2325
|
+
return /* @__PURE__ */ jsx46(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx46("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
2295
2326
|
}
|
|
2296
2327
|
);
|
|
2297
2328
|
FormItem.displayName = "FormItem";
|
|
2298
2329
|
var FormLabel = React39.forwardRef(({ className, ...props }, ref) => {
|
|
2299
2330
|
const { error, formItemId } = useFormField();
|
|
2300
|
-
return /* @__PURE__ */
|
|
2331
|
+
return /* @__PURE__ */ jsx46(
|
|
2301
2332
|
Label2,
|
|
2302
2333
|
{
|
|
2303
2334
|
ref,
|
|
@@ -2310,7 +2341,7 @@ var FormLabel = React39.forwardRef(({ className, ...props }, ref) => {
|
|
|
2310
2341
|
FormLabel.displayName = "FormLabel";
|
|
2311
2342
|
var FormControl = React39.forwardRef(({ ...props }, ref) => {
|
|
2312
2343
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
2313
|
-
return /* @__PURE__ */
|
|
2344
|
+
return /* @__PURE__ */ jsx46(
|
|
2314
2345
|
Slot3,
|
|
2315
2346
|
{
|
|
2316
2347
|
ref,
|
|
@@ -2324,7 +2355,7 @@ var FormControl = React39.forwardRef(({ ...props }, ref) => {
|
|
|
2324
2355
|
FormControl.displayName = "FormControl";
|
|
2325
2356
|
var FormDescription = React39.forwardRef(({ className, ...props }, ref) => {
|
|
2326
2357
|
const { formDescriptionId } = useFormField();
|
|
2327
|
-
return /* @__PURE__ */
|
|
2358
|
+
return /* @__PURE__ */ jsx46(
|
|
2328
2359
|
"p",
|
|
2329
2360
|
{
|
|
2330
2361
|
ref,
|
|
@@ -2339,7 +2370,7 @@ var FormMessage = React39.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
2339
2370
|
const { error, formMessageId } = useFormField();
|
|
2340
2371
|
const body = error ? String(error?.message ?? "") : children;
|
|
2341
2372
|
if (!body) return null;
|
|
2342
|
-
return /* @__PURE__ */
|
|
2373
|
+
return /* @__PURE__ */ jsx46(
|
|
2343
2374
|
"p",
|
|
2344
2375
|
{
|
|
2345
2376
|
ref,
|
|
@@ -2355,7 +2386,7 @@ FormMessage.displayName = "FormMessage";
|
|
|
2355
2386
|
// src/components/status-dot.tsx
|
|
2356
2387
|
import * as React40 from "react";
|
|
2357
2388
|
import { cva as cva8 } from "class-variance-authority";
|
|
2358
|
-
import { jsx as
|
|
2389
|
+
import { jsx as jsx47, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2359
2390
|
var statusDotVariants = cva8("inline-block shrink-0 rounded-full", {
|
|
2360
2391
|
variants: {
|
|
2361
2392
|
status: {
|
|
@@ -2370,7 +2401,7 @@ var statusDotVariants = cva8("inline-block shrink-0 rounded-full", {
|
|
|
2370
2401
|
defaultVariants: { status: "neutral", size: "md" }
|
|
2371
2402
|
});
|
|
2372
2403
|
var StatusDot = React40.forwardRef(
|
|
2373
|
-
({ className, status, size, pulse = false, ...props }, ref) => /* @__PURE__ */
|
|
2404
|
+
({ className, status, size, pulse = false, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
2374
2405
|
"span",
|
|
2375
2406
|
{
|
|
2376
2407
|
ref,
|
|
@@ -2379,14 +2410,14 @@ var StatusDot = React40.forwardRef(
|
|
|
2379
2410
|
className: cn("relative inline-flex", className),
|
|
2380
2411
|
...props,
|
|
2381
2412
|
children: [
|
|
2382
|
-
pulse && /* @__PURE__ */
|
|
2413
|
+
pulse && /* @__PURE__ */ jsx47(
|
|
2383
2414
|
"span",
|
|
2384
2415
|
{
|
|
2385
2416
|
"aria-hidden": "true",
|
|
2386
2417
|
className: cn(statusDotVariants({ status, size }), "absolute inset-0 animate-ping opacity-75")
|
|
2387
2418
|
}
|
|
2388
2419
|
),
|
|
2389
|
-
/* @__PURE__ */
|
|
2420
|
+
/* @__PURE__ */ jsx47("span", { className: cn(statusDotVariants({ status, size })) })
|
|
2390
2421
|
]
|
|
2391
2422
|
}
|
|
2392
2423
|
)
|
|
@@ -2396,9 +2427,9 @@ StatusDot.displayName = "StatusDot";
|
|
|
2396
2427
|
// src/components/docs-link.tsx
|
|
2397
2428
|
import * as React41 from "react";
|
|
2398
2429
|
import { BookOpen, ExternalLink } from "lucide-react";
|
|
2399
|
-
import { jsx as
|
|
2430
|
+
import { jsx as jsx48, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2400
2431
|
var DocsLink = React41.forwardRef(
|
|
2401
|
-
({ href = "https://docs.lessly.com", label = "Docs", className, ...props }, ref) => /* @__PURE__ */
|
|
2432
|
+
({ href = "https://docs.lessly.com", label = "Docs", className, ...props }, ref) => /* @__PURE__ */ jsxs22(
|
|
2402
2433
|
"a",
|
|
2403
2434
|
{
|
|
2404
2435
|
ref,
|
|
@@ -2411,9 +2442,9 @@ var DocsLink = React41.forwardRef(
|
|
|
2411
2442
|
),
|
|
2412
2443
|
...props,
|
|
2413
2444
|
children: [
|
|
2414
|
-
/* @__PURE__ */
|
|
2445
|
+
/* @__PURE__ */ jsx48(BookOpen, { className: "size-4", "aria-hidden": "true" }),
|
|
2415
2446
|
label,
|
|
2416
|
-
/* @__PURE__ */
|
|
2447
|
+
/* @__PURE__ */ jsx48(ExternalLink, { className: "size-3 text-text-tertiary", "aria-hidden": "true" })
|
|
2417
2448
|
]
|
|
2418
2449
|
}
|
|
2419
2450
|
)
|
|
@@ -2422,9 +2453,9 @@ DocsLink.displayName = "DocsLink";
|
|
|
2422
2453
|
|
|
2423
2454
|
// src/components/empty-state.tsx
|
|
2424
2455
|
import * as React42 from "react";
|
|
2425
|
-
import { jsx as
|
|
2456
|
+
import { jsx as jsx49, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2426
2457
|
var EmptyState = React42.forwardRef(
|
|
2427
|
-
({ icon: Icon, title, description, action, className, ...props }, ref) => /* @__PURE__ */
|
|
2458
|
+
({ icon: Icon, title, description, action, className, ...props }, ref) => /* @__PURE__ */ jsxs23(
|
|
2428
2459
|
"div",
|
|
2429
2460
|
{
|
|
2430
2461
|
ref,
|
|
@@ -2434,10 +2465,10 @@ var EmptyState = React42.forwardRef(
|
|
|
2434
2465
|
),
|
|
2435
2466
|
...props,
|
|
2436
2467
|
children: [
|
|
2437
|
-
Icon && /* @__PURE__ */
|
|
2438
|
-
/* @__PURE__ */
|
|
2439
|
-
description && /* @__PURE__ */
|
|
2440
|
-
action && /* @__PURE__ */
|
|
2468
|
+
Icon && /* @__PURE__ */ jsx49("div", { className: "mb-4 flex size-11 items-center justify-center rounded-full bg-bg-secondary", children: /* @__PURE__ */ jsx49(Icon, { className: "size-5 text-icon-secondary", "aria-hidden": "true" }) }),
|
|
2469
|
+
/* @__PURE__ */ jsx49("p", { className: "text-base font-semibold text-text-primary", children: title }),
|
|
2470
|
+
description && /* @__PURE__ */ jsx49("p", { className: "mt-1 max-w-sm text-sm text-text-secondary", children: description }),
|
|
2471
|
+
action && /* @__PURE__ */ jsx49("div", { className: "mt-4", children: action })
|
|
2441
2472
|
]
|
|
2442
2473
|
}
|
|
2443
2474
|
)
|
|
@@ -2447,7 +2478,7 @@ EmptyState.displayName = "EmptyState";
|
|
|
2447
2478
|
// src/components/copy-button.tsx
|
|
2448
2479
|
import * as React43 from "react";
|
|
2449
2480
|
import { Check as Check5, Copy } from "lucide-react";
|
|
2450
|
-
import { jsx as
|
|
2481
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
2451
2482
|
var CopyButton = React43.forwardRef(
|
|
2452
2483
|
({ value, label = "Copy", className, variant = "ghost", size = "icon", onClick, ...props }, ref) => {
|
|
2453
2484
|
const [copied, setCopied] = React43.useState(false);
|
|
@@ -2464,7 +2495,7 @@ var CopyButton = React43.forwardRef(
|
|
|
2464
2495
|
} catch {
|
|
2465
2496
|
}
|
|
2466
2497
|
};
|
|
2467
|
-
return /* @__PURE__ */
|
|
2498
|
+
return /* @__PURE__ */ jsx50(
|
|
2468
2499
|
Button,
|
|
2469
2500
|
{
|
|
2470
2501
|
ref,
|
|
@@ -2475,7 +2506,7 @@ var CopyButton = React43.forwardRef(
|
|
|
2475
2506
|
className: cn(className),
|
|
2476
2507
|
...props,
|
|
2477
2508
|
"aria-label": copied ? "Copied" : label,
|
|
2478
|
-
children: copied ? /* @__PURE__ */
|
|
2509
|
+
children: copied ? /* @__PURE__ */ jsx50(Check5, { className: "size-4 text-text-success" }) : /* @__PURE__ */ jsx50(Copy, { className: "size-4" })
|
|
2479
2510
|
}
|
|
2480
2511
|
);
|
|
2481
2512
|
}
|
|
@@ -2485,7 +2516,7 @@ CopyButton.displayName = "CopyButton";
|
|
|
2485
2516
|
// src/components/stat-card.tsx
|
|
2486
2517
|
import * as React44 from "react";
|
|
2487
2518
|
import { ArrowDown, ArrowUp, Info as Info2, Minus as Minus2 } from "lucide-react";
|
|
2488
|
-
import { jsx as
|
|
2519
|
+
import { jsx as jsx51, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2489
2520
|
var directionIcons = {
|
|
2490
2521
|
up: ArrowUp,
|
|
2491
2522
|
down: ArrowDown,
|
|
@@ -2507,30 +2538,30 @@ var StatCard = React44.forwardRef(
|
|
|
2507
2538
|
const tone = delta?.tone ?? toneFromDirection[direction];
|
|
2508
2539
|
const DeltaIcon = directionIcons[direction];
|
|
2509
2540
|
const deltaClass = toneClasses[tone];
|
|
2510
|
-
return /* @__PURE__ */
|
|
2541
|
+
return /* @__PURE__ */ jsxs24(
|
|
2511
2542
|
"div",
|
|
2512
2543
|
{
|
|
2513
2544
|
ref,
|
|
2514
2545
|
className: cn("rounded-xl border border-border-subtle bg-bg-surface p-5", className),
|
|
2515
2546
|
...props,
|
|
2516
2547
|
children: [
|
|
2517
|
-
/* @__PURE__ */
|
|
2518
|
-
/* @__PURE__ */
|
|
2519
|
-
/* @__PURE__ */
|
|
2520
|
-
hint && /* @__PURE__ */
|
|
2521
|
-
/* @__PURE__ */
|
|
2522
|
-
/* @__PURE__ */
|
|
2548
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center justify-between gap-2", children: [
|
|
2549
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-1.5", children: [
|
|
2550
|
+
/* @__PURE__ */ jsx51("span", { className: "text-xs font-medium uppercase tracking-wide text-text-tertiary", children: label }),
|
|
2551
|
+
hint && /* @__PURE__ */ jsx51(TooltipProvider, { children: /* @__PURE__ */ jsxs24(Tooltip, { children: [
|
|
2552
|
+
/* @__PURE__ */ jsx51(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx51("button", { type: "button", "aria-label": "More info", className: "inline-flex cursor-help text-icon-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus rounded-sm", children: /* @__PURE__ */ jsx51(Info2, { className: "size-3.5", "aria-hidden": "true" }) }) }),
|
|
2553
|
+
/* @__PURE__ */ jsx51(TooltipContent, { children: hint })
|
|
2523
2554
|
] }) })
|
|
2524
2555
|
] }),
|
|
2525
|
-
Icon && /* @__PURE__ */
|
|
2556
|
+
Icon && /* @__PURE__ */ jsx51(Icon, { className: "size-4 text-icon-secondary", "aria-hidden": "true" })
|
|
2526
2557
|
] }),
|
|
2527
|
-
/* @__PURE__ */
|
|
2528
|
-
(delta || sub) && /* @__PURE__ */
|
|
2529
|
-
delta && /* @__PURE__ */
|
|
2530
|
-
/* @__PURE__ */
|
|
2558
|
+
/* @__PURE__ */ jsx51("div", { className: "mt-2 text-3xl font-semibold text-text-primary", children: value }),
|
|
2559
|
+
(delta || sub) && /* @__PURE__ */ jsxs24("div", { className: "mt-2 flex items-center gap-2 text-sm", children: [
|
|
2560
|
+
delta && /* @__PURE__ */ jsxs24("span", { className: cn("inline-flex items-center gap-0.5 font-medium", deltaClass), children: [
|
|
2561
|
+
/* @__PURE__ */ jsx51(DeltaIcon, { className: "size-3.5", "aria-hidden": "true" }),
|
|
2531
2562
|
delta.value
|
|
2532
2563
|
] }),
|
|
2533
|
-
sub && /* @__PURE__ */
|
|
2564
|
+
sub && /* @__PURE__ */ jsx51("span", { className: "text-text-tertiary", children: sub })
|
|
2534
2565
|
] })
|
|
2535
2566
|
]
|
|
2536
2567
|
}
|
|
@@ -2542,9 +2573,9 @@ StatCard.displayName = "StatCard";
|
|
|
2542
2573
|
// src/components/confirm-dialog.tsx
|
|
2543
2574
|
import * as React45 from "react";
|
|
2544
2575
|
import { Loader2 } from "lucide-react";
|
|
2545
|
-
import { jsx as
|
|
2576
|
+
import { jsx as jsx52, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2546
2577
|
var InlineError = React45.forwardRef(
|
|
2547
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */
|
|
2578
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
2548
2579
|
"div",
|
|
2549
2580
|
{
|
|
2550
2581
|
ref,
|
|
@@ -2595,20 +2626,20 @@ function ConfirmDialog({
|
|
|
2595
2626
|
setBusy(false);
|
|
2596
2627
|
}
|
|
2597
2628
|
};
|
|
2598
|
-
return /* @__PURE__ */
|
|
2629
|
+
return /* @__PURE__ */ jsxs25(Dialog, { open: actualOpen, onOpenChange: (next) => {
|
|
2599
2630
|
if (!busy) setOpen(next);
|
|
2600
2631
|
}, children: [
|
|
2601
|
-
trigger && /* @__PURE__ */
|
|
2602
|
-
/* @__PURE__ */
|
|
2603
|
-
/* @__PURE__ */
|
|
2604
|
-
/* @__PURE__ */
|
|
2605
|
-
description && /* @__PURE__ */
|
|
2632
|
+
trigger && /* @__PURE__ */ jsx52(DialogTrigger, { asChild: true, children: trigger }),
|
|
2633
|
+
/* @__PURE__ */ jsxs25(DialogContent, { children: [
|
|
2634
|
+
/* @__PURE__ */ jsxs25(DialogHeader, { children: [
|
|
2635
|
+
/* @__PURE__ */ jsx52(DialogTitle, { children: title }),
|
|
2636
|
+
description && /* @__PURE__ */ jsx52(DialogDescription, { children: description })
|
|
2606
2637
|
] }),
|
|
2607
|
-
error && /* @__PURE__ */
|
|
2608
|
-
/* @__PURE__ */
|
|
2609
|
-
/* @__PURE__ */
|
|
2610
|
-
/* @__PURE__ */
|
|
2611
|
-
busy && /* @__PURE__ */
|
|
2638
|
+
error && /* @__PURE__ */ jsx52(InlineError, { children: error }),
|
|
2639
|
+
/* @__PURE__ */ jsxs25(DialogFooter, { children: [
|
|
2640
|
+
/* @__PURE__ */ jsx52(Button, { variant: "outline", disabled: busy, onClick: () => setOpen(false), children: cancelLabel }),
|
|
2641
|
+
/* @__PURE__ */ jsxs25(Button, { variant: destructive ? "destructive" : "default", disabled: busy, onClick: handleConfirm, children: [
|
|
2642
|
+
busy && /* @__PURE__ */ jsx52(Loader2, { className: "size-4 animate-spin", "aria-hidden": "true" }),
|
|
2612
2643
|
confirmLabel
|
|
2613
2644
|
] })
|
|
2614
2645
|
] })
|
|
@@ -2618,7 +2649,7 @@ function ConfirmDialog({
|
|
|
2618
2649
|
|
|
2619
2650
|
// src/components/user-menu.tsx
|
|
2620
2651
|
import { ChevronsUpDown } from "lucide-react";
|
|
2621
|
-
import { Fragment, jsx as
|
|
2652
|
+
import { Fragment, jsx as jsx53, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2622
2653
|
function initialsOf(name) {
|
|
2623
2654
|
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
2624
2655
|
if (parts.length === 0) return "?";
|
|
@@ -2627,11 +2658,11 @@ function initialsOf(name) {
|
|
|
2627
2658
|
}
|
|
2628
2659
|
function UserMenu({ user, items, collapsed = false, align = "start" }) {
|
|
2629
2660
|
const secondLine = user.subtitle ?? user.email;
|
|
2630
|
-
const avatar = /* @__PURE__ */
|
|
2631
|
-
user.avatarUrl && /* @__PURE__ */
|
|
2632
|
-
/* @__PURE__ */
|
|
2661
|
+
const avatar = /* @__PURE__ */ jsxs26(Avatar, { className: collapsed ? "size-9" : "size-7", children: [
|
|
2662
|
+
user.avatarUrl && /* @__PURE__ */ jsx53(AvatarImage, { src: user.avatarUrl, alt: user.name }),
|
|
2663
|
+
/* @__PURE__ */ jsx53(AvatarFallback, { className: "text-xs", children: initialsOf(user.name) })
|
|
2633
2664
|
] });
|
|
2634
|
-
const trigger = collapsed ? /* @__PURE__ */
|
|
2665
|
+
const trigger = collapsed ? /* @__PURE__ */ jsx53(
|
|
2635
2666
|
"button",
|
|
2636
2667
|
{
|
|
2637
2668
|
type: "button",
|
|
@@ -2639,46 +2670,46 @@ function UserMenu({ user, items, collapsed = false, align = "start" }) {
|
|
|
2639
2670
|
className: "rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
2640
2671
|
children: avatar
|
|
2641
2672
|
}
|
|
2642
|
-
) : /* @__PURE__ */
|
|
2673
|
+
) : /* @__PURE__ */ jsxs26(
|
|
2643
2674
|
"button",
|
|
2644
2675
|
{
|
|
2645
2676
|
type: "button",
|
|
2646
2677
|
className: "flex w-full items-center gap-2.5 rounded-xl px-1.5 py-[5px] text-left transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
2647
2678
|
children: [
|
|
2648
2679
|
avatar,
|
|
2649
|
-
/* @__PURE__ */
|
|
2650
|
-
/* @__PURE__ */
|
|
2651
|
-
secondLine && /* @__PURE__ */
|
|
2680
|
+
/* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
2681
|
+
/* @__PURE__ */ jsx53("span", { className: "truncate text-sm leading-[normal] font-medium text-text-primary", children: user.name }),
|
|
2682
|
+
secondLine && /* @__PURE__ */ jsx53("span", { className: "truncate text-xs leading-[normal] text-text-tertiary", children: secondLine })
|
|
2652
2683
|
] }),
|
|
2653
|
-
/* @__PURE__ */
|
|
2684
|
+
/* @__PURE__ */ jsx53(ChevronsUpDown, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" })
|
|
2654
2685
|
]
|
|
2655
2686
|
}
|
|
2656
2687
|
);
|
|
2657
|
-
const menuTrigger = /* @__PURE__ */
|
|
2658
|
-
const menu = /* @__PURE__ */
|
|
2659
|
-
collapsed ? /* @__PURE__ */
|
|
2660
|
-
/* @__PURE__ */
|
|
2661
|
-
/* @__PURE__ */
|
|
2688
|
+
const menuTrigger = /* @__PURE__ */ jsx53(DropdownMenuTrigger, { asChild: true, children: trigger });
|
|
2689
|
+
const menu = /* @__PURE__ */ jsxs26(DropdownMenu, { children: [
|
|
2690
|
+
collapsed ? /* @__PURE__ */ jsx53(TooltipProvider, { children: /* @__PURE__ */ jsxs26(Tooltip, { children: [
|
|
2691
|
+
/* @__PURE__ */ jsx53(TooltipTrigger, { asChild: true, children: menuTrigger }),
|
|
2692
|
+
/* @__PURE__ */ jsx53(TooltipContent, { side: "right", children: user.name })
|
|
2662
2693
|
] }) }) : menuTrigger,
|
|
2663
|
-
/* @__PURE__ */
|
|
2694
|
+
/* @__PURE__ */ jsxs26(
|
|
2664
2695
|
DropdownMenuContent,
|
|
2665
2696
|
{
|
|
2666
2697
|
align,
|
|
2667
2698
|
sideOffset: 6,
|
|
2668
2699
|
className: "flex w-56 flex-col gap-px rounded-xl border-border-subtle bg-[var(--menu-bg)] p-1 shadow-(--menu-shadow)",
|
|
2669
2700
|
children: [
|
|
2670
|
-
/* @__PURE__ */
|
|
2671
|
-
/* @__PURE__ */
|
|
2672
|
-
secondLine && /* @__PURE__ */
|
|
2701
|
+
/* @__PURE__ */ jsxs26(DropdownMenuLabel, { className: "px-2 pt-1.5 pb-1 text-xs font-medium text-text-tertiary", children: [
|
|
2702
|
+
/* @__PURE__ */ jsx53("span", { className: "block truncate text-sm font-medium text-text-primary", children: user.name }),
|
|
2703
|
+
secondLine && /* @__PURE__ */ jsx53("span", { className: "block truncate text-xs font-normal text-text-tertiary", children: secondLine })
|
|
2673
2704
|
] }),
|
|
2674
|
-
/* @__PURE__ */
|
|
2705
|
+
/* @__PURE__ */ jsx53(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
|
|
2675
2706
|
items.map((item, i) => {
|
|
2676
2707
|
const Icon = item.icon;
|
|
2677
|
-
const content = /* @__PURE__ */
|
|
2678
|
-
Icon && /* @__PURE__ */
|
|
2708
|
+
const content = /* @__PURE__ */ jsxs26(Fragment, { children: [
|
|
2709
|
+
Icon && /* @__PURE__ */ jsx53(Icon, { className: "size-4", "aria-hidden": "true" }),
|
|
2679
2710
|
item.label
|
|
2680
2711
|
] });
|
|
2681
|
-
return /* @__PURE__ */
|
|
2712
|
+
return /* @__PURE__ */ jsx53(
|
|
2682
2713
|
DropdownMenuItem,
|
|
2683
2714
|
{
|
|
2684
2715
|
onSelect: item.onSelect,
|
|
@@ -2687,7 +2718,7 @@ function UserMenu({ user, items, collapsed = false, align = "start" }) {
|
|
|
2687
2718
|
item.destructive && "text-text-danger focus:text-text-danger"
|
|
2688
2719
|
),
|
|
2689
2720
|
asChild: Boolean(item.href),
|
|
2690
|
-
children: item.href ? /* @__PURE__ */
|
|
2721
|
+
children: item.href ? /* @__PURE__ */ jsx53("a", { href: item.href, children: content }) : content
|
|
2691
2722
|
},
|
|
2692
2723
|
`${item.label}-${i}`
|
|
2693
2724
|
);
|
|
@@ -2701,12 +2732,12 @@ function UserMenu({ user, items, collapsed = false, align = "start" }) {
|
|
|
2701
2732
|
|
|
2702
2733
|
// src/components/extension-link.tsx
|
|
2703
2734
|
import { Link as Link2 } from "react-router";
|
|
2704
|
-
import { jsx as
|
|
2735
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
2705
2736
|
function ExtensionLink({ uiMode, to, className, children, ...anchorProps }) {
|
|
2706
2737
|
if (uiMode === "federation") {
|
|
2707
|
-
return /* @__PURE__ */
|
|
2738
|
+
return /* @__PURE__ */ jsx54(Link2, { to, className, ...anchorProps, children });
|
|
2708
2739
|
}
|
|
2709
|
-
return /* @__PURE__ */
|
|
2740
|
+
return /* @__PURE__ */ jsx54("a", { href: to, className, ...anchorProps, children });
|
|
2710
2741
|
}
|
|
2711
2742
|
ExtensionLink.displayName = "ExtensionLink";
|
|
2712
2743
|
|
|
@@ -2714,7 +2745,7 @@ ExtensionLink.displayName = "ExtensionLink";
|
|
|
2714
2745
|
import * as React46 from "react";
|
|
2715
2746
|
import * as LucideIcons from "lucide-react";
|
|
2716
2747
|
import { Puzzle } from "lucide-react";
|
|
2717
|
-
import { jsx as
|
|
2748
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
2718
2749
|
var FORWARD_REF = /* @__PURE__ */ Symbol.for("react.forward_ref");
|
|
2719
2750
|
var catalog = LucideIcons;
|
|
2720
2751
|
function toPascalCase(name) {
|
|
@@ -2744,9 +2775,9 @@ var ExtensionIcon = React46.forwardRef(
|
|
|
2744
2775
|
const Icon = resolveIcon(name);
|
|
2745
2776
|
if (!Icon) {
|
|
2746
2777
|
warnUnknownIconOnce(name);
|
|
2747
|
-
return /* @__PURE__ */
|
|
2778
|
+
return /* @__PURE__ */ jsx55(Puzzle, { ref, ...props });
|
|
2748
2779
|
}
|
|
2749
|
-
return /* @__PURE__ */
|
|
2780
|
+
return /* @__PURE__ */ jsx55(Icon, { ref, ...props });
|
|
2750
2781
|
}
|
|
2751
2782
|
);
|
|
2752
2783
|
ExtensionIcon.displayName = "ExtensionIcon";
|
|
@@ -2795,7 +2826,7 @@ function useSidebar(options = {}) {
|
|
|
2795
2826
|
// src/components/nav-row.tsx
|
|
2796
2827
|
import * as React47 from "react";
|
|
2797
2828
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
2798
|
-
import { Fragment as Fragment2, jsx as
|
|
2829
|
+
import { Fragment as Fragment2, jsx as jsx56, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2799
2830
|
var base = "flex w-full items-center text-left text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus";
|
|
2800
2831
|
var shape = {
|
|
2801
2832
|
rail: "gap-[14px] rounded-xl px-2.5 py-2",
|
|
@@ -2812,8 +2843,8 @@ var state = {
|
|
|
2812
2843
|
}
|
|
2813
2844
|
};
|
|
2814
2845
|
var NavRow = React47.forwardRef(function NavRow2({ icon, label, active = false, variant, trailing, hideLabel = false, asChild = false, className, children, ...props }, ref) {
|
|
2815
|
-
const content = /* @__PURE__ */
|
|
2816
|
-
icon && /* @__PURE__ */
|
|
2846
|
+
const content = /* @__PURE__ */ jsxs27(Fragment2, { children: [
|
|
2847
|
+
icon && /* @__PURE__ */ jsx56(
|
|
2817
2848
|
"span",
|
|
2818
2849
|
{
|
|
2819
2850
|
className: "flex size-5 shrink-0 items-center justify-center [&_svg]:size-[18px]",
|
|
@@ -2821,24 +2852,24 @@ var NavRow = React47.forwardRef(function NavRow2({ icon, label, active = false,
|
|
|
2821
2852
|
children: icon
|
|
2822
2853
|
}
|
|
2823
2854
|
),
|
|
2824
|
-
!hideLabel && /* @__PURE__ */
|
|
2825
|
-
trailing && /* @__PURE__ */
|
|
2855
|
+
!hideLabel && /* @__PURE__ */ jsx56("span", { className: "min-w-0 flex-1 truncate", children: label }),
|
|
2856
|
+
trailing && /* @__PURE__ */ jsx56("span", { className: "flex shrink-0 items-center", children: trailing })
|
|
2826
2857
|
] });
|
|
2827
2858
|
const classes = cn(base, shape[variant], state[variant][active ? "active" : "idle"], className);
|
|
2828
2859
|
if (asChild) {
|
|
2829
2860
|
const child = React47.Children.only(children);
|
|
2830
|
-
return /* @__PURE__ */
|
|
2861
|
+
return /* @__PURE__ */ jsx56(Slot4, { ref, className: classes, "aria-label": hideLabel ? label : void 0, ...props, children: React47.cloneElement(child, void 0, content) });
|
|
2831
2862
|
}
|
|
2832
|
-
return /* @__PURE__ */
|
|
2863
|
+
return /* @__PURE__ */ jsx56("button", { ref, type: "button", className: classes, "aria-label": hideLabel ? label : void 0, ...props, children: content });
|
|
2833
2864
|
});
|
|
2834
2865
|
NavRow.displayName = "NavRow";
|
|
2835
2866
|
|
|
2836
2867
|
// src/components/nav-section-label.tsx
|
|
2837
2868
|
import * as React48 from "react";
|
|
2838
|
-
import { jsx as
|
|
2869
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
2839
2870
|
var NavSectionLabel = React48.forwardRef(
|
|
2840
2871
|
function NavSectionLabel2({ className, ...props }, ref) {
|
|
2841
|
-
return /* @__PURE__ */
|
|
2872
|
+
return /* @__PURE__ */ jsx57(
|
|
2842
2873
|
"div",
|
|
2843
2874
|
{
|
|
2844
2875
|
ref,
|
|
@@ -2852,7 +2883,7 @@ NavSectionLabel.displayName = "NavSectionLabel";
|
|
|
2852
2883
|
|
|
2853
2884
|
// src/components/menu-popup.tsx
|
|
2854
2885
|
import * as React49 from "react";
|
|
2855
|
-
import { jsx as
|
|
2886
|
+
import { jsx as jsx58, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2856
2887
|
function MenuPopup({
|
|
2857
2888
|
trigger,
|
|
2858
2889
|
children,
|
|
@@ -2864,9 +2895,9 @@ function MenuPopup({
|
|
|
2864
2895
|
sideOffset = 6,
|
|
2865
2896
|
className
|
|
2866
2897
|
}) {
|
|
2867
|
-
return /* @__PURE__ */
|
|
2868
|
-
/* @__PURE__ */
|
|
2869
|
-
/* @__PURE__ */
|
|
2898
|
+
return /* @__PURE__ */ jsxs28(Popover, { open, defaultOpen, onOpenChange, children: [
|
|
2899
|
+
/* @__PURE__ */ jsx58(PopoverTrigger, { asChild: true, children: trigger }),
|
|
2900
|
+
/* @__PURE__ */ jsx58(
|
|
2870
2901
|
PopoverContent,
|
|
2871
2902
|
{
|
|
2872
2903
|
side: direction === "up" ? "top" : "bottom",
|
|
@@ -2883,7 +2914,7 @@ function MenuPopup({
|
|
|
2883
2914
|
}
|
|
2884
2915
|
var MenuDivider = React49.forwardRef(
|
|
2885
2916
|
function MenuDivider2({ className, ...props }, ref) {
|
|
2886
|
-
return /* @__PURE__ */
|
|
2917
|
+
return /* @__PURE__ */ jsx58(
|
|
2887
2918
|
"div",
|
|
2888
2919
|
{
|
|
2889
2920
|
ref,
|
|
@@ -2898,7 +2929,7 @@ MenuDivider.displayName = "MenuDivider";
|
|
|
2898
2929
|
|
|
2899
2930
|
// src/components/sidebar-nav.tsx
|
|
2900
2931
|
import { Link as Link3, useLocation } from "react-router";
|
|
2901
|
-
import { jsx as
|
|
2932
|
+
import { jsx as jsx59, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2902
2933
|
function isActivePath(pathname, full, exact) {
|
|
2903
2934
|
if (exact) return pathname === full;
|
|
2904
2935
|
return pathname === full || pathname.startsWith(`${full}/`);
|
|
@@ -2914,23 +2945,23 @@ function SidebarNavLink({
|
|
|
2914
2945
|
const Comp = LinkComponent ?? Link3;
|
|
2915
2946
|
const to = `${basePath}${item.href}`;
|
|
2916
2947
|
const Icon = item.icon;
|
|
2917
|
-
const link = /* @__PURE__ */
|
|
2948
|
+
const link = /* @__PURE__ */ jsx59(
|
|
2918
2949
|
NavRow,
|
|
2919
2950
|
{
|
|
2920
2951
|
variant: "rail",
|
|
2921
2952
|
active,
|
|
2922
2953
|
label: item.label,
|
|
2923
2954
|
hideLabel: collapsed,
|
|
2924
|
-
icon: Icon ? /* @__PURE__ */
|
|
2955
|
+
icon: Icon ? /* @__PURE__ */ jsx59(Icon, { "aria-hidden": "true" }) : void 0,
|
|
2925
2956
|
className: cn(collapsed && "size-9 justify-center px-0 py-0", className),
|
|
2926
2957
|
asChild: true,
|
|
2927
|
-
children: /* @__PURE__ */
|
|
2958
|
+
children: /* @__PURE__ */ jsx59(Comp, { to, "aria-current": active ? "page" : void 0 })
|
|
2928
2959
|
}
|
|
2929
2960
|
);
|
|
2930
2961
|
if (!collapsed) return link;
|
|
2931
|
-
return /* @__PURE__ */
|
|
2932
|
-
/* @__PURE__ */
|
|
2933
|
-
/* @__PURE__ */
|
|
2962
|
+
return /* @__PURE__ */ jsxs29(Tooltip, { children: [
|
|
2963
|
+
/* @__PURE__ */ jsx59(TooltipTrigger, { asChild: true, children: link }),
|
|
2964
|
+
/* @__PURE__ */ jsx59(TooltipContent, { side: "right", children: item.label })
|
|
2934
2965
|
] });
|
|
2935
2966
|
}
|
|
2936
2967
|
function SidebarNav({
|
|
@@ -2942,7 +2973,7 @@ function SidebarNav({
|
|
|
2942
2973
|
className
|
|
2943
2974
|
}) {
|
|
2944
2975
|
const { pathname } = useLocation();
|
|
2945
|
-
const nav = /* @__PURE__ */
|
|
2976
|
+
const nav = /* @__PURE__ */ jsx59(
|
|
2946
2977
|
"nav",
|
|
2947
2978
|
{
|
|
2948
2979
|
className: cn(
|
|
@@ -2953,7 +2984,7 @@ function SidebarNav({
|
|
|
2953
2984
|
children: items.map((item) => {
|
|
2954
2985
|
const full = `${basePath}${item.href}`;
|
|
2955
2986
|
const active = isItemActive ? isItemActive(item, pathname) : isActivePath(pathname, full, item.exact);
|
|
2956
|
-
return /* @__PURE__ */
|
|
2987
|
+
return /* @__PURE__ */ jsx59(
|
|
2957
2988
|
SidebarNavLink,
|
|
2958
2989
|
{
|
|
2959
2990
|
item,
|
|
@@ -2967,14 +2998,14 @@ function SidebarNav({
|
|
|
2967
2998
|
})
|
|
2968
2999
|
}
|
|
2969
3000
|
);
|
|
2970
|
-
return collapsed ? /* @__PURE__ */
|
|
3001
|
+
return collapsed ? /* @__PURE__ */ jsx59(TooltipProvider, { children: nav }) : nav;
|
|
2971
3002
|
}
|
|
2972
3003
|
|
|
2973
3004
|
// src/components/app-sidebar.tsx
|
|
2974
3005
|
import { PanelLeft } from "lucide-react";
|
|
2975
|
-
import { Fragment as Fragment3, jsx as
|
|
3006
|
+
import { Fragment as Fragment3, jsx as jsx60, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2976
3007
|
function Divider({ collapsed, testId, className }) {
|
|
2977
|
-
return /* @__PURE__ */
|
|
3008
|
+
return /* @__PURE__ */ jsx60(
|
|
2978
3009
|
"div",
|
|
2979
3010
|
{
|
|
2980
3011
|
"data-testid": testId,
|
|
@@ -3006,7 +3037,7 @@ function AppSidebar({
|
|
|
3006
3037
|
defaultCollapsed,
|
|
3007
3038
|
onCollapsedChange
|
|
3008
3039
|
});
|
|
3009
|
-
const pin = collapsible ? /* @__PURE__ */
|
|
3040
|
+
const pin = collapsible ? /* @__PURE__ */ jsx60(
|
|
3010
3041
|
"button",
|
|
3011
3042
|
{
|
|
3012
3043
|
type: "button",
|
|
@@ -3014,10 +3045,10 @@ function AppSidebar({
|
|
|
3014
3045
|
"aria-label": collapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
3015
3046
|
"aria-expanded": !collapsed,
|
|
3016
3047
|
className: "flex size-6 shrink-0 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
3017
|
-
children: /* @__PURE__ */
|
|
3048
|
+
children: /* @__PURE__ */ jsx60(PanelLeft, { className: "size-4", "aria-hidden": "true" })
|
|
3018
3049
|
}
|
|
3019
3050
|
) : null;
|
|
3020
|
-
return /* @__PURE__ */
|
|
3051
|
+
return /* @__PURE__ */ jsxs30(
|
|
3021
3052
|
"aside",
|
|
3022
3053
|
{
|
|
3023
3054
|
"data-collapsed": collapsed,
|
|
@@ -3027,12 +3058,12 @@ function AppSidebar({
|
|
|
3027
3058
|
className
|
|
3028
3059
|
),
|
|
3029
3060
|
children: [
|
|
3030
|
-
/* @__PURE__ */
|
|
3061
|
+
/* @__PURE__ */ jsx60("div", { className: cn("flex items-center gap-2", collapsed ? "justify-center px-1 pt-2" : "px-3 pt-[13px]"), children: collapsed ? collapsible ? logoCollapsed ?? logo ? (
|
|
3031
3062
|
/* The collapsed rail (52px) can't fit the logo mark beside the pin side by side —
|
|
3032
3063
|
so the pin overlays the mark instead, revealed on hover/focus, same as pre-flat-rail. */
|
|
3033
|
-
/* @__PURE__ */
|
|
3034
|
-
/* @__PURE__ */
|
|
3035
|
-
/* @__PURE__ */
|
|
3064
|
+
/* @__PURE__ */ jsxs30("div", { className: "group relative flex size-8 items-center justify-center", children: [
|
|
3065
|
+
/* @__PURE__ */ jsx60("span", { className: "pointer-events-none transition-opacity group-hover:opacity-0 group-focus-within:opacity-0", children: logoCollapsed ?? logo }),
|
|
3066
|
+
/* @__PURE__ */ jsx60(
|
|
3036
3067
|
"button",
|
|
3037
3068
|
{
|
|
3038
3069
|
type: "button",
|
|
@@ -3040,7 +3071,7 @@ function AppSidebar({
|
|
|
3040
3071
|
"aria-label": "Expand sidebar",
|
|
3041
3072
|
"aria-expanded": false,
|
|
3042
3073
|
className: "absolute inset-0 flex items-center justify-center rounded-md text-text-secondary opacity-0 transition-opacity hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-border-focus group-hover:opacity-100 group-focus-within:opacity-100",
|
|
3043
|
-
children: /* @__PURE__ */
|
|
3074
|
+
children: /* @__PURE__ */ jsx60(PanelLeft, { className: "size-4", "aria-hidden": "true" })
|
|
3044
3075
|
}
|
|
3045
3076
|
)
|
|
3046
3077
|
] })
|
|
@@ -3049,7 +3080,7 @@ function AppSidebar({
|
|
|
3049
3080
|
count, it's expanded-only). Hover-revealing the pin over nothing would leave
|
|
3050
3081
|
an invisible 32px box as the only way back to expanded, so render it plain
|
|
3051
3082
|
and fully visible instead. */
|
|
3052
|
-
/* @__PURE__ */
|
|
3083
|
+
/* @__PURE__ */ jsx60(
|
|
3053
3084
|
"button",
|
|
3054
3085
|
{
|
|
3055
3086
|
type: "button",
|
|
@@ -3057,15 +3088,15 @@ function AppSidebar({
|
|
|
3057
3088
|
"aria-label": "Expand sidebar",
|
|
3058
3089
|
"aria-expanded": false,
|
|
3059
3090
|
className: "flex size-8 shrink-0 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
3060
|
-
children: /* @__PURE__ */
|
|
3091
|
+
children: /* @__PURE__ */ jsx60(PanelLeft, { className: "size-4", "aria-hidden": "true" })
|
|
3061
3092
|
}
|
|
3062
3093
|
)
|
|
3063
|
-
) : logoCollapsed ?? logo : /* @__PURE__ */
|
|
3094
|
+
) : logoCollapsed ?? logo : /* @__PURE__ */ jsxs30(Fragment3, { children: [
|
|
3064
3095
|
header ?? logo,
|
|
3065
3096
|
pin
|
|
3066
3097
|
] }) }),
|
|
3067
|
-
/* @__PURE__ */
|
|
3068
|
-
/* @__PURE__ */
|
|
3098
|
+
/* @__PURE__ */ jsx60(Divider, { collapsed, testId: "sidebar-divider-header", className: "mt-3" }),
|
|
3099
|
+
/* @__PURE__ */ jsx60(
|
|
3069
3100
|
"div",
|
|
3070
3101
|
{
|
|
3071
3102
|
"data-testid": "sidebar-scroll",
|
|
@@ -3073,12 +3104,12 @@ function AppSidebar({
|
|
|
3073
3104
|
"min-h-0 flex-1 overflow-y-auto overflow-x-hidden pt-3 pb-2",
|
|
3074
3105
|
collapsed ? "px-1" : "px-3"
|
|
3075
3106
|
),
|
|
3076
|
-
children: /* @__PURE__ */
|
|
3107
|
+
children: /* @__PURE__ */ jsx60(SidebarNav, { items, collapsed, basePath, LinkComponent, isItemActive })
|
|
3077
3108
|
}
|
|
3078
3109
|
),
|
|
3079
|
-
footer && /* @__PURE__ */
|
|
3080
|
-
/* @__PURE__ */
|
|
3081
|
-
/* @__PURE__ */
|
|
3110
|
+
footer && /* @__PURE__ */ jsxs30(Fragment3, { children: [
|
|
3111
|
+
/* @__PURE__ */ jsx60(Divider, { collapsed, testId: "sidebar-divider-account" }),
|
|
3112
|
+
/* @__PURE__ */ jsx60("div", { className: cn("py-2", collapsed ? "px-1" : "px-3"), children: footer })
|
|
3082
3113
|
] })
|
|
3083
3114
|
]
|
|
3084
3115
|
}
|
|
@@ -3089,37 +3120,37 @@ function AppSidebar({
|
|
|
3089
3120
|
import * as React50 from "react";
|
|
3090
3121
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
3091
3122
|
import { ChevronsUpDown as ChevronsUpDown2 } from "lucide-react";
|
|
3092
|
-
import { Fragment as Fragment4, jsx as
|
|
3123
|
+
import { Fragment as Fragment4, jsx as jsx61, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3093
3124
|
var SidebarProductHeader = React50.forwardRef(
|
|
3094
3125
|
function SidebarProductHeader2({ name, icon, trailing, asChild = false, className, children, ...props }, ref) {
|
|
3095
|
-
const adornment = trailing === void 0 ? /* @__PURE__ */
|
|
3096
|
-
const content = /* @__PURE__ */
|
|
3097
|
-
icon && /* @__PURE__ */
|
|
3098
|
-
/* @__PURE__ */
|
|
3099
|
-
adornment && /* @__PURE__ */
|
|
3126
|
+
const adornment = trailing === void 0 ? /* @__PURE__ */ jsx61(ChevronsUpDown2, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" }) : trailing;
|
|
3127
|
+
const content = /* @__PURE__ */ jsxs31(Fragment4, { children: [
|
|
3128
|
+
icon && /* @__PURE__ */ jsx61("span", { className: "flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-md", "aria-hidden": "true", children: icon }),
|
|
3129
|
+
/* @__PURE__ */ jsx61("span", { className: "min-w-0 flex-1 truncate text-sm font-semibold text-text-primary", children: name }),
|
|
3130
|
+
adornment && /* @__PURE__ */ jsx61("span", { className: "flex shrink-0 items-center", children: adornment })
|
|
3100
3131
|
] });
|
|
3101
3132
|
const classes = cn("flex w-full items-center gap-2.5 rounded-xl px-1.5 py-0 text-left", className);
|
|
3102
3133
|
if (asChild) {
|
|
3103
3134
|
const child = React50.Children.only(children);
|
|
3104
|
-
return /* @__PURE__ */
|
|
3135
|
+
return /* @__PURE__ */ jsx61(Slot5, { ref, className: classes, ...props, children: React50.cloneElement(child, void 0, content) });
|
|
3105
3136
|
}
|
|
3106
|
-
return /* @__PURE__ */
|
|
3137
|
+
return /* @__PURE__ */ jsx61("button", { ref, type: "button", className: classes, ...props, children: content });
|
|
3107
3138
|
}
|
|
3108
3139
|
);
|
|
3109
3140
|
SidebarProductHeader.displayName = "SidebarProductHeader";
|
|
3110
3141
|
|
|
3111
3142
|
// src/components/org-product-switcher.tsx
|
|
3112
3143
|
import { ChevronsUpDown as ChevronsUpDown3, Check as Check6 } from "lucide-react";
|
|
3113
|
-
import { Fragment as Fragment5, jsx as
|
|
3144
|
+
import { Fragment as Fragment5, jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3114
3145
|
var triggerBox = "flex w-full items-center gap-2.5 rounded-xl px-1.5 py-1 text-left transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus";
|
|
3115
3146
|
var menuItem = "gap-2 rounded-md px-2 py-1.5 text-sm font-medium text-text-secondary focus:bg-[var(--menu-hov)] focus:text-text-primary";
|
|
3116
3147
|
var sectionLabel = "px-2 pt-1.5 pb-1 text-xs font-medium text-text-tertiary";
|
|
3117
3148
|
function Mark({ item, size }) {
|
|
3118
3149
|
const box = size === "md" ? "size-7" : "size-5";
|
|
3119
3150
|
if (item.icon) {
|
|
3120
|
-
return /* @__PURE__ */
|
|
3151
|
+
return /* @__PURE__ */ jsx62("span", { className: cn("flex shrink-0 items-center justify-center overflow-hidden rounded-md", box), "aria-hidden": "true", children: item.icon });
|
|
3121
3152
|
}
|
|
3122
|
-
return /* @__PURE__ */
|
|
3153
|
+
return /* @__PURE__ */ jsx62(
|
|
3123
3154
|
"span",
|
|
3124
3155
|
{
|
|
3125
3156
|
"aria-hidden": "true",
|
|
@@ -3146,44 +3177,44 @@ function OrgProductSwitcher({
|
|
|
3146
3177
|
const activeOrg = organizations.find((o) => o.id === activeOrgId);
|
|
3147
3178
|
const activeProduct = products.find((p) => p.id === activeProductId);
|
|
3148
3179
|
const ariaLabel = props["aria-label"] ?? `${activeOrg?.name ?? ""} / ${activeProduct?.name ?? ""}`;
|
|
3149
|
-
return /* @__PURE__ */
|
|
3150
|
-
/* @__PURE__ */
|
|
3151
|
-
activeProduct && /* @__PURE__ */
|
|
3152
|
-
/* @__PURE__ */
|
|
3153
|
-
/* @__PURE__ */
|
|
3154
|
-
/* @__PURE__ */
|
|
3180
|
+
return /* @__PURE__ */ jsxs32(DropdownMenu, { children: [
|
|
3181
|
+
/* @__PURE__ */ jsxs32(DropdownMenuTrigger, { "aria-label": ariaLabel, className: cn(triggerBox, className), children: [
|
|
3182
|
+
activeProduct && /* @__PURE__ */ jsx62(Mark, { item: activeProduct, size: "md" }),
|
|
3183
|
+
/* @__PURE__ */ jsxs32("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
3184
|
+
/* @__PURE__ */ jsx62("span", { className: "truncate text-xs leading-[normal] text-text-tertiary", children: activeOrg?.name }),
|
|
3185
|
+
/* @__PURE__ */ jsx62("span", { className: "truncate text-sm leading-[normal] font-semibold text-text-primary", children: activeProduct?.name })
|
|
3155
3186
|
] }),
|
|
3156
|
-
/* @__PURE__ */
|
|
3187
|
+
/* @__PURE__ */ jsx62(ChevronsUpDown3, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" })
|
|
3157
3188
|
] }),
|
|
3158
|
-
/* @__PURE__ */
|
|
3189
|
+
/* @__PURE__ */ jsxs32(
|
|
3159
3190
|
DropdownMenuContent,
|
|
3160
3191
|
{
|
|
3161
3192
|
align: "start",
|
|
3162
3193
|
sideOffset: 6,
|
|
3163
3194
|
className: "flex w-60 flex-col gap-px rounded-xl border-border-subtle bg-[var(--menu-bg)] p-1 shadow-(--menu-shadow)",
|
|
3164
3195
|
children: [
|
|
3165
|
-
/* @__PURE__ */
|
|
3166
|
-
organizations.map((o) => /* @__PURE__ */
|
|
3167
|
-
/* @__PURE__ */
|
|
3168
|
-
/* @__PURE__ */
|
|
3169
|
-
o.id === activeOrgId && /* @__PURE__ */
|
|
3196
|
+
/* @__PURE__ */ jsx62(DropdownMenuLabel, { className: sectionLabel, children: "Organizations" }),
|
|
3197
|
+
organizations.map((o) => /* @__PURE__ */ jsxs32(DropdownMenuItem, { className: menuItem, onSelect: () => onOrgSelect(o.id), children: [
|
|
3198
|
+
/* @__PURE__ */ jsx62(Mark, { item: o, size: "sm" }),
|
|
3199
|
+
/* @__PURE__ */ jsx62("span", { className: "min-w-0 flex-1 truncate", children: o.name }),
|
|
3200
|
+
o.id === activeOrgId && /* @__PURE__ */ jsx62(Check6, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
|
|
3170
3201
|
] }, o.id)),
|
|
3171
|
-
/* @__PURE__ */
|
|
3172
|
-
/* @__PURE__ */
|
|
3202
|
+
/* @__PURE__ */ jsx62(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
|
|
3203
|
+
/* @__PURE__ */ jsxs32(DropdownMenuLabel, { className: sectionLabel, children: [
|
|
3173
3204
|
activeOrg?.name,
|
|
3174
3205
|
" \xB7 Products"
|
|
3175
3206
|
] }),
|
|
3176
|
-
products.map((p) => /* @__PURE__ */
|
|
3177
|
-
/* @__PURE__ */
|
|
3178
|
-
/* @__PURE__ */
|
|
3179
|
-
p.id === activeProductId && /* @__PURE__ */
|
|
3207
|
+
products.map((p) => /* @__PURE__ */ jsxs32(DropdownMenuItem, { className: menuItem, onSelect: () => onProductSelect(p.id), children: [
|
|
3208
|
+
/* @__PURE__ */ jsx62(Mark, { item: p, size: "sm" }),
|
|
3209
|
+
/* @__PURE__ */ jsx62("span", { className: "min-w-0 flex-1 truncate", children: p.name }),
|
|
3210
|
+
p.id === activeProductId && /* @__PURE__ */ jsx62(Check6, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
|
|
3180
3211
|
] }, p.id)),
|
|
3181
|
-
actions && actions.length > 0 && /* @__PURE__ */
|
|
3182
|
-
/* @__PURE__ */
|
|
3183
|
-
actions.map((a) => /* @__PURE__ */
|
|
3212
|
+
actions && actions.length > 0 && /* @__PURE__ */ jsxs32(Fragment5, { children: [
|
|
3213
|
+
/* @__PURE__ */ jsx62(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
|
|
3214
|
+
actions.map((a) => /* @__PURE__ */ jsx62(DropdownMenuItem, { className: menuItem, onSelect: a.onSelect, asChild: Boolean(a.href), children: a.href ? /* @__PURE__ */ jsxs32("a", { href: a.href, children: [
|
|
3184
3215
|
a.icon,
|
|
3185
3216
|
a.label
|
|
3186
|
-
] }) : /* @__PURE__ */
|
|
3217
|
+
] }) : /* @__PURE__ */ jsxs32(Fragment5, { children: [
|
|
3187
3218
|
a.icon,
|
|
3188
3219
|
a.label
|
|
3189
3220
|
] }) }, a.id))
|
|
@@ -3197,12 +3228,12 @@ OrgProductSwitcher.displayName = "OrgProductSwitcher";
|
|
|
3197
3228
|
|
|
3198
3229
|
// src/components/sidebar-back-header.tsx
|
|
3199
3230
|
import { ArrowLeft as ArrowLeft2 } from "lucide-react";
|
|
3200
|
-
import { jsx as
|
|
3231
|
+
import { jsx as jsx63, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3201
3232
|
var focusRing = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus";
|
|
3202
3233
|
var arrowPlate = "flex size-5 items-center justify-center rounded-md transition-colors hover:bg-[color-mix(in_srgb,var(--text-primary)_12%,transparent)] hover:text-text-primary";
|
|
3203
3234
|
var arrowBox = "flex shrink-0 cursor-pointer items-center rounded-xl py-2 pr-0 pl-2.5 text-text-secondary";
|
|
3204
3235
|
var titleBox = "min-w-0 flex-1 cursor-pointer truncate rounded-xl py-2 pr-2.5 pl-[14px] text-left text-sm font-semibold text-text-primary";
|
|
3205
|
-
var Arrow = () => /* @__PURE__ */
|
|
3236
|
+
var Arrow = () => /* @__PURE__ */ jsx63(ArrowLeft2, { size: 16, "aria-hidden": "true" });
|
|
3206
3237
|
function SidebarBackHeader({
|
|
3207
3238
|
title,
|
|
3208
3239
|
onBack,
|
|
@@ -3216,7 +3247,7 @@ function SidebarBackHeader({
|
|
|
3216
3247
|
const { className: arrowClassName, ...arrowRest } = arrowProps ?? {};
|
|
3217
3248
|
const { className: titleClassName, ...titleRest } = titleProps ?? {};
|
|
3218
3249
|
if (!onTitleClick) {
|
|
3219
|
-
return /* @__PURE__ */
|
|
3250
|
+
return /* @__PURE__ */ jsxs33(
|
|
3220
3251
|
"button",
|
|
3221
3252
|
{
|
|
3222
3253
|
type: "button",
|
|
@@ -3224,14 +3255,14 @@ function SidebarBackHeader({
|
|
|
3224
3255
|
className: cn("flex items-center rounded-xl", focusRing, className),
|
|
3225
3256
|
...rowProps,
|
|
3226
3257
|
children: [
|
|
3227
|
-
/* @__PURE__ */
|
|
3228
|
-
/* @__PURE__ */
|
|
3258
|
+
/* @__PURE__ */ jsx63("span", { className: arrowBox, children: /* @__PURE__ */ jsx63("span", { className: cn(arrowPlate, arrowClassName), ...arrowRest, children: /* @__PURE__ */ jsx63(Arrow, {}) }) }),
|
|
3259
|
+
/* @__PURE__ */ jsx63("span", { className: cn(titleBox, titleClassName), ...titleRest, children: title })
|
|
3229
3260
|
]
|
|
3230
3261
|
}
|
|
3231
3262
|
);
|
|
3232
3263
|
}
|
|
3233
|
-
return /* @__PURE__ */
|
|
3234
|
-
/* @__PURE__ */
|
|
3264
|
+
return /* @__PURE__ */ jsxs33("div", { className: cn("flex items-center", className), ...rowProps, children: [
|
|
3265
|
+
/* @__PURE__ */ jsx63(
|
|
3235
3266
|
"button",
|
|
3236
3267
|
{
|
|
3237
3268
|
type: "button",
|
|
@@ -3239,10 +3270,10 @@ function SidebarBackHeader({
|
|
|
3239
3270
|
onClick: onBack,
|
|
3240
3271
|
className: cn(arrowBox, focusRing, arrowClassName),
|
|
3241
3272
|
...arrowRest,
|
|
3242
|
-
children: /* @__PURE__ */
|
|
3273
|
+
children: /* @__PURE__ */ jsx63("span", { className: arrowPlate, children: /* @__PURE__ */ jsx63(Arrow, {}) })
|
|
3243
3274
|
}
|
|
3244
3275
|
),
|
|
3245
|
-
/* @__PURE__ */
|
|
3276
|
+
/* @__PURE__ */ jsx63(
|
|
3246
3277
|
"button",
|
|
3247
3278
|
{
|
|
3248
3279
|
type: "button",
|
|
@@ -3260,7 +3291,7 @@ SidebarBackHeader.displayName = "SidebarBackHeader";
|
|
|
3260
3291
|
import * as React51 from "react";
|
|
3261
3292
|
import { Menu as Menu2 } from "lucide-react";
|
|
3262
3293
|
import { useLocation as useLocation2 } from "react-router";
|
|
3263
|
-
import { jsx as
|
|
3294
|
+
import { jsx as jsx64, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3264
3295
|
function expandedSidebar(sidebar) {
|
|
3265
3296
|
return React51.isValidElement(sidebar) ? React51.cloneElement(sidebar, { collapsed: false }) : sidebar;
|
|
3266
3297
|
}
|
|
@@ -3272,26 +3303,26 @@ function AppShell({ sidebar, topBar, children, className }) {
|
|
|
3272
3303
|
}, [pathname]);
|
|
3273
3304
|
const isMobile = useIsMobile();
|
|
3274
3305
|
if (isMobile) {
|
|
3275
|
-
return /* @__PURE__ */
|
|
3276
|
-
/* @__PURE__ */
|
|
3277
|
-
/* @__PURE__ */
|
|
3278
|
-
/* @__PURE__ */
|
|
3279
|
-
/* @__PURE__ */
|
|
3280
|
-
/* @__PURE__ */
|
|
3281
|
-
/* @__PURE__ */
|
|
3306
|
+
return /* @__PURE__ */ jsx64(TooltipProvider, { children: /* @__PURE__ */ jsxs34("div", { className: cn("flex min-h-screen flex-col bg-bg-surface", className), children: [
|
|
3307
|
+
/* @__PURE__ */ jsxs34("header", { className: "flex shrink-0 items-center justify-between border-b border-border-subtle bg-bg-surface px-4 py-3", children: [
|
|
3308
|
+
/* @__PURE__ */ jsxs34(Sheet, { open: mobileOpen, onOpenChange: setMobileOpen, children: [
|
|
3309
|
+
/* @__PURE__ */ jsx64(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx64(Button, { variant: "ghost", size: "icon", className: "size-8 text-text-secondary", "aria-label": "Open navigation", children: /* @__PURE__ */ jsx64(Menu2, { className: "size-5" }) }) }),
|
|
3310
|
+
/* @__PURE__ */ jsxs34(SheetContent, { side: "left", className: "w-[248px] bg-bg-surface p-0", children: [
|
|
3311
|
+
/* @__PURE__ */ jsx64(SheetTitle, { className: "sr-only", children: "Navigation" }),
|
|
3312
|
+
/* @__PURE__ */ jsx64(SheetDescription, { className: "sr-only", children: "Application navigation menu" }),
|
|
3282
3313
|
expandedSidebar(sidebar)
|
|
3283
3314
|
] })
|
|
3284
3315
|
] }),
|
|
3285
|
-
/* @__PURE__ */
|
|
3316
|
+
/* @__PURE__ */ jsx64("div", { className: "flex items-center gap-2", children: topBar })
|
|
3286
3317
|
] }),
|
|
3287
|
-
/* @__PURE__ */
|
|
3318
|
+
/* @__PURE__ */ jsx64("main", { className: "flex-1 overflow-auto", children })
|
|
3288
3319
|
] }) });
|
|
3289
3320
|
}
|
|
3290
|
-
return /* @__PURE__ */
|
|
3291
|
-
/* @__PURE__ */
|
|
3292
|
-
/* @__PURE__ */
|
|
3293
|
-
topBar && /* @__PURE__ */
|
|
3294
|
-
/* @__PURE__ */
|
|
3321
|
+
return /* @__PURE__ */ jsx64(TooltipProvider, { children: /* @__PURE__ */ jsxs34("div", { className: cn("flex min-h-screen gap-3 bg-bg-surface p-4", className), children: [
|
|
3322
|
+
/* @__PURE__ */ jsx64("div", { className: "sticky top-4 h-[calc(100vh-32px)] shrink-0", children: sidebar }),
|
|
3323
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden", children: [
|
|
3324
|
+
topBar && /* @__PURE__ */ jsx64("div", { className: "flex shrink-0 items-center justify-end gap-2", children: topBar }),
|
|
3325
|
+
/* @__PURE__ */ jsx64("main", { className: "flex-1 overflow-y-auto", children })
|
|
3295
3326
|
] })
|
|
3296
3327
|
] }) });
|
|
3297
3328
|
}
|
|
@@ -3300,11 +3331,11 @@ var AuthenticatedLayout = AppShell;
|
|
|
3300
3331
|
// src/components/grid.tsx
|
|
3301
3332
|
import * as React52 from "react";
|
|
3302
3333
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
3303
|
-
import { jsx as
|
|
3334
|
+
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
3304
3335
|
var Grid = React52.forwardRef(
|
|
3305
3336
|
({ fluid = false, asChild = false, className, ...props }, ref) => {
|
|
3306
3337
|
const Comp = asChild ? Slot6 : "div";
|
|
3307
|
-
return /* @__PURE__ */
|
|
3338
|
+
return /* @__PURE__ */ jsx65(
|
|
3308
3339
|
Comp,
|
|
3309
3340
|
{
|
|
3310
3341
|
ref,
|
|
@@ -3324,7 +3355,7 @@ Grid.displayName = "Grid";
|
|
|
3324
3355
|
// src/components/col.tsx
|
|
3325
3356
|
import * as React53 from "react";
|
|
3326
3357
|
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
3327
|
-
import { jsx as
|
|
3358
|
+
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
3328
3359
|
var TIER_MAX = { base: 4, md: 8, xl: 12 };
|
|
3329
3360
|
var SPAN = {
|
|
3330
3361
|
base: { 1: "col-span-1", 2: "col-span-2", 3: "col-span-3", 4: "col-span-4" },
|
|
@@ -3447,14 +3478,14 @@ function responsiveClasses(span, offset) {
|
|
|
3447
3478
|
var Col = React53.forwardRef(
|
|
3448
3479
|
({ span, offset, asChild = false, className, ...props }, ref) => {
|
|
3449
3480
|
const Comp = asChild ? Slot7 : "div";
|
|
3450
|
-
return /* @__PURE__ */
|
|
3481
|
+
return /* @__PURE__ */ jsx66(Comp, { ref, className: cn(responsiveClasses(span, offset), className), ...props });
|
|
3451
3482
|
}
|
|
3452
3483
|
);
|
|
3453
3484
|
Col.displayName = "Col";
|
|
3454
3485
|
|
|
3455
3486
|
// src/components/code-block.tsx
|
|
3456
3487
|
import * as React54 from "react";
|
|
3457
|
-
import { jsx as
|
|
3488
|
+
import { jsx as jsx67, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3458
3489
|
var TOKEN_CLASS = {
|
|
3459
3490
|
comment: "text-text-tertiary italic",
|
|
3460
3491
|
string: "text-text-success",
|
|
@@ -3586,7 +3617,7 @@ var CodeBlock = React54.forwardRef(
|
|
|
3586
3617
|
({ code, lang = "tsx", copy = false, filename, scroll = false, className, ...props }, ref) => {
|
|
3587
3618
|
const tokens = React54.useMemo(() => tokenize(code, lang), [code, lang]);
|
|
3588
3619
|
const framed = Boolean(filename) || copy;
|
|
3589
|
-
const pre = /* @__PURE__ */
|
|
3620
|
+
const pre = /* @__PURE__ */ jsx67(
|
|
3590
3621
|
"pre",
|
|
3591
3622
|
{
|
|
3592
3623
|
ref,
|
|
@@ -3597,21 +3628,21 @@ var CodeBlock = React54.forwardRef(
|
|
|
3597
3628
|
className
|
|
3598
3629
|
),
|
|
3599
3630
|
...props,
|
|
3600
|
-
children: /* @__PURE__ */
|
|
3631
|
+
children: /* @__PURE__ */ jsx67("code", { children: tokens.map((token, index) => /* @__PURE__ */ jsx67("span", { className: TOKEN_CLASS[token.kind], children: token.text }, index)) })
|
|
3601
3632
|
}
|
|
3602
3633
|
);
|
|
3603
3634
|
if (!framed) return pre;
|
|
3604
|
-
return /* @__PURE__ */
|
|
3605
|
-
/* @__PURE__ */
|
|
3606
|
-
filename ? /* @__PURE__ */
|
|
3607
|
-
copy ? /* @__PURE__ */
|
|
3635
|
+
return /* @__PURE__ */ jsxs35("div", { className: "overflow-hidden rounded-lg border border-border-subtle bg-bg-primary", children: [
|
|
3636
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-2", children: [
|
|
3637
|
+
filename ? /* @__PURE__ */ jsx67("span", { className: "font-mono text-xs text-text-tertiary", children: filename }) : /* @__PURE__ */ jsx67("span", {}),
|
|
3638
|
+
copy ? /* @__PURE__ */ jsx67(CopyButton, { value: code, label: "Copy code" }) : null
|
|
3608
3639
|
] }),
|
|
3609
3640
|
pre
|
|
3610
3641
|
] });
|
|
3611
3642
|
}
|
|
3612
3643
|
);
|
|
3613
3644
|
CodeBlock.displayName = "CodeBlock";
|
|
3614
|
-
var Code = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
3645
|
+
var Code = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(
|
|
3615
3646
|
"code",
|
|
3616
3647
|
{
|
|
3617
3648
|
ref,
|
|
@@ -3626,12 +3657,12 @@ Code.displayName = "Code";
|
|
|
3626
3657
|
|
|
3627
3658
|
// src/components/grid-overlay.tsx
|
|
3628
3659
|
import * as React55 from "react";
|
|
3629
|
-
import { jsx as
|
|
3660
|
+
import { jsx as jsx68 } from "react/jsx-runtime";
|
|
3630
3661
|
var BASELINE = "var(--grid-gutter) / 2";
|
|
3631
3662
|
var GridOverlay = React55.forwardRef(
|
|
3632
3663
|
({ columns, baseline = false, className, style, ...props }, ref) => {
|
|
3633
3664
|
const count = Number.isFinite(columns) ? Math.max(1, Math.floor(columns)) : 1;
|
|
3634
|
-
return /* @__PURE__ */
|
|
3665
|
+
return /* @__PURE__ */ jsx68(
|
|
3635
3666
|
"div",
|
|
3636
3667
|
{
|
|
3637
3668
|
ref,
|
|
@@ -3648,7 +3679,7 @@ var GridOverlay = React55.forwardRef(
|
|
|
3648
3679
|
...style
|
|
3649
3680
|
},
|
|
3650
3681
|
...props,
|
|
3651
|
-
children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */
|
|
3682
|
+
children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx68("span", { style: { backgroundColor: "var(--bg-brand)", opacity: 0.1 } }, i))
|
|
3652
3683
|
}
|
|
3653
3684
|
);
|
|
3654
3685
|
}
|
|
@@ -3659,7 +3690,7 @@ GridOverlay.displayName = "GridOverlay";
|
|
|
3659
3690
|
import * as React56 from "react";
|
|
3660
3691
|
import { cva as cva9 } from "class-variance-authority";
|
|
3661
3692
|
import { Link2 as Link22, KeyRound, Clock, Plus } from "lucide-react";
|
|
3662
|
-
import { jsx as
|
|
3693
|
+
import { jsx as jsx69, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
3663
3694
|
var segmentChipVariants = cva9(
|
|
3664
3695
|
"inline-flex items-center gap-1.5 rounded-lg border px-2.5 py-1 text-sm font-medium leading-tight",
|
|
3665
3696
|
{
|
|
@@ -3683,8 +3714,8 @@ var kindIcons = {
|
|
|
3683
3714
|
var SegmentChip = React56.forwardRef(
|
|
3684
3715
|
({ kind, resource, icon, hideIcon = false, className, ...props }, ref) => {
|
|
3685
3716
|
const Icon = icon ?? kindIcons[kind ?? "granted"];
|
|
3686
|
-
return /* @__PURE__ */
|
|
3687
|
-
!hideIcon && /* @__PURE__ */
|
|
3717
|
+
return /* @__PURE__ */ jsxs36("span", { ref, className: cn(segmentChipVariants({ kind }), className), ...props, children: [
|
|
3718
|
+
!hideIcon && /* @__PURE__ */ jsx69(Icon, { className: "size-3.5 shrink-0 opacity-90", "aria-hidden": "true" }),
|
|
3688
3719
|
resource
|
|
3689
3720
|
] });
|
|
3690
3721
|
}
|
|
@@ -3694,7 +3725,7 @@ SegmentChip.displayName = "SegmentChip";
|
|
|
3694
3725
|
// src/components/connection-card.tsx
|
|
3695
3726
|
import * as React57 from "react";
|
|
3696
3727
|
import { AlertTriangle, ChevronDown as ChevronDown4 } from "lucide-react";
|
|
3697
|
-
import { Fragment as Fragment6, jsx as
|
|
3728
|
+
import { Fragment as Fragment6, jsx as jsx70, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
3698
3729
|
var authLabels = { app: "App", oauth: "OAuth", token: "token" };
|
|
3699
3730
|
var statusMeta = {
|
|
3700
3731
|
connected: { label: "Connected", badge: "success", dot: "success" },
|
|
@@ -3725,7 +3756,7 @@ var ConnectionCard = React57.forwardRef(
|
|
|
3725
3756
|
}, ref) => {
|
|
3726
3757
|
const meta = statusMeta[status];
|
|
3727
3758
|
const connected = status !== "disconnected";
|
|
3728
|
-
const glyphBox = /* @__PURE__ */
|
|
3759
|
+
const glyphBox = /* @__PURE__ */ jsx70(
|
|
3729
3760
|
"div",
|
|
3730
3761
|
{
|
|
3731
3762
|
"aria-hidden": "true",
|
|
@@ -3733,51 +3764,51 @@ var ConnectionCard = React57.forwardRef(
|
|
|
3733
3764
|
children: glyph ?? monogram(name)
|
|
3734
3765
|
}
|
|
3735
3766
|
);
|
|
3736
|
-
const identity = /* @__PURE__ */
|
|
3737
|
-
/* @__PURE__ */
|
|
3738
|
-
/* @__PURE__ */
|
|
3739
|
-
/* @__PURE__ */
|
|
3740
|
-
/* @__PURE__ */
|
|
3767
|
+
const identity = /* @__PURE__ */ jsxs37("div", { className: "min-w-0", children: [
|
|
3768
|
+
/* @__PURE__ */ jsx70("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
|
|
3769
|
+
/* @__PURE__ */ jsxs37("div", { className: "mt-0.5 flex flex-wrap gap-1", children: [
|
|
3770
|
+
/* @__PURE__ */ jsx70(Badge, { variant: "secondary", children: scope }),
|
|
3771
|
+
/* @__PURE__ */ jsx70(Badge, { variant: "secondary", children: authLabels[auth] })
|
|
3741
3772
|
] })
|
|
3742
3773
|
] });
|
|
3743
|
-
const statusBadge = /* @__PURE__ */
|
|
3744
|
-
/* @__PURE__ */
|
|
3774
|
+
const statusBadge = /* @__PURE__ */ jsxs37(Badge, { variant: meta.badge, className: "gap-1.5", children: [
|
|
3775
|
+
/* @__PURE__ */ jsx70(StatusDot, { status: meta.dot, size: "sm" }),
|
|
3745
3776
|
statusLabel ?? meta.label
|
|
3746
3777
|
] });
|
|
3747
|
-
const accessNote = access ? /* @__PURE__ */
|
|
3778
|
+
const accessNote = access ? /* @__PURE__ */ jsxs37(
|
|
3748
3779
|
"div",
|
|
3749
3780
|
{
|
|
3750
3781
|
role: "note",
|
|
3751
3782
|
className: "flex items-start gap-2 border-t border-border-subtle bg-bg-warning-subtle px-4 py-2.5 text-xs font-medium text-text-warning",
|
|
3752
3783
|
children: [
|
|
3753
|
-
/* @__PURE__ */
|
|
3754
|
-
/* @__PURE__ */
|
|
3784
|
+
/* @__PURE__ */ jsx70(AlertTriangle, { className: "mt-0.5 size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
3785
|
+
/* @__PURE__ */ jsx70("span", { children: access })
|
|
3755
3786
|
]
|
|
3756
3787
|
}
|
|
3757
3788
|
) : null;
|
|
3758
3789
|
const footerAction = collapsible ? action : connected && action;
|
|
3759
|
-
const footer = grantedCount !== void 0 || footerAction ? /* @__PURE__ */
|
|
3760
|
-
/* @__PURE__ */
|
|
3790
|
+
const footer = grantedCount !== void 0 || footerAction ? /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between border-t border-border-subtle px-4 py-3", children: [
|
|
3791
|
+
/* @__PURE__ */ jsx70("span", { className: "text-sm text-text-secondary", children: grantedCount !== void 0 ? /* @__PURE__ */ jsxs37(Fragment6, { children: [
|
|
3761
3792
|
"Granted to ",
|
|
3762
|
-
/* @__PURE__ */
|
|
3793
|
+
/* @__PURE__ */ jsx70("span", { className: "font-semibold text-text-primary", children: grantedCount }),
|
|
3763
3794
|
" ",
|
|
3764
3795
|
grantedCount === 1 ? "product" : "products"
|
|
3765
|
-
] }) : /* @__PURE__ */
|
|
3796
|
+
] }) : /* @__PURE__ */ jsx70("span", { className: "text-text-tertiary", children: "Not granted to any product yet" }) }),
|
|
3766
3797
|
footerAction
|
|
3767
3798
|
] }) : null;
|
|
3768
|
-
const drawer = children ? /* @__PURE__ */
|
|
3799
|
+
const drawer = children ? /* @__PURE__ */ jsx70("div", { "data-slot": "drawer", className: "border-t border-border-subtle", children }) : null;
|
|
3769
3800
|
if (!collapsible) {
|
|
3770
|
-
return /* @__PURE__ */
|
|
3801
|
+
return /* @__PURE__ */ jsxs37(
|
|
3771
3802
|
Card,
|
|
3772
3803
|
{
|
|
3773
3804
|
ref,
|
|
3774
3805
|
className: cn(status === "disconnected" && "border-dashed border-border-default", className),
|
|
3775
3806
|
...props,
|
|
3776
3807
|
children: [
|
|
3777
|
-
/* @__PURE__ */
|
|
3808
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 p-4", children: [
|
|
3778
3809
|
glyphBox,
|
|
3779
3810
|
identity,
|
|
3780
|
-
/* @__PURE__ */
|
|
3811
|
+
/* @__PURE__ */ jsx70("div", { className: "ml-auto shrink-0", children: connected ? statusBadge : action })
|
|
3781
3812
|
] }),
|
|
3782
3813
|
accessNote,
|
|
3783
3814
|
footer,
|
|
@@ -3786,7 +3817,7 @@ var ConnectionCard = React57.forwardRef(
|
|
|
3786
3817
|
}
|
|
3787
3818
|
);
|
|
3788
3819
|
}
|
|
3789
|
-
return /* @__PURE__ */
|
|
3820
|
+
return /* @__PURE__ */ jsx70(Collapsible, { defaultOpen, open, onOpenChange, children: /* @__PURE__ */ jsxs37(
|
|
3790
3821
|
Card,
|
|
3791
3822
|
{
|
|
3792
3823
|
ref,
|
|
@@ -3797,7 +3828,7 @@ var ConnectionCard = React57.forwardRef(
|
|
|
3797
3828
|
),
|
|
3798
3829
|
...props,
|
|
3799
3830
|
children: [
|
|
3800
|
-
/* @__PURE__ */
|
|
3831
|
+
/* @__PURE__ */ jsx70(CollapsibleTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs37(
|
|
3801
3832
|
"button",
|
|
3802
3833
|
{
|
|
3803
3834
|
type: "button",
|
|
@@ -3805,9 +3836,9 @@ var ConnectionCard = React57.forwardRef(
|
|
|
3805
3836
|
children: [
|
|
3806
3837
|
glyphBox,
|
|
3807
3838
|
identity,
|
|
3808
|
-
/* @__PURE__ */
|
|
3839
|
+
/* @__PURE__ */ jsxs37("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
|
|
3809
3840
|
statusBadge,
|
|
3810
|
-
/* @__PURE__ */
|
|
3841
|
+
/* @__PURE__ */ jsx70(
|
|
3811
3842
|
ChevronDown4,
|
|
3812
3843
|
{
|
|
3813
3844
|
"aria-hidden": "true",
|
|
@@ -3818,7 +3849,7 @@ var ConnectionCard = React57.forwardRef(
|
|
|
3818
3849
|
]
|
|
3819
3850
|
}
|
|
3820
3851
|
) }),
|
|
3821
|
-
/* @__PURE__ */
|
|
3852
|
+
/* @__PURE__ */ jsxs37(CollapsibleContent2, { children: [
|
|
3822
3853
|
accessNote,
|
|
3823
3854
|
footer,
|
|
3824
3855
|
drawer
|
|
@@ -3832,7 +3863,7 @@ ConnectionCard.displayName = "ConnectionCard";
|
|
|
3832
3863
|
|
|
3833
3864
|
// src/components/request-row.tsx
|
|
3834
3865
|
import * as React58 from "react";
|
|
3835
|
-
import { Fragment as Fragment7, jsx as
|
|
3866
|
+
import { Fragment as Fragment7, jsx as jsx71, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
3836
3867
|
function monogram2(name) {
|
|
3837
3868
|
return name.replace(/[^a-zA-Z0-9 ]/g, " ").split(/\s+/).filter(Boolean).slice(0, 2).map((w) => w[0].toUpperCase()).join("");
|
|
3838
3869
|
}
|
|
@@ -3841,22 +3872,22 @@ var RequestRow = React58.forwardRef(
|
|
|
3841
3872
|
let controls = action;
|
|
3842
3873
|
if (controls === void 0) {
|
|
3843
3874
|
if (surface === "org" && state2 === "pending") {
|
|
3844
|
-
controls = /* @__PURE__ */
|
|
3845
|
-
/* @__PURE__ */
|
|
3846
|
-
/* @__PURE__ */
|
|
3875
|
+
controls = /* @__PURE__ */ jsxs38(Fragment7, { children: [
|
|
3876
|
+
/* @__PURE__ */ jsx71(Button, { variant: "outline", size: "sm", onClick: onDeny, children: "Deny" }),
|
|
3877
|
+
/* @__PURE__ */ jsx71(Button, { size: "sm", onClick: onApprove, children: "Approve" })
|
|
3847
3878
|
] });
|
|
3848
3879
|
} else if (state2 === "available") {
|
|
3849
|
-
controls = /* @__PURE__ */
|
|
3880
|
+
controls = /* @__PURE__ */ jsx71(Button, { size: "sm", onClick: onRequest, children: "Request" });
|
|
3850
3881
|
} else if (state2 === "pending") {
|
|
3851
|
-
controls = /* @__PURE__ */
|
|
3852
|
-
/* @__PURE__ */
|
|
3882
|
+
controls = /* @__PURE__ */ jsxs38(Badge, { variant: "secondary", className: "gap-1.5", children: [
|
|
3883
|
+
/* @__PURE__ */ jsx71(StatusDot, { status: "neutral", size: "sm" }),
|
|
3853
3884
|
"Pending"
|
|
3854
3885
|
] });
|
|
3855
3886
|
} else if (state2 === "granted") {
|
|
3856
|
-
controls = /* @__PURE__ */
|
|
3887
|
+
controls = /* @__PURE__ */ jsx71(SegmentChip, { kind: "granted", resource: grantedResource ?? "a segment" });
|
|
3857
3888
|
}
|
|
3858
3889
|
}
|
|
3859
|
-
return /* @__PURE__ */
|
|
3890
|
+
return /* @__PURE__ */ jsxs38(
|
|
3860
3891
|
"div",
|
|
3861
3892
|
{
|
|
3862
3893
|
ref,
|
|
@@ -3866,7 +3897,7 @@ var RequestRow = React58.forwardRef(
|
|
|
3866
3897
|
),
|
|
3867
3898
|
...props,
|
|
3868
3899
|
children: [
|
|
3869
|
-
/* @__PURE__ */
|
|
3900
|
+
/* @__PURE__ */ jsx71(
|
|
3870
3901
|
"div",
|
|
3871
3902
|
{
|
|
3872
3903
|
"aria-hidden": "true",
|
|
@@ -3874,11 +3905,11 @@ var RequestRow = React58.forwardRef(
|
|
|
3874
3905
|
children: glyph ?? monogram2(name)
|
|
3875
3906
|
}
|
|
3876
3907
|
),
|
|
3877
|
-
/* @__PURE__ */
|
|
3878
|
-
/* @__PURE__ */
|
|
3879
|
-
subtitle && /* @__PURE__ */
|
|
3908
|
+
/* @__PURE__ */ jsxs38("div", { className: "min-w-0", children: [
|
|
3909
|
+
/* @__PURE__ */ jsx71("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
|
|
3910
|
+
subtitle && /* @__PURE__ */ jsx71("p", { className: "truncate text-xs text-text-tertiary", children: subtitle })
|
|
3880
3911
|
] }),
|
|
3881
|
-
/* @__PURE__ */
|
|
3912
|
+
/* @__PURE__ */ jsx71("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: controls })
|
|
3882
3913
|
]
|
|
3883
3914
|
}
|
|
3884
3915
|
);
|
|
@@ -3889,7 +3920,7 @@ RequestRow.displayName = "RequestRow";
|
|
|
3889
3920
|
// src/components/feedback-button.tsx
|
|
3890
3921
|
import * as React59 from "react";
|
|
3891
3922
|
import { MessageSquare, Loader2 as Loader22, CheckCircle2 } from "lucide-react";
|
|
3892
|
-
import { jsx as
|
|
3923
|
+
import { jsx as jsx72, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
3893
3924
|
var TITLE_MAX = 256;
|
|
3894
3925
|
var DETAILS_MAX = 65536;
|
|
3895
3926
|
var DEFAULT_LABELS = {
|
|
@@ -3936,20 +3967,20 @@ function FeedbackButton({ onSubmit, labels, className }) {
|
|
|
3936
3967
|
setStatus("error");
|
|
3937
3968
|
}
|
|
3938
3969
|
};
|
|
3939
|
-
return /* @__PURE__ */
|
|
3940
|
-
/* @__PURE__ */
|
|
3941
|
-
/* @__PURE__ */
|
|
3970
|
+
return /* @__PURE__ */ jsxs39(Popover, { open, onOpenChange: changeOpen, children: [
|
|
3971
|
+
/* @__PURE__ */ jsx72(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs39(Button, { variant: "ghost", size: "sm", "aria-label": l.trigger, className, children: [
|
|
3972
|
+
/* @__PURE__ */ jsx72(MessageSquare, { className: "size-4", "aria-hidden": "true" }),
|
|
3942
3973
|
l.trigger
|
|
3943
3974
|
] }) }),
|
|
3944
|
-
/* @__PURE__ */
|
|
3945
|
-
/* @__PURE__ */
|
|
3946
|
-
/* @__PURE__ */
|
|
3947
|
-
/* @__PURE__ */
|
|
3948
|
-
] }) : /* @__PURE__ */
|
|
3949
|
-
/* @__PURE__ */
|
|
3950
|
-
/* @__PURE__ */
|
|
3951
|
-
/* @__PURE__ */
|
|
3952
|
-
/* @__PURE__ */
|
|
3975
|
+
/* @__PURE__ */ jsx72(PopoverContent, { align: "end", side: "bottom", className: "w-80", children: status === "success" ? /* @__PURE__ */ jsxs39("div", { className: "flex flex-col items-center gap-3 py-2 text-center", children: [
|
|
3976
|
+
/* @__PURE__ */ jsx72(CheckCircle2, { className: "size-8 text-text-success", "aria-hidden": "true" }),
|
|
3977
|
+
/* @__PURE__ */ jsx72("p", { role: "status", className: "text-sm text-text-primary", children: l.success }),
|
|
3978
|
+
/* @__PURE__ */ jsx72(Button, { variant: "outline", size: "sm", onClick: () => changeOpen(false), children: "Close" })
|
|
3979
|
+
] }) : /* @__PURE__ */ jsxs39("form", { onSubmit: handleSubmit, className: "flex flex-col gap-3", children: [
|
|
3980
|
+
/* @__PURE__ */ jsx72("p", { className: "text-sm font-medium text-text-primary", children: l.title }),
|
|
3981
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-1.5", children: [
|
|
3982
|
+
/* @__PURE__ */ jsx72(Label2, { htmlFor: titleId, children: l.titleField }),
|
|
3983
|
+
/* @__PURE__ */ jsx72(
|
|
3953
3984
|
Input,
|
|
3954
3985
|
{
|
|
3955
3986
|
id: titleId,
|
|
@@ -3960,16 +3991,16 @@ function FeedbackButton({ onSubmit, labels, className }) {
|
|
|
3960
3991
|
"aria-describedby": titleTooLong ? titleErrId : void 0
|
|
3961
3992
|
}
|
|
3962
3993
|
),
|
|
3963
|
-
titleTooLong && /* @__PURE__ */
|
|
3994
|
+
titleTooLong && /* @__PURE__ */ jsxs39("p", { id: titleErrId, className: "text-xs text-text-danger", children: [
|
|
3964
3995
|
l.titleField,
|
|
3965
3996
|
" must be ",
|
|
3966
3997
|
TITLE_MAX,
|
|
3967
3998
|
" characters or fewer."
|
|
3968
3999
|
] })
|
|
3969
4000
|
] }),
|
|
3970
|
-
/* @__PURE__ */
|
|
3971
|
-
/* @__PURE__ */
|
|
3972
|
-
/* @__PURE__ */
|
|
4001
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-1.5", children: [
|
|
4002
|
+
/* @__PURE__ */ jsx72(Label2, { htmlFor: detailsId, children: l.detailsField }),
|
|
4003
|
+
/* @__PURE__ */ jsx72(
|
|
3973
4004
|
Textarea,
|
|
3974
4005
|
{
|
|
3975
4006
|
id: detailsId,
|
|
@@ -3980,16 +4011,16 @@ function FeedbackButton({ onSubmit, labels, className }) {
|
|
|
3980
4011
|
"aria-describedby": detailsTooLong ? detailsErrId : void 0
|
|
3981
4012
|
}
|
|
3982
4013
|
),
|
|
3983
|
-
detailsTooLong && /* @__PURE__ */
|
|
4014
|
+
detailsTooLong && /* @__PURE__ */ jsxs39("p", { id: detailsErrId, className: "text-xs text-text-danger", children: [
|
|
3984
4015
|
l.detailsField,
|
|
3985
4016
|
" must be ",
|
|
3986
4017
|
DETAILS_MAX,
|
|
3987
4018
|
" characters or fewer."
|
|
3988
4019
|
] })
|
|
3989
4020
|
] }),
|
|
3990
|
-
status === "error" && /* @__PURE__ */
|
|
3991
|
-
/* @__PURE__ */
|
|
3992
|
-
submitting && /* @__PURE__ */
|
|
4021
|
+
status === "error" && /* @__PURE__ */ jsx72(InlineError, { children: l.error }),
|
|
4022
|
+
/* @__PURE__ */ jsxs39(Button, { type: "submit", disabled: !valid || submitting, children: [
|
|
4023
|
+
submitting && /* @__PURE__ */ jsx72(Loader22, { className: "size-4 animate-spin", "aria-hidden": "true" }),
|
|
3993
4024
|
l.submit
|
|
3994
4025
|
] })
|
|
3995
4026
|
] }) })
|
|
@@ -3998,7 +4029,7 @@ function FeedbackButton({ onSubmit, labels, className }) {
|
|
|
3998
4029
|
|
|
3999
4030
|
// src/components/create-product-window.tsx
|
|
4000
4031
|
import { useForm } from "react-hook-form";
|
|
4001
|
-
import { jsx as
|
|
4032
|
+
import { jsx as jsx73, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
4002
4033
|
var CREATE_ORG_VALUE = "__create_new_org__";
|
|
4003
4034
|
function CreateProductWindow({
|
|
4004
4035
|
organizations,
|
|
@@ -4031,10 +4062,10 @@ function CreateProductWindow({
|
|
|
4031
4062
|
}
|
|
4032
4063
|
});
|
|
4033
4064
|
const showSelect = organizations.length > 0;
|
|
4034
|
-
return /* @__PURE__ */
|
|
4035
|
-
showSelect && /* @__PURE__ */
|
|
4036
|
-
/* @__PURE__ */
|
|
4037
|
-
/* @__PURE__ */
|
|
4065
|
+
return /* @__PURE__ */ jsxs40("div", { className: "flex w-full max-w-md flex-col gap-6", children: [
|
|
4066
|
+
showSelect && /* @__PURE__ */ jsxs40("div", { className: "space-y-2", children: [
|
|
4067
|
+
/* @__PURE__ */ jsx73("span", { className: "text-sm font-medium leading-none text-text-primary", children: "Organization" }),
|
|
4068
|
+
/* @__PURE__ */ jsx73(
|
|
4038
4069
|
Select,
|
|
4039
4070
|
{
|
|
4040
4071
|
"data-testid": "create-product-org-select",
|
|
@@ -4047,9 +4078,9 @@ function CreateProductWindow({
|
|
|
4047
4078
|
}
|
|
4048
4079
|
)
|
|
4049
4080
|
] }),
|
|
4050
|
-
!createOrgMode && /* @__PURE__ */
|
|
4051
|
-
/* @__PURE__ */
|
|
4052
|
-
productsLoading ? /* @__PURE__ */
|
|
4081
|
+
!createOrgMode && /* @__PURE__ */ jsxs40("div", { className: "space-y-2", children: [
|
|
4082
|
+
/* @__PURE__ */ jsx73("span", { className: "text-sm font-medium leading-none text-text-primary", children: "Products" }),
|
|
4083
|
+
productsLoading ? /* @__PURE__ */ jsx73("p", { className: "text-sm text-text-tertiary", children: "Loading products\u2026" }) : products.length === 0 ? /* @__PURE__ */ jsx73("p", { className: "text-sm text-text-tertiary", children: "No products yet." }) : /* @__PURE__ */ jsx73("ul", { className: "flex flex-col gap-1", children: products.map((product) => /* @__PURE__ */ jsx73("li", { children: /* @__PURE__ */ jsxs40(
|
|
4053
4084
|
"button",
|
|
4054
4085
|
{
|
|
4055
4086
|
type: "button",
|
|
@@ -4058,14 +4089,14 @@ function CreateProductWindow({
|
|
|
4058
4089
|
"flex w-full items-center justify-between rounded-md border border-border-default bg-bg-primary px-3 py-2 text-left text-sm text-text-primary hover:bg-bg-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus"
|
|
4059
4090
|
),
|
|
4060
4091
|
children: [
|
|
4061
|
-
/* @__PURE__ */
|
|
4062
|
-
/* @__PURE__ */
|
|
4092
|
+
/* @__PURE__ */ jsx73("span", { className: "truncate", children: product.name }),
|
|
4093
|
+
/* @__PURE__ */ jsx73("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
|
|
4063
4094
|
]
|
|
4064
4095
|
}
|
|
4065
4096
|
) }, product.id)) })
|
|
4066
4097
|
] }),
|
|
4067
|
-
/* @__PURE__ */
|
|
4068
|
-
createOrgMode && /* @__PURE__ */
|
|
4098
|
+
/* @__PURE__ */ jsx73(Form, { ...form, children: /* @__PURE__ */ jsxs40("form", { onSubmit: handleSubmit, className: "flex flex-col gap-4", noValidate: true, children: [
|
|
4099
|
+
createOrgMode && /* @__PURE__ */ jsx73(
|
|
4069
4100
|
FormField,
|
|
4070
4101
|
{
|
|
4071
4102
|
control: form.control,
|
|
@@ -4073,14 +4104,14 @@ function CreateProductWindow({
|
|
|
4073
4104
|
rules: {
|
|
4074
4105
|
validate: (value) => value.trim().length > 0 || "Organization name is required"
|
|
4075
4106
|
},
|
|
4076
|
-
render: ({ field }) => /* @__PURE__ */
|
|
4077
|
-
/* @__PURE__ */
|
|
4078
|
-
/* @__PURE__ */
|
|
4079
|
-
/* @__PURE__ */
|
|
4107
|
+
render: ({ field }) => /* @__PURE__ */ jsxs40(FormItem, { children: [
|
|
4108
|
+
/* @__PURE__ */ jsx73(FormLabel, { children: "Organization name" }),
|
|
4109
|
+
/* @__PURE__ */ jsx73(FormControl, { children: /* @__PURE__ */ jsx73(Input, { placeholder: "Acme Inc.", ...field }) }),
|
|
4110
|
+
/* @__PURE__ */ jsx73(FormMessage, {})
|
|
4080
4111
|
] })
|
|
4081
4112
|
}
|
|
4082
4113
|
),
|
|
4083
|
-
/* @__PURE__ */
|
|
4114
|
+
/* @__PURE__ */ jsx73(
|
|
4084
4115
|
FormField,
|
|
4085
4116
|
{
|
|
4086
4117
|
control: form.control,
|
|
@@ -4088,15 +4119,15 @@ function CreateProductWindow({
|
|
|
4088
4119
|
rules: {
|
|
4089
4120
|
validate: (value) => value.trim().length > 0 || "Product name is required"
|
|
4090
4121
|
},
|
|
4091
|
-
render: ({ field }) => /* @__PURE__ */
|
|
4092
|
-
/* @__PURE__ */
|
|
4093
|
-
/* @__PURE__ */
|
|
4094
|
-
/* @__PURE__ */
|
|
4122
|
+
render: ({ field }) => /* @__PURE__ */ jsxs40(FormItem, { children: [
|
|
4123
|
+
/* @__PURE__ */ jsx73(FormLabel, { children: "Product name" }),
|
|
4124
|
+
/* @__PURE__ */ jsx73(FormControl, { children: /* @__PURE__ */ jsx73(Input, { placeholder: "My product", ...field }) }),
|
|
4125
|
+
/* @__PURE__ */ jsx73(FormMessage, {})
|
|
4095
4126
|
] })
|
|
4096
4127
|
}
|
|
4097
4128
|
),
|
|
4098
|
-
error && /* @__PURE__ */
|
|
4099
|
-
/* @__PURE__ */
|
|
4129
|
+
error && /* @__PURE__ */ jsx73(InlineError, { children: error }),
|
|
4130
|
+
/* @__PURE__ */ jsx73(Button, { type: "submit", disabled: submitting, children: "Create product" })
|
|
4100
4131
|
] }) })
|
|
4101
4132
|
] });
|
|
4102
4133
|
}
|
|
@@ -4137,16 +4168,16 @@ function isNotificationSettled(item) {
|
|
|
4137
4168
|
// src/components/notification-bell.tsx
|
|
4138
4169
|
import * as React60 from "react";
|
|
4139
4170
|
import { BellRing, Check as Check7, Settings } from "lucide-react";
|
|
4140
|
-
import { jsx as
|
|
4171
|
+
import { jsx as jsx74, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
4141
4172
|
function MarkReadButton({ title, onClick }) {
|
|
4142
|
-
return /* @__PURE__ */
|
|
4173
|
+
return /* @__PURE__ */ jsx74(
|
|
4143
4174
|
"button",
|
|
4144
4175
|
{
|
|
4145
4176
|
type: "button",
|
|
4146
4177
|
"aria-label": `Mark "${title}" as read`,
|
|
4147
4178
|
onClick,
|
|
4148
4179
|
className: "flex size-5 shrink-0 items-center justify-center rounded text-text-tertiary opacity-0 transition-opacity hover:text-text-primary focus-visible:opacity-100 group-hover:opacity-100",
|
|
4149
|
-
children: /* @__PURE__ */
|
|
4180
|
+
children: /* @__PURE__ */ jsx74(Check7, { className: "size-3.5", "aria-hidden": "true" })
|
|
4150
4181
|
}
|
|
4151
4182
|
);
|
|
4152
4183
|
}
|
|
@@ -4162,10 +4193,10 @@ function BellRow({
|
|
|
4162
4193
|
const markable = Boolean(onMarkRead) && unread && item.cls !== "ephemeral";
|
|
4163
4194
|
const actions = settled ? [] : item.actions ?? [];
|
|
4164
4195
|
const age = item.createdAt ? formatAge(item.createdAt instanceof Date ? item.createdAt : new Date(item.createdAt)) : null;
|
|
4165
|
-
return /* @__PURE__ */
|
|
4166
|
-
/* @__PURE__ */
|
|
4167
|
-
/* @__PURE__ */
|
|
4168
|
-
/* @__PURE__ */
|
|
4196
|
+
return /* @__PURE__ */ jsxs41("div", { className: cn("group rounded-lg bg-bg-surface px-3 py-2.5", settled && "opacity-45"), children: [
|
|
4197
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-start gap-2.5", children: [
|
|
4198
|
+
/* @__PURE__ */ jsxs41("div", { className: "min-w-0 flex-1", children: [
|
|
4199
|
+
/* @__PURE__ */ jsx74(
|
|
4169
4200
|
"button",
|
|
4170
4201
|
{
|
|
4171
4202
|
type: "button",
|
|
@@ -4177,20 +4208,20 @@ function BellRow({
|
|
|
4177
4208
|
children: item.title
|
|
4178
4209
|
}
|
|
4179
4210
|
),
|
|
4180
|
-
/* @__PURE__ */
|
|
4181
|
-
/* @__PURE__ */
|
|
4211
|
+
/* @__PURE__ */ jsxs41("p", { className: "mt-1 truncate text-xs text-text-tertiary", children: [
|
|
4212
|
+
/* @__PURE__ */ jsx74("span", { className: "font-semibold uppercase tracking-wide text-text-secondary", children: item.source }),
|
|
4182
4213
|
item.receipt ? `, ${item.receipt}` : ""
|
|
4183
4214
|
] })
|
|
4184
4215
|
] }),
|
|
4185
|
-
(age || markable) && /* @__PURE__ */
|
|
4186
|
-
age && /* @__PURE__ */
|
|
4187
|
-
markable && /* @__PURE__ */
|
|
4216
|
+
(age || markable) && /* @__PURE__ */ jsxs41("div", { className: "mt-px flex shrink-0 items-center gap-1", children: [
|
|
4217
|
+
age && /* @__PURE__ */ jsx74("span", { className: "text-xs text-text-tertiary", children: age }),
|
|
4218
|
+
markable && /* @__PURE__ */ jsx74(MarkReadButton, { title: item.title, onClick: () => onMarkRead(item.id) })
|
|
4188
4219
|
] })
|
|
4189
4220
|
] }),
|
|
4190
|
-
(actions.length > 0 || item.deepLink) && /* @__PURE__ */
|
|
4221
|
+
(actions.length > 0 || item.deepLink) && /* @__PURE__ */ jsxs41("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-2", children: [
|
|
4191
4222
|
actions.map((action) => {
|
|
4192
4223
|
const chip = action.variant === "primary" || action.variant === "destructive";
|
|
4193
|
-
return /* @__PURE__ */
|
|
4224
|
+
return /* @__PURE__ */ jsx74(
|
|
4194
4225
|
"button",
|
|
4195
4226
|
{
|
|
4196
4227
|
type: "button",
|
|
@@ -4205,7 +4236,7 @@ function BellRow({
|
|
|
4205
4236
|
action.id
|
|
4206
4237
|
);
|
|
4207
4238
|
}),
|
|
4208
|
-
item.deepLink && /* @__PURE__ */
|
|
4239
|
+
item.deepLink && /* @__PURE__ */ jsx74(
|
|
4209
4240
|
"button",
|
|
4210
4241
|
{
|
|
4211
4242
|
type: "button",
|
|
@@ -4239,8 +4270,8 @@ var NotificationBell = React60.forwardRef(
|
|
|
4239
4270
|
[formatAge]
|
|
4240
4271
|
);
|
|
4241
4272
|
const rows = items.slice(0, maxItems);
|
|
4242
|
-
return /* @__PURE__ */
|
|
4243
|
-
/* @__PURE__ */
|
|
4273
|
+
return /* @__PURE__ */ jsxs41(Popover, { open, onOpenChange, children: [
|
|
4274
|
+
/* @__PURE__ */ jsx74(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs41(
|
|
4244
4275
|
"button",
|
|
4245
4276
|
{
|
|
4246
4277
|
ref,
|
|
@@ -4251,16 +4282,16 @@ var NotificationBell = React60.forwardRef(
|
|
|
4251
4282
|
className
|
|
4252
4283
|
),
|
|
4253
4284
|
children: [
|
|
4254
|
-
/* @__PURE__ */
|
|
4255
|
-
unread > 0 && /* @__PURE__ */
|
|
4285
|
+
/* @__PURE__ */ jsx74(BellRing, { className: "size-[18px]", "aria-hidden": "true" }),
|
|
4286
|
+
unread > 0 && /* @__PURE__ */ jsx74("span", { className: "absolute -right-1.5 -top-1.5 flex size-[17px] items-center justify-center rounded-full bg-bg-brand text-xs font-bold leading-none text-text-on-brand ring-2 ring-bg-surface", children: unread })
|
|
4256
4287
|
]
|
|
4257
4288
|
}
|
|
4258
4289
|
) }),
|
|
4259
|
-
/* @__PURE__ */
|
|
4260
|
-
/* @__PURE__ */
|
|
4261
|
-
/* @__PURE__ */
|
|
4262
|
-
/* @__PURE__ */
|
|
4263
|
-
/* @__PURE__ */
|
|
4290
|
+
/* @__PURE__ */ jsxs41(PopoverContent, { align: "end", className: "w-[380px] overflow-hidden p-0", children: [
|
|
4291
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center justify-between px-5 py-3", children: [
|
|
4292
|
+
/* @__PURE__ */ jsx74("span", { className: "text-sm font-bold text-text-primary", children: "Notification center" }),
|
|
4293
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-3", children: [
|
|
4294
|
+
/* @__PURE__ */ jsx74(
|
|
4264
4295
|
"button",
|
|
4265
4296
|
{
|
|
4266
4297
|
type: "button",
|
|
@@ -4273,19 +4304,19 @@ var NotificationBell = React60.forwardRef(
|
|
|
4273
4304
|
children: "Mark all read"
|
|
4274
4305
|
}
|
|
4275
4306
|
),
|
|
4276
|
-
onOpenSettings && /* @__PURE__ */
|
|
4307
|
+
onOpenSettings && /* @__PURE__ */ jsx74(
|
|
4277
4308
|
"button",
|
|
4278
4309
|
{
|
|
4279
4310
|
type: "button",
|
|
4280
4311
|
"aria-label": "Notification settings",
|
|
4281
4312
|
onClick: () => onOpenSettings(),
|
|
4282
4313
|
className: "flex size-6 items-center justify-center rounded-md text-text-tertiary transition-colors hover:bg-bg-surface hover:text-text-primary",
|
|
4283
|
-
children: /* @__PURE__ */
|
|
4314
|
+
children: /* @__PURE__ */ jsx74(Settings, { className: "size-[15px]", "aria-hidden": "true" })
|
|
4284
4315
|
}
|
|
4285
4316
|
)
|
|
4286
4317
|
] })
|
|
4287
4318
|
] }),
|
|
4288
|
-
/* @__PURE__ */
|
|
4319
|
+
/* @__PURE__ */ jsx74("div", { className: "space-y-1.5 px-2 pb-2", children: rows.length === 0 ? /* @__PURE__ */ jsx74("p", { className: "px-3 py-12 text-center text-xs leading-relaxed text-text-disabled", children: "Nothing yet. Everything addressed to you lands here." }) : rows.map((item) => /* @__PURE__ */ jsx74(
|
|
4289
4320
|
BellRow,
|
|
4290
4321
|
{
|
|
4291
4322
|
item,
|
|
@@ -4296,7 +4327,7 @@ var NotificationBell = React60.forwardRef(
|
|
|
4296
4327
|
},
|
|
4297
4328
|
item.id
|
|
4298
4329
|
)) }),
|
|
4299
|
-
items.length > 0 && onOpenArchive && /* @__PURE__ */
|
|
4330
|
+
items.length > 0 && onOpenArchive && /* @__PURE__ */ jsx74(
|
|
4300
4331
|
"button",
|
|
4301
4332
|
{
|
|
4302
4333
|
type: "button",
|
|
@@ -4314,19 +4345,19 @@ NotificationBell.displayName = "NotificationBell";
|
|
|
4314
4345
|
// src/components/notification-center.tsx
|
|
4315
4346
|
import * as React61 from "react";
|
|
4316
4347
|
import { ArrowUpRight, Check as Check8, Search as Search2 } from "lucide-react";
|
|
4317
|
-
import { jsx as
|
|
4348
|
+
import { jsx as jsx75, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
4318
4349
|
var chipBase = "rounded-lg px-3 py-1.5 text-sm font-medium transition-colors";
|
|
4319
4350
|
var chipOn = "bg-bg-brand-subtle text-text-brand";
|
|
4320
4351
|
var chipOff = "bg-bg-elevated text-text-secondary hover:text-text-primary";
|
|
4321
4352
|
function MarkReadButton2({ title, onClick }) {
|
|
4322
|
-
return /* @__PURE__ */
|
|
4353
|
+
return /* @__PURE__ */ jsx75(
|
|
4323
4354
|
"button",
|
|
4324
4355
|
{
|
|
4325
4356
|
type: "button",
|
|
4326
4357
|
"aria-label": `Mark "${title}" as read`,
|
|
4327
4358
|
onClick,
|
|
4328
4359
|
className: "flex size-5 shrink-0 items-center justify-center rounded text-text-tertiary opacity-0 transition-opacity hover:text-text-primary focus-visible:opacity-100 group-hover:opacity-100",
|
|
4329
|
-
children: /* @__PURE__ */
|
|
4360
|
+
children: /* @__PURE__ */ jsx75(Check8, { className: "size-3.5", "aria-hidden": "true" })
|
|
4330
4361
|
}
|
|
4331
4362
|
);
|
|
4332
4363
|
}
|
|
@@ -4340,16 +4371,16 @@ function CenterRow({
|
|
|
4340
4371
|
const unread = !item.read;
|
|
4341
4372
|
const markable = Boolean(onMarkRead) && unread && item.cls !== "ephemeral";
|
|
4342
4373
|
const age = item.createdAt ? formatAge(item.createdAt instanceof Date ? item.createdAt : new Date(item.createdAt)) : null;
|
|
4343
|
-
return /* @__PURE__ */
|
|
4344
|
-
/* @__PURE__ */
|
|
4345
|
-
/* @__PURE__ */
|
|
4346
|
-
/* @__PURE__ */
|
|
4347
|
-
(age || markable) && /* @__PURE__ */
|
|
4348
|
-
age && /* @__PURE__ */
|
|
4349
|
-
markable && /* @__PURE__ */
|
|
4374
|
+
return /* @__PURE__ */ jsxs42("article", { className: "group rounded-lg bg-bg-elevated px-4 py-3", children: [
|
|
4375
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-2", children: [
|
|
4376
|
+
/* @__PURE__ */ jsx75("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
|
|
4377
|
+
/* @__PURE__ */ jsx75(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
|
|
4378
|
+
(age || markable) && /* @__PURE__ */ jsxs42("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
|
|
4379
|
+
age && /* @__PURE__ */ jsx75("span", { className: "text-xs tabular-nums text-text-tertiary", children: age }),
|
|
4380
|
+
markable && /* @__PURE__ */ jsx75(MarkReadButton2, { title: item.title, onClick: () => onMarkRead(item.id) })
|
|
4350
4381
|
] })
|
|
4351
4382
|
] }),
|
|
4352
|
-
/* @__PURE__ */
|
|
4383
|
+
/* @__PURE__ */ jsx75(
|
|
4353
4384
|
"button",
|
|
4354
4385
|
{
|
|
4355
4386
|
type: "button",
|
|
@@ -4361,13 +4392,13 @@ function CenterRow({
|
|
|
4361
4392
|
children: item.title
|
|
4362
4393
|
}
|
|
4363
4394
|
),
|
|
4364
|
-
item.body && /* @__PURE__ */
|
|
4365
|
-
(item.receipt || item.deepLink) && /* @__PURE__ */
|
|
4366
|
-
item.receipt && /* @__PURE__ */
|
|
4367
|
-
/* @__PURE__ */
|
|
4395
|
+
item.body && /* @__PURE__ */ jsx75("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
|
|
4396
|
+
(item.receipt || item.deepLink) && /* @__PURE__ */ jsxs42("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-1.5", children: [
|
|
4397
|
+
item.receipt && /* @__PURE__ */ jsxs42("span", { className: "inline-flex items-center gap-1.5 text-sm text-text-tertiary", children: [
|
|
4398
|
+
/* @__PURE__ */ jsx75(Check8, { className: "size-3 shrink-0 text-text-success", "aria-hidden": "true" }),
|
|
4368
4399
|
item.receipt
|
|
4369
4400
|
] }),
|
|
4370
|
-
item.deepLink && /* @__PURE__ */
|
|
4401
|
+
item.deepLink && /* @__PURE__ */ jsxs42(
|
|
4371
4402
|
"button",
|
|
4372
4403
|
{
|
|
4373
4404
|
type: "button",
|
|
@@ -4375,7 +4406,7 @@ function CenterRow({
|
|
|
4375
4406
|
className: "inline-flex items-center gap-1 text-sm font-medium text-text-brand transition-colors hover:text-text-primary",
|
|
4376
4407
|
children: [
|
|
4377
4408
|
item.deepLink.label,
|
|
4378
|
-
/* @__PURE__ */
|
|
4409
|
+
/* @__PURE__ */ jsx75(ArrowUpRight, { className: "size-3", "aria-hidden": "true" })
|
|
4379
4410
|
]
|
|
4380
4411
|
}
|
|
4381
4412
|
)
|
|
@@ -4418,13 +4449,13 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4418
4449
|
const shown = matched.slice(0, limit);
|
|
4419
4450
|
const remaining = matched.length - shown.length;
|
|
4420
4451
|
const filtering = q !== "" || status !== "all" || source !== "all" || product !== "all";
|
|
4421
|
-
return /* @__PURE__ */
|
|
4422
|
-
/* @__PURE__ */
|
|
4423
|
-
/* @__PURE__ */
|
|
4424
|
-
/* @__PURE__ */
|
|
4425
|
-
description && /* @__PURE__ */
|
|
4452
|
+
return /* @__PURE__ */ jsxs42("div", { ref, className: cn("mx-auto max-w-[560px]", className), children: [
|
|
4453
|
+
/* @__PURE__ */ jsxs42("div", { className: "mb-4 flex items-start gap-4", children: [
|
|
4454
|
+
/* @__PURE__ */ jsxs42("div", { className: "min-w-0 flex-1", children: [
|
|
4455
|
+
/* @__PURE__ */ jsx75("h1", { className: "mb-1.5 text-2xl font-semibold tracking-tight text-text-primary", children: title }),
|
|
4456
|
+
description && /* @__PURE__ */ jsx75("p", { className: "text-sm text-text-tertiary", children: description })
|
|
4426
4457
|
] }),
|
|
4427
|
-
onMarkAllRead && /* @__PURE__ */
|
|
4458
|
+
onMarkAllRead && /* @__PURE__ */ jsx75(
|
|
4428
4459
|
"button",
|
|
4429
4460
|
{
|
|
4430
4461
|
type: "button",
|
|
@@ -4434,9 +4465,9 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4434
4465
|
}
|
|
4435
4466
|
)
|
|
4436
4467
|
] }),
|
|
4437
|
-
searchable && /* @__PURE__ */
|
|
4438
|
-
/* @__PURE__ */
|
|
4439
|
-
/* @__PURE__ */
|
|
4468
|
+
searchable && /* @__PURE__ */ jsxs42("div", { className: "mb-3 flex items-center gap-2 rounded-lg bg-bg-elevated px-3 py-2", children: [
|
|
4469
|
+
/* @__PURE__ */ jsx75(Search2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
|
|
4470
|
+
/* @__PURE__ */ jsx75(
|
|
4440
4471
|
"input",
|
|
4441
4472
|
{
|
|
4442
4473
|
type: "text",
|
|
@@ -4447,8 +4478,8 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4447
4478
|
}
|
|
4448
4479
|
)
|
|
4449
4480
|
] }),
|
|
4450
|
-
/* @__PURE__ */
|
|
4451
|
-
/* @__PURE__ */
|
|
4481
|
+
/* @__PURE__ */ jsxs42("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
|
|
4482
|
+
/* @__PURE__ */ jsx75(
|
|
4452
4483
|
"button",
|
|
4453
4484
|
{
|
|
4454
4485
|
type: "button",
|
|
@@ -4457,7 +4488,7 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4457
4488
|
children: "All"
|
|
4458
4489
|
}
|
|
4459
4490
|
),
|
|
4460
|
-
/* @__PURE__ */
|
|
4491
|
+
/* @__PURE__ */ jsx75(
|
|
4461
4492
|
"button",
|
|
4462
4493
|
{
|
|
4463
4494
|
type: "button",
|
|
@@ -4467,8 +4498,8 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4467
4498
|
}
|
|
4468
4499
|
)
|
|
4469
4500
|
] }),
|
|
4470
|
-
/* @__PURE__ */
|
|
4471
|
-
/* @__PURE__ */
|
|
4501
|
+
/* @__PURE__ */ jsxs42("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
|
|
4502
|
+
/* @__PURE__ */ jsx75(
|
|
4472
4503
|
"button",
|
|
4473
4504
|
{
|
|
4474
4505
|
type: "button",
|
|
@@ -4477,7 +4508,7 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4477
4508
|
children: "All sources"
|
|
4478
4509
|
}
|
|
4479
4510
|
),
|
|
4480
|
-
sourceChips.map((s) => /* @__PURE__ */
|
|
4511
|
+
sourceChips.map((s) => /* @__PURE__ */ jsx75(
|
|
4481
4512
|
"button",
|
|
4482
4513
|
{
|
|
4483
4514
|
type: "button",
|
|
@@ -4488,8 +4519,8 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4488
4519
|
s
|
|
4489
4520
|
))
|
|
4490
4521
|
] }),
|
|
4491
|
-
products && products.length > 0 && /* @__PURE__ */
|
|
4492
|
-
/* @__PURE__ */
|
|
4522
|
+
products && products.length > 0 && /* @__PURE__ */ jsxs42("div", { className: "mb-4 flex flex-wrap gap-1.5", children: [
|
|
4523
|
+
/* @__PURE__ */ jsx75(
|
|
4493
4524
|
"button",
|
|
4494
4525
|
{
|
|
4495
4526
|
type: "button",
|
|
@@ -4498,7 +4529,7 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4498
4529
|
children: "All products"
|
|
4499
4530
|
}
|
|
4500
4531
|
),
|
|
4501
|
-
products.map((p) => /* @__PURE__ */
|
|
4532
|
+
products.map((p) => /* @__PURE__ */ jsx75(
|
|
4502
4533
|
"button",
|
|
4503
4534
|
{
|
|
4504
4535
|
type: "button",
|
|
@@ -4509,8 +4540,8 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4509
4540
|
p.id
|
|
4510
4541
|
))
|
|
4511
4542
|
] }),
|
|
4512
|
-
shown.length === 0 ? /* @__PURE__ */
|
|
4513
|
-
shown.map((item) => /* @__PURE__ */
|
|
4543
|
+
shown.length === 0 ? /* @__PURE__ */ jsx75("p", { className: "rounded-xl bg-bg-elevated px-4 py-10 text-center text-sm leading-relaxed text-text-disabled", children: filtering ? "Nothing matches." : "Nothing here yet. Everything addressed to you lands here." }) : /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-1.5", children: [
|
|
4544
|
+
shown.map((item) => /* @__PURE__ */ jsx75(
|
|
4514
4545
|
CenterRow,
|
|
4515
4546
|
{
|
|
4516
4547
|
item,
|
|
@@ -4521,7 +4552,7 @@ var NotificationCenter = React61.forwardRef(
|
|
|
4521
4552
|
},
|
|
4522
4553
|
item.id
|
|
4523
4554
|
)),
|
|
4524
|
-
remaining > 0 && /* @__PURE__ */
|
|
4555
|
+
remaining > 0 && /* @__PURE__ */ jsxs42(
|
|
4525
4556
|
"button",
|
|
4526
4557
|
{
|
|
4527
4558
|
type: "button",
|
|
@@ -4543,7 +4574,7 @@ NotificationCenter.displayName = "NotificationCenter";
|
|
|
4543
4574
|
// src/components/notification-settings.tsx
|
|
4544
4575
|
import * as React62 from "react";
|
|
4545
4576
|
import { Moon as Moon2, Plus as Plus2, Volume2 } from "lucide-react";
|
|
4546
|
-
import { Fragment as Fragment8, jsx as
|
|
4577
|
+
import { Fragment as Fragment8, jsx as jsx76, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
4547
4578
|
var THRESHOLDS = [
|
|
4548
4579
|
["everything", "Everything"],
|
|
4549
4580
|
["important", "Important"],
|
|
@@ -4555,13 +4586,13 @@ function ThresholdControl({
|
|
|
4555
4586
|
value,
|
|
4556
4587
|
onChange
|
|
4557
4588
|
}) {
|
|
4558
|
-
return /* @__PURE__ */
|
|
4589
|
+
return /* @__PURE__ */ jsx76(
|
|
4559
4590
|
"span",
|
|
4560
4591
|
{
|
|
4561
4592
|
role: "group",
|
|
4562
4593
|
"aria-label": `Interrupt me for ${label}`,
|
|
4563
4594
|
className: "inline-flex shrink-0 overflow-hidden rounded-md bg-bg-primary",
|
|
4564
|
-
children: THRESHOLDS.map(([threshold, text]) => /* @__PURE__ */
|
|
4595
|
+
children: THRESHOLDS.map(([threshold, text]) => /* @__PURE__ */ jsx76(
|
|
4565
4596
|
"button",
|
|
4566
4597
|
{
|
|
4567
4598
|
type: "button",
|
|
@@ -4611,15 +4642,15 @@ var NotificationSettings = React62.forwardRef(
|
|
|
4611
4642
|
const scopeGroup = (scope) => {
|
|
4612
4643
|
const rows = subscriptions.filter((s) => s.scope === scope);
|
|
4613
4644
|
if (rows.length === 0) return null;
|
|
4614
|
-
return /* @__PURE__ */
|
|
4615
|
-
/* @__PURE__ */
|
|
4616
|
-
/* @__PURE__ */
|
|
4645
|
+
return /* @__PURE__ */ jsxs43("div", { children: [
|
|
4646
|
+
/* @__PURE__ */ jsx76("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: scope === "product" ? "This product" : "Organization" }),
|
|
4647
|
+
/* @__PURE__ */ jsx76("div", { className: "space-y-2", children: rows.map((sub) => /* @__PURE__ */ jsxs43(
|
|
4617
4648
|
"div",
|
|
4618
4649
|
{
|
|
4619
4650
|
className: "flex items-center gap-4 rounded-xl bg-bg-elevated px-4 py-3",
|
|
4620
4651
|
children: [
|
|
4621
|
-
/* @__PURE__ */
|
|
4622
|
-
/* @__PURE__ */
|
|
4652
|
+
/* @__PURE__ */ jsx76("p", { className: "min-w-0 flex-1 text-sm font-semibold text-text-primary", children: sub.name }),
|
|
4653
|
+
/* @__PURE__ */ jsx76(
|
|
4623
4654
|
ThresholdControl,
|
|
4624
4655
|
{
|
|
4625
4656
|
label: sub.name,
|
|
@@ -4633,10 +4664,10 @@ var NotificationSettings = React62.forwardRef(
|
|
|
4633
4664
|
)) })
|
|
4634
4665
|
] }, scope);
|
|
4635
4666
|
};
|
|
4636
|
-
return /* @__PURE__ */
|
|
4637
|
-
products && products.length > 0 && /* @__PURE__ */
|
|
4638
|
-
/* @__PURE__ */
|
|
4639
|
-
/* @__PURE__ */
|
|
4667
|
+
return /* @__PURE__ */ jsxs43("div", { ref, className: cn("space-y-5", className), children: [
|
|
4668
|
+
products && products.length > 0 && /* @__PURE__ */ jsxs43("div", { children: [
|
|
4669
|
+
/* @__PURE__ */ jsx76("p", { className: "mb-2 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Preferences for" }),
|
|
4670
|
+
/* @__PURE__ */ jsx76("div", { className: "flex flex-wrap gap-2", children: [{ id: DEFAULT_KEY, label: "Default" }, ...products].map((t) => /* @__PURE__ */ jsxs43(
|
|
4640
4671
|
"button",
|
|
4641
4672
|
{
|
|
4642
4673
|
type: "button",
|
|
@@ -4647,32 +4678,32 @@ var NotificationSettings = React62.forwardRef(
|
|
|
4647
4678
|
),
|
|
4648
4679
|
children: [
|
|
4649
4680
|
t.label,
|
|
4650
|
-
t.id !== DEFAULT_KEY && Object.prototype.hasOwnProperty.call(value, t.id) && /* @__PURE__ */
|
|
4681
|
+
t.id !== DEFAULT_KEY && Object.prototype.hasOwnProperty.call(value, t.id) && /* @__PURE__ */ jsx76("span", { className: "size-1.5 rounded-full bg-bg-brand", "aria-label": "customized" })
|
|
4651
4682
|
]
|
|
4652
4683
|
},
|
|
4653
4684
|
t.id
|
|
4654
4685
|
)) })
|
|
4655
4686
|
] }),
|
|
4656
|
-
isDefault ? /* @__PURE__ */
|
|
4657
|
-
/* @__PURE__ */
|
|
4658
|
-
/* @__PURE__ */
|
|
4659
|
-
/* @__PURE__ */
|
|
4660
|
-
/* @__PURE__ */
|
|
4661
|
-
pushSlot ?? /* @__PURE__ */
|
|
4687
|
+
isDefault ? /* @__PURE__ */ jsxs43(Fragment8, { children: [
|
|
4688
|
+
/* @__PURE__ */ jsx76("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Your defaults, applied to every product unless you customize one. Everything addressed to you always lands in the in-app record; that cannot be turned off." }),
|
|
4689
|
+
/* @__PURE__ */ jsxs43(Card, { className: "border-none bg-bg-elevated p-5", children: [
|
|
4690
|
+
/* @__PURE__ */ jsx76("p", { className: "mb-1.5 text-xs font-bold uppercase tracking-wide text-text-tertiary", children: "Push to" }),
|
|
4691
|
+
/* @__PURE__ */ jsx76("p", { className: "mb-3 text-sm leading-relaxed text-text-secondary", children: "Forward notifications beyond the in-app record to a connected integration." }),
|
|
4692
|
+
pushSlot ?? /* @__PURE__ */ jsx76("div", { className: "rounded-lg bg-bg-surface px-4 py-6 text-center", children: /* @__PURE__ */ jsx76("p", { className: "text-sm text-text-tertiary", children: "No integrations connected." }) })
|
|
4662
4693
|
] }),
|
|
4663
|
-
mutes.length > 0 && /* @__PURE__ */
|
|
4664
|
-
/* @__PURE__ */
|
|
4665
|
-
/* @__PURE__ */
|
|
4666
|
-
/* @__PURE__ */
|
|
4667
|
-
/* @__PURE__ */
|
|
4668
|
-
/* @__PURE__ */
|
|
4669
|
-
/* @__PURE__ */
|
|
4694
|
+
mutes.length > 0 && /* @__PURE__ */ jsxs43("div", { children: [
|
|
4695
|
+
/* @__PURE__ */ jsx76("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Muted" }),
|
|
4696
|
+
/* @__PURE__ */ jsx76(Card, { className: "border-none bg-bg-elevated p-2", children: mutes.map((m) => /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3 rounded-lg px-3 py-2.5", children: [
|
|
4697
|
+
/* @__PURE__ */ jsx76(Moon2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
|
|
4698
|
+
/* @__PURE__ */ jsxs43("div", { className: "min-w-0 flex-1", children: [
|
|
4699
|
+
/* @__PURE__ */ jsx76("p", { className: "text-sm font-medium text-text-primary", children: m.source }),
|
|
4700
|
+
/* @__PURE__ */ jsxs43("p", { className: "text-sm text-text-tertiary", children: [
|
|
4670
4701
|
"Muted \u2014 ",
|
|
4671
4702
|
m.label,
|
|
4672
4703
|
". Critical still comes through."
|
|
4673
4704
|
] })
|
|
4674
4705
|
] }),
|
|
4675
|
-
/* @__PURE__ */
|
|
4706
|
+
/* @__PURE__ */ jsx76(
|
|
4676
4707
|
"button",
|
|
4677
4708
|
{
|
|
4678
4709
|
type: "button",
|
|
@@ -4685,13 +4716,13 @@ var NotificationSettings = React62.forwardRef(
|
|
|
4685
4716
|
] }),
|
|
4686
4717
|
scopeGroup("product"),
|
|
4687
4718
|
scopeGroup("org"),
|
|
4688
|
-
onSoundEnabledChange && /* @__PURE__ */
|
|
4689
|
-
/* @__PURE__ */
|
|
4690
|
-
/* @__PURE__ */
|
|
4691
|
-
/* @__PURE__ */
|
|
4692
|
-
/* @__PURE__ */
|
|
4719
|
+
onSoundEnabledChange && /* @__PURE__ */ jsx76(Card, { className: "border-none bg-bg-elevated p-4", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3", children: [
|
|
4720
|
+
/* @__PURE__ */ jsx76(Volume2, { className: "size-4 text-text-tertiary", "aria-hidden": "true" }),
|
|
4721
|
+
/* @__PURE__ */ jsxs43("div", { className: "flex-1", children: [
|
|
4722
|
+
/* @__PURE__ */ jsx76("p", { className: "text-sm font-medium text-text-primary", children: "Notification sound" }),
|
|
4723
|
+
/* @__PURE__ */ jsx76("p", { className: "text-sm text-text-tertiary", children: "Play a tone when a notification arrives. Critical always chimes." })
|
|
4693
4724
|
] }),
|
|
4694
|
-
/* @__PURE__ */
|
|
4725
|
+
/* @__PURE__ */ jsx76(
|
|
4695
4726
|
Switch,
|
|
4696
4727
|
{
|
|
4697
4728
|
checked: soundEnabled ?? false,
|
|
@@ -4700,35 +4731,35 @@ var NotificationSettings = React62.forwardRef(
|
|
|
4700
4731
|
}
|
|
4701
4732
|
)
|
|
4702
4733
|
] }) })
|
|
4703
|
-
] }) : !customized ? /* @__PURE__ */
|
|
4704
|
-
/* @__PURE__ */
|
|
4734
|
+
] }) : !customized ? /* @__PURE__ */ jsxs43(Card, { className: "border-none bg-bg-elevated p-8 text-center", children: [
|
|
4735
|
+
/* @__PURE__ */ jsxs43("p", { className: "text-sm font-semibold text-text-primary", children: [
|
|
4705
4736
|
productLabel,
|
|
4706
4737
|
" follows your Default preferences."
|
|
4707
4738
|
] }),
|
|
4708
|
-
/* @__PURE__ */
|
|
4709
|
-
/* @__PURE__ */
|
|
4739
|
+
/* @__PURE__ */ jsx76("p", { className: "mx-auto mt-1.5 max-w-[360px] text-sm leading-relaxed text-text-tertiary", children: "Interrupt thresholds, sound and forwarding all come from Default. Opt in to give this product its own interrupt thresholds." }),
|
|
4740
|
+
/* @__PURE__ */ jsxs43(
|
|
4710
4741
|
"button",
|
|
4711
4742
|
{
|
|
4712
4743
|
type: "button",
|
|
4713
4744
|
onClick: customize,
|
|
4714
4745
|
className: "mt-5 inline-flex items-center gap-1.5 rounded-lg bg-bg-brand px-3.5 py-2 text-sm font-semibold text-text-on-brand transition-colors hover:bg-bg-brand-hover",
|
|
4715
4746
|
children: [
|
|
4716
|
-
/* @__PURE__ */
|
|
4747
|
+
/* @__PURE__ */ jsx76(Plus2, { className: "size-4", "aria-hidden": "true" }),
|
|
4717
4748
|
" Customize for ",
|
|
4718
4749
|
productLabel
|
|
4719
4750
|
]
|
|
4720
4751
|
}
|
|
4721
4752
|
)
|
|
4722
|
-
] }) : /* @__PURE__ */
|
|
4723
|
-
/* @__PURE__ */
|
|
4724
|
-
/* @__PURE__ */
|
|
4725
|
-
/* @__PURE__ */
|
|
4753
|
+
] }) : /* @__PURE__ */ jsxs43(Fragment8, { children: [
|
|
4754
|
+
/* @__PURE__ */ jsx76(Card, { className: "border-none bg-bg-brand-subtle p-3.5", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3", children: [
|
|
4755
|
+
/* @__PURE__ */ jsxs43("div", { className: "min-w-0 flex-1", children: [
|
|
4756
|
+
/* @__PURE__ */ jsxs43("p", { className: "text-sm font-semibold text-text-brand", children: [
|
|
4726
4757
|
"Custom preferences for ",
|
|
4727
4758
|
productLabel
|
|
4728
4759
|
] }),
|
|
4729
|
-
/* @__PURE__ */
|
|
4760
|
+
/* @__PURE__ */ jsx76("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Only the interrupt thresholds below differ. Sound and forwarding follow Default." })
|
|
4730
4761
|
] }),
|
|
4731
|
-
/* @__PURE__ */
|
|
4762
|
+
/* @__PURE__ */ jsx76(
|
|
4732
4763
|
"button",
|
|
4733
4764
|
{
|
|
4734
4765
|
type: "button",
|
|
@@ -4748,7 +4779,7 @@ NotificationSettings.displayName = "NotificationSettings";
|
|
|
4748
4779
|
// src/components/notification-toast.tsx
|
|
4749
4780
|
import * as React63 from "react";
|
|
4750
4781
|
import { X as X3 } from "lucide-react";
|
|
4751
|
-
import { jsx as
|
|
4782
|
+
import { jsx as jsx77, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
4752
4783
|
var chipBase2 = "rounded-lg px-2.5 py-1 text-sm font-medium transition-colors";
|
|
4753
4784
|
var chipPrimary = "bg-bg-brand text-text-on-brand hover:bg-bg-brand-hover";
|
|
4754
4785
|
var chipDestructive = "bg-bg-elevated text-text-danger hover:bg-bg-surface";
|
|
@@ -4765,7 +4796,7 @@ var NotificationToast = React63.forwardRef(
|
|
|
4765
4796
|
className
|
|
4766
4797
|
}, ref) => {
|
|
4767
4798
|
const actions = item.actions ?? [];
|
|
4768
|
-
return /* @__PURE__ */
|
|
4799
|
+
return /* @__PURE__ */ jsxs44(
|
|
4769
4800
|
"div",
|
|
4770
4801
|
{
|
|
4771
4802
|
ref,
|
|
@@ -4776,21 +4807,21 @@ var NotificationToast = React63.forwardRef(
|
|
|
4776
4807
|
className
|
|
4777
4808
|
),
|
|
4778
4809
|
children: [
|
|
4779
|
-
/* @__PURE__ */
|
|
4780
|
-
showSource && /* @__PURE__ */
|
|
4781
|
-
/* @__PURE__ */
|
|
4782
|
-
onDismiss && /* @__PURE__ */
|
|
4810
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-2", children: [
|
|
4811
|
+
showSource && /* @__PURE__ */ jsx77("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
|
|
4812
|
+
/* @__PURE__ */ jsx77(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
|
|
4813
|
+
onDismiss && /* @__PURE__ */ jsx77(
|
|
4783
4814
|
"button",
|
|
4784
4815
|
{
|
|
4785
4816
|
type: "button",
|
|
4786
4817
|
"aria-label": dismissLabel,
|
|
4787
4818
|
onClick: () => onDismiss(item),
|
|
4788
4819
|
className: "-mr-1 ml-auto flex size-5 shrink-0 items-center justify-center rounded text-text-tertiary transition-colors hover:bg-bg-surface hover:text-text-primary",
|
|
4789
|
-
children: /* @__PURE__ */
|
|
4820
|
+
children: /* @__PURE__ */ jsx77(X3, { className: "size-3.5", "aria-hidden": "true" })
|
|
4790
4821
|
}
|
|
4791
4822
|
)
|
|
4792
4823
|
] }),
|
|
4793
|
-
onItemClick ? /* @__PURE__ */
|
|
4824
|
+
onItemClick ? /* @__PURE__ */ jsx77(
|
|
4794
4825
|
"button",
|
|
4795
4826
|
{
|
|
4796
4827
|
type: "button",
|
|
@@ -4798,12 +4829,12 @@ var NotificationToast = React63.forwardRef(
|
|
|
4798
4829
|
className: "mt-1 block text-left text-sm font-semibold leading-snug text-text-primary underline-offset-2 hover:underline",
|
|
4799
4830
|
children: item.title
|
|
4800
4831
|
}
|
|
4801
|
-
) : /* @__PURE__ */
|
|
4802
|
-
item.body && /* @__PURE__ */
|
|
4803
|
-
note && /* @__PURE__ */
|
|
4804
|
-
actions.length > 0 && /* @__PURE__ */
|
|
4832
|
+
) : /* @__PURE__ */ jsx77("p", { className: "mt-1 text-sm font-semibold leading-snug text-text-primary", children: item.title }),
|
|
4833
|
+
item.body && /* @__PURE__ */ jsx77("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
|
|
4834
|
+
note && /* @__PURE__ */ jsx77("p", { className: "mt-1.5 text-xs font-medium text-text-warning", children: note }),
|
|
4835
|
+
actions.length > 0 && /* @__PURE__ */ jsx77("div", { className: "mt-2.5 flex flex-wrap items-center gap-2", children: actions.map((action) => {
|
|
4805
4836
|
const variant = action.variant ?? "link";
|
|
4806
|
-
return /* @__PURE__ */
|
|
4837
|
+
return /* @__PURE__ */ jsx77(
|
|
4807
4838
|
"button",
|
|
4808
4839
|
{
|
|
4809
4840
|
type: "button",
|
|
@@ -4823,7 +4854,7 @@ NotificationToast.displayName = "NotificationToast";
|
|
|
4823
4854
|
|
|
4824
4855
|
// src/components/notification-toaster.tsx
|
|
4825
4856
|
import * as React64 from "react";
|
|
4826
|
-
import { jsx as
|
|
4857
|
+
import { jsx as jsx78 } from "react/jsx-runtime";
|
|
4827
4858
|
var positions = {
|
|
4828
4859
|
"bottom-right": "bottom-6 right-6 flex-col",
|
|
4829
4860
|
"bottom-left": "bottom-6 left-6 flex-col",
|
|
@@ -4893,7 +4924,7 @@ var NotificationToaster = React64.forwardRef(
|
|
|
4893
4924
|
};
|
|
4894
4925
|
}, [liveIds, paused, fyiDwell, importantDwell, criticalDwell]);
|
|
4895
4926
|
if (shown.length === 0) return null;
|
|
4896
|
-
return /* @__PURE__ */
|
|
4927
|
+
return /* @__PURE__ */ jsx78(
|
|
4897
4928
|
"div",
|
|
4898
4929
|
{
|
|
4899
4930
|
ref,
|
|
@@ -4906,7 +4937,7 @@ var NotificationToaster = React64.forwardRef(
|
|
|
4906
4937
|
positions[position],
|
|
4907
4938
|
className
|
|
4908
4939
|
),
|
|
4909
|
-
children: shown.map((item, i) => /* @__PURE__ */
|
|
4940
|
+
children: shown.map((item, i) => /* @__PURE__ */ jsx78("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx78(
|
|
4910
4941
|
NotificationToast,
|
|
4911
4942
|
{
|
|
4912
4943
|
item,
|
|
@@ -5186,7 +5217,7 @@ var AUTH_QUIET_BUTTON = "flex h-[46px] w-full items-center justify-center gap-[1
|
|
|
5186
5217
|
var AUTH_BUTTON_SHADOW = "var(--auth-btn-shadow)";
|
|
5187
5218
|
|
|
5188
5219
|
// src/components/organization-onboarding-form.tsx
|
|
5189
|
-
import { jsx as
|
|
5220
|
+
import { jsx as jsx79, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
5190
5221
|
var CONTROLLER_SHARE_PCT = 50;
|
|
5191
5222
|
var MAX_BENEFICIAL_OWNERS = 50;
|
|
5192
5223
|
function parseShare(raw) {
|
|
@@ -5289,12 +5320,12 @@ function OrganizationOnboardingForm({
|
|
|
5289
5320
|
submitting,
|
|
5290
5321
|
serverError
|
|
5291
5322
|
]);
|
|
5292
|
-
const countryField = (params) => /* @__PURE__ */
|
|
5293
|
-
/* @__PURE__ */
|
|
5323
|
+
const countryField = (params) => /* @__PURE__ */ jsxs45("div", { className: "space-y-1.5", children: [
|
|
5324
|
+
/* @__PURE__ */ jsxs45(Label2, { htmlFor: params.id, children: [
|
|
5294
5325
|
params.label,
|
|
5295
|
-
params.required && /* @__PURE__ */
|
|
5326
|
+
params.required && /* @__PURE__ */ jsx79("span", { className: "text-text-danger", children: " *" })
|
|
5296
5327
|
] }),
|
|
5297
|
-
/* @__PURE__ */
|
|
5328
|
+
/* @__PURE__ */ jsx79(
|
|
5298
5329
|
Select,
|
|
5299
5330
|
{
|
|
5300
5331
|
id: params.id,
|
|
@@ -5307,10 +5338,10 @@ function OrganizationOnboardingForm({
|
|
|
5307
5338
|
}
|
|
5308
5339
|
)
|
|
5309
5340
|
] });
|
|
5310
|
-
return /* @__PURE__ */
|
|
5311
|
-
/* @__PURE__ */
|
|
5312
|
-
/* @__PURE__ */
|
|
5313
|
-
/* @__PURE__ */
|
|
5341
|
+
return /* @__PURE__ */ jsxs45("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: [
|
|
5342
|
+
/* @__PURE__ */ jsxs45("div", { className: "space-y-1.5", children: [
|
|
5343
|
+
/* @__PURE__ */ jsx79(Label2, { htmlFor: "create-org-name", children: "Organization name" }),
|
|
5344
|
+
/* @__PURE__ */ jsx79(
|
|
5314
5345
|
Input,
|
|
5315
5346
|
{
|
|
5316
5347
|
id: "create-org-name",
|
|
@@ -5321,9 +5352,9 @@ function OrganizationOnboardingForm({
|
|
|
5321
5352
|
}
|
|
5322
5353
|
)
|
|
5323
5354
|
] }),
|
|
5324
|
-
/* @__PURE__ */
|
|
5325
|
-
/* @__PURE__ */
|
|
5326
|
-
/* @__PURE__ */
|
|
5355
|
+
/* @__PURE__ */ jsxs45("div", { className: "space-y-1.5", children: [
|
|
5356
|
+
/* @__PURE__ */ jsx79(Label2, { htmlFor: "create-org-legal-name", children: "Legal name" }),
|
|
5357
|
+
/* @__PURE__ */ jsx79(
|
|
5327
5358
|
Input,
|
|
5328
5359
|
{
|
|
5329
5360
|
id: "create-org-legal-name",
|
|
@@ -5334,9 +5365,9 @@ function OrganizationOnboardingForm({
|
|
|
5334
5365
|
}
|
|
5335
5366
|
)
|
|
5336
5367
|
] }),
|
|
5337
|
-
/* @__PURE__ */
|
|
5338
|
-
/* @__PURE__ */
|
|
5339
|
-
/* @__PURE__ */
|
|
5368
|
+
/* @__PURE__ */ jsxs45("div", { className: "space-y-1.5", children: [
|
|
5369
|
+
/* @__PURE__ */ jsx79(Label2, { htmlFor: "create-org-owner-name", children: "Owner name" }),
|
|
5370
|
+
/* @__PURE__ */ jsx79(
|
|
5340
5371
|
Input,
|
|
5341
5372
|
{
|
|
5342
5373
|
id: "create-org-owner-name",
|
|
@@ -5361,10 +5392,10 @@ function OrganizationOnboardingForm({
|
|
|
5361
5392
|
onChange: setResidencyCountry,
|
|
5362
5393
|
required: false
|
|
5363
5394
|
}),
|
|
5364
|
-
/* @__PURE__ */
|
|
5365
|
-
/* @__PURE__ */
|
|
5366
|
-
/* @__PURE__ */
|
|
5367
|
-
/* @__PURE__ */
|
|
5395
|
+
/* @__PURE__ */ jsxs45("div", { className: "space-y-2", children: [
|
|
5396
|
+
/* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-between", children: [
|
|
5397
|
+
/* @__PURE__ */ jsx79(Label2, { children: "Beneficial owners" }),
|
|
5398
|
+
/* @__PURE__ */ jsx79(
|
|
5368
5399
|
Button,
|
|
5369
5400
|
{
|
|
5370
5401
|
type: "button",
|
|
@@ -5377,16 +5408,16 @@ function OrganizationOnboardingForm({
|
|
|
5377
5408
|
}
|
|
5378
5409
|
)
|
|
5379
5410
|
] }),
|
|
5380
|
-
owners.length === 0 && /* @__PURE__ */
|
|
5381
|
-
owners.map((row) => /* @__PURE__ */
|
|
5411
|
+
owners.length === 0 && /* @__PURE__ */ jsx79("p", { className: "text-xs text-text-tertiary", children: "List the natural persons who ultimately own or control the organization." }),
|
|
5412
|
+
owners.map((row) => /* @__PURE__ */ jsxs45(
|
|
5382
5413
|
"div",
|
|
5383
5414
|
{
|
|
5384
5415
|
"data-testid": `beneficial-owner-row-${row.key}`,
|
|
5385
5416
|
className: "flex items-end gap-2",
|
|
5386
5417
|
children: [
|
|
5387
|
-
/* @__PURE__ */
|
|
5388
|
-
/* @__PURE__ */
|
|
5389
|
-
/* @__PURE__ */
|
|
5418
|
+
/* @__PURE__ */ jsxs45("div", { className: "flex-1 space-y-1", children: [
|
|
5419
|
+
/* @__PURE__ */ jsx79(Label2, { htmlFor: `bo-name-${row.key}`, className: "text-xs", children: "Name" }),
|
|
5420
|
+
/* @__PURE__ */ jsx79(
|
|
5390
5421
|
Input,
|
|
5391
5422
|
{
|
|
5392
5423
|
id: `bo-name-${row.key}`,
|
|
@@ -5396,9 +5427,9 @@ function OrganizationOnboardingForm({
|
|
|
5396
5427
|
}
|
|
5397
5428
|
)
|
|
5398
5429
|
] }),
|
|
5399
|
-
/* @__PURE__ */
|
|
5400
|
-
/* @__PURE__ */
|
|
5401
|
-
/* @__PURE__ */
|
|
5430
|
+
/* @__PURE__ */ jsxs45("div", { className: "w-40 space-y-1", children: [
|
|
5431
|
+
/* @__PURE__ */ jsx79(Label2, { htmlFor: `bo-country-${row.key}`, className: "text-xs", children: "Country" }),
|
|
5432
|
+
/* @__PURE__ */ jsx79(
|
|
5402
5433
|
Select,
|
|
5403
5434
|
{
|
|
5404
5435
|
id: `bo-country-${row.key}`,
|
|
@@ -5411,9 +5442,9 @@ function OrganizationOnboardingForm({
|
|
|
5411
5442
|
}
|
|
5412
5443
|
)
|
|
5413
5444
|
] }),
|
|
5414
|
-
/* @__PURE__ */
|
|
5415
|
-
/* @__PURE__ */
|
|
5416
|
-
/* @__PURE__ */
|
|
5445
|
+
/* @__PURE__ */ jsxs45("div", { className: "w-24 space-y-1", children: [
|
|
5446
|
+
/* @__PURE__ */ jsx79(Label2, { htmlFor: `bo-share-${row.key}`, className: "text-xs", children: "Share %" }),
|
|
5447
|
+
/* @__PURE__ */ jsx79(
|
|
5417
5448
|
Input,
|
|
5418
5449
|
{
|
|
5419
5450
|
id: `bo-share-${row.key}`,
|
|
@@ -5424,7 +5455,7 @@ function OrganizationOnboardingForm({
|
|
|
5424
5455
|
}
|
|
5425
5456
|
)
|
|
5426
5457
|
] }),
|
|
5427
|
-
/* @__PURE__ */
|
|
5458
|
+
/* @__PURE__ */ jsx79(
|
|
5428
5459
|
Button,
|
|
5429
5460
|
{
|
|
5430
5461
|
type: "button",
|
|
@@ -5439,15 +5470,15 @@ function OrganizationOnboardingForm({
|
|
|
5439
5470
|
},
|
|
5440
5471
|
row.key
|
|
5441
5472
|
)),
|
|
5442
|
-
!ownersValid && /* @__PURE__ */
|
|
5443
|
-
shareSum > 100 && /* @__PURE__ */
|
|
5473
|
+
!ownersValid && /* @__PURE__ */ jsx79("p", { "data-testid": "beneficial-owners-error", className: "text-xs text-text-danger", children: "Every owner needs a name, a country and a share between 0 and 100." }),
|
|
5474
|
+
shareSum > 100 && /* @__PURE__ */ jsxs45("p", { "data-testid": "beneficial-owners-sum-warning", className: "text-xs text-text-warning", children: [
|
|
5444
5475
|
"The listed shares add up to ",
|
|
5445
5476
|
shareSum,
|
|
5446
5477
|
"%, which is more than 100%."
|
|
5447
5478
|
] })
|
|
5448
5479
|
] }),
|
|
5449
|
-
needsOwnershipConfirmation && /* @__PURE__ */
|
|
5450
|
-
/* @__PURE__ */
|
|
5480
|
+
needsOwnershipConfirmation && /* @__PURE__ */ jsxs45("div", { className: "flex items-start gap-2", children: [
|
|
5481
|
+
/* @__PURE__ */ jsx79(
|
|
5451
5482
|
Checkbox,
|
|
5452
5483
|
{
|
|
5453
5484
|
id: "create-org-ownership-confirmed",
|
|
@@ -5456,24 +5487,24 @@ function OrganizationOnboardingForm({
|
|
|
5456
5487
|
onCheckedChange: (value) => setOwnershipConfirmed(value === true)
|
|
5457
5488
|
}
|
|
5458
5489
|
),
|
|
5459
|
-
/* @__PURE__ */
|
|
5490
|
+
/* @__PURE__ */ jsxs45(
|
|
5460
5491
|
Label2,
|
|
5461
5492
|
{
|
|
5462
5493
|
htmlFor: "create-org-ownership-confirmed",
|
|
5463
5494
|
className: "text-xs font-normal leading-snug",
|
|
5464
5495
|
children: [
|
|
5465
5496
|
"I confirm the ownership structure above is complete and correct",
|
|
5466
|
-
requireSanctionsFields && /* @__PURE__ */
|
|
5497
|
+
requireSanctionsFields && /* @__PURE__ */ jsx79("span", { className: "text-text-danger", children: " *" })
|
|
5467
5498
|
]
|
|
5468
5499
|
}
|
|
5469
5500
|
)
|
|
5470
5501
|
] }),
|
|
5471
|
-
(serverError || violations && violations.length > 0) && /* @__PURE__ */
|
|
5502
|
+
(serverError || violations && violations.length > 0) && /* @__PURE__ */ jsxs45(InlineError, { children: [
|
|
5472
5503
|
serverError,
|
|
5473
|
-
violations && violations.length > 0 && /* @__PURE__ */
|
|
5504
|
+
violations && violations.length > 0 && /* @__PURE__ */ jsx79("ul", { "data-testid": "create-org-violations", className: "mt-1 list-disc pl-4", children: violations.map((violation) => /* @__PURE__ */ jsx79("li", { children: violation }, violation)) })
|
|
5474
5505
|
] }),
|
|
5475
|
-
/* @__PURE__ */
|
|
5476
|
-
/* @__PURE__ */
|
|
5506
|
+
/* @__PURE__ */ jsxs45("div", { className: "space-y-2 pt-1", children: [
|
|
5507
|
+
/* @__PURE__ */ jsx79(
|
|
5477
5508
|
"button",
|
|
5478
5509
|
{
|
|
5479
5510
|
type: "submit",
|
|
@@ -5484,20 +5515,20 @@ function OrganizationOnboardingForm({
|
|
|
5484
5515
|
children: submitting ? "Creating\u2026" : submitLabel
|
|
5485
5516
|
}
|
|
5486
5517
|
),
|
|
5487
|
-
onCancel && /* @__PURE__ */
|
|
5518
|
+
onCancel && /* @__PURE__ */ jsx79("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
|
|
5488
5519
|
] })
|
|
5489
5520
|
] });
|
|
5490
5521
|
}
|
|
5491
5522
|
|
|
5492
5523
|
// src/components/onboarding-screen-shell.tsx
|
|
5493
|
-
import { jsx as
|
|
5524
|
+
import { jsx as jsx80, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
5494
5525
|
var CARD_WIDTH = {
|
|
5495
5526
|
md: "max-w-[440px]",
|
|
5496
5527
|
lg: "max-w-[560px]"
|
|
5497
5528
|
};
|
|
5498
5529
|
function OnboardingScreenShell({
|
|
5499
5530
|
logo,
|
|
5500
|
-
themeToggle = /* @__PURE__ */
|
|
5531
|
+
themeToggle = /* @__PURE__ */ jsx80(ThemeToggle, {}),
|
|
5501
5532
|
title,
|
|
5502
5533
|
description,
|
|
5503
5534
|
footer,
|
|
@@ -5506,7 +5537,7 @@ function OnboardingScreenShell({
|
|
|
5506
5537
|
className,
|
|
5507
5538
|
...props
|
|
5508
5539
|
}) {
|
|
5509
|
-
return /* @__PURE__ */
|
|
5540
|
+
return /* @__PURE__ */ jsxs46(
|
|
5510
5541
|
"div",
|
|
5511
5542
|
{
|
|
5512
5543
|
className: cn(
|
|
@@ -5516,8 +5547,8 @@ function OnboardingScreenShell({
|
|
|
5516
5547
|
style: { background: AUTH_GLOW_BG },
|
|
5517
5548
|
...props,
|
|
5518
5549
|
children: [
|
|
5519
|
-
themeToggle && /* @__PURE__ */
|
|
5520
|
-
/* @__PURE__ */
|
|
5550
|
+
themeToggle && /* @__PURE__ */ jsx80("div", { className: "absolute right-6 top-6", children: themeToggle }),
|
|
5551
|
+
/* @__PURE__ */ jsxs46(
|
|
5521
5552
|
"div",
|
|
5522
5553
|
{
|
|
5523
5554
|
className: cn(
|
|
@@ -5529,8 +5560,8 @@ function OnboardingScreenShell({
|
|
|
5529
5560
|
boxShadow: "var(--auth-card-shadow)"
|
|
5530
5561
|
},
|
|
5531
5562
|
children: [
|
|
5532
|
-
logo && /* @__PURE__ */
|
|
5533
|
-
/* @__PURE__ */
|
|
5563
|
+
logo && /* @__PURE__ */ jsx80("div", { className: "mb-[22px] flex items-center justify-center text-[24px] font-bold leading-none tracking-[-0.02em] text-text-primary", children: logo }),
|
|
5564
|
+
/* @__PURE__ */ jsx80(
|
|
5534
5565
|
"h1",
|
|
5535
5566
|
{
|
|
5536
5567
|
className: cn(
|
|
@@ -5541,9 +5572,9 @@ function OnboardingScreenShell({
|
|
|
5541
5572
|
children: title
|
|
5542
5573
|
}
|
|
5543
5574
|
),
|
|
5544
|
-
description && /* @__PURE__ */
|
|
5545
|
-
/* @__PURE__ */
|
|
5546
|
-
footer != null && /* @__PURE__ */
|
|
5575
|
+
description && /* @__PURE__ */ jsx80("p", { className: "mx-auto mb-[24px] max-w-[320px] text-[13.5px] leading-[1.5] text-text-secondary", children: description }),
|
|
5576
|
+
/* @__PURE__ */ jsx80("div", { className: "text-left", children }),
|
|
5577
|
+
footer != null && /* @__PURE__ */ jsx80("div", { className: "mt-[24px] text-[11px] tracking-[0.005em] text-text-tertiary", children: footer })
|
|
5547
5578
|
]
|
|
5548
5579
|
}
|
|
5549
5580
|
)
|
|
@@ -5553,7 +5584,7 @@ function OnboardingScreenShell({
|
|
|
5553
5584
|
}
|
|
5554
5585
|
|
|
5555
5586
|
// src/components/organization-create-screen.tsx
|
|
5556
|
-
import { jsx as
|
|
5587
|
+
import { jsx as jsx81 } from "react/jsx-runtime";
|
|
5557
5588
|
function OrganizationCreateScreen({
|
|
5558
5589
|
requireSanctionsFields,
|
|
5559
5590
|
onSubmit,
|
|
@@ -5571,7 +5602,7 @@ function OrganizationCreateScreen({
|
|
|
5571
5602
|
footer,
|
|
5572
5603
|
...props
|
|
5573
5604
|
}) {
|
|
5574
|
-
return /* @__PURE__ */
|
|
5605
|
+
return /* @__PURE__ */ jsx81(
|
|
5575
5606
|
OnboardingScreenShell,
|
|
5576
5607
|
{
|
|
5577
5608
|
logo,
|
|
@@ -5581,7 +5612,7 @@ function OrganizationCreateScreen({
|
|
|
5581
5612
|
footer,
|
|
5582
5613
|
width: "lg",
|
|
5583
5614
|
...props,
|
|
5584
|
-
children: /* @__PURE__ */
|
|
5615
|
+
children: /* @__PURE__ */ jsx81(
|
|
5585
5616
|
OrganizationOnboardingForm,
|
|
5586
5617
|
{
|
|
5587
5618
|
requireSanctionsFields,
|
|
@@ -5601,7 +5632,7 @@ function OrganizationCreateScreen({
|
|
|
5601
5632
|
|
|
5602
5633
|
// src/components/product-create-screen.tsx
|
|
5603
5634
|
import * as React66 from "react";
|
|
5604
|
-
import { jsx as
|
|
5635
|
+
import { jsx as jsx82, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
5605
5636
|
var productRow = "flex w-full items-center justify-between rounded-md border border-border-default bg-bg-primary px-3 py-2 text-left text-sm text-text-primary";
|
|
5606
5637
|
function ProductCreateScreen({
|
|
5607
5638
|
// Destructured only to keep it out of `...props`, which is spread onto a <div>.
|
|
@@ -5643,7 +5674,7 @@ function ProductCreateScreen({
|
|
|
5643
5674
|
const products = existingProducts ?? [];
|
|
5644
5675
|
const orgs = organizations ?? [];
|
|
5645
5676
|
const pickerLayout = orgs.length > 0;
|
|
5646
|
-
const productList = /* @__PURE__ */
|
|
5677
|
+
const productList = /* @__PURE__ */ jsx82("ul", { className: "flex flex-col gap-1", children: products.map((product) => /* @__PURE__ */ jsx82("li", { children: onOpenProduct ? /* @__PURE__ */ jsxs47(
|
|
5647
5678
|
"button",
|
|
5648
5679
|
{
|
|
5649
5680
|
type: "button",
|
|
@@ -5654,15 +5685,15 @@ function ProductCreateScreen({
|
|
|
5654
5685
|
"hover:bg-bg-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus"
|
|
5655
5686
|
),
|
|
5656
5687
|
children: [
|
|
5657
|
-
/* @__PURE__ */
|
|
5658
|
-
product.slug && /* @__PURE__ */
|
|
5688
|
+
/* @__PURE__ */ jsx82("span", { className: "truncate", children: product.name }),
|
|
5689
|
+
product.slug && /* @__PURE__ */ jsx82("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
|
|
5659
5690
|
]
|
|
5660
5691
|
}
|
|
5661
|
-
) : /* @__PURE__ */
|
|
5662
|
-
/* @__PURE__ */
|
|
5663
|
-
product.slug && /* @__PURE__ */
|
|
5692
|
+
) : /* @__PURE__ */ jsxs47("div", { className: productRow, children: [
|
|
5693
|
+
/* @__PURE__ */ jsx82("span", { className: "truncate", children: product.name }),
|
|
5694
|
+
product.slug && /* @__PURE__ */ jsx82("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
|
|
5664
5695
|
] }) }, product.id)) });
|
|
5665
|
-
return /* @__PURE__ */
|
|
5696
|
+
return /* @__PURE__ */ jsxs47(
|
|
5666
5697
|
OnboardingScreenShell,
|
|
5667
5698
|
{
|
|
5668
5699
|
logo,
|
|
@@ -5672,10 +5703,10 @@ function ProductCreateScreen({
|
|
|
5672
5703
|
footer,
|
|
5673
5704
|
...props,
|
|
5674
5705
|
children: [
|
|
5675
|
-
pickerLayout && /* @__PURE__ */
|
|
5676
|
-
/* @__PURE__ */
|
|
5677
|
-
/* @__PURE__ */
|
|
5678
|
-
/* @__PURE__ */
|
|
5706
|
+
pickerLayout && /* @__PURE__ */ jsxs47("div", { className: "mb-4 space-y-4", children: [
|
|
5707
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-1.5", children: [
|
|
5708
|
+
/* @__PURE__ */ jsx82(Label2, { htmlFor: "create-product-org-select", children: "Organization" }),
|
|
5709
|
+
/* @__PURE__ */ jsx82(
|
|
5679
5710
|
Select,
|
|
5680
5711
|
{
|
|
5681
5712
|
id: "create-product-org-select",
|
|
@@ -5689,15 +5720,15 @@ function ProductCreateScreen({
|
|
|
5689
5720
|
}
|
|
5690
5721
|
)
|
|
5691
5722
|
] }),
|
|
5692
|
-
/* @__PURE__ */
|
|
5693
|
-
/* @__PURE__ */
|
|
5694
|
-
productsLoading ? /* @__PURE__ */
|
|
5723
|
+
/* @__PURE__ */ jsxs47("div", { "data-testid": "existing-products", className: "space-y-1.5", children: [
|
|
5724
|
+
/* @__PURE__ */ jsx82(Label2, { children: existingProductsLabel }),
|
|
5725
|
+
productsLoading ? /* @__PURE__ */ jsx82("p", { className: "text-sm text-text-tertiary", children: "Loading products\u2026" }) : products.length === 0 ? /* @__PURE__ */ jsx82("p", { className: "text-sm text-text-tertiary", children: "No products yet." }) : productList
|
|
5695
5726
|
] })
|
|
5696
5727
|
] }),
|
|
5697
|
-
/* @__PURE__ */
|
|
5698
|
-
/* @__PURE__ */
|
|
5699
|
-
/* @__PURE__ */
|
|
5700
|
-
/* @__PURE__ */
|
|
5728
|
+
/* @__PURE__ */ jsxs47("form", { onSubmit: handleSubmit, className: "space-y-4", noValidate: true, children: [
|
|
5729
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-1.5", children: [
|
|
5730
|
+
/* @__PURE__ */ jsx82(Label2, { htmlFor: "create-product-name", children: "Product name" }),
|
|
5731
|
+
/* @__PURE__ */ jsx82(
|
|
5701
5732
|
Input,
|
|
5702
5733
|
{
|
|
5703
5734
|
id: "create-product-name",
|
|
@@ -5708,9 +5739,9 @@ function ProductCreateScreen({
|
|
|
5708
5739
|
}
|
|
5709
5740
|
)
|
|
5710
5741
|
] }),
|
|
5711
|
-
serverError && /* @__PURE__ */
|
|
5712
|
-
/* @__PURE__ */
|
|
5713
|
-
/* @__PURE__ */
|
|
5742
|
+
serverError && /* @__PURE__ */ jsx82(InlineError, { children: serverError }),
|
|
5743
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-2 pt-1", children: [
|
|
5744
|
+
/* @__PURE__ */ jsx82(
|
|
5714
5745
|
"button",
|
|
5715
5746
|
{
|
|
5716
5747
|
type: "submit",
|
|
@@ -5721,16 +5752,16 @@ function ProductCreateScreen({
|
|
|
5721
5752
|
children: submitting ? "Creating\u2026" : submitLabel
|
|
5722
5753
|
}
|
|
5723
5754
|
),
|
|
5724
|
-
onCancel && /* @__PURE__ */
|
|
5755
|
+
onCancel && /* @__PURE__ */ jsx82("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
|
|
5725
5756
|
] })
|
|
5726
5757
|
] }),
|
|
5727
|
-
!pickerLayout && products.length > 0 && /* @__PURE__ */
|
|
5758
|
+
!pickerLayout && products.length > 0 && /* @__PURE__ */ jsxs47(
|
|
5728
5759
|
"div",
|
|
5729
5760
|
{
|
|
5730
5761
|
"data-testid": "existing-products",
|
|
5731
5762
|
className: "mt-6 space-y-2 border-t border-border-default pt-5",
|
|
5732
5763
|
children: [
|
|
5733
|
-
/* @__PURE__ */
|
|
5764
|
+
/* @__PURE__ */ jsx82(Label2, { children: existingProductsLabel }),
|
|
5734
5765
|
productList
|
|
5735
5766
|
]
|
|
5736
5767
|
}
|
|
@@ -5918,6 +5949,7 @@ export {
|
|
|
5918
5949
|
OrgProductSwitcher,
|
|
5919
5950
|
OrganizationCreateScreen,
|
|
5920
5951
|
OrganizationOnboardingForm,
|
|
5952
|
+
PageHeader,
|
|
5921
5953
|
Pagination,
|
|
5922
5954
|
PaginationContent,
|
|
5923
5955
|
PaginationEllipsis,
|