@luxfi/ui 7.1.0 → 7.3.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.
Files changed (113) hide show
  1. package/dist/alert.cjs +22 -50
  2. package/dist/alert.js +22 -50
  3. package/dist/index.cjs +123 -179
  4. package/dist/index.js +123 -179
  5. package/dist/input.cjs +25 -36
  6. package/dist/input.js +25 -36
  7. package/dist/provider.cjs +35 -55
  8. package/dist/provider.js +16 -35
  9. package/dist/tag.cjs +15 -35
  10. package/dist/tag.js +15 -35
  11. package/dist/textarea.cjs +25 -36
  12. package/dist/textarea.js +25 -36
  13. package/package.json +6 -7
  14. package/src/alert.tsx +23 -51
  15. package/src/index.ts +1 -0
  16. package/src/input.tsx +27 -36
  17. package/src/provider.tsx +28 -6
  18. package/src/tag.tsx +17 -35
  19. package/src/textarea.tsx +27 -36
  20. package/dist/accordion.d.cts +0 -74
  21. package/dist/accordion.d.ts +0 -74
  22. package/dist/alert.d.cts +0 -30
  23. package/dist/alert.d.ts +0 -30
  24. package/dist/avatar.d.cts +0 -25
  25. package/dist/avatar.d.ts +0 -25
  26. package/dist/badge.d.cts +0 -19
  27. package/dist/badge.d.ts +0 -19
  28. package/dist/bank.d.cts +0 -76
  29. package/dist/bank.d.ts +0 -76
  30. package/dist/button.d.cts +0 -55
  31. package/dist/button.d.ts +0 -55
  32. package/dist/checkbox.d.cts +0 -31
  33. package/dist/checkbox.d.ts +0 -31
  34. package/dist/close-button.d.cts +0 -9
  35. package/dist/close-button.d.ts +0 -9
  36. package/dist/collapsible.d.cts +0 -23
  37. package/dist/collapsible.d.ts +0 -23
  38. package/dist/color-mode.d.cts +0 -25
  39. package/dist/color-mode.d.ts +0 -25
  40. package/dist/dialog.d.cts +0 -65
  41. package/dist/dialog.d.ts +0 -65
  42. package/dist/drawer.d.cts +0 -36
  43. package/dist/drawer.d.ts +0 -36
  44. package/dist/empty-state.d.cts +0 -13
  45. package/dist/empty-state.d.ts +0 -13
  46. package/dist/expiration-selector.d.cts +0 -16
  47. package/dist/expiration-selector.d.ts +0 -16
  48. package/dist/field.d.cts +0 -24
  49. package/dist/field.d.ts +0 -24
  50. package/dist/greeks-display.d.cts +0 -14
  51. package/dist/greeks-display.d.ts +0 -14
  52. package/dist/heading.d.cts +0 -10
  53. package/dist/heading.d.ts +0 -10
  54. package/dist/icon-button.d.cts +0 -33
  55. package/dist/icon-button.d.ts +0 -33
  56. package/dist/image.d.cts +0 -57
  57. package/dist/image.d.ts +0 -57
  58. package/dist/index.d.cts +0 -55
  59. package/dist/index.d.ts +0 -55
  60. package/dist/input-group.d.cts +0 -17
  61. package/dist/input-group.d.ts +0 -17
  62. package/dist/input.d.cts +0 -11
  63. package/dist/input.d.ts +0 -11
  64. package/dist/link.d.cts +0 -37
  65. package/dist/link.d.ts +0 -37
  66. package/dist/menu.d.cts +0 -84
  67. package/dist/menu.d.ts +0 -84
  68. package/dist/option-chain.d.cts +0 -37
  69. package/dist/option-chain.d.ts +0 -37
  70. package/dist/option-position.d.cts +0 -29
  71. package/dist/option-position.d.ts +0 -29
  72. package/dist/pin-input.d.cts +0 -25
  73. package/dist/pin-input.d.ts +0 -25
  74. package/dist/pnl-diagram.d.cts +0 -11
  75. package/dist/pnl-diagram.d.ts +0 -11
  76. package/dist/popover.d.cts +0 -73
  77. package/dist/popover.d.ts +0 -73
  78. package/dist/progress-circle.d.cts +0 -47
  79. package/dist/progress-circle.d.ts +0 -47
  80. package/dist/progress.d.cts +0 -28
  81. package/dist/progress.d.ts +0 -28
  82. package/dist/provider.d.cts +0 -7
  83. package/dist/provider.d.ts +0 -7
  84. package/dist/radio.d.cts +0 -53
  85. package/dist/radio.d.ts +0 -53
  86. package/dist/rating.d.cts +0 -14
  87. package/dist/rating.d.ts +0 -14
  88. package/dist/select.d.cts +0 -130
  89. package/dist/select.d.ts +0 -130
  90. package/dist/separator.d.cts +0 -13
  91. package/dist/separator.d.ts +0 -13
  92. package/dist/skeleton.d.cts +0 -60
  93. package/dist/skeleton.d.ts +0 -60
  94. package/dist/slider.d.cts +0 -24
  95. package/dist/slider.d.ts +0 -24
  96. package/dist/strategy-builder.d.cts +0 -26
  97. package/dist/strategy-builder.d.ts +0 -26
  98. package/dist/switch.d.cts +0 -27
  99. package/dist/switch.d.ts +0 -27
  100. package/dist/table.d.cts +0 -107
  101. package/dist/table.d.ts +0 -107
  102. package/dist/tabs.d.cts +0 -78
  103. package/dist/tabs.d.ts +0 -78
  104. package/dist/tag.d.cts +0 -21
  105. package/dist/tag.d.ts +0 -21
  106. package/dist/textarea.d.cts +0 -11
  107. package/dist/textarea.d.ts +0 -11
  108. package/dist/toaster.d.cts +0 -29
  109. package/dist/toaster.d.ts +0 -29
  110. package/dist/tooltip.d.cts +0 -38
  111. package/dist/tooltip.d.ts +0 -38
  112. package/dist/utils.d.cts +0 -5
  113. package/dist/utils.d.ts +0 -5
package/dist/index.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var core = require('@hanzogui/core');
5
+ var reactQuery = require('@tanstack/react-query');
6
+ var jsxRuntime = require('react/jsx-runtime');
4
7
  var clsx = require('clsx');
5
8
  var tailwindMerge = require('tailwind-merge');
6
9
  var AccordionPrimitive = require('@radix-ui/react-accordion');
7
10
  var React29 = require('react');
8
- var jsxRuntime = require('react/jsx-runtime');
9
- var classVarianceAuthority = require('class-variance-authority');
10
- var core = require('@hanzogui/core');
11
11
  var RadixAvatar = require('@radix-ui/react-avatar');
12
12
  var tooltip = require('@hanzogui/tooltip');
13
13
  var usehooks = require('@uidotdev/usehooks');
@@ -61,7 +61,20 @@ var RadixSlider__namespace = /*#__PURE__*/_interopNamespace(RadixSlider);
61
61
  var RadixSwitch__namespace = /*#__PURE__*/_interopNamespace(RadixSwitch);
62
62
  var RadixTabs__namespace = /*#__PURE__*/_interopNamespace(RadixTabs);
63
63
 
64
- // src/utils.ts
64
+ // src/provider.tsx
65
+ var _guiInitialized = false;
66
+ function ensureGui() {
67
+ if (_guiInitialized) return;
68
+ core.createGui({ settings: { autocompleteSpecificTokens: "except-special" } });
69
+ _guiInitialized = true;
70
+ }
71
+ ensureGui();
72
+ var defaultQueryClient = new reactQuery.QueryClient({
73
+ defaultOptions: { queries: { refetchOnWindowFocus: false, retry: 1, staleTime: 3e4 } }
74
+ });
75
+ var AppProvider = ({ children, queryClient }) => {
76
+ return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient ?? defaultQueryClient, children });
77
+ };
65
78
  function cn(...inputs) {
66
79
  return tailwindMerge.twMerge(clsx.clsx(inputs));
67
80
  }
@@ -488,52 +501,22 @@ var SkeletonText = React29__namespace.forwardRef(
488
501
  }
489
502
  );
490
503
  var IndicatorIcon2 = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm.75-11.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM9.25 10a.75.75 0 011.5 0v3a.75.75 0 01-1.5 0v-3z" }) });
491
- var alertRoot = classVarianceAuthority.cva(
492
- // base
493
- "w-full flex items-start relative rounded text-[var(--color-alert-fg)]",
494
- {
495
- variants: {
496
- status: {
497
- info: "bg-[var(--color-alert-bg-info)]",
498
- warning: "bg-[var(--color-alert-bg-warning)]",
499
- warning_table: "bg-[var(--color-alert-bg-warning-table)]",
500
- success: "bg-[var(--color-alert-bg-success)]",
501
- error: "bg-[var(--color-alert-bg-error)]"
502
- },
503
- size: {
504
- sm: "gap-2 px-2 py-2 text-xs",
505
- md: "gap-2 px-3 py-2 text-base"
506
- }
507
- },
508
- defaultVariants: {
509
- status: "info",
510
- size: "md"
511
- }
512
- }
513
- );
514
- var alertContent = classVarianceAuthority.cva("flex flex-1", {
515
- variants: {
516
- inline: {
517
- "true": "inline-flex flex-row items-center",
518
- "false": "flex flex-col"
519
- }
520
- },
521
- defaultVariants: {
522
- inline: true
523
- }
524
- });
525
- var INDICATOR_BASE = "inline-flex items-center justify-center shrink-0 w-5 h-5 text-[var(--color-alert-fg)] [&>svg]:w-full [&>svg]:h-full";
526
- var indicatorVariants = classVarianceAuthority.cva(INDICATOR_BASE, {
527
- variants: {
528
- size: {
529
- sm: "w-5 h-5 my-0",
530
- md: "w-5 h-5 my-[2px]"
531
- }
532
- },
533
- defaultVariants: {
534
- size: "md"
535
- }
536
- });
504
+ var ALERT_BASE = "w-full flex items-start relative rounded text-[var(--color-alert-fg)]";
505
+ var STATUS_CLASSES = {
506
+ info: "bg-[var(--color-alert-bg-info)]",
507
+ warning: "bg-[var(--color-alert-bg-warning)]",
508
+ warning_table: "bg-[var(--color-alert-bg-warning-table)]",
509
+ success: "bg-[var(--color-alert-bg-success)]",
510
+ error: "bg-[var(--color-alert-bg-error)]"
511
+ };
512
+ var SIZE_CLASSES = {
513
+ sm: "gap-2 px-2 py-2 text-xs",
514
+ md: "gap-2 px-3 py-2 text-base"
515
+ };
516
+ var INDICATOR_SIZE_CLASSES = {
517
+ sm: "w-5 h-5 my-0",
518
+ md: "w-5 h-5 my-[2px]"
519
+ };
537
520
  var Alert = React29__namespace.forwardRef(
538
521
  function Alert2(props, ref) {
539
522
  const {
@@ -569,7 +552,10 @@ var Alert = React29__namespace.forwardRef(
569
552
  if (!showIcon && icon === void 0) {
570
553
  return null;
571
554
  }
572
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: indicatorVariants({ size: resolvedSize }), children: icon || defaultIcon });
555
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
556
+ "inline-flex items-center justify-center shrink-0 text-[var(--color-alert-fg)] [&>svg]:w-full [&>svg]:h-full",
557
+ INDICATOR_SIZE_CLASSES[resolvedSize]
558
+ ), children: icon || defaultIcon });
573
559
  })();
574
560
  const handleClose = React29__namespace.useCallback(() => {
575
561
  setIsOpen(false);
@@ -602,12 +588,12 @@ var Alert = React29__namespace.forwardRef(
602
588
  "div",
603
589
  {
604
590
  ref,
605
- className: cn(alertRoot({ status, size: resolvedSize }), className),
591
+ className: cn(ALERT_BASE, STATUS_CLASSES[status], SIZE_CLASSES[resolvedSize], className),
606
592
  style: alertStyle,
607
593
  ...alertRest,
608
594
  children: [
609
595
  iconElement,
610
- children ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: alertContent({ inline }), children: [
596
+ children ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-1", inline ? "inline-flex flex-row items-center" : "flex flex-col"), children: [
611
597
  title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold", children: title }),
612
598
  /* @__PURE__ */ jsxRuntime.jsx(
613
599
  "div",
@@ -632,7 +618,7 @@ var Alert = React29__namespace.forwardRef(
632
618
  ) });
633
619
  }
634
620
  );
635
- var SIZE_CLASSES = {
621
+ var SIZE_CLASSES2 = {
636
622
  xs: "h-6 w-6 text-[10px]",
637
623
  sm: "h-8 w-8 text-xs",
638
624
  md: "h-10 w-10 text-sm",
@@ -677,7 +663,7 @@ var Avatar = React29__namespace.forwardRef(
677
663
  ref,
678
664
  className: cn(
679
665
  "relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full align-middle",
680
- SIZE_CLASSES[size],
666
+ SIZE_CLASSES2[size],
681
667
  VARIANT_CLASSES[variant],
682
668
  !isBorderless && "ring-2 ring-white dark:ring-gray-900",
683
669
  className
@@ -885,7 +871,7 @@ function TruncatedTextTooltip({ label, children }) {
885
871
  return /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { content: label, positioning: { placement: "top" }, children });
886
872
  }
887
873
  var BASE_CLASSES = "inline-flex items-center rounded-sm gap-1 font-medium w-fit max-w-full whitespace-nowrap select-text";
888
- var SIZE_CLASSES2 = {
874
+ var SIZE_CLASSES3 = {
889
875
  sm: "text-xs p-1 h-[18px] min-h-[18px]",
890
876
  md: "text-sm px-1 py-0.5 min-h-6",
891
877
  lg: "text-sm px-2 py-1 min-h-7 font-semibold"
@@ -955,7 +941,7 @@ var Badge = React29__namespace.default.forwardRef(
955
941
  ref,
956
942
  className: cn(
957
943
  BASE_CLASSES,
958
- SIZE_CLASSES2[size],
944
+ SIZE_CLASSES3[size],
959
945
  COLOR_PALETTE_CLASSES[colorPalette],
960
946
  className
961
947
  ),
@@ -1255,7 +1241,7 @@ var Button = React29__namespace.forwardRef(
1255
1241
  return button;
1256
1242
  }
1257
1243
  );
1258
- var SIZE_CLASSES3 = {
1244
+ var SIZE_CLASSES4 = {
1259
1245
  "2xs": "px-2 h-5 min-w-5 text-xs rounded-sm gap-1",
1260
1246
  xs: "px-2 h-6 min-w-6 text-sm rounded-sm gap-1",
1261
1247
  sm: "px-3 h-8 min-w-8 text-sm rounded-md gap-1",
@@ -1264,7 +1250,7 @@ var SIZE_CLASSES3 = {
1264
1250
  function buttonVariants(opts) {
1265
1251
  const v = opts?.variant ?? "solid";
1266
1252
  const s = opts?.size ?? "md";
1267
- return [BASE_CLASSES2, VARIANT_CLASSES2[v] ?? "", SIZE_CLASSES3[s] ?? ""].filter(Boolean).join(" ");
1253
+ return [BASE_CLASSES2, VARIANT_CLASSES2[v] ?? "", SIZE_CLASSES4[s] ?? ""].filter(Boolean).join(" ");
1268
1254
  }
1269
1255
  var ButtonGroup = React29__namespace.forwardRef(
1270
1256
  function ButtonGroup2(props, ref) {
@@ -1381,7 +1367,7 @@ var CheckboxGroupBase = React29__namespace.forwardRef(
1381
1367
  }
1382
1368
  );
1383
1369
  var CheckboxGroup2 = CheckboxGroupBase;
1384
- var SIZE_CLASSES4 = {
1370
+ var SIZE_CLASSES5 = {
1385
1371
  sm: {
1386
1372
  root: "gap-1.5",
1387
1373
  control: "h-3.5 w-3.5 rounded-sm",
@@ -1491,7 +1477,7 @@ var CheckboxBase = React29__namespace.forwardRef(
1491
1477
  },
1492
1478
  [readOnly, isControlled, isInGroup, group, value, onCheckedChange, onChange]
1493
1479
  );
1494
- const sizeClasses2 = SIZE_CLASSES4[size];
1480
+ const sizeClasses2 = SIZE_CLASSES5[size];
1495
1481
  return /* @__PURE__ */ jsxRuntime.jsxs(
1496
1482
  "label",
1497
1483
  {
@@ -2187,7 +2173,7 @@ var PLACEMENT_CLASSES = {
2187
2173
  "data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom"
2188
2174
  ].join(" ")
2189
2175
  };
2190
- var SIZE_CLASSES5 = {
2176
+ var SIZE_CLASSES6 = {
2191
2177
  right: { xs: "w-60", sm: "w-80", md: "w-96", lg: "w-[480px]", xl: "w-[640px]", full: "w-screen" },
2192
2178
  left: { xs: "w-60", sm: "w-80", md: "w-96", lg: "w-[480px]", xl: "w-[640px]", full: "w-screen" },
2193
2179
  top: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" },
@@ -2216,7 +2202,7 @@ var DrawerContent = React29__namespace.forwardRef(
2216
2202
  className: cn(
2217
2203
  "fixed z-50 flex flex-col bg-[var(--color-drawer-bg)] shadow-[var(--shadow-drawer)] duration-300",
2218
2204
  PLACEMENT_CLASSES[placement] ?? PLACEMENT_CLASSES.right,
2219
- SIZE_CLASSES5[placement]?.[size] ?? SIZE_CLASSES5.right?.md,
2205
+ SIZE_CLASSES6[placement]?.[size] ?? SIZE_CLASSES6.right?.md,
2220
2206
  className
2221
2207
  ),
2222
2208
  ...rest,
@@ -2840,46 +2826,36 @@ var Image2 = React29__namespace.default.forwardRef(
2840
2826
  ] });
2841
2827
  }
2842
2828
  );
2843
- var inputVariants = classVarianceAuthority.cva(
2844
- [
2845
- "w-full appearance-none outline-none transition-colors",
2846
- "bg-[var(--color-input-bg)] text-[var(--color-input-fg)] border-[var(--color-input-border)]",
2847
- "placeholder:text-[var(--color-input-placeholder,theme(colors.gray.400))]",
2848
- "hover:border-[var(--color-input-border-hover,theme(colors.gray.400))]",
2849
- "focus:border-[var(--color-input-border-focus,theme(colors.blue.500))]",
2850
- "focus:placeholder:text-[var(--color-input-placeholder-focus,theme(colors.gray.300))]",
2851
- "disabled:opacity-40 disabled:cursor-not-allowed",
2852
- "read-only:opacity-70",
2853
- "data-[invalid]:border-[var(--color-input-border-invalid,theme(colors.red.500))]"
2854
- ].join(" "),
2855
- {
2856
- variants: {
2857
- size: {
2858
- xs: "h-6 px-2 text-xs rounded",
2859
- sm: "h-8 px-3 text-sm rounded-md",
2860
- md: "h-10 px-4 text-base rounded-md",
2861
- lg: "h-12 px-4 text-lg rounded-lg",
2862
- "2xl": "h-14 px-4 text-xl rounded-lg"
2863
- },
2864
- variant: {
2865
- outline: "border border-solid",
2866
- filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
2867
- unstyled: "border-0 bg-transparent p-0 h-auto"
2868
- }
2869
- },
2870
- defaultVariants: {
2871
- size: "md",
2872
- variant: "outline"
2873
- }
2874
- }
2875
- );
2829
+ var INPUT_BASE = [
2830
+ "w-full appearance-none outline-none transition-colors",
2831
+ "bg-[var(--color-input-bg)] text-[var(--color-input-fg)] border-[var(--color-input-border)]",
2832
+ "placeholder:text-[var(--color-input-placeholder,theme(colors.gray.400))]",
2833
+ "hover:border-[var(--color-input-border-hover,theme(colors.gray.400))]",
2834
+ "focus:border-[var(--color-input-border-focus,theme(colors.blue.500))]",
2835
+ "focus:placeholder:text-[var(--color-input-placeholder-focus,theme(colors.gray.300))]",
2836
+ "disabled:opacity-40 disabled:cursor-not-allowed",
2837
+ "read-only:opacity-70",
2838
+ "data-[invalid]:border-[var(--color-input-border-invalid,theme(colors.red.500))]"
2839
+ ].join(" ");
2840
+ var INPUT_SIZE_CLASSES = {
2841
+ xs: "h-6 px-2 text-xs rounded",
2842
+ sm: "h-8 px-3 text-sm rounded-md",
2843
+ md: "h-10 px-4 text-base rounded-md",
2844
+ lg: "h-12 px-4 text-lg rounded-lg",
2845
+ "2xl": "h-14 px-4 text-xl rounded-lg"
2846
+ };
2847
+ var INPUT_VARIANT_CLASSES = {
2848
+ outline: "border border-solid",
2849
+ filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
2850
+ unstyled: "border-0 bg-transparent p-0 h-auto"
2851
+ };
2876
2852
  var Input = React29__namespace.default.forwardRef(
2877
- ({ size, variant, className, ...rest }, ref) => {
2853
+ ({ size = "md", variant = "outline", className, ...rest }, ref) => {
2878
2854
  return /* @__PURE__ */ jsxRuntime.jsx(
2879
2855
  "input",
2880
2856
  {
2881
2857
  ref,
2882
- className: cn(inputVariants({ size, variant }), className),
2858
+ className: cn(INPUT_BASE, INPUT_SIZE_CLASSES[size], INPUT_VARIANT_CLASSES[variant], className),
2883
2859
  ...rest
2884
2860
  }
2885
2861
  );
@@ -3262,7 +3238,7 @@ var MenuTriggerItem = React29__namespace.forwardRef(function MenuTriggerItem2(pr
3262
3238
  }
3263
3239
  ) });
3264
3240
  });
3265
- var INPUT_BASE = [
3241
+ var INPUT_BASE2 = [
3266
3242
  "w-10 h-10",
3267
3243
  "text-center text-sm font-medium",
3268
3244
  "border-2 rounded-md",
@@ -3393,7 +3369,7 @@ var PinInput = React29__namespace.forwardRef(
3393
3369
  "aria-invalid": invalid || void 0,
3394
3370
  value: values[index] || "",
3395
3371
  className: cn(
3396
- INPUT_BASE,
3372
+ INPUT_BASE2,
3397
3373
  values[index] && INPUT_FILLED,
3398
3374
  invalid && INPUT_INVALID,
3399
3375
  attached && index > 0 && "-ml-0.5"
@@ -3644,7 +3620,7 @@ var PopoverDescription = React29__namespace.forwardRef(function PopoverDescripti
3644
3620
  }
3645
3621
  );
3646
3622
  });
3647
- var SIZE_CLASSES6 = {
3623
+ var SIZE_CLASSES7 = {
3648
3624
  sm: "h-1",
3649
3625
  md: "h-2",
3650
3626
  lg: "h-3",
@@ -3702,7 +3678,7 @@ var Progress = React29__namespace.forwardRef(
3702
3678
  className: cn(
3703
3679
  "w-full overflow-hidden rounded-full",
3704
3680
  "bg-[var(--color-progress-track)]",
3705
- SIZE_CLASSES6[size],
3681
+ SIZE_CLASSES7[size],
3706
3682
  trackProps?.className
3707
3683
  ),
3708
3684
  style: trackStyle,
@@ -3841,7 +3817,7 @@ var ProgressCircleValueText = React29__namespace.forwardRef(function ProgressCir
3841
3817
  }
3842
3818
  );
3843
3819
  });
3844
- var SIZE_CLASSES7 = {
3820
+ var SIZE_CLASSES8 = {
3845
3821
  xs: {
3846
3822
  root: "gap-1.5",
3847
3823
  control: "h-3 w-3",
@@ -3922,7 +3898,7 @@ var RadioBase = React29__namespace.forwardRef(
3922
3898
  function Radio(props, ref) {
3923
3899
  const { children, inputProps, rootRef, value, disabled, className, ...rest } = props;
3924
3900
  const size = React29__namespace.useContext(RadioSizeContext);
3925
- const sizeClasses2 = SIZE_CLASSES7[size];
3901
+ const sizeClasses2 = SIZE_CLASSES8[size];
3926
3902
  return /* @__PURE__ */ jsxRuntime.jsxs(
3927
3903
  "label",
3928
3904
  {
@@ -4580,7 +4556,7 @@ function SliderMarks(props) {
4580
4556
  }
4581
4557
  var NOOP3 = () => {
4582
4558
  };
4583
- var SIZE_CLASSES8 = {
4559
+ var SIZE_CLASSES9 = {
4584
4560
  sm: {
4585
4561
  root: "h-4 w-7",
4586
4562
  thumb: "h-3 w-3 data-[state=checked]:translate-x-3",
@@ -4630,7 +4606,7 @@ var SwitchBase = React29__namespace.forwardRef(
4630
4606
  },
4631
4607
  [isControlled, onCheckedChange]
4632
4608
  );
4633
- const sizeClasses2 = SIZE_CLASSES8[size];
4609
+ const sizeClasses2 = SIZE_CLASSES9[size];
4634
4610
  const isRtl = direction === "rtl";
4635
4611
  return /* @__PURE__ */ jsxRuntime.jsxs(
4636
4612
  "label",
@@ -5315,39 +5291,18 @@ var nbsp = String.fromCharCode(160);
5315
5291
  function TruncatedTextTooltip2({ label, children }) {
5316
5292
  return /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { content: label, positioning: { placement: "top" }, children });
5317
5293
  }
5318
- var tagVariants = classVarianceAuthority.cva(
5319
- [
5320
- "inline-flex items-center align-top max-w-full select-text rounded-sm",
5321
- "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500"
5322
- ].join(" "),
5323
- {
5324
- variants: {
5325
- variant: {
5326
- subtle: "bg-[var(--color-tag-subtle-bg)] text-[var(--color-tag-subtle-fg)]",
5327
- clickable: [
5328
- "cursor-pointer",
5329
- "bg-[var(--color-tag-clickable-bg)] text-[var(--color-tag-clickable-fg)]",
5330
- "hover:opacity-76"
5331
- ].join(" "),
5332
- filter: "bg-[var(--color-tag-filter-bg)]",
5333
- select: [
5334
- "cursor-pointer",
5335
- "bg-[var(--color-tag-select-bg)] text-[var(--color-tag-select-fg)]",
5336
- "hover:text-[var(--color-hover)] hover:opacity-76"
5337
- ].join(" ")
5338
- },
5339
- size: {
5340
- sm: "px-1 py-0.5 min-h-5 gap-1 text-xs",
5341
- md: "px-1 py-0.5 min-h-6 gap-1 text-sm",
5342
- lg: "px-1.5 py-1.5 min-h-8 min-w-8 gap-1 text-sm"
5343
- }
5344
- },
5345
- defaultVariants: {
5346
- variant: "subtle",
5347
- size: "md"
5348
- }
5349
- }
5350
- );
5294
+ var TAG_BASE = "inline-flex items-center align-top max-w-full select-text rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500";
5295
+ var TAG_VARIANT_CLASSES = {
5296
+ subtle: "bg-[var(--color-tag-subtle-bg)] text-[var(--color-tag-subtle-fg)]",
5297
+ clickable: "cursor-pointer bg-[var(--color-tag-clickable-bg)] text-[var(--color-tag-clickable-fg)] hover:opacity-76",
5298
+ filter: "bg-[var(--color-tag-filter-bg)]",
5299
+ select: "cursor-pointer bg-[var(--color-tag-select-bg)] text-[var(--color-tag-select-fg)] hover:text-[var(--color-hover)] hover:opacity-76"
5300
+ };
5301
+ var TAG_SIZE_CLASSES = {
5302
+ sm: "px-1 py-0.5 min-h-5 gap-1 text-xs",
5303
+ md: "px-1 py-0.5 min-h-6 gap-1 text-sm",
5304
+ lg: "px-1.5 py-1.5 min-h-8 min-w-8 gap-1 text-sm"
5305
+ };
5351
5306
  var TAG_SELECTED_CLASSES = [
5352
5307
  "bg-[var(--color-tag-select-selected-bg)]",
5353
5308
  "text-[var(--color-tag-select-selected-fg)]",
@@ -5389,7 +5344,9 @@ var Tag = React29__namespace.forwardRef(
5389
5344
  {
5390
5345
  ref,
5391
5346
  className: cn(
5392
- tagVariants({ variant, size }),
5347
+ TAG_BASE,
5348
+ TAG_VARIANT_CLASSES[variant ?? "subtle"],
5349
+ TAG_SIZE_CLASSES[size ?? "md"],
5393
5350
  selected && !loading && TAG_SELECTED_CLASSES,
5394
5351
  disabled && TAG_DISABLED_CLASSES,
5395
5352
  className
@@ -5417,46 +5374,36 @@ var Tag = React29__namespace.forwardRef(
5417
5374
  ) });
5418
5375
  }
5419
5376
  );
5420
- var textareaVariants = classVarianceAuthority.cva(
5421
- [
5422
- "w-full appearance-none outline-none transition-colors resize-y",
5423
- "bg-[var(--color-input-bg)] text-[var(--color-input-fg)] border-[var(--color-input-border)]",
5424
- "placeholder:text-[var(--color-input-placeholder,theme(colors.gray.400))]",
5425
- "hover:border-[var(--color-input-border-hover,theme(colors.gray.400))]",
5426
- "focus:border-[var(--color-input-border-focus,theme(colors.blue.500))]",
5427
- "focus:placeholder:text-[var(--color-input-placeholder-focus,theme(colors.gray.300))]",
5428
- "disabled:opacity-40 disabled:cursor-not-allowed",
5429
- "read-only:opacity-70",
5430
- "data-[invalid]:border-[var(--color-input-border-invalid,theme(colors.red.500))]"
5431
- ].join(" "),
5432
- {
5433
- variants: {
5434
- size: {
5435
- xs: "px-2 py-1 text-xs rounded",
5436
- sm: "px-3 py-2 text-sm rounded-md",
5437
- md: "px-4 py-2 text-base rounded-md",
5438
- lg: "px-4 py-3 text-lg rounded-lg",
5439
- "2xl": "px-4 py-3 text-xl rounded-lg"
5440
- },
5441
- variant: {
5442
- outline: "border border-solid",
5443
- filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
5444
- unstyled: "border-0 bg-transparent p-0"
5445
- }
5446
- },
5447
- defaultVariants: {
5448
- size: "md",
5449
- variant: "outline"
5450
- }
5451
- }
5452
- );
5377
+ var TEXTAREA_BASE = [
5378
+ "w-full appearance-none outline-none transition-colors resize-y",
5379
+ "bg-[var(--color-input-bg)] text-[var(--color-input-fg)] border-[var(--color-input-border)]",
5380
+ "placeholder:text-[var(--color-input-placeholder,theme(colors.gray.400))]",
5381
+ "hover:border-[var(--color-input-border-hover,theme(colors.gray.400))]",
5382
+ "focus:border-[var(--color-input-border-focus,theme(colors.blue.500))]",
5383
+ "focus:placeholder:text-[var(--color-input-placeholder-focus,theme(colors.gray.300))]",
5384
+ "disabled:opacity-40 disabled:cursor-not-allowed",
5385
+ "read-only:opacity-70",
5386
+ "data-[invalid]:border-[var(--color-input-border-invalid,theme(colors.red.500))]"
5387
+ ].join(" ");
5388
+ var TEXTAREA_SIZE_CLASSES = {
5389
+ xs: "px-2 py-1 text-xs rounded",
5390
+ sm: "px-3 py-2 text-sm rounded-md",
5391
+ md: "px-4 py-2 text-base rounded-md",
5392
+ lg: "px-4 py-3 text-lg rounded-lg",
5393
+ "2xl": "px-4 py-3 text-xl rounded-lg"
5394
+ };
5395
+ var TEXTAREA_VARIANT_CLASSES = {
5396
+ outline: "border border-solid",
5397
+ filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
5398
+ unstyled: "border-0 bg-transparent p-0"
5399
+ };
5453
5400
  var Textarea = React29__namespace.default.forwardRef(
5454
- ({ size, variant, className, ...rest }, ref) => {
5401
+ ({ size = "md", variant = "outline", className, ...rest }, ref) => {
5455
5402
  return /* @__PURE__ */ jsxRuntime.jsx(
5456
5403
  "textarea",
5457
5404
  {
5458
5405
  ref,
5459
- className: cn(textareaVariants({ size, variant }), className),
5406
+ className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
5460
5407
  ...rest
5461
5408
  }
5462
5409
  );
@@ -5553,9 +5500,6 @@ var Toaster = () => {
5553
5500
  }
5554
5501
  );
5555
5502
  };
5556
- function Provider(props) {
5557
- return /* @__PURE__ */ jsxRuntime.jsx(ColorModeProvider, { ...props });
5558
- }
5559
5503
  function fmt(n, decimals = 2) {
5560
5504
  if (n === void 0 || n === null) return "-";
5561
5505
  return n.toFixed(decimals);
@@ -7079,6 +7023,7 @@ exports.AccordionItemContent = AccordionItemContent;
7079
7023
  exports.AccordionItemTrigger = AccordionItemTrigger;
7080
7024
  exports.AccordionRoot = AccordionRoot;
7081
7025
  exports.Alert = Alert;
7026
+ exports.AppProvider = AppProvider;
7082
7027
  exports.Avatar = Avatar;
7083
7028
  exports.AvatarGroup = AvatarGroup;
7084
7029
  exports.Badge = Badge;
@@ -7168,7 +7113,6 @@ exports.Progress = Progress;
7168
7113
  exports.ProgressCircleRing = ProgressCircleRing;
7169
7114
  exports.ProgressCircleRoot = ProgressCircleRoot;
7170
7115
  exports.ProgressCircleValueText = ProgressCircleValueText;
7171
- exports.Provider = Provider;
7172
7116
  exports.Radio = Radio2;
7173
7117
  exports.RadioGroup = RadioGroup3;
7174
7118
  exports.Rating = Rating;