@keboola/design 6.5.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/AGENTS.md +7 -7
  2. package/COMPONENT-API.md +3 -9
  3. package/README.md +1 -1
  4. package/dist/charts.cjs +22 -22
  5. package/dist/charts.cjs.map +1 -1
  6. package/dist/charts.d.cts +5 -5
  7. package/dist/charts.d.ts +5 -5
  8. package/dist/charts.js +22 -22
  9. package/dist/charts.js.map +1 -1
  10. package/dist/editors.cjs +904 -550
  11. package/dist/editors.cjs.map +1 -1
  12. package/dist/editors.d.cts +35 -5
  13. package/dist/editors.d.ts +35 -5
  14. package/dist/editors.js +908 -537
  15. package/dist/editors.js.map +1 -1
  16. package/dist/icons.cjs +23817 -45
  17. package/dist/icons.cjs.map +1 -1
  18. package/dist/icons.d.cts +12 -3
  19. package/dist/icons.d.ts +12 -3
  20. package/dist/icons.js +297 -40
  21. package/dist/icons.js.map +1 -1
  22. package/dist/index.cjs +4702 -4755
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +183 -169
  25. package/dist/index.d.ts +183 -169
  26. package/dist/index.js +4700 -4754
  27. package/dist/index.js.map +1 -1
  28. package/dist/markdown-editor.cjs +817 -923
  29. package/dist/markdown-editor.cjs.map +1 -1
  30. package/dist/markdown-editor.js +818 -923
  31. package/dist/markdown-editor.js.map +1 -1
  32. package/dist/mermaid.cjs +308 -425
  33. package/dist/mermaid.cjs.map +1 -1
  34. package/dist/mermaid.d.cts +5 -1
  35. package/dist/mermaid.d.ts +5 -1
  36. package/dist/mermaid.js +310 -408
  37. package/dist/mermaid.js.map +1 -1
  38. package/dist/rjsf.cjs +1704 -1234
  39. package/dist/rjsf.cjs.map +1 -1
  40. package/dist/rjsf.js +1708 -1237
  41. package/dist/rjsf.js.map +1 -1
  42. package/dist/styles.css +2 -5
  43. package/dist/testing.cjs +86 -82
  44. package/dist/testing.cjs.map +1 -1
  45. package/dist/testing.js +86 -82
  46. package/dist/testing.js.map +1 -1
  47. package/package.json +26 -19
  48. package/src/styles.css +125 -105
  49. package/src/theme.css +264 -0
@@ -7,7 +7,7 @@ var react = require('react');
7
7
  var reactTooltip = require('@radix-ui/react-tooltip');
8
8
  var classVarianceAuthority = require('class-variance-authority');
9
9
  var jsxRuntime = require('react/jsx-runtime');
10
- var lucide_react_star = require('lucide-react');
10
+ var lucideReact = require('lucide-react');
11
11
  var reactSlot = require('@radix-ui/react-slot');
12
12
  var reactDom = require('react-dom');
13
13
  var DOMPurify = require('dompurify');
@@ -61,7 +61,6 @@ function _interopNamespace(e) {
61
61
  return Object.freeze(n);
62
62
  }
63
63
 
64
- var lucide_react_star__namespace = /*#__PURE__*/_interopNamespace(lucide_react_star);
65
64
  var DOMPurify__default = /*#__PURE__*/_interopDefault(DOMPurify);
66
65
  var colors__default = /*#__PURE__*/_interopDefault(colors);
67
66
  var DropdownMenuPrimitive3__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive3);
@@ -70,9 +69,7 @@ var TextareaAutosize__default = /*#__PURE__*/_interopDefault(TextareaAutosize);
70
69
  var RLabel__namespace = /*#__PURE__*/_interopNamespace(RLabel);
71
70
 
72
71
  var __defProp = Object.defineProperty;
73
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
74
72
  var __getOwnPropNames = Object.getOwnPropertyNames;
75
- var __hasOwnProp = Object.prototype.hasOwnProperty;
76
73
  var __esm = (fn, res) => function __init() {
77
74
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
78
75
  };
@@ -80,20 +77,11 @@ var __export = (target, all) => {
80
77
  for (var name in all)
81
78
  __defProp(target, name, { get: all[name], enumerable: true });
82
79
  };
83
- var __copyProps = (to, from, except, desc) => {
84
- if (from && typeof from === "object" || typeof from === "function") {
85
- for (let key of __getOwnPropNames(from))
86
- if (!__hasOwnProp.call(to, key) && key !== except)
87
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
88
- }
89
- return to;
90
- };
91
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
92
80
  var twMerge, cn;
93
81
  var init_classNames = __esm({
94
82
  "src/utils/classNames.ts"() {
95
83
  twMerge = tailwindMerge.extendTailwindMerge({
96
- prefix: "tw-"
84
+ prefix: "tw"
97
85
  });
98
86
  cn = (...classes) => twMerge(clsx.clsx(...classes));
99
87
  }
@@ -212,39 +200,39 @@ var init_TooltipContent = __esm({
212
200
  tooltipVariants = classVarianceAuthority.cva(
213
201
  [
214
202
  "tailwindcss-preflight",
215
- "tw-inline-block",
216
- "tw-break-anywhere",
217
- "tw-max-h-96",
218
- "tw-overflow-y-auto",
219
- "tw-z-[1060]",
203
+ "tw:inline-block",
204
+ "tw:break-anywhere",
205
+ "tw:max-h-96",
206
+ "tw:overflow-y-auto",
207
+ "tw:z-[1060]",
220
208
  // legacy (dark) chrome — default
221
- "tw-rounded",
222
- "tw-bg-neutral-800",
223
- "tw-text-white",
209
+ "tw:rounded",
210
+ "tw:bg-neutral-800",
211
+ "tw:text-white",
224
212
  // argo chrome overrides — semantic floating-panel tokens
225
- "data-[argo=true]:tw-rounded-2xl",
226
- "data-[argo=true]:tw-border",
227
- "data-[argo=true]:tw-border-solid",
228
- "data-[argo=true]:tw-border-border",
229
- "data-[argo=true]:tw-bg-popover",
230
- "data-[argo=true]:tw-text-popover-foreground",
231
- "data-[argo=true]:tw-shadow-md",
213
+ "tw:data-[argo=true]:rounded-2xl",
214
+ "tw:data-[argo=true]:border",
215
+ "tw:data-[argo=true]:border-solid",
216
+ "tw:data-[argo=true]:border-border",
217
+ "tw:data-[argo=true]:bg-popover",
218
+ "tw:data-[argo=true]:text-popover-foreground",
219
+ "tw:data-[argo=true]:shadow-md",
232
220
  // argo open animation
233
- "data-[argo=true]:data-[state=delayed-open]:tw-animate-in",
234
- "data-[argo=true]:data-[state=instant-open]:tw-animate-in",
235
- "data-[argo=true]:data-[state=delayed-open]:tw-fade-in-0",
236
- "data-[argo=true]:data-[state=instant-open]:tw-fade-in-0",
237
- "data-[argo=true]:data-[state=delayed-open]:tw-zoom-in-95",
238
- "data-[argo=true]:data-[state=instant-open]:tw-zoom-in-95",
221
+ "tw:data-[argo=true]:data-[state=delayed-open]:animate-in",
222
+ "tw:data-[argo=true]:data-[state=instant-open]:animate-in",
223
+ "tw:data-[argo=true]:data-[state=delayed-open]:fade-in-0",
224
+ "tw:data-[argo=true]:data-[state=instant-open]:fade-in-0",
225
+ "tw:data-[argo=true]:data-[state=delayed-open]:zoom-in-95",
226
+ "tw:data-[argo=true]:data-[state=instant-open]:zoom-in-95",
239
227
  // argo closed animation
240
- "data-[argo=true]:data-[state=closed]:tw-animate-out",
241
- "data-[argo=true]:data-[state=closed]:tw-fade-out-0",
242
- "data-[argo=true]:data-[state=closed]:tw-zoom-out-95",
228
+ "tw:data-[argo=true]:data-[state=closed]:animate-out",
229
+ "tw:data-[argo=true]:data-[state=closed]:fade-out-0",
230
+ "tw:data-[argo=true]:data-[state=closed]:zoom-out-95",
243
231
  // argo position animation
244
- "data-[argo=true]:data-[side=bottom]:tw-slide-in-from-top-2",
245
- "data-[argo=true]:data-[side=left]:tw-slide-in-from-right-2",
246
- "data-[argo=true]:data-[side=right]:tw-slide-in-from-left-2",
247
- "data-[argo=true]:data-[side=top]:tw-slide-in-from-bottom-2"
232
+ "tw:data-[argo=true]:data-[side=bottom]:slide-in-from-top-2",
233
+ "tw:data-[argo=true]:data-[side=left]:slide-in-from-right-2",
234
+ "tw:data-[argo=true]:data-[side=right]:slide-in-from-left-2",
235
+ "tw:data-[argo=true]:data-[side=top]:slide-in-from-bottom-2"
248
236
  ],
249
237
  {
250
238
  defaultVariants: {
@@ -253,22 +241,26 @@ var init_TooltipContent = __esm({
253
241
  variants: {
254
242
  variant: {
255
243
  action: [
256
- "tw-max-w-fit",
257
- "tw-px-3",
258
- "tw-py-2",
259
- "tw-text-center",
260
- "tw-text-xs",
261
- "tw-font-medium",
262
- "tw-uppercase",
263
- "tw-tracking-wider"
244
+ "tw:max-w-fit",
245
+ "tw:px-3",
246
+ "tw:py-2",
247
+ "tw:text-center",
248
+ "tw:text-xs",
249
+ "tw:font-medium",
250
+ // Legacy chrome uppercases the action tooltip; the Keboola V2 brand
251
+ // (`data-brand="keboola"`) renders it in standard case instead.
252
+ "tw:uppercase",
253
+ "tw:tracking-wider",
254
+ "tw:[[data-brand=keboola]_&]:normal-case",
255
+ "tw:[[data-brand=keboola]_&]:tracking-normal"
264
256
  ],
265
257
  explanatory: [
266
- "tw-max-w-80",
267
- "tw-px-4",
268
- "tw-py-3",
269
- "tw-text-left",
270
- "tw-text-sm",
271
- "tw-font-normal"
258
+ "tw:max-w-80",
259
+ "tw:px-4",
260
+ "tw:py-3",
261
+ "tw:text-left",
262
+ "tw:text-sm",
263
+ "tw:font-normal"
272
264
  ]
273
265
  }
274
266
  }
@@ -353,8 +345,8 @@ var init_TooltipTrigger = __esm({
353
345
  // (merged in via Slot) activates Tailwind's preflight inside the
354
346
  // span, which sets `svg { display: block }` — without an inline-flex
355
347
  // container that would stack any bare Lucide icon onto its own
356
- // line. `tw-inline-flex tw-items-center` keeps icon + text aligned.
357
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-inline-flex tw-items-center", children })
348
+ // line. `tw:inline-flex tw:items-center` keeps icon + text aligned.
349
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw:inline-flex tw:items-center", children })
358
350
  )
359
351
  }
360
352
  );
@@ -529,31 +521,31 @@ var init_Skeleton = __esm({
529
521
  "src/components/Skeleton/Skeleton.tsx"() {
530
522
  init_utils2();
531
523
  HEIGHT_CLASS_NAME = {
532
- xxs: "tw-h-3 tw-rounded",
533
- xs: "tw-h-4 tw-rounded",
534
- sm: "tw-h-5 tw-rounded",
535
- md: "tw-h-6 tw-rounded-md",
536
- lg: "tw-h-8 tw-rounded-lg",
537
- xl: "tw-h-10 tw-rounded-lg",
538
- "2xl": "tw-h-12 tw-rounded-lg"
524
+ xxs: "tw:h-3 tw:rounded",
525
+ xs: "tw:h-4 tw:rounded",
526
+ sm: "tw:h-5 tw:rounded",
527
+ md: "tw:h-6 tw:rounded-md",
528
+ lg: "tw:h-8 tw:rounded-lg",
529
+ xl: "tw:h-10 tw:rounded-lg",
530
+ "2xl": "tw:h-12 tw:rounded-lg"
539
531
  };
540
532
  ANIMATION_CLASS_NAME = cn(
541
533
  // base styles
542
- "tw-relative",
543
- "tw-overflow-hidden",
544
- "tw-pointer-events-none",
545
- "tw-bg-skeleton",
534
+ "tw:relative",
535
+ "tw:overflow-hidden",
536
+ "tw:pointer-events-none",
537
+ "tw:bg-skeleton",
546
538
  // before
547
- 'before:tw-content-[""]',
548
- "before:tw-opacity-100",
549
- "before:tw-absolute",
550
- "before:tw-inset-0",
551
- "before:-tw-translate-x-full",
552
- "before:tw-animate-[shimmer_2s_infinite]",
553
- "before:tw-bg-gradient-to-r",
554
- "before:tw-from-transparent",
555
- "before:tw-to-transparent",
556
- "before:tw-via-white/40"
539
+ 'tw:before:content-[""]',
540
+ "tw:before:opacity-100",
541
+ "tw:before:absolute",
542
+ "tw:before:inset-0",
543
+ "tw:before:-translate-x-full",
544
+ "tw:before:animate-[shimmer_2s_infinite]",
545
+ "tw:before:bg-gradient-to-r",
546
+ "tw:before:from-transparent",
547
+ "tw:before:to-transparent",
548
+ "tw:before:via-white/40"
557
549
  );
558
550
  Skeleton = ({ height = "md", className, count = 1 }) => {
559
551
  const prefixId = react.useId();
@@ -569,129 +561,8 @@ var init_Skeleton = __esm({
569
561
  };
570
562
  }
571
563
  });
572
- var Google;
573
- var init_Google = __esm({
574
- "src/icons/Google.tsx"() {
575
- init_utils2();
576
- Google = react.forwardRef(
577
- ({ size = 24, className, children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
578
- "svg",
579
- {
580
- ref,
581
- xmlns: "http://www.w3.org/2000/svg",
582
- width: size,
583
- height: size,
584
- viewBox: "12 10 20 20",
585
- fill: "none",
586
- className: cn("lucide", className),
587
- ...rest,
588
- children: [
589
- /* @__PURE__ */ jsxRuntime.jsx(
590
- "path",
591
- {
592
- d: "M31.6 20.2273C31.6 19.5182 31.5364 18.8364 31.4182 18.1818H22V22.05H27.3818C27.15 23.3 26.4455 24.3591 25.3864 25.0682V27.5773H28.6182C30.5091 25.8364 31.6 23.2727 31.6 20.2273Z",
593
- fill: "#4285F4"
594
- }
595
- ),
596
- /* @__PURE__ */ jsxRuntime.jsx(
597
- "path",
598
- {
599
- d: "M22 30C24.7 30 26.9636 29.1045 28.6181 27.5773L25.3863 25.0682C24.4909 25.6682 23.3454 26.0227 22 26.0227C19.3954 26.0227 17.1909 24.2636 16.4045 21.9H13.0636V24.4909C14.7091 27.7591 18.0909 30 22 30Z",
600
- fill: "#34A853"
601
- }
602
- ),
603
- /* @__PURE__ */ jsxRuntime.jsx(
604
- "path",
605
- {
606
- d: "M16.4045 21.9C16.2045 21.3 16.0909 20.6591 16.0909 20C16.0909 19.3409 16.2045 18.7 16.4045 18.1V15.5091H13.0636C12.3864 16.8591 12 18.3864 12 20C12 21.6136 12.3864 23.1409 13.0636 24.4909L16.4045 21.9Z",
607
- fill: "#FBBC04"
608
- }
609
- ),
610
- /* @__PURE__ */ jsxRuntime.jsx(
611
- "path",
612
- {
613
- d: "M22 13.9773C23.4681 13.9773 24.7863 14.4818 25.8227 15.4727L28.6909 12.6045C26.9591 10.9909 24.6954 10 22 10C18.0909 10 14.7091 12.2409 13.0636 15.5091L16.4045 18.1C17.1909 15.7364 19.3954 13.9773 22 13.9773Z",
614
- fill: "#EA4335"
615
- }
616
- ),
617
- children
618
- ]
619
- }
620
- )
621
- );
622
- Google.displayName = "Google";
623
- }
624
- });
625
- var Keboola;
626
- var init_Keboola = __esm({
627
- "src/icons/Keboola.tsx"() {
628
- init_utils2();
629
- Keboola = react.forwardRef(
630
- ({ size = 24, color = "currentColor", className, children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
631
- "svg",
632
- {
633
- ref,
634
- xmlns: "http://www.w3.org/2000/svg",
635
- width: size,
636
- height: size,
637
- viewBox: "0 0 300 512",
638
- overflow: "visible",
639
- fill: color,
640
- className: cn("lucide", className),
641
- ...rest,
642
- children: [
643
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M152 320C79.7 320 24.5 233.9 24.5 124.7C24.5 15.6 70.5 0 152 0s123.6 15.6 123.6 124.7C275.5 233.9 217.7 320 152 320zm-8.7-50.5c0-11.2-9.5-20.3-21.2-20.3s-21.2 9.1-21.2 20.3c0 11.2 9.5 20.3 21.2 20.3s21.2-9.1 21.2-20.3zm55.7 0c0-11.2-9.5-20.3-21.2-20.3s-21.2 9.1-21.2 20.3c0 11.2 9.5 20.3 21.2 20.3s21.2-9.1 21.2-20.3zm68.9 115.1c10.2 9.3 20.2 20.5 29 35c5.9 9.7 2.6 22.1-7.5 27.8c-3.4 1.9-7.1 2.8-10.7 2.8c-7.2 0-14.3-3.6-18.3-10c-6.8-11.1-13.8-18.9-21.7-26.1c-7.3-6.7-15.6-12.7-24.9-19.5c-.7-.5-1.4-1-2.1-1.5c-5-3.6-10-6.8-14.9-9.4c.6 1 1.2 2.1 1.8 3.2c14.4 26.4 29.2 63.1 29.2 104.9c0 11.2-9.5 20.3-21.2 20.3c-11.7 0-21.2-9.1-21.2-20.3c.1-31.8-11.6-62.3-23.8-84.9c-4-7.4-8-13.9-11.6-19.3c-3.4 5.2-7.2 11.3-11 18.3c-12.5 22.7-24.5 53.8-24.4 86c0 11.2-9.5 20.3-21.2 20.3s-21.2-9.1-21.2-20.3c.1-41.8 14.9-78.4 29.2-104.9c.6-1.1 1.2-2.1 1.8-3.2c-5 2.7-9.9 5.8-14.9 9.4c-.6 .5-1.3 .9-1.9 1.4c-9.5 6.9-17.8 12.9-25.1 19.7c-7.9 7.2-14.9 15.1-21.7 26.1c-5.9 9.7-18.9 12.9-29 7.2C.5 441.8-2.9 429.3 3.1 419.7c8.9-14.4 18.8-25.7 29-35c9.2-8.4 18.5-15.1 27.6-21.7c1-.7 2-1.4 3-2.2c4.7-3.5 9.6-6.7 14.6-9.6c-5-2.9-9.8-6.1-14.6-9.6C39.8 325 19.9 302.5 3.1 275.1c-5.9-9.7-2.6-22.1 7.5-27.8c10.1-5.7 23.1-2.5 29 7.2c14.6 23.7 31.1 42 48.7 54.9c18.9 13.7 37.4 20.5 56.5 21.5c1.7-.1 3.5-.1 5.2-.1c1.8 0 3.5 .1 5.2 .1c0 0 0 0 0 0c19.1-1.1 37.6-7.9 56.5-21.5c17.6-12.8 34.2-31.2 48.7-54.9c6-9.7 18.9-12.9 29-7.2c10.1 5.7 13.4 18.1 7.5 27.8c-16.8 27.4-36.7 49.9-59.6 66.6c-4.7 3.5-9.6 6.7-14.5 9.6c4.9 2.9 9.8 6.1 14.5 9.6c.9 .7 1.8 1.3 2.7 2c9.2 6.7 18.5 13.5 27.9 22z" }),
644
- children
645
- ]
646
- }
647
- )
648
- );
649
- Keboola.displayName = "Keboola";
650
- }
651
- });
652
- var Microsoft;
653
- var init_Microsoft = __esm({
654
- "src/icons/Microsoft.tsx"() {
655
- init_utils2();
656
- Microsoft = react.forwardRef(
657
- ({ size = 24, className, children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
658
- "svg",
659
- {
660
- ref,
661
- xmlns: "http://www.w3.org/2000/svg",
662
- width: size,
663
- height: size,
664
- viewBox: "0 0 21 21",
665
- fill: "none",
666
- className: cn("lucide", className),
667
- ...rest,
668
- children: [
669
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: "10", height: "10", fill: "#F25022" }),
670
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "11", y: "0", width: "10", height: "10", fill: "#7FBA00" }),
671
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "11", width: "10", height: "10", fill: "#00A4EF" }),
672
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "11", y: "11", width: "10", height: "10", fill: "#FFB900" }),
673
- children
674
- ]
675
- }
676
- )
677
- );
678
- Microsoft.displayName = "Microsoft";
679
- }
680
- });
681
-
682
- // src/icons/index.ts
683
- var icons_exports = {};
684
- __export(icons_exports, {
685
- Google: () => Google,
686
- Keboola: () => Keboola,
687
- Microsoft: () => Microsoft
688
- });
689
564
  var init_icons = __esm({
690
565
  "src/icons/index.ts"() {
691
- __reExport(icons_exports, lucide_react_star__namespace);
692
- init_Google();
693
- init_Keboola();
694
- init_Microsoft();
695
566
  }
696
567
  });
697
568
  var variants, argoVariants;
@@ -700,43 +571,46 @@ var init_styles = __esm({
700
571
  variants = classVarianceAuthority.cva(
701
572
  [
702
573
  "tailwindcss-preflight",
703
- "tw-group/button",
704
- "tw-border-box",
574
+ "tw:group/button",
575
+ "tw:border-box",
705
576
  // layout
706
- "tw-relative",
707
- "tw-flex",
708
- "tw-items-center",
709
- "tw-justify-center",
710
- "tw-gap-2",
577
+ "tw:relative",
578
+ "tw:flex",
579
+ "tw:items-center",
580
+ "tw:justify-center",
581
+ "tw:gap-2",
711
582
  // text — chrome weight/tracking are brand-overridable tokens
712
- // (`--font-weight-medium` / `--letter-spacing-chrome`); casing stays `tw-uppercase`.
713
- "tw-text-xs",
714
- "tw-leading-5",
715
- "tw-font-medium",
716
- "tw-tracking-chrome",
717
- "tw-uppercase",
583
+ // (`--font-weight-medium` / `--letter-spacing-chrome`). Casing: standard case is
584
+ // the default; only legacy brands (`keboola-legacy-*`) uppercase the chrome, so
585
+ // modern brands (incl. Keboola V2) read naturally. Mirrors the V2 standard-case
586
+ // treatment shipped for Tooltip/Badge (PR 7629).
587
+ "tw:text-xs",
588
+ "tw:leading-5",
589
+ "tw:font-medium",
590
+ "tw:[[data-brand^=keboola-legacy]_&]:tracking-chrome",
591
+ "tw:[[data-brand^=keboola-legacy]_&]:uppercase",
718
592
  // border — legacy (non-argo) chrome uses a fixed radius, not the brand token.
719
- "tw-rounded",
720
- "tw-border",
721
- "tw-border-transparent",
593
+ "tw:rounded",
594
+ "tw:border",
595
+ "tw:border-transparent",
722
596
  // styling
723
- "tw-shadow-none",
724
- "[a]:tw-cursor-pointer",
597
+ "tw:shadow-none",
598
+ "tw:[a]:cursor-pointer",
725
599
  // explicitly set for anchor
726
- "focus-visible:tw-outline",
727
- "focus-visible:tw-outline-1",
728
- "focus-visible:-tw-outline-offset-1",
729
- "focus-visible:tw-outline-ring",
730
- "focus-visible:tw-ring-4",
731
- "focus-visible:tw-ring-ring/30",
600
+ "tw:focus-visible:outline",
601
+ "tw:focus-visible:outline-1",
602
+ "tw:focus-visible:-outline-offset-1",
603
+ "tw:focus-visible:outline-ring",
604
+ "tw:focus-visible:ring-4",
605
+ "tw:focus-visible:ring-ring/30",
732
606
  // disabled
733
- "disabled:tw-opacity-40",
734
- "disabled:tw-cursor-not-allowed",
607
+ "tw:disabled:opacity-40",
608
+ "tw:disabled:cursor-not-allowed",
735
609
  // anchor support
736
- "!tw-no-underline",
737
- "aria-disabled:tw-opacity-40",
738
- "aria-disabled:tw-cursor-not-allowed",
739
- "[&_svg]:tw-shrink-0"
610
+ "tw:!no-underline",
611
+ "tw:aria-disabled:opacity-40",
612
+ "tw:aria-disabled:cursor-not-allowed",
613
+ "tw:[&_svg]:shrink-0"
740
614
  ],
741
615
  {
742
616
  defaultVariants: {
@@ -746,113 +620,113 @@ var init_styles = __esm({
746
620
  },
747
621
  variants: {
748
622
  block: {
749
- true: ["tw-w-full"]
623
+ true: ["tw:w-full"]
750
624
  },
751
625
  variant: {
752
626
  primary: [
753
- "tw-text-white",
754
- "tw-bg-primary-500",
755
- "focus:tw-text-white",
756
- "hover:tw-text-white",
757
- "hover:not-disabled:tw-bg-primary-600",
758
- "active:not-disabled:tw-bg-primary-800",
627
+ "tw:text-white",
628
+ "tw:bg-primary-500",
629
+ "tw:focus:text-white",
630
+ "tw:hover:text-white",
631
+ "tw:hover:not-disabled:bg-primary-600",
632
+ "tw:active:not-disabled:bg-primary-800",
759
633
  // anchor disabled override
760
- "aria-disabled:!tw-bg-primary-500"
634
+ "tw:aria-disabled:!bg-primary-500"
761
635
  ],
762
636
  secondary: [
763
- "tw-text-white",
764
- "tw-bg-secondary-500",
765
- "focus:tw-text-white",
766
- "hover:tw-text-white",
767
- "hover:not-disabled:tw-bg-secondary-700",
768
- "active:not-disabled:tw-bg-secondary-800",
637
+ "tw:text-white",
638
+ "tw:bg-secondary-500",
639
+ "tw:focus:text-white",
640
+ "tw:hover:text-white",
641
+ "tw:hover:not-disabled:bg-secondary-700",
642
+ "tw:active:not-disabled:bg-secondary-800",
769
643
  // anchor disabled override
770
- "aria-disabled:!tw-bg-secondary-500"
644
+ "tw:aria-disabled:!bg-secondary-500"
771
645
  ],
772
646
  danger: [
773
- "tw-text-white",
774
- "tw-bg-error-500",
775
- "focus:tw-text-white",
776
- "hover:tw-text-white",
777
- "hover:not-disabled:tw-bg-error-600",
778
- "active:not-disabled:tw-bg-error-700",
647
+ "tw:text-white",
648
+ "tw:bg-error-500",
649
+ "tw:focus:text-white",
650
+ "tw:hover:text-white",
651
+ "tw:hover:not-disabled:bg-error-600",
652
+ "tw:active:not-disabled:bg-error-700",
779
653
  // anchor disabled override
780
- "aria-disabled:!tw-bg-error-500"
654
+ "tw:aria-disabled:!bg-error-500"
781
655
  ],
782
656
  invisible: [
783
- "tw-text-neutral-800",
784
- "tw-bg-transparent",
785
- "focus:tw-text-neutral-800",
786
- "hover:not-disabled:tw-bg-neutral-100",
787
- "hover:tw-text-neutral-800",
788
- "active:not-disabled:tw-bg-neutral-150",
657
+ "tw:text-neutral-800",
658
+ "tw:bg-transparent",
659
+ "tw:focus:text-neutral-800",
660
+ "tw:hover:not-disabled:bg-neutral-100",
661
+ "tw:hover:text-neutral-800",
662
+ "tw:active:not-disabled:bg-neutral-150",
789
663
  // contrasting icon on hover/active
790
- "[&_svg]:tw-text-neutral-400",
791
- "[&_svg]:hover:not-disabled:tw-text-secondary-600",
792
- "[&_svg]:active:not-disabled:tw-text-secondary-600",
664
+ "tw:[&_svg]:text-neutral-400",
665
+ "tw:hover:not-disabled:[&_svg]:text-secondary-600",
666
+ "tw:active:not-disabled:[&_svg]:text-secondary-600",
793
667
  // anchor disabled override
794
- "aria-disabled:!tw-bg-transparent"
668
+ "tw:aria-disabled:!bg-transparent"
795
669
  ],
796
670
  outline: [
797
- "tw-text-neutral-800",
798
- "tw-bg-white",
671
+ "tw:text-neutral-800",
672
+ "tw:bg-white",
799
673
  // border
800
- "!tw-border-neutral-200",
801
- "hover:tw-text-neutral-800",
802
- "focus:tw-text-neutral-800",
803
- "hover:not-disabled:!tw-border-neutral-300",
804
- "hover:not-disabled:tw-bg-neutral-100",
805
- "active:not-disabled:tw-bg-neutral-200",
674
+ "tw:!border-neutral-200",
675
+ "tw:hover:text-neutral-800",
676
+ "tw:focus:text-neutral-800",
677
+ "tw:hover:not-disabled:!border-neutral-300",
678
+ "tw:hover:not-disabled:bg-neutral-100",
679
+ "tw:active:not-disabled:bg-neutral-200",
806
680
  // contrasting icon hover, same as invisible
807
- "[&_svg]:tw-text-neutral-400",
808
- "[&_svg]:not-disabled:hover:tw-text-secondary-600",
809
- "[&_svg]:active:not-disabled:tw-text-secondary-600",
681
+ "tw:[&_svg]:text-neutral-400",
682
+ "tw:not-disabled:hover:[&_svg]:text-secondary-600",
683
+ "tw:active:not-disabled:[&_svg]:text-secondary-600",
810
684
  // anchor disabled override
811
- "aria-disabled:!tw-bg-white",
812
- "aria-disabled:!tw-border-neutral-200"
685
+ "tw:aria-disabled:!bg-white",
686
+ "tw:aria-disabled:!border-neutral-200"
813
687
  ],
814
688
  inline: [
815
- "tw-text-neutral-800",
816
- "tw-bg-transparent",
817
- "tw-rounded-full",
818
- "[&_svg]:tw-text-neutral-400",
819
- "[&_svg]:not-disabled:hover:tw-text-secondary-600",
820
- "[&_svg]:not-disabled:focus:tw-text-secondary-600"
689
+ "tw:text-neutral-800",
690
+ "tw:bg-transparent",
691
+ "tw:rounded-full",
692
+ "tw:[&_svg]:text-neutral-400",
693
+ "tw:not-disabled:hover:[&_svg]:text-secondary-600",
694
+ "tw:not-disabled:focus:[&_svg]:text-secondary-600"
821
695
  ]
822
696
  },
823
697
  size: {
824
698
  medium: [
825
- "tw-max-h-10",
826
- "tw-min-h-10",
827
- "tw-px-4",
828
- "tw-py-2.5",
829
- '[&_svg:not([class*="tw-size-"])]:tw-size-4'
699
+ "tw:max-h-10",
700
+ "tw:min-h-10",
701
+ "tw:px-4",
702
+ "tw:py-2.5",
703
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4'
830
704
  ],
831
705
  small: [
832
- "tw-max-h-8",
833
- "tw-min-h-8",
834
- "tw-px-4",
835
- "tw-py-1.5",
836
- '[&_svg:not([class*="tw-size-"])]:tw-size-4'
706
+ "tw:max-h-8",
707
+ "tw:min-h-8",
708
+ "tw:px-4",
709
+ "tw:py-1.5",
710
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4'
837
711
  ],
838
712
  large: [
839
- "tw-max-h-12",
840
- "tw-min-h-12",
841
- "tw-px-4",
842
- "tw-py-3.5",
843
- '[&_svg:not([class*="tw-size-"])]:tw-size-4'
713
+ "tw:max-h-12",
714
+ "tw:min-h-12",
715
+ "tw:px-4",
716
+ "tw:py-3.5",
717
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4'
844
718
  ],
845
- "icon-lg": ["tw-size-12", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-6'],
846
- icon: ["tw-size-10", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
847
- "icon-sm": ["tw-size-8", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
848
- "icon-xs": ["tw-size-6", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
719
+ "icon-lg": ["tw:size-12", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-6'],
720
+ icon: ["tw:size-10", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-4'],
721
+ "icon-sm": ["tw:size-8", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-4'],
722
+ "icon-xs": ["tw:size-6", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-4'],
849
723
  "icon-2xs": [
850
- "!tw-inline-flex",
851
- "tw-size-5",
852
- "tw-max-h-5",
853
- '[&_svg:not([class*="tw-size-"])]:tw-size-3'
724
+ "tw:!inline-flex",
725
+ "tw:size-5",
726
+ "tw:max-h-5",
727
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-3'
854
728
  ],
855
- "icon-3xs": ["tw-h-fit", "tw-w-fit", '[&_svg:not([class*="tw-size-"])]:tw-size-4']
729
+ "icon-3xs": ["tw:h-fit", "tw:w-fit", 'tw:[&_svg:not([class*="tw:size-"])]:size-4']
856
730
  }
857
731
  }
858
732
  }
@@ -861,37 +735,37 @@ var init_styles = __esm({
861
735
  [
862
736
  "tailwindcss-preflight",
863
737
  // layout
864
- "tw-relative",
865
- "tw-inline-flex",
866
- "tw-items-center",
867
- "tw-justify-center",
868
- "tw-whitespace-nowrap",
869
- "tw-gap-2",
738
+ "tw:relative",
739
+ "tw:inline-flex",
740
+ "tw:items-center",
741
+ "tw:justify-center",
742
+ "tw:whitespace-nowrap",
743
+ "tw:gap-2",
870
744
  // border
871
- "tw-border",
872
- "tw-border-transparent",
873
- "tw-rounded-[var(--radius-lg,0.25rem)]",
745
+ "tw:border",
746
+ "tw:border-transparent",
747
+ "tw:rounded-[var(--radius-lg,0.25rem)]",
874
748
  // text
875
- "tw-font-medium",
876
- "tw-select-none",
749
+ "tw:font-medium",
750
+ "tw:select-none",
877
751
  // focus visible
878
- "!tw-outline-none",
879
- "focus-visible:tw-ring-2",
752
+ "tw:!outline-hidden",
753
+ "tw:focus-visible:ring-2",
880
754
  // disabled
881
- "disabled:tw-cursor-not-allowed",
882
- "disabled:tw-opacity-50",
883
- "active:tw-opacity-60",
884
- "tw-transition-all",
885
- "tw-bg-clip-padding",
755
+ "tw:disabled:cursor-not-allowed",
756
+ "tw:disabled:opacity-50",
757
+ "tw:active:opacity-60",
758
+ "tw:transition-all",
759
+ "tw:bg-clip-padding",
886
760
  // anchor support
887
- "!tw-no-underline",
888
- "aria-disabled:tw-cursor-not-allowed",
889
- "aria-disabled:tw-opacity-50",
761
+ "tw:!no-underline",
762
+ "tw:aria-disabled:cursor-not-allowed",
763
+ "tw:aria-disabled:opacity-50",
890
764
  // icon
891
- "tw-shrink-0",
892
- "[&_svg]:tw-pointer-events-none",
893
- "[&_svg]:tw-shrink-0",
894
- "[&_svg:not([class*='tw-size-'])]:tw-size-4"
765
+ "tw:shrink-0",
766
+ "tw:[&_svg]:pointer-events-none",
767
+ "tw:[&_svg]:shrink-0",
768
+ "tw:[&_svg:not([class*='tw:size-'])]:size-4"
895
769
  ],
896
770
  {
897
771
  defaultVariants: {
@@ -900,77 +774,77 @@ var init_styles = __esm({
900
774
  },
901
775
  variants: {
902
776
  block: {
903
- true: ["tw-w-full"]
777
+ true: ["tw:w-full"]
904
778
  },
905
779
  variant: {
906
780
  primary: [
907
- "tw-bg-primary",
908
- "tw-text-primary-foreground",
909
- "[a]:hover:tw-bg-primary/80",
910
- "hover:not-disabled:tw-bg-primary/90",
911
- "hover:tw-text-primary-foreground",
912
- "focus:tw-text-primary-foreground",
913
- "focus-visible:tw-border-primary",
914
- "focus-visible:tw-ring-ring/50"
781
+ "tw:bg-primary",
782
+ "tw:text-primary-foreground",
783
+ "tw:[a]:hover:bg-primary/80",
784
+ "tw:hover:not-disabled:bg-primary/90",
785
+ "tw:hover:text-primary-foreground",
786
+ "tw:focus:text-primary-foreground",
787
+ "tw:focus-visible:border-primary",
788
+ "tw:focus-visible:ring-ring/50"
915
789
  ],
916
790
  secondary: [
917
- "tw-bg-primary/10",
918
- "tw-text-primary",
919
- "hover:not-disabled:tw-bg-primary/20",
920
- "focus-visible:tw-border-primary",
921
- "focus-visible:tw-ring-ring/50"
791
+ "tw:bg-primary/10",
792
+ "tw:text-primary",
793
+ "tw:hover:not-disabled:bg-primary/20",
794
+ "tw:focus-visible:border-primary",
795
+ "tw:focus-visible:ring-ring/50"
922
796
  ],
923
797
  // should be called "destructive" by Figma
924
798
  danger: [
925
- "tw-bg-destructive",
926
- "tw-text-destructive-foreground",
927
- "hover:tw-text-destructive-foreground",
928
- "focus:tw-text-destructive-foreground",
929
- "focus-visible:tw-border-destructive",
930
- "focus-visible:tw-ring-destructive/20"
799
+ "tw:bg-destructive",
800
+ "tw:text-destructive-foreground",
801
+ "tw:hover:text-destructive-foreground",
802
+ "tw:focus:text-destructive-foreground",
803
+ "tw:focus-visible:border-destructive",
804
+ "tw:focus-visible:ring-destructive/20"
931
805
  ],
932
806
  outline: [
933
- "!tw-border-input",
934
- "tw-bg-background",
807
+ "tw:!border-input",
808
+ "tw:bg-background",
935
809
  // Semantic base text color so the label/icon flips in dark mode
936
810
  // (matches `invisible`); previously unset → inherited a fixed dark color.
937
- "tw-text-foreground",
811
+ "tw:text-foreground",
938
812
  // Hover follows the brand primary (translucent tint), matching the
939
813
  // `secondary` variant — not the fixed `accent` blue.
940
- "hover:not-disabled:tw-bg-primary/10",
941
- "hover:not-disabled:tw-text-primary",
942
- "hover:active:tw-bg-background",
943
- "focus-visible:!tw-border-primary",
944
- "focus-visible:tw-ring-ring/50"
814
+ "tw:hover:not-disabled:bg-primary/10",
815
+ "tw:hover:not-disabled:text-primary",
816
+ "tw:hover:active:bg-background",
817
+ "tw:focus-visible:!border-primary",
818
+ "tw:focus-visible:ring-ring/50"
945
819
  ],
946
820
  // should be called "ghost" by Figma
947
821
  invisible: [
948
- "tw-bg-transparent",
949
- "tw-text-foreground",
950
- "hover:not-disabled:tw-bg-primary/10",
951
- "hover:not-disabled:tw-text-primary",
952
- "hover:not-disabled:tw-border-primary/10",
953
- "focus-visible:tw-ring-ring/50"
822
+ "tw:bg-transparent",
823
+ "tw:text-foreground",
824
+ "tw:hover:not-disabled:bg-primary/10",
825
+ "tw:hover:not-disabled:text-primary",
826
+ "tw:hover:not-disabled:border-primary/10",
827
+ "tw:focus-visible:ring-ring/50"
954
828
  ],
955
829
  // should be called "link" by Figma
956
830
  inline: [
957
- "tw-bg-transparent",
958
- "tw-text-primary",
959
- "hover:tw-underline",
960
- "hover:active:tw-bg-transparent",
961
- "focus-visible:tw-ring-ring/50"
831
+ "tw:bg-transparent",
832
+ "tw:text-primary",
833
+ "tw:hover:underline",
834
+ "tw:hover:active:bg-transparent",
835
+ "tw:focus-visible:ring-ring/50"
962
836
  ]
963
837
  },
964
838
  size: {
965
839
  // should be called "default" by Figma
966
- medium: ["tw-max-h-9", "tw-py-2", "tw-px-4", "tw-text-sm"],
840
+ medium: ["tw:max-h-9", "tw:py-2", "tw:px-4", "tw:text-sm"],
967
841
  // should be called "small" by Figma
968
- small: ["tw-max-h-8", "tw-py-2", "tw-px-3", "tw-text-xs"],
842
+ small: ["tw:max-h-8", "tw:py-2", "tw:px-3", "tw:text-xs"],
969
843
  // should be called "large" by Figma
970
- large: ["tw-max-h-10", "tw-py-2.5", "tw-px-6", "tw-text-sm"],
971
- "icon-lg": ["tw-size-10"],
972
- icon: ["tw-size-9"],
973
- "icon-sm": ["tw-size-8"],
844
+ large: ["tw:max-h-10", "tw:py-2.5", "tw:px-6", "tw:text-sm"],
845
+ "icon-lg": ["tw:size-10"],
846
+ icon: ["tw:size-9"],
847
+ "icon-sm": ["tw:size-8"],
974
848
  // unsupported in ARGO, remove when old design is gone
975
849
  "icon-xs": [],
976
850
  "icon-2xs": [],
@@ -1027,7 +901,7 @@ var init_Button = __esm({
1027
901
  onClick: handleClick,
1028
902
  className: cn(classNames),
1029
903
  children: [
1030
- isLoading && /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-size-4 tw-shrink-0 tw-animate-spin" }),
904
+ isLoading && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "tw:size-4 tw:shrink-0 tw:animate-spin" }),
1031
905
  /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slottable, { children: isLoading && isIconOnly ? null : children })
1032
906
  ]
1033
907
  }
@@ -1040,18 +914,18 @@ var init_ButtonInline = __esm({
1040
914
  classVarianceAuthority.cva(
1041
915
  [
1042
916
  "tailwindcss-preflight",
1043
- "tw-inline-flex",
1044
- "tw-items-center",
1045
- "tw-gap-2",
1046
- "tw-underline-offset-2",
1047
- "disabled:tw-opacity-40",
1048
- "disabled:tw-cursor-not-allowed",
1049
- "disabled:tw-text-neutral-500",
1050
- "disabled:tw-no-underline",
1051
- "[&_svg]:disabled:tw-text-neutral-400",
917
+ "tw:inline-flex",
918
+ "tw:items-center",
919
+ "tw:gap-2",
920
+ "tw:underline-offset-2",
921
+ "tw:disabled:opacity-40",
922
+ "tw:disabled:cursor-not-allowed",
923
+ "tw:disabled:text-neutral-500",
924
+ "tw:disabled:no-underline",
925
+ "tw:disabled:[&_svg]:text-neutral-400",
1052
926
  // Default size for nested Lucide icons; callers can override on the icon.
1053
- "[&_svg.lucide:not([class*='tw-size-'])]:tw-size-4",
1054
- "[&_svg]:tw-shrink-0"
927
+ "tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4",
928
+ "tw:[&_svg]:shrink-0"
1055
929
  ],
1056
930
  {
1057
931
  defaultVariants: {
@@ -1060,15 +934,15 @@ var init_ButtonInline = __esm({
1060
934
  },
1061
935
  variants: {
1062
936
  color: {
1063
- link: ["tw-text-primary", "hover:tw-text-primary/90", "[&_svg]:tw-text-primary"],
1064
- dark: ["tw-text-neutral-800 [&_svg]:tw-text-neutral-400"],
1065
- danger: ["tw-text-error-500 [&_svg]:tw-text-error-500"],
1066
- muted: ["tw-text-muted-foreground [&_svg]:tw-text-muted-foreground"],
937
+ link: ["tw:text-primary", "tw:hover:text-primary/90", "tw:[&_svg]:text-primary"],
938
+ dark: ["tw:text-neutral-800 tw:[&_svg]:text-neutral-400"],
939
+ danger: ["tw:text-error-500 tw:[&_svg]:text-error-500"],
940
+ muted: ["tw:text-muted-foreground tw:[&_svg]:text-muted-foreground"],
1067
941
  custom: []
1068
942
  },
1069
943
  variant: {
1070
- link: ["tw-underline", "hover:tw-no-underline"],
1071
- "link-reverse": ["tw-no-underline", "", "hover:tw-underline"],
944
+ link: ["tw:underline", "tw:hover:no-underline"],
945
+ "link-reverse": ["tw:no-underline", "", "tw:hover:underline"],
1072
946
  custom: []
1073
947
  }
1074
948
  }
@@ -1084,12 +958,12 @@ var init_Button2 = __esm({
1084
958
  init_ButtonInline();
1085
959
  }
1086
960
  });
1087
- var Clipboard;
961
+ var Clipboard2;
1088
962
  var init_Clipboard = __esm({
1089
963
  "src/components/Clipboard/Clipboard.tsx"() {
1090
964
  init_utils2();
1091
965
  init_Tooltip2();
1092
- Clipboard = ({
966
+ Clipboard2 = ({
1093
967
  ref,
1094
968
  text: textProp,
1095
969
  children,
@@ -1114,6 +988,7 @@ var init_Clipboard = __esm({
1114
988
  }
1115
989
  };
1116
990
  const handleOnClick = (event) => {
991
+ setIsTooltipOpen(true);
1117
992
  if (text && state === "ready") void copy(text);
1118
993
  onClick?.(event);
1119
994
  };
@@ -1128,6 +1003,7 @@ var init_Clipboard = __esm({
1128
1003
  return tooltip;
1129
1004
  })();
1130
1005
  const tooltipVariant = state === "ready" && !!text ? tooltipVariantProp : "action";
1006
+ const hasTooltipContent = tooltipContent !== null && tooltipContent !== void 0;
1131
1007
  return /* @__PURE__ */ jsxRuntime.jsxs(Tooltip.Root, { open: isTooltipOpen, onOpenChange: handleOnOpenChange, children: [
1132
1008
  /* @__PURE__ */ jsxRuntime.jsx(
1133
1009
  Tooltip.Trigger,
@@ -1136,12 +1012,12 @@ var init_Clipboard = __esm({
1136
1012
  asChild,
1137
1013
  keepOpenOnClick: true,
1138
1014
  onClick: handleOnClick,
1139
- className: cn("tw-cursor-pointer", className),
1015
+ className: cn("tw:cursor-pointer", className),
1140
1016
  ref,
1141
1017
  children: children ?? text
1142
1018
  }
1143
1019
  ),
1144
- /* @__PURE__ */ jsxRuntime.jsx(
1020
+ hasTooltipContent && /* @__PURE__ */ jsxRuntime.jsx(
1145
1021
  Tooltip.Content,
1146
1022
  {
1147
1023
  keepOpenOnPointerDownOutside: true,
@@ -1167,7 +1043,7 @@ var init_ClipboardButton = __esm({
1167
1043
  init_Button2();
1168
1044
  init_Clipboard2();
1169
1045
  init_icons();
1170
- DEFAULT_ICON = /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Copy, {});
1046
+ DEFAULT_ICON = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Copy, {});
1171
1047
  DEFAULT_ARIA_LABEL = "Copy";
1172
1048
  ClipboardButton = ({
1173
1049
  // clipboard props
@@ -1184,7 +1060,7 @@ var init_ClipboardButton = __esm({
1184
1060
  const defaultAriaLabel = typeof tooltip === "string" && tooltip.trim() ? tooltip : DEFAULT_ARIA_LABEL;
1185
1061
  const ariaLabel = rest["aria-label"] ?? (children == null ? defaultAriaLabel : void 0);
1186
1062
  return /* @__PURE__ */ jsxRuntime.jsx(
1187
- Clipboard,
1063
+ Clipboard2,
1188
1064
  {
1189
1065
  asChild: true,
1190
1066
  tooltip,
@@ -1218,7 +1094,13 @@ var init_ZoomableSvg = __esm({
1218
1094
  MIN_SCALE = 0.5;
1219
1095
  MAX_SCALE = 3;
1220
1096
  ZOOM_STEP = 0.1;
1221
- ZoomableSvg = ({ html, copyText, className, allowForeignObject }) => {
1097
+ ZoomableSvg = ({
1098
+ html,
1099
+ copyText,
1100
+ className,
1101
+ allowForeignObject,
1102
+ renderActions
1103
+ }) => {
1222
1104
  const safeHtml = react.useMemo(
1223
1105
  () => DOMPurify__default.default.sanitize(html, {
1224
1106
  USE_PROFILES: { svg: true, svgFilters: true },
@@ -1297,7 +1179,7 @@ var init_ZoomableSvg = __esm({
1297
1179
  "div",
1298
1180
  {
1299
1181
  role: "presentation",
1300
- className: cn("tw-group/zoom tw-relative", isFullscreen && "tw-h-full"),
1182
+ className: cn("tw:group/zoom tw:relative", isFullscreen && "tw:h-full"),
1301
1183
  onClick: handleClick,
1302
1184
  children: [
1303
1185
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1306,8 +1188,8 @@ var init_ZoomableSvg = __esm({
1306
1188
  role: "presentation",
1307
1189
  ref: containerRef,
1308
1190
  className: cn(
1309
- "tw-overflow-hidden tw-cursor-grab active:tw-cursor-grabbing tw-p-3",
1310
- isFullscreen && "tw-h-full"
1191
+ "tw:overflow-hidden tw:cursor-grab tw:active:cursor-grabbing tw:p-3",
1192
+ isFullscreen && "tw:h-full"
1311
1193
  ),
1312
1194
  onMouseDown: handleMouseDown,
1313
1195
  onMouseMove: handleMouseMove,
@@ -1317,8 +1199,8 @@ var init_ZoomableSvg = __esm({
1317
1199
  "div",
1318
1200
  {
1319
1201
  className: cn(
1320
- "tw-flex tw-justify-center tw-origin-center",
1321
- isFullscreen && "tw-h-full [&>svg]:tw-h-full"
1202
+ "tw:flex tw:justify-center tw:origin-center",
1203
+ isFullscreen && "tw:h-full tw:[&>svg]:h-full"
1322
1204
  ),
1323
1205
  style: { transform: `translate(${translate.x}px, ${translate.y}px) scale(${scale})` },
1324
1206
  dangerouslySetInnerHTML: { __html: safeHtml }
@@ -1330,11 +1212,12 @@ var init_ZoomableSvg = __esm({
1330
1212
  "div",
1331
1213
  {
1332
1214
  role: "presentation",
1333
- className: "tw-absolute tw-right-1 tw-top-1 tw-flex tw-gap-1 tw-opacity-0 tw-transition-opacity group-hover/zoom:tw-opacity-100",
1215
+ className: "tw:absolute tw:right-1 tw:top-1 tw:flex tw:gap-1 tw:opacity-0 tw:transition-opacity tw:focus-within:opacity-100 tw:group-hover/zoom:opacity-100",
1334
1216
  onClick: stopPropagation,
1335
1217
  children: [
1336
1218
  isZoomed && /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { tooltip: "Reset zoom", placement: "top", triggerAsChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "small", variant: "outline", onClick: handleReset, children: "Reset" }) }),
1337
1219
  copyText && /* @__PURE__ */ jsxRuntime.jsx(ClipboardButton, { text: copyText, tooltip: "Copy code", size: "icon-sm", variant: "outline" }),
1220
+ renderActions?.(safeHtml),
1338
1221
  /* @__PURE__ */ jsxRuntime.jsx(
1339
1222
  Tooltip,
1340
1223
  {
@@ -1348,7 +1231,7 @@ var init_ZoomableSvg = __esm({
1348
1231
  variant: "outline",
1349
1232
  "aria-label": isFullscreen ? "Exit fullscreen" : "Fullscreen",
1350
1233
  onClick: () => setIsFullscreen((f) => !f),
1351
- children: isFullscreen ? /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Minimize2, { className: "tw-size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Maximize2, { className: "tw-size-4" })
1234
+ children: isFullscreen ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minimize2, { className: "tw:size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { className: "tw:size-4" })
1352
1235
  }
1353
1236
  )
1354
1237
  }
@@ -1366,7 +1249,7 @@ var init_ZoomableSvg = __esm({
1366
1249
  {
1367
1250
  role: "presentation",
1368
1251
  "data-testid": "zoomable-svg-fullscreen",
1369
- className: "tailwindcss-preflight tw-fixed tw-inset-0 tw-z-[1060] tw-bg-muted tw-p-4",
1252
+ className: "tw:fixed tw:inset-0 tw:z-[1060] tw:bg-muted tw:p-4 tailwindcss-preflight",
1370
1253
  onClick: stopPropagation,
1371
1254
  children: diagramContent
1372
1255
  }
@@ -1378,7 +1261,7 @@ var init_ZoomableSvg = __esm({
1378
1261
  "div",
1379
1262
  {
1380
1263
  className: cn(
1381
- "tw-overflow-hidden tw-rounded-md tw-border tw-border-border tw-bg-muted",
1264
+ "tw:overflow-hidden tw:rounded-md tw:border tw:border-border tw:bg-muted",
1382
1265
  className
1383
1266
  ),
1384
1267
  children: diagramContent
@@ -1394,6 +1277,13 @@ var init_ZoomableSvg2 = __esm({
1394
1277
  init_ZoomableSvg();
1395
1278
  }
1396
1279
  });
1280
+ var DiagramSkeleton;
1281
+ var init_DiagramSkeleton = __esm({
1282
+ "src/blocks/MermaidDiagram/DiagramSkeleton.tsx"() {
1283
+ init_Skeleton();
1284
+ DiagramSkeleton = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw:my-3 tw:overflow-hidden tw:rounded-md tw:border tw:border-neutral-150 tw:bg-neutral-50 tw:p-6", children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "tw:h-40" }) });
1285
+ }
1286
+ });
1397
1287
 
1398
1288
  // src/blocks/MermaidDiagram/svgTransforms.ts
1399
1289
  var HTML_TAG, FOREIGN_OBJECT, ROOT_SVG_TAG, flattenForeignObjectLabels, STYLE_ATTR, makeResponsive;
@@ -1431,13 +1321,13 @@ __export(MermaidDiagram_exports, {
1431
1321
  var PRIMARY_FALLBACK_CHANNELS, resolvePrimary, mermaidPromise, registerLucideIconPack, getMermaid, stripFontImports, hasIconSyntax, tryFastRender, RENDER_DEBOUNCE_MS, svgCache, resolveSyncSvg, MermaidDiagram;
1432
1322
  var init_MermaidDiagram = __esm({
1433
1323
  "src/blocks/MermaidDiagram/MermaidDiagram.tsx"() {
1434
- init_Skeleton();
1435
1324
  init_ZoomableSvg2();
1436
1325
  init_utils2();
1326
+ init_DiagramSkeleton();
1437
1327
  init_svgTransforms();
1438
1328
  PRIMARY_FALLBACK_CHANNELS = "31 143 255";
1439
1329
  resolvePrimary = () => {
1440
- const channels = typeof document === "undefined" ? PRIMARY_FALLBACK_CHANNELS : getComputedStyle(document.documentElement).getPropertyValue("--color-primary").trim() || PRIMARY_FALLBACK_CHANNELS;
1330
+ const channels = typeof document === "undefined" ? PRIMARY_FALLBACK_CHANNELS : getComputedStyle(document.documentElement).getPropertyValue("--primary").trim() || PRIMARY_FALLBACK_CHANNELS;
1441
1331
  return `rgb(${channels})`;
1442
1332
  };
1443
1333
  mermaidPromise = null;
@@ -1542,7 +1432,7 @@ var init_MermaidDiagram = __esm({
1542
1432
  if (fast) svgCache.set(code, fast);
1543
1433
  return fast;
1544
1434
  };
1545
- MermaidDiagram = ({ code }) => {
1435
+ MermaidDiagram = ({ code, renderActions }) => {
1546
1436
  const id = react.useId();
1547
1437
  const [svg, setSvg] = react.useState(() => resolveSyncSvg(code));
1548
1438
  const [renderFailed, setRenderFailed] = react.useState(false);
@@ -1604,11 +1494,11 @@ var init_MermaidDiagram = __esm({
1604
1494
  "pre",
1605
1495
  {
1606
1496
  className: cn(
1607
- "tw-my-3 tw-overflow-auto tw-whitespace-pre-wrap tw-break-all",
1608
- "tw-py-3 tw-px-4",
1609
- "tw-bg-neutral-50",
1610
- "tw-rounded-md tw-text-neutral-400",
1611
- "tw-text-sm tw-font-mono"
1497
+ "tw:my-3 tw:overflow-auto tw:whitespace-pre-wrap tw:break-all",
1498
+ "tw:py-3 tw:px-4",
1499
+ "tw:bg-neutral-50",
1500
+ "tw:rounded-md tw:text-neutral-400",
1501
+ "tw:text-sm tw:font-mono"
1612
1502
  ),
1613
1503
  children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: code })
1614
1504
  }
@@ -1622,13 +1512,14 @@ var init_MermaidDiagram = __esm({
1622
1512
  copyText: `\`\`\`mermaid
1623
1513
  ${code}
1624
1514
  \`\`\``,
1625
- className: "tw-my-3",
1626
- allowForeignObject: true
1515
+ className: "tw:my-3",
1516
+ allowForeignObject: true,
1517
+ renderActions
1627
1518
  },
1628
1519
  code
1629
1520
  );
1630
1521
  }
1631
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-my-3 tw-overflow-hidden tw-rounded-md tw-border tw-border-neutral-150 tw-bg-neutral-50 tw-p-6", children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "tw-h-40" }) });
1522
+ return /* @__PURE__ */ jsxRuntime.jsx(DiagramSkeleton, {});
1632
1523
  };
1633
1524
  }
1634
1525
  });
@@ -1642,7 +1533,7 @@ var isPlaceholder = (src) => src.startsWith("upload-placeholder-");
1642
1533
  var ImageNodeComponent = ({ src, alt }) => {
1643
1534
  const renderer = useImageRenderer();
1644
1535
  if (isPlaceholder(src)) {
1645
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-inline-flex tw-items-center tw-gap-1 tw-rounded tw-bg-neutral-100 tw-px-2 tw-py-1 tw-text-xs tw-text-neutral-400", children: "Uploading image\u2026" });
1536
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw:inline-flex tw:items-center tw:gap-1 tw:rounded tw:bg-neutral-100 tw:px-2 tw:py-1 tw:text-xs tw:text-neutral-400", children: "Uploading image\u2026" });
1646
1537
  }
1647
1538
  if (renderer) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: renderer({ src, alt }) });
1648
1539
  return /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt });
@@ -1746,7 +1637,7 @@ var MermaidNodeComponent = ({ code }) => {
1746
1637
  return /* @__PURE__ */ jsxRuntime.jsx(
1747
1638
  react.Suspense,
1748
1639
  {
1749
- fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-my-3 tw-overflow-hidden tw-rounded-card tw-border tw-border-neutral-150 tw-bg-neutral-50 tw-p-6", children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "tw-h-40" }) }),
1640
+ fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw:my-3 tw:overflow-hidden tw:rounded-card tw:border tw:border-neutral-150 tw:bg-neutral-50 tw:p-6", children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "tw:h-40" }) }),
1750
1641
  children: /* @__PURE__ */ jsxRuntime.jsx(MermaidDiagram2, { code })
1751
1642
  }
1752
1643
  );
@@ -1821,21 +1712,21 @@ var ToastAction = ({ ref, className, ...rest }) => /* @__PURE__ */ jsxRuntime.js
1821
1712
  type: "button",
1822
1713
  className: cn(
1823
1714
  // layout
1824
- "tw-col-start-3",
1825
- "tw-row-start-1",
1826
- "tw-flex",
1827
- "tw-items-center",
1828
- "tw-justify-center",
1715
+ "tw:col-start-3",
1716
+ "tw:row-start-1",
1717
+ "tw:flex",
1718
+ "tw:items-center",
1719
+ "tw:justify-center",
1829
1720
  // font
1830
- "tw-text-xs",
1831
- "tw-font-medium",
1832
- "tw-text-primary",
1721
+ "tw:text-xs",
1722
+ "tw:font-medium",
1723
+ "tw:text-primary",
1833
1724
  // sizing
1834
- "tw-px-2",
1835
- "tw-h-6",
1725
+ "tw:px-2",
1726
+ "tw:h-6",
1836
1727
  // styles
1837
- "tw-bg-primary-foreground",
1838
- "tw-rounded",
1728
+ "tw:bg-primary-foreground",
1729
+ "tw:rounded",
1839
1730
  className
1840
1731
  )
1841
1732
  }
@@ -1849,11 +1740,11 @@ var ToastDescription = ({ ref, className, children, ...rest }) => /* @__PURE__ *
1849
1740
  ref,
1850
1741
  "data-slot": "toast-description",
1851
1742
  className: cn(
1852
- "tw-col-start-2",
1853
- "tw-font-normal",
1854
- "tw-break-words",
1855
- "tw-text-white",
1856
- "group-data-[variant=default]/toast:tw-text-muted-foreground",
1743
+ "tw:col-start-2",
1744
+ "tw:font-normal",
1745
+ "tw:break-words",
1746
+ "tw:text-white",
1747
+ "tw:group-data-[variant=default]/toast:text-muted-foreground",
1857
1748
  className
1858
1749
  ),
1859
1750
  ...rest,
@@ -1870,24 +1761,24 @@ var ToastDismiss = ({ ref, className, ...rest }) => /* @__PURE__ */ jsxRuntime.j
1870
1761
  ref,
1871
1762
  "data-slot": "toast-dismiss",
1872
1763
  className: cn(
1873
- "tw-flex",
1874
- "tw-justify-center",
1875
- "tw-col-start-4",
1876
- "tw-row-start-1",
1764
+ "tw:flex",
1765
+ "tw:justify-center",
1766
+ "tw:col-start-4",
1767
+ "tw:row-start-1",
1877
1768
  "tailwindcss-preflight",
1878
- "[&_svg]:tw-aspect-square",
1879
- '[&_svg:not([class*="tw-size-"])]:tw-size-4',
1880
- "[&_svg]:tw-m-1",
1881
- "tw-text-white",
1882
- "group-data-[variant=default]/toast:[&_svg]:tw-text-popover-foreground",
1883
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:tw-text-foreground",
1769
+ "tw:[&_svg]:aspect-square",
1770
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
1771
+ "tw:[&_svg]:m-1",
1772
+ "tw:text-white",
1773
+ "tw:group-data-[variant=default]/toast:[&_svg]:text-popover-foreground",
1774
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:text-foreground",
1884
1775
  className
1885
1776
  ),
1886
1777
  type: "button",
1887
1778
  ...rest,
1888
1779
  children: [
1889
- /* @__PURE__ */ jsxRuntime.jsx(icons_exports.X, {}),
1890
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-sr-only", children: "Dismiss" })
1780
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {}),
1781
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw:sr-only", children: "Dismiss" })
1891
1782
  ]
1892
1783
  }
1893
1784
  );
@@ -1900,20 +1791,20 @@ var ToastDuration = ({ ref, duration, className, style, ...rest }) => /* @__PURE
1900
1791
  ...rest,
1901
1792
  ref,
1902
1793
  className: cn(
1903
- "tw-bg-white/30",
1904
- "group-data-[variant=default]/toast:tw-bg-popover-foreground/20",
1905
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-bg-foreground/20",
1906
- "tw-rounded-bl-lg",
1907
- "tw-mx-px",
1794
+ "tw:bg-white/30",
1795
+ "tw:group-data-[variant=default]/toast:bg-popover-foreground/20",
1796
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:bg-foreground/20",
1797
+ "tw:rounded-bl-lg",
1798
+ "tw:mx-px",
1908
1799
  // positioning
1909
- "tw-absolute",
1910
- "tw-bottom-0",
1911
- "tw-left-0",
1800
+ "tw:absolute",
1801
+ "tw:bottom-0",
1802
+ "tw:left-0",
1912
1803
  // sizing
1913
- "tw-h-1",
1804
+ "tw:h-1",
1914
1805
  // animation
1915
- "tw-animate-toast-progress",
1916
- "group-hover/toast:[animation-play-state:paused]",
1806
+ "tw:animate-toast-progress",
1807
+ "tw:group-hover/toast:[animation-play-state:paused]",
1917
1808
  className
1918
1809
  ),
1919
1810
  style: {
@@ -1931,16 +1822,16 @@ var ToastTitle = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsxR
1931
1822
  ref,
1932
1823
  "data-slot": "toast-title",
1933
1824
  className: cn(
1934
- "tw-col-start-2",
1935
- "tw-text-sm",
1936
- "tw-leading-6",
1937
- "tw-min-h-6",
1938
- "tw-self-center",
1939
- "tw-text-white",
1940
- "group-data-[variant=default]/toast:tw-text-popover-foreground",
1941
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground",
1942
- "tw-break-words",
1943
- "tw-font-medium",
1825
+ "tw:col-start-2",
1826
+ "tw:text-sm",
1827
+ "tw:leading-6",
1828
+ "tw:min-h-6",
1829
+ "tw:self-center",
1830
+ "tw:text-white",
1831
+ "tw:group-data-[variant=default]/toast:text-popover-foreground",
1832
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground",
1833
+ "tw:break-words",
1834
+ "tw:font-medium",
1944
1835
  className
1945
1836
  ),
1946
1837
  ...rest,
@@ -1950,24 +1841,24 @@ var ToastTitle = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsxR
1950
1841
  var variants2 = classVarianceAuthority.cva(
1951
1842
  [
1952
1843
  "tailwindcss-preflight",
1953
- "tw-group/toast",
1954
- "tw-relative",
1844
+ "tw:group/toast",
1845
+ "tw:relative",
1955
1846
  // layout
1956
- "tw-grid",
1957
- "tw-grid-cols-[0_1fr_auto_auto]",
1958
- "tw-items-start",
1959
- "has-[[data-slot=toast-description]]:tw-grid-rows-[auto_auto]",
1960
- "has-[[data-slot=toast-icon]]:tw-grid-cols-[auto_1fr_auto_auto]",
1961
- "[&_[data-slot=toast-icon]]:tw-mr-2",
1962
- "[&_[data-slot=toast-title]]:tw-mr-2.5",
1963
- "[&_[data-slot=toast-description]]:tw-mr-2.5",
1964
- "[&_[data-slot=toast-action]]:tw-mr-2",
1965
- "[&_[data-slot=toast-description]]:tw-col-end-3",
1966
- "tw-gap-y-0",
1847
+ "tw:grid",
1848
+ "tw:grid-cols-[0_1fr_auto_auto]",
1849
+ "tw:items-start",
1850
+ "tw:has-[[data-slot=toast-description]]:grid-rows-[auto_auto]",
1851
+ "tw:has-[[data-slot=toast-icon]]:grid-cols-[auto_1fr_auto_auto]",
1852
+ "tw:[&_[data-slot=toast-icon]]:mr-2",
1853
+ "tw:[&_[data-slot=toast-title]]:mr-2.5",
1854
+ "tw:[&_[data-slot=toast-description]]:mr-2.5",
1855
+ "tw:[&_[data-slot=toast-action]]:mr-2",
1856
+ "tw:[&_[data-slot=toast-description]]:col-end-3",
1857
+ "tw:gap-y-0",
1967
1858
  // styles
1968
- "tw-p-4",
1969
- "tw-rounded-lg",
1970
- "tw-shadow-md"
1859
+ "tw:p-4",
1860
+ "tw:rounded-lg",
1861
+ "tw:shadow-md"
1971
1862
  ],
1972
1863
  {
1973
1864
  defaultVariants: {
@@ -1975,20 +1866,20 @@ var variants2 = classVarianceAuthority.cva(
1975
1866
  },
1976
1867
  variants: {
1977
1868
  variant: {
1978
- default: "tw-border tw-border-border tw-bg-popover",
1979
- error: "tw-bg-error-550",
1980
- info: "tw-bg-blue-600",
1981
- success: "tw-bg-green-700",
1982
- warning: "tw-bg-warning-550"
1869
+ default: "tw:border tw:border-border tw:bg-popover",
1870
+ error: "tw:bg-error-550",
1871
+ info: "tw:bg-blue-600",
1872
+ success: "tw:bg-green-700",
1873
+ warning: "tw:bg-warning-550"
1983
1874
  }
1984
1875
  }
1985
1876
  }
1986
1877
  );
1987
1878
  var DEFAULT_VARIANT_ICON = {
1988
- error: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.AlertTriangle, {}),
1989
- info: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Info, {}),
1990
- success: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.CircleCheck, {}),
1991
- warning: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.AlertCircle, {})
1879
+ error: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, {}),
1880
+ info: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, {}),
1881
+ success: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheck, {}),
1882
+ warning: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, {})
1992
1883
  };
1993
1884
  var ToastRoot = ({
1994
1885
  id,
@@ -2002,7 +1893,7 @@ var ToastRoot = ({
2002
1893
  }) => {
2003
1894
  const renderArgo = useArgoDesign();
2004
1895
  const icon = (() => {
2005
- if (loading) return /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-animate-spin" });
1896
+ if (loading) return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "tw:animate-spin" });
2006
1897
  if (iconProp) return iconProp;
2007
1898
  if (variant === "default" || variant === null) return null;
2008
1899
  return DEFAULT_VARIANT_ICON[variant];
@@ -2018,7 +1909,7 @@ var ToastRoot = ({
2018
1909
  "data-argo": renderArgo,
2019
1910
  className: cn(
2020
1911
  variants2({ variant }),
2021
- "data-[variant=default]:data-[argo=true]:tw-bg-background"
1912
+ "tw:data-[variant=default]:data-[argo=true]:bg-background"
2022
1913
  ),
2023
1914
  children: [
2024
1915
  icon && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2026,17 +1917,17 @@ var ToastRoot = ({
2026
1917
  {
2027
1918
  "data-slot": "toast-icon",
2028
1919
  className: cn(
2029
- "tw-inline-flex",
2030
- "tw-items-center",
2031
- "tw-justify-center",
2032
- "tw-self-center",
2033
- "tw-aspect-square",
2034
- "tw-size-5",
2035
- "tw-shrink-0",
2036
- '[&_svg:not([class*="tw-size-"])]:tw-size-5',
2037
- "tw-text-white",
2038
- "group-data-[variant=default]/toast:tw-text-popover-foreground",
2039
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground"
1920
+ "tw:inline-flex",
1921
+ "tw:items-center",
1922
+ "tw:justify-center",
1923
+ "tw:self-center",
1924
+ "tw:aspect-square",
1925
+ "tw:size-5",
1926
+ "tw:shrink-0",
1927
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-5',
1928
+ "tw:text-white",
1929
+ "tw:group-data-[variant=default]/toast:text-popover-foreground",
1930
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground"
2040
1931
  ),
2041
1932
  children: icon
2042
1933
  }
@@ -2082,7 +1973,7 @@ var toast = ({
2082
1973
  dismissible,
2083
1974
  duration,
2084
1975
  // override default focus-visible styles to match our design
2085
- className: cn("tw-rounded-lg", "focus-visible:!tw-ring-4", "focus-visible:!tw-ring-ring/50")
1976
+ className: cn("tw:rounded-lg", "tw:focus-visible:!ring-4", "tw:focus-visible:!ring-ring/50")
2086
1977
  });
2087
1978
  };
2088
1979
  toast.success = (title, options) => toast({
@@ -2449,59 +2340,59 @@ init_icons();
2449
2340
  var variants3 = classVarianceAuthority.cva(
2450
2341
  [
2451
2342
  "tailwindcss-preflight",
2452
- "tw-pointer-events-none",
2343
+ "tw:pointer-events-none",
2453
2344
  // sizing
2454
- "tw-size-4",
2455
- "tw-aspect-square",
2456
- "tw-shrink-0",
2345
+ "tw:size-4",
2346
+ "tw:aspect-square",
2347
+ "tw:shrink-0",
2457
2348
  // layout
2458
- "tw-flex",
2459
- "tw-items-center",
2460
- "tw-justify-center"
2349
+ "tw:flex",
2350
+ "tw:items-center",
2351
+ "tw:justify-center"
2461
2352
  ],
2462
2353
  {
2463
2354
  variants: {
2464
2355
  variant: {
2465
2356
  none: [],
2466
2357
  radio: [
2467
- "tw-border",
2468
- "tw-border-solid",
2469
- "tw-border-border",
2470
- "tw-rounded-full",
2471
- "group-data-[variant=default]/dropdown-menu-content:tw-bg-white",
2472
- "group-data-[variant=argo]/dropdown-menu-content:tw-bg-background",
2473
- '[&_svg:not([class*="tw-size-"])]:tw-size-2',
2474
- "[&_svg]:data-[state=unchecked]:tw-hidden",
2358
+ "tw:border",
2359
+ "tw:border-solid",
2360
+ "tw:border-border",
2361
+ "tw:rounded-full",
2362
+ "tw:group-data-[variant=default]/dropdown-menu-content:bg-white",
2363
+ "tw:group-data-[variant=argo]/dropdown-menu-content:bg-background",
2364
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-2',
2365
+ "tw:data-[state=unchecked]:[&_svg]:hidden",
2475
2366
  // Lucide Circle is stroke-only — force fill to match the stroke
2476
2367
  // (currentColor) so the indicator reads as a solid dot.
2477
- "[&_svg]:tw-fill-current",
2478
- "group-data-[variant=argo]/dropdown-menu-content:[&_svg]:tw-text-primary",
2479
- "group-data-[variant=default]/dropdown-menu-content:[&_svg]:tw-text-primary"
2368
+ "tw:[&_svg]:fill-current",
2369
+ "tw:group-data-[variant=argo]/dropdown-menu-content:[&_svg]:text-primary",
2370
+ "tw:group-data-[variant=default]/dropdown-menu-content:[&_svg]:text-primary"
2480
2371
  ],
2481
- check: ['[&_svg:not([class*="tw-size-"])]:tw-size-3.5', "[&_svg]:tw-text-primary"],
2372
+ check: ['tw:[&_svg:not([class*="tw:size-"])]:size-3.5', "tw:[&_svg]:text-primary"],
2482
2373
  checkbox: [
2483
- "[&_svg]:tw-text-primary-foreground",
2484
- "tw-border",
2485
- "tw-border-solid",
2486
- "tw-rounded",
2487
- "group-data-[variant=default]/dropdown-menu-content:tw-border-neutral-200",
2488
- "group-data-[variant=argo]/dropdown-menu-content:tw-border-input",
2489
- '[&_svg:not([class*="tw-size-"])]:tw-size-3',
2490
- "[&_svg]:data-[state=unchecked]:tw-hidden",
2491
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-border-primary",
2492
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-bg-primary",
2493
- "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-border-primary",
2494
- "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-bg-primary"
2374
+ "tw:[&_svg]:text-primary-foreground",
2375
+ "tw:border",
2376
+ "tw:border-solid",
2377
+ "tw:rounded",
2378
+ "tw:group-data-[variant=default]/dropdown-menu-content:border-neutral-200",
2379
+ "tw:group-data-[variant=argo]/dropdown-menu-content:border-input",
2380
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-3',
2381
+ "tw:data-[state=unchecked]:[&_svg]:hidden",
2382
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:border-primary",
2383
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:bg-primary",
2384
+ "tw:group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:border-primary",
2385
+ "tw:group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:bg-primary"
2495
2386
  ],
2496
2387
  switch: [
2497
- "tw-size-5",
2388
+ "tw:size-5",
2498
2389
  // Lucide SVGs default to 24×24 — constrain the rendered ToggleRight
2499
2390
  // to the indicator slot so it doesn't overflow.
2500
- '[&_svg:not([class*="tw-size-"])]:tw-size-5',
2501
- "tw-text-neutral-400",
2502
- "data-[state=unchecked]:tw-rotate-180",
2503
- "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-text-primary",
2504
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-text-primary"
2391
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-5',
2392
+ "tw:text-neutral-400",
2393
+ "tw:data-[state=unchecked]:rotate-180",
2394
+ "tw:group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:text-primary",
2395
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:text-primary"
2505
2396
  ]
2506
2397
  }
2507
2398
  }
@@ -2514,9 +2405,9 @@ var DropdownMenuItemIndicator = ({
2514
2405
  ...rest
2515
2406
  }) => {
2516
2407
  const IconComp = (() => {
2517
- if (variant === "switch") return icons_exports.ToggleRight;
2518
- if (variant === "radio") return icons_exports.Circle;
2519
- return icons_exports.Check;
2408
+ if (variant === "switch") return lucideReact.ToggleRight;
2409
+ if (variant === "radio") return lucideReact.Circle;
2410
+ return lucideReact.Check;
2520
2411
  })();
2521
2412
  const forceMount = (() => {
2522
2413
  if (forceMountProp) return true;
@@ -2541,18 +2432,18 @@ var ItemIcon = ({ className, children, ...props }) => /* @__PURE__ */ jsxRuntime
2541
2432
  {
2542
2433
  ...props,
2543
2434
  className: cn(
2544
- "tw-inline-flex",
2545
- "tw-items-center",
2546
- "tw-justify-center",
2547
- "tw-aspect-square",
2435
+ "tw:inline-flex",
2436
+ "tw:items-center",
2437
+ "tw:justify-center",
2438
+ "tw:aspect-square",
2548
2439
  // 20px container fits the 16px Lucide glyph plus 2px breathing room
2549
- // each side — the previous tw-size-4 + tw-p-0.5 clipped the 16px child.
2550
- "tw-size-5",
2551
- '[&_svg:not([class*="tw-size-"])]:tw-size-4',
2552
- "group-data-[variant=default]/dropdown-menu-content:tw-text-neutral-400",
2553
- "group-data-[variant=argo]/dropdown-menu-content:tw-text-primary",
2554
- "group-data-[variant=argo]/dropdown-menu-content:group-aria-disabled:tw-text-muted-foreground",
2555
- "group-data-[variant=default]/dropdown-menu-content:group-hover:tw-text-primary",
2440
+ // each side — the previous tw:size-4 + tw:p-0.5 clipped the 16px child.
2441
+ "tw:size-5",
2442
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
2443
+ "tw:group-data-[variant=default]/dropdown-menu-content:text-neutral-400",
2444
+ "tw:group-data-[variant=argo]/dropdown-menu-content:text-primary",
2445
+ "tw:group-data-[variant=argo]/dropdown-menu-content:group-aria-disabled:text-muted-foreground",
2446
+ "tw:group-data-[variant=default]/dropdown-menu-content:group-hover:text-primary",
2556
2447
  className
2557
2448
  ),
2558
2449
  children
@@ -2564,74 +2455,74 @@ init_utils2();
2564
2455
  var itemVariants = cn(
2565
2456
  // reset
2566
2457
  "tailwindcss-preflight",
2567
- "tw-outline-none",
2568
- "tw-group",
2569
- "tw-peer",
2570
- "tw-relative",
2458
+ "tw:outline-hidden",
2459
+ "tw:group",
2460
+ "tw:peer",
2461
+ "tw:relative",
2571
2462
  // positioning
2572
- "tw-flex",
2573
- "tw-flex-1",
2574
- "tw-items-center",
2575
- "tw-gap-2",
2576
- "tw-cursor-pointer",
2577
- "tw-select-none",
2578
- "tw-transition-colors",
2463
+ "tw:flex",
2464
+ "tw:flex-1",
2465
+ "tw:items-center",
2466
+ "tw:gap-2",
2467
+ "tw:cursor-pointer",
2468
+ "tw:select-none",
2469
+ "tw:transition-colors",
2579
2470
  // spacing
2580
- "tw-p-2",
2471
+ "tw:p-2",
2581
2472
  // typography
2582
- "tw-font-sans",
2583
- "tw-text-sm",
2584
- "aria-disabled:tw-pointer-events-none",
2585
- "aria-disabled:tw-opacity-50",
2586
- "focus-visible:tw-outline-none",
2587
- "group-data-[variant=default]/dropdown-menu-content:tw-rounded",
2588
- "group-data-[variant=default]/dropdown-menu-content:focus:tw-bg-neutral-100",
2589
- "group-data-[variant=default]/dropdown-menu-content:focus:tw-text-neutral-900",
2590
- "group-data-[variant=default]/dropdown-menu-content:hover:tw-bg-neutral-100",
2591
- "group-data-[variant=default]/dropdown-menu-content:hover:tw-text-neutral-900",
2592
- "group-data-[variant=argo]/dropdown-menu-content:tw-rounded-md",
2593
- "group-data-[variant=argo]/dropdown-menu-content:tw-text-popover-foreground",
2594
- "group-data-[variant=argo]/dropdown-menu-content:focus:tw-text-primary",
2595
- "group-data-[variant=argo]/dropdown-menu-content:focus:tw-bg-primary/10",
2596
- "group-data-[variant=argo]/dropdown-menu-content:hover:tw-text-primary",
2597
- "group-data-[variant=argo]/dropdown-menu-content:hover:tw-bg-primary/10"
2473
+ "tw:font-sans",
2474
+ "tw:text-sm",
2475
+ "tw:aria-disabled:pointer-events-none",
2476
+ "tw:aria-disabled:opacity-50",
2477
+ "tw:focus-visible:outline-hidden",
2478
+ "tw:group-data-[variant=default]/dropdown-menu-content:rounded",
2479
+ "tw:group-data-[variant=default]/dropdown-menu-content:focus:bg-neutral-100",
2480
+ "tw:group-data-[variant=default]/dropdown-menu-content:focus:text-neutral-900",
2481
+ "tw:group-data-[variant=default]/dropdown-menu-content:hover:bg-neutral-100",
2482
+ "tw:group-data-[variant=default]/dropdown-menu-content:hover:text-neutral-900",
2483
+ "tw:group-data-[variant=argo]/dropdown-menu-content:rounded-md",
2484
+ "tw:group-data-[variant=argo]/dropdown-menu-content:text-popover-foreground",
2485
+ "tw:group-data-[variant=argo]/dropdown-menu-content:focus:text-primary",
2486
+ "tw:group-data-[variant=argo]/dropdown-menu-content:focus:bg-primary/10",
2487
+ "tw:group-data-[variant=argo]/dropdown-menu-content:hover:text-primary",
2488
+ "tw:group-data-[variant=argo]/dropdown-menu-content:hover:bg-primary/10"
2598
2489
  );
2599
2490
  var contentVariants = cn(
2600
2491
  "tailwindcss-preflight",
2601
- "tw-group/dropdown-menu-content",
2492
+ "tw:group/dropdown-menu-content",
2602
2493
  // Sit above Modal/Sheet (z-1051), matching the other floating overlays (Popover/Select z-1055)
2603
- "tw-z-[1055]",
2494
+ "tw:z-[1055]",
2604
2495
  // positioning
2605
- "tw-flex",
2606
- "tw-flex-col",
2607
- "tw-origin-[--radix-dropdown-menu-content-transform-origin]",
2496
+ "tw:flex",
2497
+ "tw:flex-col",
2498
+ "tw:origin-(--radix-dropdown-menu-content-transform-origin)",
2608
2499
  // sizing
2609
- "tw-max-h-[var(--radix-dropdown-menu-content-available-height)]",
2610
- "tw-min-w-32",
2500
+ "tw:max-h-[var(--radix-dropdown-menu-content-available-height)]",
2501
+ "tw:min-w-32",
2611
2502
  // border
2612
- "tw-border",
2613
- "tw-shadow-md",
2503
+ "tw:border",
2504
+ "tw:shadow-md",
2614
2505
  // Legacy surface — fixed white panel.
2615
- "data-[variant=default]:tw-rounded-md",
2616
- "data-[variant=default]:tw-bg-white",
2617
- "data-[variant=default]:tw-border-neutral-100",
2618
- "data-[variant=default]:tw-text-neutral-800",
2506
+ "tw:data-[variant=default]:rounded-md",
2507
+ "tw:data-[variant=default]:bg-white",
2508
+ "tw:data-[variant=default]:border-neutral-100",
2509
+ "tw:data-[variant=default]:text-neutral-800",
2619
2510
  // Argo surface — semantic popover tokens (brand + dark aware).
2620
- "data-[variant=argo]:tw-rounded-2xl",
2621
- "data-[variant=argo]:tw-bg-popover",
2622
- "data-[variant=argo]:tw-text-popover-foreground",
2623
- "data-[variant=argo]:tw-border-border",
2511
+ "tw:data-[variant=argo]:rounded-2xl",
2512
+ "tw:data-[variant=argo]:bg-popover",
2513
+ "tw:data-[variant=argo]:text-popover-foreground",
2514
+ "tw:data-[variant=argo]:border-border",
2624
2515
  // animations
2625
- "data-[state=open]:tw-animate-in",
2626
- "data-[state=open]:tw-fade-in-0",
2627
- "data-[state=open]:tw-zoom-in-95",
2628
- "data-[state=closed]:tw-animate-out",
2629
- "data-[state=closed]:tw-fade-out-0",
2630
- "data-[state=closed]:tw-zoom-out-95",
2631
- "data-[side=bottom]:tw-slide-in-from-top-2",
2632
- "data-[side=left]:tw-slide-in-from-right-2",
2633
- "data-[side=right]:tw-slide-in-from-left-2",
2634
- "data-[side=top]:tw-slide-in-from-bottom-2"
2516
+ "tw:data-[state=open]:animate-in",
2517
+ "tw:data-[state=open]:fade-in-0",
2518
+ "tw:data-[state=open]:zoom-in-95",
2519
+ "tw:data-[state=closed]:animate-out",
2520
+ "tw:data-[state=closed]:fade-out-0",
2521
+ "tw:data-[state=closed]:zoom-out-95",
2522
+ "tw:data-[side=bottom]:slide-in-from-top-2",
2523
+ "tw:data-[side=left]:slide-in-from-right-2",
2524
+ "tw:data-[side=right]:slide-in-from-left-2",
2525
+ "tw:data-[side=top]:slide-in-from-bottom-2"
2635
2526
  );
2636
2527
  var DropdownMenuCheckboxItem = ({
2637
2528
  className,
@@ -2645,7 +2536,7 @@ var DropdownMenuCheckboxItem = ({
2645
2536
  ...props
2646
2537
  }) => {
2647
2538
  const isAtStart = indicatorAlign === "start";
2648
- const indicatorEle = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: isAtStart ? "" : "tw-ml-auto", children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) }) : /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuItemIndicator, { variant: indicator, className: isAtStart ? "" : "tw-ml-auto" });
2539
+ const indicatorEle = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: isAtStart ? "" : "tw:ml-auto", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "tw:animate-spin" }) }) : /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuItemIndicator, { variant: indicator, className: isAtStart ? "" : "tw:ml-auto" });
2649
2540
  const handleSelect = (event) => {
2650
2541
  if (!closeOnSelect) event.preventDefault();
2651
2542
  onSelect?.(event);
@@ -2679,10 +2570,10 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
2679
2570
  {
2680
2571
  orientation,
2681
2572
  className: cn(
2682
- "tw-flex tw-touch-none tw-select-none tw-transition-color",
2573
+ "tw:flex tw:touch-none tw:select-none tw:transition-color",
2683
2574
  {
2684
- "tw-h-full tw-w-2.5 tw-p-px": orientation === "vertical",
2685
- "tw-h-2.5 tw-flex-col tw-p-px": orientation === "horizontal"
2575
+ "tw:h-full tw:w-2.5 tw:p-px": orientation === "vertical",
2576
+ "tw:h-2.5 tw:flex-col tw:p-px": orientation === "horizontal"
2686
2577
  },
2687
2578
  className
2688
2579
  ),
@@ -2691,11 +2582,11 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
2691
2582
  ScrollAreaPrimitive2__namespace.ScrollAreaThumb,
2692
2583
  {
2693
2584
  className: cn(
2694
- "tw-relative",
2695
- "tw-flex-1",
2696
- "tw-rounded-full",
2697
- "tw-bg-border",
2698
- "hover:tw-bg-muted-foreground"
2585
+ "tw:relative",
2586
+ "tw:flex-1",
2587
+ "tw:rounded-full",
2588
+ "tw:bg-border",
2589
+ "tw:hover:bg-muted-foreground"
2699
2590
  )
2700
2591
  }
2701
2592
  )
@@ -2714,7 +2605,7 @@ var ScrollArea = ({
2714
2605
  {
2715
2606
  "data-slot": "scroll-area",
2716
2607
  className: cn(
2717
- "tw-peer/scroll-area tw-relative tw-overflow-hidden focus-visible:tw-outline-none",
2608
+ "tw:peer/scroll-area tw:relative tw:overflow-hidden tw:focus-visible:outline-hidden",
2718
2609
  className
2719
2610
  ),
2720
2611
  ...props,
@@ -2724,7 +2615,7 @@ var ScrollArea = ({
2724
2615
  {
2725
2616
  ref,
2726
2617
  className: cn(
2727
- "tw-h-full tw-w-full tw-rounded-[inherit] focus-visible:tw-outline-none",
2618
+ "tw:h-full tw:w-full tw:rounded-[inherit] tw:focus-visible:outline-hidden",
2728
2619
  viewPortClassName
2729
2620
  ),
2730
2621
  children
@@ -2764,11 +2655,11 @@ var DropdownMenuContent = ({
2764
2655
  {
2765
2656
  className,
2766
2657
  viewPortClassName: cn(
2767
- "tw-p-2",
2768
- "tw-max-h-[var(--radix-dropdown-menu-content-available-height)]",
2658
+ "tw:p-2",
2659
+ "tw:max-h-[var(--radix-dropdown-menu-content-available-height)]",
2769
2660
  viewPortClassName
2770
2661
  ),
2771
- scrollBarClassName: "tw-w-1.5",
2662
+ scrollBarClassName: "tw:w-1.5",
2772
2663
  children
2773
2664
  }
2774
2665
  )
@@ -2794,7 +2685,7 @@ var DropdownMenuItem = ({
2794
2685
  ...props
2795
2686
  }) => {
2796
2687
  const Comp = asChild ? reactSlot.Root : "div";
2797
- const adornment = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) : icon;
2688
+ const adornment = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "tw:animate-spin" }) : icon;
2798
2689
  const handleOnSelect = (event) => {
2799
2690
  if (asModalTrigger) event.preventDefault();
2800
2691
  onSelect?.(event);
@@ -2815,7 +2706,7 @@ var DropdownMenuItem = ({
2815
2706
  onSelect: handleOnSelect,
2816
2707
  onPointerLeave: handlePointerLeave,
2817
2708
  onPointerMove: handlePointerMove,
2818
- className: cn(itemVariants, className),
2709
+ className: cn(itemVariants, asChild && "tw:text-inherit", className),
2819
2710
  asChild: true,
2820
2711
  children: /* @__PURE__ */ jsxRuntime.jsxs(Comp, { children: [
2821
2712
  adornment && /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: iconClassName, children: adornment }),
@@ -2829,18 +2720,18 @@ var DropdownMenuItem = ({
2829
2720
  init_utils2();
2830
2721
  var descriptionVariants = classVarianceAuthority.cva(
2831
2722
  [
2832
- "tw-box-border",
2833
- "tw-ml-auto",
2834
- "tw-font-sans",
2835
- "tw-tracking-normal",
2836
- "tw-font-normal",
2837
- "tw-text-xs",
2838
- "tw-text-muted-foreground"
2723
+ "tw:box-border",
2724
+ "tw:ml-auto",
2725
+ "tw:font-sans",
2726
+ "tw:tracking-normal",
2727
+ "tw:font-normal",
2728
+ "tw:text-xs",
2729
+ "tw:text-muted-foreground"
2839
2730
  ],
2840
2731
  {
2841
2732
  variants: {
2842
2733
  hideOnHover: {
2843
- true: ["group-focus-within:tw-hidden", "group-hover:tw-hidden"],
2734
+ true: ["tw:group-focus-within:hidden", "tw:group-hover:hidden"],
2844
2735
  false: []
2845
2736
  }
2846
2737
  },
@@ -2863,10 +2754,10 @@ var DropdownMenuLabel = ({ className, ...props }) => {
2863
2754
  DropdownMenuPrimitive3__namespace.Label,
2864
2755
  {
2865
2756
  className: cn(
2866
- "tw-p-2",
2867
- "tw-font-medium",
2868
- "tw-text-xs",
2869
- "tw-text-muted-foreground",
2757
+ "tw:p-2",
2758
+ "tw:font-medium",
2759
+ "tw:text-xs",
2760
+ "tw:text-muted-foreground",
2870
2761
  className
2871
2762
  ),
2872
2763
  ...props
@@ -2909,7 +2800,7 @@ var DropdownMenuRadioItem = ({
2909
2800
  ...props
2910
2801
  }) => {
2911
2802
  const isAtStart = indicatorAlign === "start";
2912
- const indicatorEle = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: iconClassName, children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) }) : /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuItemIndicator, { variant: indicator });
2803
+ const indicatorEle = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: iconClassName, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "tw:animate-spin" }) }) : /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuItemIndicator, { variant: indicator });
2913
2804
  const handleSelect = (event) => {
2914
2805
  if (!closeOnSelect) event.preventDefault();
2915
2806
  onSelect?.(event);
@@ -2919,13 +2810,13 @@ var DropdownMenuRadioItem = ({
2919
2810
  {
2920
2811
  className: cn(
2921
2812
  itemVariants,
2922
- "data-[state=checked]:tw-cursor-default",
2813
+ "tw:data-[state=checked]:cursor-default",
2923
2814
  {
2924
- "data-[state=checked]:tw-bg-neutral-100": indicator === "none",
2815
+ "tw:data-[state=checked]:bg-neutral-100": indicator === "none",
2925
2816
  // Semantic brand tint (flips under `[data-theme='dark']`) instead of a
2926
- // hardcoded `tw-bg-sky-100`, which stayed light in dark mode and left the
2817
+ // hardcoded `tw:bg-sky-100`, which stayed light in dark mode and left the
2927
2818
  // checked item's text near-invisible.
2928
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-bg-primary/10": indicator === "check"
2819
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:bg-primary/10": indicator === "check"
2929
2820
  },
2930
2821
  className
2931
2822
  ),
@@ -2934,7 +2825,7 @@ var DropdownMenuRadioItem = ({
2934
2825
  children: [
2935
2826
  isAtStart && indicatorEle,
2936
2827
  icon && /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: iconClassName, children: icon }),
2937
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-flex tw-min-w-0 tw-flex-1 tw-items-center tw-gap-2", children }),
2828
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw:flex tw:min-w-0 tw:flex-1 tw:items-center tw:gap-2", children }),
2938
2829
  !isAtStart && indicatorEle
2939
2830
  ]
2940
2831
  }
@@ -2947,21 +2838,21 @@ var DropdownMenuSeparator = ({ className, ...props }) => /* @__PURE__ */ jsxRunt
2947
2838
  DropdownMenuPrimitive3__namespace.Separator,
2948
2839
  {
2949
2840
  className: cn(
2950
- "tw-relative",
2951
- "tw-z-10",
2841
+ "tw:relative",
2842
+ "tw:z-10",
2952
2843
  // layout
2953
- "tw-flex",
2954
- "tw-items-center",
2955
- "tw-justify-center",
2956
- "tw-w-full",
2844
+ "tw:flex",
2845
+ "tw:items-center",
2846
+ "tw:justify-center",
2847
+ "tw:w-full",
2957
2848
  // separator line
2958
- 'before:tw-content-[""]',
2959
- "before:tw-w-full",
2960
- "before:tw-h-px",
2961
- "group-data-[variant=default]/dropdown-menu-content:tw-py-2",
2962
- "group-data-[variant=default]/dropdown-menu-content:before:tw-bg-neutral-150",
2963
- "group-data-[variant=argo]/dropdown-menu-content:tw-py-1",
2964
- "group-data-[variant=argo]/dropdown-menu-content:before:tw-bg-border",
2849
+ 'tw:before:content-[""]',
2850
+ "tw:before:w-full",
2851
+ "tw:before:h-px",
2852
+ "tw:group-data-[variant=default]/dropdown-menu-content:py-2",
2853
+ "tw:group-data-[variant=default]/dropdown-menu-content:before:bg-neutral-150",
2854
+ "tw:group-data-[variant=argo]/dropdown-menu-content:py-1",
2855
+ "tw:group-data-[variant=argo]/dropdown-menu-content:before:bg-border",
2965
2856
  className
2966
2857
  ),
2967
2858
  ...props
@@ -2977,7 +2868,7 @@ var DropdownMenuSubContent = ({ className, ...props }) => {
2977
2868
  DropdownMenuPrimitive3__namespace.SubContent,
2978
2869
  {
2979
2870
  "data-variant": variant,
2980
- className: cn(contentVariants, "tw-z-[1041]", "tw-p-2", className),
2871
+ className: cn(contentVariants, "tw:z-[1041]", "tw:p-2", className),
2981
2872
  ...props
2982
2873
  }
2983
2874
  ) });
@@ -2989,7 +2880,7 @@ init_utils2();
2989
2880
  var DropdownMenuSubTrigger = ({ className, children, ...props }) => {
2990
2881
  return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive3__namespace.SubTrigger, { className: cn(itemVariants, className), ...props, children: [
2991
2882
  children,
2992
- /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronRight, { className: "tw-ml-auto tw-size-5" })
2883
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "tw:ml-auto tw:size-5" })
2993
2884
  ] });
2994
2885
  };
2995
2886
 
@@ -3001,7 +2892,7 @@ var DropdownMenuTrigger = ({ ref, className, ...props }) => /* @__PURE__ */ jsxR
3001
2892
  ...props,
3002
2893
  ref,
3003
2894
  "data-slot": "dropdown-menu-trigger",
3004
- className: cn("tw-group/dropdown-menu-trigger", className)
2895
+ className: cn("tw:group/dropdown-menu-trigger", className)
3005
2896
  }
3006
2897
  );
3007
2898
  var DropdownMenu = ({
@@ -3032,10 +2923,10 @@ init_Tooltip2();
3032
2923
  init_icons();
3033
2924
  init_utils2();
3034
2925
  var ALIGNMENT_OPTIONS = [
3035
- { value: "left", label: "Left", icon: icons_exports.AlignLeft },
3036
- { value: "center", label: "Center", icon: icons_exports.AlignCenter },
3037
- { value: "right", label: "Right", icon: icons_exports.AlignRight },
3038
- { value: "justify", label: "Justify", icon: icons_exports.AlignJustify }
2926
+ { value: "left", label: "Left", icon: lucideReact.AlignLeft },
2927
+ { value: "center", label: "Center", icon: lucideReact.AlignCenter },
2928
+ { value: "right", label: "Right", icon: lucideReact.AlignRight },
2929
+ { value: "justify", label: "Justify", icon: lucideReact.AlignJustify }
3039
2930
  ];
3040
2931
  var ALIGNMENT_ICONS = Object.fromEntries(
3041
2932
  ALIGNMENT_OPTIONS.map(({ value, icon }) => [value, icon])
@@ -3061,32 +2952,32 @@ var AlignmentDropdown = ({
3061
2952
  editor.dispatchCommand(lexical.FORMAT_ELEMENT_COMMAND, align);
3062
2953
  });
3063
2954
  };
3064
- const CurrentAlignmentIcon = ALIGNMENT_ICONS[alignment] ?? icons_exports.AlignLeft;
2955
+ const CurrentAlignmentIcon = ALIGNMENT_ICONS[alignment] ?? lucideReact.AlignLeft;
3065
2956
  return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { onOpenChange: handleOpenChange, children: [
3066
2957
  /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { tooltip: "Text alignment", placement: "top", triggerAsChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
3067
2958
  "button",
3068
2959
  {
3069
2960
  type: "button",
3070
2961
  className: cn(
3071
- "tw-flex tw-h-7 tw-cursor-pointer tw-items-center tw-gap-1 tw-rounded tw-border-0 tw-bg-transparent tw-px-1.5 tw-text-xs tw-text-muted-foreground",
3072
- "hover:tw-bg-accent"
2962
+ "tw:flex tw:h-7 tw:cursor-pointer tw:items-center tw:gap-1 tw:rounded tw:border-0 tw:bg-transparent tw:px-1.5 tw:text-xs tw:text-muted-foreground",
2963
+ "tw:hover:bg-accent"
3073
2964
  ),
3074
2965
  children: [
3075
- /* @__PURE__ */ jsxRuntime.jsx(CurrentAlignmentIcon, { className: "tw-size-4" }),
3076
- /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, { className: "tw-size-3" })
2966
+ /* @__PURE__ */ jsxRuntime.jsx(CurrentAlignmentIcon, { className: "tw:size-4" }),
2967
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "tw:size-3" })
3077
2968
  ]
3078
2969
  }
3079
2970
  ) }) }),
3080
- /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Content, { align: "start", className: "tw-min-w-32", children: ALIGNMENT_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxRuntime.jsxs(
2971
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Content, { align: "start", className: "tw:min-w-32", children: ALIGNMENT_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxRuntime.jsxs(
3081
2972
  DropdownMenu.Item,
3082
2973
  {
3083
2974
  onSelect: () => handleSelect(value),
3084
2975
  className: cn(
3085
- "tw-flex tw-items-center tw-gap-2",
3086
- alignment === value && "tw-bg-secondary-50 tw-text-secondary-500"
2976
+ "tw:flex tw:items-center tw:gap-2",
2977
+ alignment === value && "tw:bg-secondary-50 tw:text-secondary-500"
3087
2978
  ),
3088
2979
  children: [
3089
- /* @__PURE__ */ jsxRuntime.jsx(IconComp, { className: "tw-size-4" }),
2980
+ /* @__PURE__ */ jsxRuntime.jsx(IconComp, { className: "tw:size-4" }),
3090
2981
  label
3091
2982
  ]
3092
2983
  },
@@ -3098,14 +2989,14 @@ init_Tooltip2();
3098
2989
  init_icons();
3099
2990
  init_utils2();
3100
2991
  var BLOCK_TYPE_META = {
3101
- paragraph: { label: "Normal", icon: icons_exports.Type, selectable: true },
3102
- h1: { label: "Heading 1", icon: icons_exports.Heading1, selectable: true },
3103
- h2: { label: "Heading 2", icon: icons_exports.Heading2, selectable: true },
3104
- h3: { label: "Heading 3", icon: icons_exports.Heading3, selectable: true },
3105
- bullet: { label: "Bullet List", icon: icons_exports.List, selectable: false },
3106
- number: { label: "Numbered List", icon: icons_exports.ListOrdered, selectable: false },
3107
- quote: { label: "Quote", icon: icons_exports.Quote, selectable: false },
3108
- code: { label: "Code Block", icon: icons_exports.SquareCode, selectable: false }
2992
+ paragraph: { label: "Normal", icon: lucideReact.Type, selectable: true },
2993
+ h1: { label: "Heading 1", icon: lucideReact.Heading1, selectable: true },
2994
+ h2: { label: "Heading 2", icon: lucideReact.Heading2, selectable: true },
2995
+ h3: { label: "Heading 3", icon: lucideReact.Heading3, selectable: true },
2996
+ bullet: { label: "Bullet List", icon: lucideReact.List, selectable: false },
2997
+ number: { label: "Numbered List", icon: lucideReact.ListOrdered, selectable: false },
2998
+ quote: { label: "Quote", icon: lucideReact.Quote, selectable: false },
2999
+ code: { label: "Code Block", icon: lucideReact.SquareCode, selectable: false }
3109
3000
  };
3110
3001
  var BLOCK_TYPE_OPTIONS = Object.entries(BLOCK_TYPE_META).filter(([, meta]) => meta.selectable).map(([value, { label, icon }]) => ({ value, label, icon }));
3111
3002
  var isBlockType = (value) => Object.prototype.hasOwnProperty.call(BLOCK_TYPE_META, value);
@@ -3115,7 +3006,7 @@ var BlockTypeDropdown = ({
3115
3006
  }) => {
3116
3007
  const savedSelectionRef = react.useRef(null);
3117
3008
  const currentMeta = isBlockType(blockType) ? BLOCK_TYPE_META[blockType] : null;
3118
- const CurrentBlockIcon = currentMeta?.icon ?? icons_exports.Type;
3009
+ const CurrentBlockIcon = currentMeta?.icon ?? lucideReact.Type;
3119
3010
  const handleOpenChange = (open) => {
3120
3011
  if (open) {
3121
3012
  editor.getEditorState().read(() => {
@@ -3152,26 +3043,26 @@ var BlockTypeDropdown = ({
3152
3043
  {
3153
3044
  type: "button",
3154
3045
  className: cn(
3155
- "tw-flex tw-h-7 tw-cursor-pointer tw-items-center tw-gap-1.5 tw-rounded tw-border-0 tw-bg-transparent tw-px-1.5 tw-text-xs tw-text-muted-foreground",
3156
- "hover:tw-bg-accent"
3046
+ "tw:flex tw:h-7 tw:cursor-pointer tw:items-center tw:gap-1.5 tw:rounded tw:border-0 tw:bg-transparent tw:px-1.5 tw:text-xs tw:text-muted-foreground",
3047
+ "tw:hover:bg-accent"
3157
3048
  ),
3158
3049
  children: [
3159
- /* @__PURE__ */ jsxRuntime.jsx(CurrentBlockIcon, { className: "tw-size-4" }),
3050
+ /* @__PURE__ */ jsxRuntime.jsx(CurrentBlockIcon, { className: "tw:size-4" }),
3160
3051
  currentMeta?.label ?? "Normal",
3161
- /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, { className: "tw-size-3" })
3052
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "tw:size-3" })
3162
3053
  ]
3163
3054
  }
3164
3055
  ) }) }),
3165
- /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Content, { align: "start", className: "tw-min-w-40", children: BLOCK_TYPE_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxRuntime.jsxs(
3056
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Content, { align: "start", className: "tw:min-w-40", children: BLOCK_TYPE_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxRuntime.jsxs(
3166
3057
  DropdownMenu.Item,
3167
3058
  {
3168
3059
  onSelect: () => handleSelect(value),
3169
3060
  className: cn(
3170
- "tw-flex tw-items-center tw-gap-2",
3171
- blockType === value && "tw-bg-secondary-50 tw-text-secondary-500"
3061
+ "tw:flex tw:items-center tw:gap-2",
3062
+ blockType === value && "tw:bg-secondary-50 tw:text-secondary-500"
3172
3063
  ),
3173
3064
  children: [
3174
- /* @__PURE__ */ jsxRuntime.jsx(IconComp, { className: "tw-size-4" }),
3065
+ /* @__PURE__ */ jsxRuntime.jsx(IconComp, { className: "tw:size-4" }),
3175
3066
  label
3176
3067
  ]
3177
3068
  },
@@ -3196,12 +3087,12 @@ init_context();
3196
3087
  init_utils2();
3197
3088
  var addonVariants = classVarianceAuthority.cva(
3198
3089
  [
3199
- "tw-flex",
3200
- "tw-items-center",
3201
- "tw-gap-1",
3090
+ "tw:flex",
3091
+ "tw:items-center",
3092
+ "tw:gap-1",
3202
3093
  // Default size for nested Lucide icons in prefix/suffix slots; callers can override on the icon.
3203
- "[&_svg.lucide:not([class*='tw-size-'])]:tw-size-4",
3204
- "[&_svg]:tw-shrink-0"
3094
+ "tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4",
3095
+ "tw:[&_svg]:shrink-0"
3205
3096
  ],
3206
3097
  {
3207
3098
  defaultVariants: {
@@ -3209,22 +3100,22 @@ var addonVariants = classVarianceAuthority.cva(
3209
3100
  },
3210
3101
  variants: {
3211
3102
  align: {
3212
- "inline-start": ["tw-order-first", "[&:not(:empty)]:tw-pl-4"],
3213
- "inline-end": ["tw-order-last", "[&:not(:empty)]:tw-pr-4"],
3103
+ "inline-start": ["tw:order-first", "tw:[&:not(:empty)]:pl-4"],
3104
+ "inline-end": ["tw:order-last", "tw:[&:not(:empty)]:pr-4"],
3214
3105
  "block-start": [
3215
- "tw-order-first",
3216
- // `tw-w-full` needs to be empty-conditional too — when the addon
3106
+ "tw:order-first",
3107
+ // `tw:w-full` needs to be empty-conditional too — when the addon
3217
3108
  // has no content the root stays in flex-row, and a 100%-wide
3218
3109
  // empty addon would claim half of the input row beside the input.
3219
- "[&:not(:empty)]:tw-w-full",
3220
- "[&:not(:empty)]:tw-px-4",
3221
- "[&:not(:empty)]:tw-py-1.5"
3110
+ "tw:[&:not(:empty)]:w-full",
3111
+ "tw:[&:not(:empty)]:px-4",
3112
+ "tw:[&:not(:empty)]:py-1.5"
3222
3113
  ],
3223
3114
  "block-end": [
3224
- "tw-order-last",
3225
- "[&:not(:empty)]:tw-w-full",
3226
- "[&:not(:empty)]:tw-px-4",
3227
- "[&:not(:empty)]:tw-py-1.5"
3115
+ "tw:order-last",
3116
+ "tw:[&:not(:empty)]:w-full",
3117
+ "tw:[&:not(:empty)]:px-4",
3118
+ "tw:[&:not(:empty)]:py-1.5"
3228
3119
  ]
3229
3120
  }
3230
3121
  }
@@ -3248,7 +3139,7 @@ var InputGroupButton = ({ ref, className, tabIndex = -1, ...props }) => /* @__PU
3248
3139
  ref,
3249
3140
  variant: "invisible",
3250
3141
  size: "icon-sm",
3251
- className: cn("tw-size-5", "[&_svg]:tw-text-muted-foreground", className)
3142
+ className: cn("tw:size-5", "tw:[&_svg]:text-muted-foreground", className)
3252
3143
  }
3253
3144
  );
3254
3145
 
@@ -3260,17 +3151,17 @@ var InputGroupInput = ({ ref, className, ...inputProps }) => /* @__PURE__ */ jsx
3260
3151
  ...inputProps,
3261
3152
  ref,
3262
3153
  className: cn(
3263
- "tw-w-full",
3264
- "tw-bg-transparent",
3265
- "tw-outline-none",
3154
+ "tw:w-full",
3155
+ "tw:bg-transparent",
3156
+ "tw:outline-hidden",
3266
3157
  // font
3267
- "tw-font-sans",
3268
- "tw-text-sm",
3158
+ "tw:font-sans",
3159
+ "tw:text-sm",
3269
3160
  // placeholder
3270
- "placeholder:tw-text-neutral-400",
3271
- "placeholder:tw-font-normal",
3161
+ "tw:placeholder:text-neutral-400",
3162
+ "tw:placeholder:font-normal",
3272
3163
  // disabled
3273
- "disabled:tw-cursor-not-allowed",
3164
+ "tw:disabled:cursor-not-allowed",
3274
3165
  className
3275
3166
  )
3276
3167
  }
@@ -3282,13 +3173,13 @@ var InputGroupText = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx
3282
3173
  "span",
3283
3174
  {
3284
3175
  className: cn(
3285
- "tw-flex",
3286
- "tw-items-center",
3287
- "tw-gap-2",
3288
- "tw-text-sm",
3289
- "tw-text-muted-foreground",
3290
- "[&_svg]:tw-pointer-events-none",
3291
- '[&_svg:not([class*="tw-size-"])]:tw-size-4',
3176
+ "tw:flex",
3177
+ "tw:items-center",
3178
+ "tw:gap-2",
3179
+ "tw:text-sm",
3180
+ "tw:text-muted-foreground",
3181
+ "tw:[&_svg]:pointer-events-none",
3182
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
3292
3183
  className
3293
3184
  ),
3294
3185
  ...props
@@ -3331,20 +3222,20 @@ var InputGroupTextArea = ({
3331
3222
  minRows,
3332
3223
  maxRows: maxRows === "unlimited" ? void 0 : maxRows,
3333
3224
  className: cn(
3334
- "tw-w-full",
3335
- "tw-bg-transparent",
3336
- "tw-outline-none",
3337
- "tw-px-4",
3225
+ "tw:w-full",
3226
+ "tw:bg-transparent",
3227
+ "tw:outline-hidden",
3228
+ "tw:px-4",
3338
3229
  // font
3339
- "tw-font-sans",
3340
- "tw-text-sm",
3230
+ "tw:font-sans",
3231
+ "tw:text-sm",
3341
3232
  // placeholder
3342
- "placeholder:tw-text-neutral-400",
3343
- "placeholder:tw-font-normal",
3233
+ "tw:placeholder:text-neutral-400",
3234
+ "tw:placeholder:font-normal",
3344
3235
  // disabled
3345
- "disabled:tw-cursor-not-allowed",
3236
+ "tw:disabled:cursor-not-allowed",
3346
3237
  {
3347
- "tw-resize-none": disableResize
3238
+ "tw:resize-none": disableResize
3348
3239
  },
3349
3240
  className
3350
3241
  )
@@ -3354,39 +3245,39 @@ var InputGroupTextArea = ({
3354
3245
  var inputGroupVariants = classVarianceAuthority.cva(
3355
3246
  [
3356
3247
  "tailwindcss-preflight",
3357
- "tw-group",
3358
- "tw-overflow-hidden",
3359
- "tw-box-border",
3248
+ "tw:group",
3249
+ "tw:overflow-hidden",
3250
+ "tw:box-border",
3360
3251
  // positioning
3361
- "tw-flex",
3362
- "tw-items-center",
3252
+ "tw:flex",
3253
+ "tw:items-center",
3363
3254
  // base — legacy (non-argo) chrome uses a fixed radius; argo overrides it with
3364
3255
  // the brand radius token in the `argo` variant below.
3365
- "tw-rounded",
3366
- "tw-border",
3367
- "tw-border-solid",
3368
- "tw-border-neutral-200",
3369
- "tw-text-neutral-800",
3370
- "tw-transition",
3256
+ "tw:rounded",
3257
+ "tw:border",
3258
+ "tw:border-solid",
3259
+ "tw:border-neutral-200",
3260
+ "tw:text-neutral-800",
3261
+ "tw:transition",
3371
3262
  // focus
3372
- "has-[:is(input,textarea):focus]:tw-ring-4",
3263
+ "tw:has-[:is(input,textarea):focus]:ring-4",
3373
3264
  // readonly
3374
- "has-[:is(input,textarea)[readonly]]:tw-bg-neutral-150",
3375
- "has-[:is(input,textarea)[readonly]]:focus-within:tw-ring-0",
3376
- "has-[:is(input,textarea)[readonly]]:tw-border-neutral-150",
3265
+ "tw:has-[:is(input,textarea)[readonly]]:bg-neutral-150",
3266
+ "tw:has-[:is(input,textarea)[readonly]]:focus-within:ring-0",
3267
+ "tw:has-[:is(input,textarea)[readonly]]:border-neutral-150",
3377
3268
  // disabled cursor (opacity owned by variant)
3378
- "has-[:is(input,textarea):disabled]:tw-cursor-not-allowed",
3269
+ "tw:has-[:is(input,textarea):disabled]:cursor-not-allowed",
3379
3270
  // textarea: top-align addons, allow vertical expansion, own its y-padding
3380
- "has-[textarea]:tw-items-start",
3381
- "has-[[data-align=block-start]:not(:empty)]:tw-flex-wrap",
3382
- "has-[[data-align=block-end]:not(:empty)]:tw-flex-wrap",
3383
- "[&>input]:has-[[data-align=block-start]:not(:empty)]:tw-w-auto",
3384
- "[&>input]:has-[[data-align=block-start]:not(:empty)]:tw-flex-1",
3385
- "[&>input]:has-[[data-align=block-end]:not(:empty)]:tw-w-auto",
3386
- "[&>input]:has-[[data-align=block-end]:not(:empty)]:tw-flex-1",
3387
- "[&>input]:tw-px-4",
3388
- "[&>input]:has-[[data-align=inline-start]:not(:empty)]:tw-pl-2",
3389
- "[&>input]:has-[[data-align=inline-end]:not(:empty)]:tw-pr-2"
3271
+ "tw:has-[textarea]:items-start",
3272
+ "tw:has-[[data-align=block-start]:not(:empty)]:flex-wrap",
3273
+ "tw:has-[[data-align=block-end]:not(:empty)]:flex-wrap",
3274
+ "tw:[&>input]:has-[[data-align=block-start]:not(:empty)]:w-auto",
3275
+ "tw:[&>input]:has-[[data-align=block-start]:not(:empty)]:flex-1",
3276
+ "tw:[&>input]:has-[[data-align=block-end]:not(:empty)]:w-auto",
3277
+ "tw:[&>input]:has-[[data-align=block-end]:not(:empty)]:flex-1",
3278
+ "tw:[&>input]:px-4",
3279
+ "tw:[&>input]:has-[[data-align=inline-start]:not(:empty)]:pl-2",
3280
+ "tw:[&>input]:has-[[data-align=inline-end]:not(:empty)]:pr-2"
3390
3281
  ],
3391
3282
  {
3392
3283
  defaultVariants: {
@@ -3399,153 +3290,153 @@ var inputGroupVariants = classVarianceAuthority.cva(
3399
3290
  {
3400
3291
  variant: "secondary",
3401
3292
  state: "error",
3402
- className: ["tw-bg-error-100"]
3293
+ className: ["tw:bg-error-100"]
3403
3294
  },
3404
3295
  {
3405
3296
  variant: "secondary",
3406
3297
  state: "warning",
3407
- className: ["tw-bg-warning-100"]
3298
+ className: ["tw:bg-warning-100"]
3408
3299
  },
3409
3300
  {
3410
3301
  variant: "primary",
3411
3302
  state: "default",
3412
3303
  focusVariant: "off",
3413
- className: ["has-[:is(input,textarea):focus]:tw-border-neutral-200"]
3304
+ className: ["tw:has-[:is(input,textarea):focus]:border-neutral-200"]
3414
3305
  },
3415
3306
  {
3416
3307
  variant: "secondary",
3417
3308
  state: "default",
3418
3309
  focusVariant: "off",
3419
- className: ["has-[:is(input,textarea):focus]:tw-border-neutral-100"]
3310
+ className: ["tw:has-[:is(input,textarea):focus]:border-neutral-100"]
3420
3311
  },
3421
3312
  {
3422
3313
  variant: ["primary", "secondary"],
3423
3314
  state: "error",
3424
3315
  focusVariant: "on",
3425
- className: ["!tw-border-error-500", "!tw-ring-error-200"]
3316
+ className: ["tw:!border-error-500", "tw:!ring-error-200"]
3426
3317
  },
3427
3318
  {
3428
3319
  variant: ["primary", "secondary"],
3429
3320
  state: "warning",
3430
3321
  focusVariant: "on",
3431
- className: ["!tw-border-warning-500", "!tw-ring-warning-200"]
3322
+ className: ["tw:!border-warning-500", "tw:!ring-warning-200"]
3432
3323
  },
3433
3324
  // --- argo ---
3434
3325
  {
3435
3326
  variant: "argo",
3436
3327
  state: "default",
3437
3328
  className: [
3438
- "has-[:is(input,textarea):focus]:tw-border-primary",
3439
- "has-[:is(input,textarea):focus]:tw-ring-ring/50"
3329
+ "tw:has-[:is(input,textarea):focus]:border-primary",
3330
+ "tw:has-[:is(input,textarea):focus]:ring-ring/50"
3440
3331
  ]
3441
3332
  },
3442
3333
  {
3443
3334
  variant: "argo",
3444
3335
  state: "error",
3445
3336
  className: [
3446
- "tw-border-destructive",
3447
- "has-[:is(input,textarea):focus]:tw-border-destructive",
3448
- "has-[:is(input,textarea):focus]:tw-ring-destructive/20"
3337
+ "tw:border-destructive",
3338
+ "tw:has-[:is(input,textarea):focus]:border-destructive",
3339
+ "tw:has-[:is(input,textarea):focus]:ring-destructive/20"
3449
3340
  ]
3450
3341
  },
3451
3342
  {
3452
3343
  variant: "argo",
3453
3344
  focusVariant: "on",
3454
- className: ["!tw-border-primary", "!tw-ring-ring/50"]
3345
+ className: ["tw:!border-primary", "tw:!ring-ring/50"]
3455
3346
  },
3456
3347
  {
3457
3348
  variant: "argo",
3458
3349
  state: "error",
3459
3350
  focusVariant: "on",
3460
- className: ["!tw-border-destructive", "!tw-ring-destructive/20"]
3351
+ className: ["tw:!border-destructive", "tw:!ring-destructive/20"]
3461
3352
  },
3462
3353
  {
3463
3354
  variant: "argo",
3464
3355
  state: "default",
3465
3356
  focusVariant: "off",
3466
- className: ["has-[:is(input,textarea):focus]:tw-border-input"]
3357
+ className: ["tw:has-[:is(input,textarea):focus]:border-input"]
3467
3358
  }
3468
3359
  ],
3469
3360
  variants: {
3470
3361
  focusVariant: {
3471
3362
  default: [],
3472
- on: ["!tw-border-ring", "!tw-ring-ring/30", "!tw-ring-4"],
3473
- off: ["has-[:is(input,textarea):focus]:!tw-ring-0"]
3363
+ on: ["tw:!border-ring", "tw:!ring-ring/30", "tw:!ring-4"],
3364
+ off: ["tw:has-[:is(input,textarea):focus]:!ring-0"]
3474
3365
  },
3475
3366
  variant: {
3476
3367
  primary: [
3477
- "tw-bg-white",
3478
- "has-[:is(input,textarea):disabled]:tw-opacity-40",
3368
+ "tw:bg-white",
3369
+ "tw:has-[:is(input,textarea):disabled]:opacity-40",
3479
3370
  // aria-invalid on the control surfaces the error chrome without a `state` prop — the
3480
3371
  // accessible path (mirrors the `state="error"` legacy tokens). Higher specificity than
3481
3372
  // the default focus selector, so it wins without `!important`.
3482
- "has-[:is(input,textarea)[aria-invalid=true]]:tw-border-error-500",
3483
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-error-500",
3484
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-error-200"
3373
+ "tw:has-[:is(input,textarea)[aria-invalid=true]]:border-error-500",
3374
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:border-error-500",
3375
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:ring-error-200"
3485
3376
  ],
3486
3377
  secondary: [
3487
- "tw-bg-neutral-100",
3488
- "tw-border-neutral-100",
3489
- "has-[:is(input,textarea):disabled]:tw-opacity-40",
3490
- "has-[:is(input,textarea)[aria-invalid=true]]:tw-border-error-500",
3491
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-error-500",
3492
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-error-200"
3378
+ "tw:bg-neutral-100",
3379
+ "tw:border-neutral-100",
3380
+ "tw:has-[:is(input,textarea):disabled]:opacity-40",
3381
+ "tw:has-[:is(input,textarea)[aria-invalid=true]]:border-error-500",
3382
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:border-error-500",
3383
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:ring-error-200"
3493
3384
  ],
3494
3385
  argo: [
3495
3386
  // argo follows the brand radius token (overrides the static base)
3496
- "tw-rounded-[var(--radius-lg,0.25rem)]",
3387
+ "tw:rounded-[var(--radius-lg,0.25rem)]",
3497
3388
  // muted filled input surface — gray, distinct from white containers; not the app-background token
3498
- "tw-bg-muted",
3499
- "tw-border-input",
3500
- "tw-text-foreground",
3501
- "has-[:is(input,textarea):disabled]:tw-opacity-50",
3389
+ "tw:bg-muted",
3390
+ "tw:border-input",
3391
+ "tw:text-foreground",
3392
+ "tw:has-[:is(input,textarea):disabled]:opacity-50",
3502
3393
  // readonly: keep the themed input surface/border. The base layer's fixed
3503
3394
  // `neutral-150` (a light grey) is correct for the legacy light chrome but
3504
3395
  // collides with argo's themed `foreground` text — light-on-light, invisible
3505
3396
  // in dark mode. Re-pin to the same `muted`/`input` tokens the editable argo
3506
3397
  // input uses (validated AA), so readonly stays legible in every scheme.
3507
- "has-[:is(input,textarea)[readonly]]:tw-bg-muted",
3508
- "has-[:is(input,textarea)[readonly]]:tw-border-input",
3398
+ "tw:has-[:is(input,textarea)[readonly]]:bg-muted",
3399
+ "tw:has-[:is(input,textarea)[readonly]]:border-input",
3509
3400
  // higher specificity than has-[:is(input,textarea):focus] — prevents focus border on readonly
3510
- "has-[:is(input,textarea)[readonly]:focus]:tw-border-input",
3401
+ "tw:has-[:is(input,textarea)[readonly]:focus]:border-input",
3511
3402
  // aria-invalid on the control surfaces the error chrome without a `state` prop — the
3512
3403
  // accessible path (uses the themeable `destructive` status token).
3513
- "has-[:is(input,textarea)[aria-invalid=true]]:tw-border-destructive",
3514
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-destructive",
3515
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-destructive/20"
3404
+ "tw:has-[:is(input,textarea)[aria-invalid=true]]:border-destructive",
3405
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:border-destructive",
3406
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:ring-destructive/20"
3516
3407
  ]
3517
3408
  },
3518
3409
  sizing: {
3519
3410
  default: [
3520
- "[&>:is(input,textarea)]:tw-py-2.5",
3521
- "[&>:is(input,textarea)]:tw-leading-[18px]",
3522
- "[&>textarea]:!tw-min-h-[calc(2.5rem-2px)]"
3411
+ "tw:[&>:is(input,textarea)]:py-2.5",
3412
+ "tw:[&>:is(input,textarea)]:leading-[18px]",
3413
+ "tw:[&>textarea]:!min-h-[calc(2.5rem-2px)]"
3523
3414
  ],
3524
3415
  small: [
3525
- "[&>:is(input,textarea)]:tw-py-2",
3526
- "[&>:is(input,textarea)]:tw-leading-[16px]",
3527
- "[&>textarea]:!tw-min-h-[calc(2rem-2px)]"
3416
+ "tw:[&>:is(input,textarea)]:py-2",
3417
+ "tw:[&>:is(input,textarea)]:leading-[16px]",
3418
+ "tw:[&>textarea]:!min-h-[calc(2rem-2px)]"
3528
3419
  ],
3529
3420
  medium: [
3530
- "[&>:is(input,textarea)]:tw-py-2",
3531
- "[&>:is(input,textarea)]:tw-leading-[18px]",
3532
- "[&>textarea]:!tw-min-h-[calc(2.25rem-2px)]"
3421
+ "tw:[&>:is(input,textarea)]:py-2",
3422
+ "tw:[&>:is(input,textarea)]:leading-[18px]",
3423
+ "tw:[&>textarea]:!min-h-[calc(2.25rem-2px)]"
3533
3424
  ]
3534
3425
  },
3535
3426
  state: {
3536
3427
  default: [
3537
- "has-[:is(input,textarea):focus]:tw-border-ring",
3538
- "has-[:is(input,textarea):focus]:tw-ring-ring/30"
3428
+ "tw:has-[:is(input,textarea):focus]:border-ring",
3429
+ "tw:has-[:is(input,textarea):focus]:ring-ring/30"
3539
3430
  ],
3540
3431
  error: [
3541
- "tw-border-error-500",
3542
- "has-[:is(input,textarea):focus]:tw-border-error-500",
3543
- "has-[:is(input,textarea):focus]:tw-ring-error-200"
3432
+ "tw:border-error-500",
3433
+ "tw:has-[:is(input,textarea):focus]:border-error-500",
3434
+ "tw:has-[:is(input,textarea):focus]:ring-error-200"
3544
3435
  ],
3545
3436
  warning: [
3546
- "tw-border-warning-500",
3547
- "has-[:is(input,textarea):focus]:tw-border-warning-500",
3548
- "has-[:is(input,textarea):focus]:tw-ring-warning-200"
3437
+ "tw:border-warning-500",
3438
+ "tw:has-[:is(input,textarea):focus]:border-warning-500",
3439
+ "tw:has-[:is(input,textarea):focus]:ring-warning-200"
3549
3440
  ]
3550
3441
  }
3551
3442
  }
@@ -3658,7 +3549,7 @@ var ColorPicker = ({ value, disabled, readOnly, ...props }) => {
3658
3549
  if (!pickerRef.current) return;
3659
3550
  showPicker(pickerRef.current);
3660
3551
  };
3661
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-relative", children: [
3552
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw:relative", children: [
3662
3553
  /* @__PURE__ */ jsxRuntime.jsx(
3663
3554
  "input",
3664
3555
  {
@@ -3668,7 +3559,7 @@ var ColorPicker = ({ value, disabled, readOnly, ...props }) => {
3668
3559
  value: coerceColorPickerValue(value),
3669
3560
  tabIndex: -1,
3670
3561
  "aria-hidden": true,
3671
- className: "tw-pointer-events-none tw-absolute tw-left-0 tw-top-full tw-size-0 tw-opacity-0",
3562
+ className: "tw:pointer-events-none tw:absolute tw:left-0 tw:top-full tw:size-0 tw:opacity-0",
3672
3563
  disabled,
3673
3564
  readOnly
3674
3565
  }
@@ -3680,7 +3571,7 @@ var ColorPicker = ({ value, disabled, readOnly, ...props }) => {
3680
3571
  disabled: disabled || readOnly,
3681
3572
  onClick: handleOpenPicker,
3682
3573
  "aria-label": "Pick color",
3683
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Pipette, { className: "tw-size-4" })
3574
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pipette, { className: "tw:size-4" })
3684
3575
  }
3685
3576
  )
3686
3577
  ] });
@@ -3755,24 +3646,24 @@ var ColorInput = ({
3755
3646
  {
3756
3647
  align: "inline-start",
3757
3648
  className: cn(
3758
- { "-tw-ml-7 tw-opacity-0": !value },
3759
- "tw-transition-[opacity,margin]",
3760
- "tw-ease-linear",
3761
- "tw-duration-200"
3649
+ { "tw:-ml-7 tw:opacity-0": !value },
3650
+ "tw:transition-[opacity,margin]",
3651
+ "tw:ease-linear",
3652
+ "tw:duration-200"
3762
3653
  ),
3763
3654
  children: /* @__PURE__ */ jsxRuntime.jsx(
3764
3655
  "div",
3765
3656
  {
3766
3657
  style: isValidSwatch ? { background: swatchColor } : void 0,
3767
3658
  className: cn(
3768
- "tw-size-5",
3769
- "tw-shrink-0",
3770
- "tw-rounded-sm",
3771
- "tw-border",
3772
- "tw-border-solid",
3773
- "tw-border-neutral-300",
3659
+ "tw:size-5",
3660
+ "tw:shrink-0",
3661
+ "tw:rounded-sm",
3662
+ "tw:border",
3663
+ "tw:border-solid",
3664
+ "tw:border-neutral-300",
3774
3665
  {
3775
- "tw-bg-[linear-gradient(to_top_right,transparent_calc(50%_-_1px),theme(colors.red.300)_calc(50%_-_1px),theme(colors.red.300)_calc(50%_+_1px),transparent_calc(50%_+_1px))]": !isValidSwatch
3666
+ "tw:bg-[linear-gradient(to_top_right,transparent_calc(50%_-_1px),theme(colors.red.300)_calc(50%_-_1px),theme(colors.red.300)_calc(50%_+_1px),transparent_calc(50%_+_1px))]": !isValidSwatch
3776
3667
  }
3777
3668
  )
3778
3669
  }
@@ -3799,7 +3690,7 @@ var ColorInput = ({
3799
3690
  onMouseDown: (event) => event.preventDefault(),
3800
3691
  onClick: handleClear,
3801
3692
  "aria-label": "Clear color",
3802
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.X, { className: "tw-size-4" })
3693
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "tw:size-4" })
3803
3694
  }
3804
3695
  ),
3805
3696
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3830,19 +3721,19 @@ var FormGroupError = ({ children, className, errors, ...rest }) => {
3830
3721
  const messages = (errors ?? []).map(toMessage).filter((message) => !!message);
3831
3722
  if (messages.length === 0) return null;
3832
3723
  if (messages.length === 1) return messages[0];
3833
- return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "tw-m-0 tw-flex tw-list-disc tw-flex-col tw-gap-0 tw-pl-4", children: messages.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: message }, index)) });
3724
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "tw:m-0 tw:flex tw:list-disc tw:flex-col tw:gap-0 tw:pl-4", children: messages.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: message }, index)) });
3834
3725
  }, [children, errors]);
3835
3726
  if (!content) return null;
3836
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, role: "alert", className: cn("tw-m-0 tw-text-xs tw-text-destructive", className), children: content });
3727
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, role: "alert", className: cn("tw:m-0 tw:text-xs tw:text-destructive", className), children: content });
3837
3728
  };
3838
- var helpVariants = classVarianceAuthority.cva(["tw-m-0", "tw-text-xs"], {
3729
+ var helpVariants = classVarianceAuthority.cva(["tw:m-0", "tw:text-xs"], {
3839
3730
  defaultVariants: {
3840
3731
  state: "default"
3841
3732
  },
3842
3733
  variants: {
3843
3734
  state: {
3844
- default: ["tw-text-muted-foreground"],
3845
- warning: ["tw-text-warning"]
3735
+ default: ["tw:text-muted-foreground"],
3736
+ warning: ["tw:text-warning"]
3846
3737
  }
3847
3738
  }
3848
3739
  });
@@ -4056,14 +3947,14 @@ var TextInput = ({
4056
3947
  onMouseDown: (e) => e.preventDefault(),
4057
3948
  onClick: handleClear,
4058
3949
  "data-testid": testId.clearButton,
4059
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.X, { className: "tw-size-4" })
3950
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "tw:size-4" })
4060
3951
  }
4061
3952
  ),
4062
3953
  rightSuffix && /* @__PURE__ */ jsxRuntime.jsx(
4063
3954
  "div",
4064
3955
  {
4065
3956
  className: cn({
4066
- "tw-whitespace-nowrap tw-bg-muted tw-px-4 -tw-mr-4 tw-py-2.5": rightSuffixVariant === "addon"
3957
+ "tw:whitespace-nowrap tw:bg-muted tw:px-4 tw:-mr-4 tw:py-2.5": rightSuffixVariant === "addon"
4067
3958
  }),
4068
3959
  children: rightSuffix
4069
3960
  }
@@ -4078,7 +3969,7 @@ var FormGroupTextInput = ({ ref, ...props }) => {
4078
3969
  return /* @__PURE__ */ jsxRuntime.jsx(TextInput, { state, ...props, ref });
4079
3970
  };
4080
3971
  var FormGroup = ({ className, children, state, ...rest }) => {
4081
- return /* @__PURE__ */ jsxRuntime.jsx(FormGroupProvider, { value: { state }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, className: cn("tw-flex tw-flex-col tw-gap-1", className), children }) });
3972
+ return /* @__PURE__ */ jsxRuntime.jsx(FormGroupProvider, { value: { state }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, className: cn("tw:flex tw:flex-col tw:gap-1", className), children }) });
4082
3973
  };
4083
3974
  FormGroup.Help = FormGroupHelp;
4084
3975
  FormGroup.Error = FormGroupError;
@@ -4089,8 +3980,11 @@ FormGroup.Textarea = FormGroupTextarea;
4089
3980
 
4090
3981
  // src/blocks/MarkdownEditor/plugins/toolbar/LinkPanel.tsx
4091
3982
  init_Button2();
3983
+
3984
+ // src/components/ButtonGroup/ButtonGroup.tsx
3985
+ init_utils2();
4092
3986
  var buttonGroupVariant = classVarianceAuthority.cva(
4093
- ["tailwindcss-preflight", "tw-inline-flex", "tw-items-center", "tw-group/button-group"],
3987
+ ["tailwindcss-preflight", "tw:inline-flex", "tw:items-center", "tw:group/button-group"],
4094
3988
  {
4095
3989
  defaultVariants: {
4096
3990
  variant: "inline",
@@ -4100,35 +3994,35 @@ var buttonGroupVariant = classVarianceAuthority.cva(
4100
3994
  variant: {
4101
3995
  inline: [],
4102
3996
  block: [
4103
- "tw-w-full",
4104
- "tw-flex-col",
4105
- "sm:tw-flex-row",
4106
- "[&_a]:tw-flex-1",
4107
- "[&>button:not([data-icon-only=true])]:tw-flex-1"
3997
+ "tw:w-full",
3998
+ "tw:flex-col",
3999
+ "tw:sm:flex-row",
4000
+ "tw:[&_a]:flex-1",
4001
+ "tw:[&>button:not([data-icon-only=true])]:flex-1"
4108
4002
  ]
4109
4003
  },
4110
4004
  space: {
4111
- "extra-small": "tw-gap-1",
4112
- "little-small": "tw-gap-2",
4113
- small: "tw-gap-3",
4114
- medium: "tw-gap-4",
4115
- large: "tw-gap-6",
4005
+ "extra-small": "tw:gap-1",
4006
+ "little-small": "tw:gap-2",
4007
+ small: "tw:gap-3",
4008
+ medium: "tw:gap-4",
4009
+ large: "tw:gap-6",
4116
4010
  compact: [
4117
- "tw-border-collapse",
4118
- "!tw-gap-0",
4011
+ "tw:border-collapse",
4012
+ "tw:!gap-0",
4119
4013
  // ensure that focus visible outline is at the top
4120
- "[&>*:focus-visible]:!tw-z-10",
4121
- "[&>*:not(:first-child)]:tw-rounded-l-none",
4122
- "[&>*:not(:last-child)]:tw-rounded-r-none",
4123
- "[&>*:not(:last-child)]:tw-border-r-0",
4124
- "[&>*:not(:first-child)]:tw-border-l-0",
4014
+ "tw:[&>*:focus-visible]:!z-10",
4015
+ "tw:[&>*:not(:first-child)]:rounded-l-none",
4016
+ "tw:[&>*:not(:last-child)]:rounded-r-none",
4017
+ "tw:[&>*:not(:last-child)]:border-r-0",
4018
+ "tw:[&>*:not(:first-child)]:border-l-0",
4125
4019
  // separator
4126
- "[&>*:not(:first-child)]:before:tw-content",
4127
- "[&>*:not(:first-child)]:before:tw-absolute",
4128
- "[&>*:not(:first-child)]:before:tw-left-0",
4129
- "[&>*:not(:first-child)]:before:tw-h-full",
4130
- "[&>*:not(:first-child)]:before:tw-w-px",
4131
- "[&>*:not(:first-child)]:before:tw-bg-black/10"
4020
+ "tw:[&>*:not(:first-child)]:before:content",
4021
+ "tw:[&>*:not(:first-child)]:before:absolute",
4022
+ "tw:[&>*:not(:first-child)]:before:left-0",
4023
+ "tw:[&>*:not(:first-child)]:before:h-full",
4024
+ "tw:[&>*:not(:first-child)]:before:w-px",
4025
+ "tw:[&>*:not(:first-child)]:before:bg-black/10"
4132
4026
  ]
4133
4027
  }
4134
4028
  }
@@ -4149,7 +4043,7 @@ var ButtonGroup = ({
4149
4043
  ...rest,
4150
4044
  role: "group",
4151
4045
  "data-variant": variant,
4152
- className: buttonGroupVariant({ variant, className, space }),
4046
+ className: cn(buttonGroupVariant({ variant, space }), className),
4153
4047
  children
4154
4048
  }
4155
4049
  );
@@ -4157,8 +4051,8 @@ var ButtonGroup = ({
4157
4051
 
4158
4052
  // src/components/Label/Label.tsx
4159
4053
  init_utils2();
4160
- var Optional = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-muted-foreground", className), children: "(optional)" });
4161
- var Required = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-primary", className), children: "*" });
4054
+ var Optional = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, "aria-hidden": true, className: cn("tw:ml-0.5", "tw:text-muted-foreground", className), children: "(optional)" });
4055
+ var Required = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, "aria-hidden": true, className: cn("tw:ml-0.5", "tw:text-primary", className), children: "*" });
4162
4056
  var Label2 = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(
4163
4057
  RLabel__namespace.Root,
4164
4058
  {
@@ -4166,7 +4060,7 @@ var Label2 = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */
4166
4060
  id: id?.toString(),
4167
4061
  htmlFor: htmlFor?.toString(),
4168
4062
  className: cn(
4169
- "tw-m-0 tw-text-foreground tw-font-normal peer-disabled:tw-opacity-50",
4063
+ "tw:m-0 tw:text-foreground tw:font-normal tw:peer-disabled:opacity-50",
4170
4064
  className
4171
4065
  ),
4172
4066
  children
@@ -4195,9 +4089,9 @@ var ToolbarButton = ({
4195
4089
  disabled,
4196
4090
  onClick,
4197
4091
  className: cn(
4198
- "tw-flex tw-h-7 tw-min-w-7 tw-cursor-pointer tw-items-center tw-justify-center tw-rounded tw-border-0 tw-bg-transparent tw-px-1 tw-text-xs tw-text-muted-foreground",
4199
- "hover:tw-bg-accent disabled:tw-cursor-not-allowed disabled:tw-opacity-30",
4200
- active && "tw-bg-secondary-100 tw-text-secondary-500",
4092
+ "tw:flex tw:h-7 tw:min-w-7 tw:cursor-pointer tw:items-center tw:justify-center tw:rounded tw:border-0 tw:bg-transparent tw:px-1 tw:text-xs tw:text-muted-foreground",
4093
+ "tw:hover:bg-accent tw:disabled:cursor-not-allowed tw:disabled:opacity-30",
4094
+ active && "tw:bg-secondary-100 tw:text-secondary-500",
4201
4095
  extraClassName
4202
4096
  ),
4203
4097
  children
@@ -4269,20 +4163,20 @@ var LinkPanel = ({ editor, isLink }) => {
4269
4163
  active: true,
4270
4164
  onClick: () => editor.dispatchCommand(link.TOGGLE_LINK_COMMAND, null),
4271
4165
  tooltip: "Remove Link",
4272
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Link, { className: "tw-size-4" })
4166
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "tw:size-4" })
4273
4167
  }
4274
4168
  );
4275
4169
  }
4276
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-relative", children: [
4277
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, { active: open, onClick: handleOpen, tooltip: "Insert Link", children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Link, { className: "tw-size-4" }) }),
4170
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw:relative", children: [
4171
+ /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, { active: open, onClick: handleOpen, tooltip: "Insert Link", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "tw:size-4" }) }),
4278
4172
  open && /* @__PURE__ */ jsxRuntime.jsx(
4279
4173
  "div",
4280
4174
  {
4281
4175
  ref: panelRef,
4282
- className: "tw-absolute tw-left-0 tw-top-full tw-z-50 tw-mt-1 tw-w-80 tw-rounded-md tw-border tw-border-border tw-bg-popover tw-p-3 tw-text-popover-foreground tw-shadow-lg",
4283
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex tw-flex-col tw-gap-2", children: [
4176
+ className: "tw:absolute tw:left-0 tw:top-full tw:z-50 tw:mt-1 tw:w-80 tw:rounded-md tw:border tw:border-border tw:bg-popover tw:p-3 tw:text-popover-foreground tw:shadow-lg",
4177
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw:flex tw:flex-col tw:gap-2", children: [
4284
4178
  /* @__PURE__ */ jsxRuntime.jsxs(FormGroup, { children: [
4285
- /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "link-label", className: "tw-mb-1 tw-text-xs", children: "Label" }),
4179
+ /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "link-label", className: "tw:mb-1 tw:text-xs", children: "Label" }),
4286
4180
  /* @__PURE__ */ jsxRuntime.jsx(
4287
4181
  TextInput,
4288
4182
  {
@@ -4297,7 +4191,7 @@ var LinkPanel = ({ editor, isLink }) => {
4297
4191
  )
4298
4192
  ] }),
4299
4193
  /* @__PURE__ */ jsxRuntime.jsxs(FormGroup, { children: [
4300
- /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "link-url", className: "tw-mb-1 tw-text-xs", children: "URL" }),
4194
+ /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "link-url", className: "tw:mb-1 tw:text-xs", children: "URL" }),
4301
4195
  /* @__PURE__ */ jsxRuntime.jsx(
4302
4196
  TextInput,
4303
4197
  {
@@ -4319,7 +4213,7 @@ var LinkPanel = ({ editor, isLink }) => {
4319
4213
  )
4320
4214
  ] });
4321
4215
  };
4322
- var ToolbarDivider = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-mx-0.5 tw-h-5 tw-w-px tw-bg-border" });
4216
+ var ToolbarDivider = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw:mx-0.5 tw:h-5 tw:w-px tw:bg-border" });
4323
4217
  var ELEMENT_FORMAT_TYPES = ["left", "center", "right", "justify", "start", "end", ""];
4324
4218
  var isElementFormatType = (value) => ELEMENT_FORMAT_TYPES.includes(value);
4325
4219
  var toElementFormatType = (value) => isElementFormatType(value) ? value : "left";
@@ -4428,7 +4322,7 @@ var ToolbarPlugin = () => {
4428
4322
  "aria-label": "Formatting options",
4429
4323
  onMouseDown: (e) => e.preventDefault(),
4430
4324
  style: { top: position.top, left: position.left },
4431
- className: "tw-absolute tw-z-[1060] tw-flex tw--translate-y-full tw-items-center tw-gap-0.5 tw-rounded-lg tw-border tw-border-border tw-bg-popover tw-px-1.5 tw-py-1 tw-text-popover-foreground tw-shadow-lg",
4325
+ className: "tw:absolute tw:z-[1060] tw:flex tw:-translate-y-full tw:items-center tw:gap-0.5 tw:rounded-lg tw:border tw:border-border tw:bg-popover tw:px-1.5 tw:py-1 tw:text-popover-foreground tw:shadow-lg",
4432
4326
  children: [
4433
4327
  /* @__PURE__ */ jsxRuntime.jsx(BlockTypeDropdown, { editor, blockType }),
4434
4328
  /* @__PURE__ */ jsxRuntime.jsx(ToolbarDivider, {}),
@@ -4438,7 +4332,7 @@ var ToolbarPlugin = () => {
4438
4332
  active: isBold,
4439
4333
  onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "bold"),
4440
4334
  tooltip: "Bold (Ctrl+B)",
4441
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Bold, { className: "tw-size-4" })
4335
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bold, { className: "tw:size-4" })
4442
4336
  }
4443
4337
  ),
4444
4338
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4447,7 +4341,7 @@ var ToolbarPlugin = () => {
4447
4341
  active: isItalic,
4448
4342
  onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "italic"),
4449
4343
  tooltip: "Italic (Ctrl+I)",
4450
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Italic, { className: "tw-size-4" })
4344
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Italic, { className: "tw:size-4" })
4451
4345
  }
4452
4346
  ),
4453
4347
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4456,7 +4350,7 @@ var ToolbarPlugin = () => {
4456
4350
  active: isUnderline,
4457
4351
  onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "underline"),
4458
4352
  tooltip: "Underline (Ctrl+U)",
4459
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Underline, { className: "tw-size-4" })
4353
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Underline, { className: "tw:size-4" })
4460
4354
  }
4461
4355
  ),
4462
4356
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4465,7 +4359,7 @@ var ToolbarPlugin = () => {
4465
4359
  active: isStrikethrough,
4466
4360
  onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "strikethrough"),
4467
4361
  tooltip: "Strikethrough",
4468
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Strikethrough, { className: "tw-size-4" })
4362
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Strikethrough, { className: "tw:size-4" })
4469
4363
  }
4470
4364
  ),
4471
4365
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4474,7 +4368,7 @@ var ToolbarPlugin = () => {
4474
4368
  active: isCode,
4475
4369
  onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "code"),
4476
4370
  tooltip: "Inline Code",
4477
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Code, { className: "tw-size-4" })
4371
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Code, { className: "tw:size-4" })
4478
4372
  }
4479
4373
  ),
4480
4374
  /* @__PURE__ */ jsxRuntime.jsx(ToolbarDivider, {}),
@@ -4492,7 +4386,7 @@ var ToolbarPlugin = () => {
4492
4386
  }
4493
4387
  },
4494
4388
  tooltip: "Bullet List",
4495
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.List, { className: "tw-size-4" })
4389
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.List, { className: "tw:size-4" })
4496
4390
  }
4497
4391
  ),
4498
4392
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4507,7 +4401,7 @@ var ToolbarPlugin = () => {
4507
4401
  }
4508
4402
  },
4509
4403
  tooltip: "Numbered List",
4510
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ListOrdered, { className: "tw-size-4" })
4404
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ListOrdered, { className: "tw:size-4" })
4511
4405
  }
4512
4406
  ),
4513
4407
  /* @__PURE__ */ jsxRuntime.jsx(ToolbarDivider, {}),
@@ -4529,7 +4423,7 @@ var ToolbarPlugin = () => {
4529
4423
  });
4530
4424
  },
4531
4425
  tooltip: "Quote",
4532
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Quote, { className: "tw-size-4" })
4426
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Quote, { className: "tw:size-4" })
4533
4427
  }
4534
4428
  ),
4535
4429
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4548,7 +4442,7 @@ var ToolbarPlugin = () => {
4548
4442
  });
4549
4443
  },
4550
4444
  tooltip: "Code Block",
4551
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.SquareCode, { className: "tw-size-4" })
4445
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SquareCode, { className: "tw:size-4" })
4552
4446
  }
4553
4447
  )
4554
4448
  ]
@@ -4560,33 +4454,33 @@ var ToolbarPlugin = () => {
4560
4454
 
4561
4455
  // src/blocks/MarkdownEditor/theme.ts
4562
4456
  var editorTheme = {
4563
- link: "tw-cursor-pointer !tw-text-primary tw-underline",
4457
+ link: "tw:cursor-pointer tw:!text-primary tw:underline",
4564
4458
  text: {
4565
- bold: "tw-font-bold",
4566
- italic: "tw-italic",
4567
- strikethrough: "tw-line-through",
4568
- underline: "tw-underline",
4569
- code: "tw-rounded tw-bg-muted tw-px-1 tw-py-0.5 tw-font-mono tw-text-[0.85em]"
4459
+ bold: "tw:font-bold",
4460
+ italic: "tw:italic",
4461
+ strikethrough: "tw:line-through",
4462
+ underline: "tw:underline",
4463
+ code: "tw:rounded tw:bg-muted tw:px-1 tw:py-0.5 tw:font-mono tw:text-[0.85em]"
4570
4464
  },
4571
4465
  list: {
4572
- ol: "!tw-list-decimal",
4573
- ul: "!tw-list-disc",
4574
- checklist: "!tw-list-none !tw-pl-0",
4466
+ ol: "tw:!list-decimal",
4467
+ ul: "tw:!list-disc",
4468
+ checklist: "tw:!list-none tw:!pl-0",
4575
4469
  listitemChecked: [
4576
- "tw-relative !tw-pl-6 tw-list-none tw-outline-none tw-line-through tw-text-muted-foreground",
4577
- 'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
4578
- "before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid",
4579
- "before:tw-bg-primary before:tw-border-primary before:tw-cursor-pointer",
4580
- 'after:tw-content-[""] after:tw-absolute after:tw-left-[5.5px] after:tw-top-[5.5px]',
4581
- "after:tw-w-1 after:tw-h-2 after:tw-border-primary-foreground after:tw-border-solid",
4582
- "after:tw-border-r-[1.5px] after:tw-border-b-[1.5px] after:tw-border-t-0 after:tw-border-l-0",
4583
- "after:tw-rotate-45"
4470
+ "tw:relative tw:!pl-6 tw:list-none tw:outline-hidden tw:line-through tw:text-muted-foreground",
4471
+ 'tw:before:content-[""] tw:before:absolute tw:before:left-0 tw:before:top-[3px]',
4472
+ "tw:before:size-4 tw:before:rounded tw:before:border tw:before:border-solid",
4473
+ "tw:before:bg-primary tw:before:border-primary tw:before:cursor-pointer",
4474
+ 'tw:after:content-[""] tw:after:absolute tw:after:left-[5.5px] tw:after:top-[5.5px]',
4475
+ "tw:after:w-1 tw:after:h-2 tw:after:border-primary-foreground tw:after:border-solid",
4476
+ "tw:after:border-r-[1.5px] tw:after:border-b-[1.5px] tw:after:border-t-0 tw:after:border-l-0",
4477
+ "tw:after:rotate-45"
4584
4478
  ].join(" "),
4585
4479
  listitemUnchecked: [
4586
- "tw-relative !tw-pl-6 tw-list-none tw-outline-none",
4587
- 'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
4588
- "before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid",
4589
- "before:tw-border-input before:tw-bg-background before:tw-cursor-pointer"
4480
+ "tw:relative tw:!pl-6 tw:list-none tw:outline-hidden",
4481
+ 'tw:before:content-[""] tw:before:absolute tw:before:left-0 tw:before:top-[3px]',
4482
+ "tw:before:size-4 tw:before:rounded tw:before:border tw:before:border-solid",
4483
+ "tw:before:border-input tw:before:bg-background tw:before:cursor-pointer"
4590
4484
  ].join(" ")
4591
4485
  }
4592
4486
  };
@@ -4650,16 +4544,16 @@ var MarkdownEditor = ({
4650
4544
  "div",
4651
4545
  {
4652
4546
  className: cn(
4653
- !compact && "tw-prose",
4654
- // Compact mode drops `tw-prose`, so Lexical's <p> wrappers fall back to the browser
4547
+ !compact && "tw:prose",
4548
+ // Compact mode drops `tw:prose`, so Lexical's <p> wrappers fall back to the browser
4655
4549
  // default `margin: 1em 0` — visually huge at heading sizes. Zero them, and use the
4656
4550
  // adjacent-sibling selector for paragraph spacing so single-paragraph blocks (titles,
4657
4551
  // short descriptions) stay tight while multi-paragraph blocks still breathe.
4658
- compact && "[&_p]:tw-m-0 [&_p+p]:tw-mt-2",
4552
+ compact && "tw:[&_p]:m-0 tw:[&_p+p]:mt-2",
4659
4553
  // Display-state clamp: 2 lines, dropped in focus-within so editing expands to full
4660
4554
  // height. line-clamp is self-gating (no effect below 3 lines), so short/empty content
4661
4555
  // renders clean; a CSS fade can't gate on overflow without JS, so it's omitted.
4662
- clampDisplay && "[&:not(:focus-within)]:tw-line-clamp-2",
4556
+ clampDisplay && "tw:[&:not(:focus-within)]:line-clamp-2",
4663
4557
  className
4664
4558
  ),
4665
4559
  onBlur: handleBlur,
@@ -4669,12 +4563,12 @@ var MarkdownEditor = ({
4669
4563
  "div",
4670
4564
  {
4671
4565
  className: cn(
4672
- "tw-relative tw-rounded-md tw-transition-colors",
4566
+ "tw:relative tw:rounded-md tw:transition-colors",
4673
4567
  // In compact mode the padding lets the hover bg / focus ring extend past the text,
4674
4568
  // but a matching negative margin shifts the wrapper outward so the text itself stays
4675
4569
  // aligned with the parent's content edge (i.e. with where static text would render).
4676
- compact ? "tw-px-1.5 tw-py-0.5 -tw-mx-1.5 -tw-my-0.5" : "tw-p-2",
4677
- editable && "tw-cursor-text hover:tw-bg-muted focus-within:tw-ring-2 focus-within:tw-ring-ring/40"
4570
+ compact ? "tw:px-1.5 tw:py-0.5 tw:-mx-1.5 tw:-my-0.5" : "tw:p-2",
4571
+ editable && "tw:cursor-text tw:hover:bg-muted tw:focus-within:ring-2 tw:focus-within:ring-ring/40"
4678
4572
  ),
4679
4573
  children: /* @__PURE__ */ jsxRuntime.jsx(
4680
4574
  LexicalRichTextPlugin.RichTextPlugin,
@@ -4682,15 +4576,15 @@ var MarkdownEditor = ({
4682
4576
  contentEditable: /* @__PURE__ */ jsxRuntime.jsx(
4683
4577
  LexicalContentEditable.ContentEditable,
4684
4578
  {
4685
- className: cn("tw-outline-none", useDefaultMinHeight && "tw-min-h-[100px]"),
4579
+ className: cn("tw:outline-hidden", useDefaultMinHeight && "tw:min-h-[100px]"),
4686
4580
  style: customMinHeight,
4687
4581
  "aria-placeholder": placeholder ?? "",
4688
4582
  placeholder: placeholder ? /* @__PURE__ */ jsxRuntime.jsx(
4689
4583
  "div",
4690
4584
  {
4691
4585
  className: cn(
4692
- "tw-pointer-events-none tw-absolute tw-select-none tw-text-muted-foreground",
4693
- compact ? "tw-left-1.5 tw-top-0.5" : "tw-left-2 tw-top-[calc(0.5rem+0.35em)]"
4586
+ "tw:pointer-events-none tw:absolute tw:select-none tw:text-muted-foreground",
4587
+ compact ? "tw:left-1.5 tw:top-0.5" : "tw:left-2 tw:top-[calc(0.5rem+0.35em)]"
4694
4588
  ),
4695
4589
  children: placeholder
4696
4590
  }