@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
@@ -1,11 +1,11 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { extendTailwindMerge } from 'tailwind-merge';
3
3
  import { keboolaLegacySidebar, keboolaLegacyTopnav } from '@keboola/brand-registry';
4
- import { createContext, lazy, Suspense, use, useId, useState, useRef, useEffect, forwardRef, useCallback, useMemo } from 'react';
4
+ import { createContext, lazy, Suspense, use, useId, useState, useRef, useEffect, useCallback, useMemo } from 'react';
5
5
  import { Portal, Content, Root, Trigger } from '@radix-ui/react-tooltip';
6
6
  import { cva } from 'class-variance-authority';
7
7
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
8
- import * as lucide_react_star from 'lucide-react';
8
+ import { AlignLeft, AlignCenter, AlignRight, AlignJustify, SquareCode, Quote, ListOrdered, List, Heading3, Heading2, Heading1, Type, Bold, Italic, Underline, Strikethrough, Code, Minimize2, Maximize2, ChevronDown, Link, X, Copy, Loader2, AlertCircle, CircleCheck, Info, AlertTriangle, ChevronRight, Pipette, ToggleRight, Circle, Check } from 'lucide-react';
9
9
  import { Root as Root$2, Slottable } from '@radix-ui/react-slot';
10
10
  import { createPortal } from 'react-dom';
11
11
  import DOMPurify from 'dompurify';
@@ -41,9 +41,7 @@ import TextareaAutosize from 'react-textarea-autosize';
41
41
  import * as RLabel from '@radix-ui/react-label';
42
42
 
43
43
  var __defProp = Object.defineProperty;
44
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
45
44
  var __getOwnPropNames = Object.getOwnPropertyNames;
46
- var __hasOwnProp = Object.prototype.hasOwnProperty;
47
45
  var __esm = (fn, res) => function __init() {
48
46
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
49
47
  };
@@ -51,20 +49,11 @@ var __export = (target, all) => {
51
49
  for (var name in all)
52
50
  __defProp(target, name, { get: all[name], enumerable: true });
53
51
  };
54
- var __copyProps = (to, from, except, desc) => {
55
- if (from && typeof from === "object" || typeof from === "function") {
56
- for (let key of __getOwnPropNames(from))
57
- if (!__hasOwnProp.call(to, key) && key !== except)
58
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
59
- }
60
- return to;
61
- };
62
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
63
52
  var twMerge, cn;
64
53
  var init_classNames = __esm({
65
54
  "src/utils/classNames.ts"() {
66
55
  twMerge = extendTailwindMerge({
67
- prefix: "tw-"
56
+ prefix: "tw"
68
57
  });
69
58
  cn = (...classes) => twMerge(clsx(...classes));
70
59
  }
@@ -183,39 +172,39 @@ var init_TooltipContent = __esm({
183
172
  tooltipVariants = cva(
184
173
  [
185
174
  "tailwindcss-preflight",
186
- "tw-inline-block",
187
- "tw-break-anywhere",
188
- "tw-max-h-96",
189
- "tw-overflow-y-auto",
190
- "tw-z-[1060]",
175
+ "tw:inline-block",
176
+ "tw:break-anywhere",
177
+ "tw:max-h-96",
178
+ "tw:overflow-y-auto",
179
+ "tw:z-[1060]",
191
180
  // legacy (dark) chrome — default
192
- "tw-rounded",
193
- "tw-bg-neutral-800",
194
- "tw-text-white",
181
+ "tw:rounded",
182
+ "tw:bg-neutral-800",
183
+ "tw:text-white",
195
184
  // argo chrome overrides — semantic floating-panel tokens
196
- "data-[argo=true]:tw-rounded-2xl",
197
- "data-[argo=true]:tw-border",
198
- "data-[argo=true]:tw-border-solid",
199
- "data-[argo=true]:tw-border-border",
200
- "data-[argo=true]:tw-bg-popover",
201
- "data-[argo=true]:tw-text-popover-foreground",
202
- "data-[argo=true]:tw-shadow-md",
185
+ "tw:data-[argo=true]:rounded-2xl",
186
+ "tw:data-[argo=true]:border",
187
+ "tw:data-[argo=true]:border-solid",
188
+ "tw:data-[argo=true]:border-border",
189
+ "tw:data-[argo=true]:bg-popover",
190
+ "tw:data-[argo=true]:text-popover-foreground",
191
+ "tw:data-[argo=true]:shadow-md",
203
192
  // argo open animation
204
- "data-[argo=true]:data-[state=delayed-open]:tw-animate-in",
205
- "data-[argo=true]:data-[state=instant-open]:tw-animate-in",
206
- "data-[argo=true]:data-[state=delayed-open]:tw-fade-in-0",
207
- "data-[argo=true]:data-[state=instant-open]:tw-fade-in-0",
208
- "data-[argo=true]:data-[state=delayed-open]:tw-zoom-in-95",
209
- "data-[argo=true]:data-[state=instant-open]:tw-zoom-in-95",
193
+ "tw:data-[argo=true]:data-[state=delayed-open]:animate-in",
194
+ "tw:data-[argo=true]:data-[state=instant-open]:animate-in",
195
+ "tw:data-[argo=true]:data-[state=delayed-open]:fade-in-0",
196
+ "tw:data-[argo=true]:data-[state=instant-open]:fade-in-0",
197
+ "tw:data-[argo=true]:data-[state=delayed-open]:zoom-in-95",
198
+ "tw:data-[argo=true]:data-[state=instant-open]:zoom-in-95",
210
199
  // argo closed animation
211
- "data-[argo=true]:data-[state=closed]:tw-animate-out",
212
- "data-[argo=true]:data-[state=closed]:tw-fade-out-0",
213
- "data-[argo=true]:data-[state=closed]:tw-zoom-out-95",
200
+ "tw:data-[argo=true]:data-[state=closed]:animate-out",
201
+ "tw:data-[argo=true]:data-[state=closed]:fade-out-0",
202
+ "tw:data-[argo=true]:data-[state=closed]:zoom-out-95",
214
203
  // argo position animation
215
- "data-[argo=true]:data-[side=bottom]:tw-slide-in-from-top-2",
216
- "data-[argo=true]:data-[side=left]:tw-slide-in-from-right-2",
217
- "data-[argo=true]:data-[side=right]:tw-slide-in-from-left-2",
218
- "data-[argo=true]:data-[side=top]:tw-slide-in-from-bottom-2"
204
+ "tw:data-[argo=true]:data-[side=bottom]:slide-in-from-top-2",
205
+ "tw:data-[argo=true]:data-[side=left]:slide-in-from-right-2",
206
+ "tw:data-[argo=true]:data-[side=right]:slide-in-from-left-2",
207
+ "tw:data-[argo=true]:data-[side=top]:slide-in-from-bottom-2"
219
208
  ],
220
209
  {
221
210
  defaultVariants: {
@@ -224,22 +213,26 @@ var init_TooltipContent = __esm({
224
213
  variants: {
225
214
  variant: {
226
215
  action: [
227
- "tw-max-w-fit",
228
- "tw-px-3",
229
- "tw-py-2",
230
- "tw-text-center",
231
- "tw-text-xs",
232
- "tw-font-medium",
233
- "tw-uppercase",
234
- "tw-tracking-wider"
216
+ "tw:max-w-fit",
217
+ "tw:px-3",
218
+ "tw:py-2",
219
+ "tw:text-center",
220
+ "tw:text-xs",
221
+ "tw:font-medium",
222
+ // Legacy chrome uppercases the action tooltip; the Keboola V2 brand
223
+ // (`data-brand="keboola"`) renders it in standard case instead.
224
+ "tw:uppercase",
225
+ "tw:tracking-wider",
226
+ "tw:[[data-brand=keboola]_&]:normal-case",
227
+ "tw:[[data-brand=keboola]_&]:tracking-normal"
235
228
  ],
236
229
  explanatory: [
237
- "tw-max-w-80",
238
- "tw-px-4",
239
- "tw-py-3",
240
- "tw-text-left",
241
- "tw-text-sm",
242
- "tw-font-normal"
230
+ "tw:max-w-80",
231
+ "tw:px-4",
232
+ "tw:py-3",
233
+ "tw:text-left",
234
+ "tw:text-sm",
235
+ "tw:font-normal"
243
236
  ]
244
237
  }
245
238
  }
@@ -324,8 +317,8 @@ var init_TooltipTrigger = __esm({
324
317
  // (merged in via Slot) activates Tailwind's preflight inside the
325
318
  // span, which sets `svg { display: block }` — without an inline-flex
326
319
  // container that would stack any bare Lucide icon onto its own
327
- // line. `tw-inline-flex tw-items-center` keeps icon + text aligned.
328
- /* @__PURE__ */ jsx("span", { className: "tw-inline-flex tw-items-center", children })
320
+ // line. `tw:inline-flex tw:items-center` keeps icon + text aligned.
321
+ /* @__PURE__ */ jsx("span", { className: "tw:inline-flex tw:items-center", children })
329
322
  )
330
323
  }
331
324
  );
@@ -500,31 +493,31 @@ var init_Skeleton = __esm({
500
493
  "src/components/Skeleton/Skeleton.tsx"() {
501
494
  init_utils2();
502
495
  HEIGHT_CLASS_NAME = {
503
- xxs: "tw-h-3 tw-rounded",
504
- xs: "tw-h-4 tw-rounded",
505
- sm: "tw-h-5 tw-rounded",
506
- md: "tw-h-6 tw-rounded-md",
507
- lg: "tw-h-8 tw-rounded-lg",
508
- xl: "tw-h-10 tw-rounded-lg",
509
- "2xl": "tw-h-12 tw-rounded-lg"
496
+ xxs: "tw:h-3 tw:rounded",
497
+ xs: "tw:h-4 tw:rounded",
498
+ sm: "tw:h-5 tw:rounded",
499
+ md: "tw:h-6 tw:rounded-md",
500
+ lg: "tw:h-8 tw:rounded-lg",
501
+ xl: "tw:h-10 tw:rounded-lg",
502
+ "2xl": "tw:h-12 tw:rounded-lg"
510
503
  };
511
504
  ANIMATION_CLASS_NAME = cn(
512
505
  // base styles
513
- "tw-relative",
514
- "tw-overflow-hidden",
515
- "tw-pointer-events-none",
516
- "tw-bg-skeleton",
506
+ "tw:relative",
507
+ "tw:overflow-hidden",
508
+ "tw:pointer-events-none",
509
+ "tw:bg-skeleton",
517
510
  // before
518
- 'before:tw-content-[""]',
519
- "before:tw-opacity-100",
520
- "before:tw-absolute",
521
- "before:tw-inset-0",
522
- "before:-tw-translate-x-full",
523
- "before:tw-animate-[shimmer_2s_infinite]",
524
- "before:tw-bg-gradient-to-r",
525
- "before:tw-from-transparent",
526
- "before:tw-to-transparent",
527
- "before:tw-via-white/40"
511
+ 'tw:before:content-[""]',
512
+ "tw:before:opacity-100",
513
+ "tw:before:absolute",
514
+ "tw:before:inset-0",
515
+ "tw:before:-translate-x-full",
516
+ "tw:before:animate-[shimmer_2s_infinite]",
517
+ "tw:before:bg-gradient-to-r",
518
+ "tw:before:from-transparent",
519
+ "tw:before:to-transparent",
520
+ "tw:before:via-white/40"
528
521
  );
529
522
  Skeleton = ({ height = "md", className, count = 1 }) => {
530
523
  const prefixId = useId();
@@ -540,129 +533,8 @@ var init_Skeleton = __esm({
540
533
  };
541
534
  }
542
535
  });
543
- var Google;
544
- var init_Google = __esm({
545
- "src/icons/Google.tsx"() {
546
- init_utils2();
547
- Google = forwardRef(
548
- ({ size = 24, className, children, ...rest }, ref) => /* @__PURE__ */ jsxs(
549
- "svg",
550
- {
551
- ref,
552
- xmlns: "http://www.w3.org/2000/svg",
553
- width: size,
554
- height: size,
555
- viewBox: "12 10 20 20",
556
- fill: "none",
557
- className: cn("lucide", className),
558
- ...rest,
559
- children: [
560
- /* @__PURE__ */ jsx(
561
- "path",
562
- {
563
- 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",
564
- fill: "#4285F4"
565
- }
566
- ),
567
- /* @__PURE__ */ jsx(
568
- "path",
569
- {
570
- 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",
571
- fill: "#34A853"
572
- }
573
- ),
574
- /* @__PURE__ */ jsx(
575
- "path",
576
- {
577
- 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",
578
- fill: "#FBBC04"
579
- }
580
- ),
581
- /* @__PURE__ */ jsx(
582
- "path",
583
- {
584
- 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",
585
- fill: "#EA4335"
586
- }
587
- ),
588
- children
589
- ]
590
- }
591
- )
592
- );
593
- Google.displayName = "Google";
594
- }
595
- });
596
- var Keboola;
597
- var init_Keboola = __esm({
598
- "src/icons/Keboola.tsx"() {
599
- init_utils2();
600
- Keboola = forwardRef(
601
- ({ size = 24, color = "currentColor", className, children, ...rest }, ref) => /* @__PURE__ */ jsxs(
602
- "svg",
603
- {
604
- ref,
605
- xmlns: "http://www.w3.org/2000/svg",
606
- width: size,
607
- height: size,
608
- viewBox: "0 0 300 512",
609
- overflow: "visible",
610
- fill: color,
611
- className: cn("lucide", className),
612
- ...rest,
613
- children: [
614
- /* @__PURE__ */ 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" }),
615
- children
616
- ]
617
- }
618
- )
619
- );
620
- Keboola.displayName = "Keboola";
621
- }
622
- });
623
- var Microsoft;
624
- var init_Microsoft = __esm({
625
- "src/icons/Microsoft.tsx"() {
626
- init_utils2();
627
- Microsoft = forwardRef(
628
- ({ size = 24, className, children, ...rest }, ref) => /* @__PURE__ */ jsxs(
629
- "svg",
630
- {
631
- ref,
632
- xmlns: "http://www.w3.org/2000/svg",
633
- width: size,
634
- height: size,
635
- viewBox: "0 0 21 21",
636
- fill: "none",
637
- className: cn("lucide", className),
638
- ...rest,
639
- children: [
640
- /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: "10", height: "10", fill: "#F25022" }),
641
- /* @__PURE__ */ jsx("rect", { x: "11", y: "0", width: "10", height: "10", fill: "#7FBA00" }),
642
- /* @__PURE__ */ jsx("rect", { x: "0", y: "11", width: "10", height: "10", fill: "#00A4EF" }),
643
- /* @__PURE__ */ jsx("rect", { x: "11", y: "11", width: "10", height: "10", fill: "#FFB900" }),
644
- children
645
- ]
646
- }
647
- )
648
- );
649
- Microsoft.displayName = "Microsoft";
650
- }
651
- });
652
-
653
- // src/icons/index.ts
654
- var icons_exports = {};
655
- __export(icons_exports, {
656
- Google: () => Google,
657
- Keboola: () => Keboola,
658
- Microsoft: () => Microsoft
659
- });
660
536
  var init_icons = __esm({
661
537
  "src/icons/index.ts"() {
662
- __reExport(icons_exports, lucide_react_star);
663
- init_Google();
664
- init_Keboola();
665
- init_Microsoft();
666
538
  }
667
539
  });
668
540
  var variants, argoVariants;
@@ -671,43 +543,46 @@ var init_styles = __esm({
671
543
  variants = cva(
672
544
  [
673
545
  "tailwindcss-preflight",
674
- "tw-group/button",
675
- "tw-border-box",
546
+ "tw:group/button",
547
+ "tw:border-box",
676
548
  // layout
677
- "tw-relative",
678
- "tw-flex",
679
- "tw-items-center",
680
- "tw-justify-center",
681
- "tw-gap-2",
549
+ "tw:relative",
550
+ "tw:flex",
551
+ "tw:items-center",
552
+ "tw:justify-center",
553
+ "tw:gap-2",
682
554
  // text — chrome weight/tracking are brand-overridable tokens
683
- // (`--font-weight-medium` / `--letter-spacing-chrome`); casing stays `tw-uppercase`.
684
- "tw-text-xs",
685
- "tw-leading-5",
686
- "tw-font-medium",
687
- "tw-tracking-chrome",
688
- "tw-uppercase",
555
+ // (`--font-weight-medium` / `--letter-spacing-chrome`). Casing: standard case is
556
+ // the default; only legacy brands (`keboola-legacy-*`) uppercase the chrome, so
557
+ // modern brands (incl. Keboola V2) read naturally. Mirrors the V2 standard-case
558
+ // treatment shipped for Tooltip/Badge (PR 7629).
559
+ "tw:text-xs",
560
+ "tw:leading-5",
561
+ "tw:font-medium",
562
+ "tw:[[data-brand^=keboola-legacy]_&]:tracking-chrome",
563
+ "tw:[[data-brand^=keboola-legacy]_&]:uppercase",
689
564
  // border — legacy (non-argo) chrome uses a fixed radius, not the brand token.
690
- "tw-rounded",
691
- "tw-border",
692
- "tw-border-transparent",
565
+ "tw:rounded",
566
+ "tw:border",
567
+ "tw:border-transparent",
693
568
  // styling
694
- "tw-shadow-none",
695
- "[a]:tw-cursor-pointer",
569
+ "tw:shadow-none",
570
+ "tw:[a]:cursor-pointer",
696
571
  // explicitly set for anchor
697
- "focus-visible:tw-outline",
698
- "focus-visible:tw-outline-1",
699
- "focus-visible:-tw-outline-offset-1",
700
- "focus-visible:tw-outline-ring",
701
- "focus-visible:tw-ring-4",
702
- "focus-visible:tw-ring-ring/30",
572
+ "tw:focus-visible:outline",
573
+ "tw:focus-visible:outline-1",
574
+ "tw:focus-visible:-outline-offset-1",
575
+ "tw:focus-visible:outline-ring",
576
+ "tw:focus-visible:ring-4",
577
+ "tw:focus-visible:ring-ring/30",
703
578
  // disabled
704
- "disabled:tw-opacity-40",
705
- "disabled:tw-cursor-not-allowed",
579
+ "tw:disabled:opacity-40",
580
+ "tw:disabled:cursor-not-allowed",
706
581
  // anchor support
707
- "!tw-no-underline",
708
- "aria-disabled:tw-opacity-40",
709
- "aria-disabled:tw-cursor-not-allowed",
710
- "[&_svg]:tw-shrink-0"
582
+ "tw:!no-underline",
583
+ "tw:aria-disabled:opacity-40",
584
+ "tw:aria-disabled:cursor-not-allowed",
585
+ "tw:[&_svg]:shrink-0"
711
586
  ],
712
587
  {
713
588
  defaultVariants: {
@@ -717,113 +592,113 @@ var init_styles = __esm({
717
592
  },
718
593
  variants: {
719
594
  block: {
720
- true: ["tw-w-full"]
595
+ true: ["tw:w-full"]
721
596
  },
722
597
  variant: {
723
598
  primary: [
724
- "tw-text-white",
725
- "tw-bg-primary-500",
726
- "focus:tw-text-white",
727
- "hover:tw-text-white",
728
- "hover:not-disabled:tw-bg-primary-600",
729
- "active:not-disabled:tw-bg-primary-800",
599
+ "tw:text-white",
600
+ "tw:bg-primary-500",
601
+ "tw:focus:text-white",
602
+ "tw:hover:text-white",
603
+ "tw:hover:not-disabled:bg-primary-600",
604
+ "tw:active:not-disabled:bg-primary-800",
730
605
  // anchor disabled override
731
- "aria-disabled:!tw-bg-primary-500"
606
+ "tw:aria-disabled:!bg-primary-500"
732
607
  ],
733
608
  secondary: [
734
- "tw-text-white",
735
- "tw-bg-secondary-500",
736
- "focus:tw-text-white",
737
- "hover:tw-text-white",
738
- "hover:not-disabled:tw-bg-secondary-700",
739
- "active:not-disabled:tw-bg-secondary-800",
609
+ "tw:text-white",
610
+ "tw:bg-secondary-500",
611
+ "tw:focus:text-white",
612
+ "tw:hover:text-white",
613
+ "tw:hover:not-disabled:bg-secondary-700",
614
+ "tw:active:not-disabled:bg-secondary-800",
740
615
  // anchor disabled override
741
- "aria-disabled:!tw-bg-secondary-500"
616
+ "tw:aria-disabled:!bg-secondary-500"
742
617
  ],
743
618
  danger: [
744
- "tw-text-white",
745
- "tw-bg-error-500",
746
- "focus:tw-text-white",
747
- "hover:tw-text-white",
748
- "hover:not-disabled:tw-bg-error-600",
749
- "active:not-disabled:tw-bg-error-700",
619
+ "tw:text-white",
620
+ "tw:bg-error-500",
621
+ "tw:focus:text-white",
622
+ "tw:hover:text-white",
623
+ "tw:hover:not-disabled:bg-error-600",
624
+ "tw:active:not-disabled:bg-error-700",
750
625
  // anchor disabled override
751
- "aria-disabled:!tw-bg-error-500"
626
+ "tw:aria-disabled:!bg-error-500"
752
627
  ],
753
628
  invisible: [
754
- "tw-text-neutral-800",
755
- "tw-bg-transparent",
756
- "focus:tw-text-neutral-800",
757
- "hover:not-disabled:tw-bg-neutral-100",
758
- "hover:tw-text-neutral-800",
759
- "active:not-disabled:tw-bg-neutral-150",
629
+ "tw:text-neutral-800",
630
+ "tw:bg-transparent",
631
+ "tw:focus:text-neutral-800",
632
+ "tw:hover:not-disabled:bg-neutral-100",
633
+ "tw:hover:text-neutral-800",
634
+ "tw:active:not-disabled:bg-neutral-150",
760
635
  // contrasting icon on hover/active
761
- "[&_svg]:tw-text-neutral-400",
762
- "[&_svg]:hover:not-disabled:tw-text-secondary-600",
763
- "[&_svg]:active:not-disabled:tw-text-secondary-600",
636
+ "tw:[&_svg]:text-neutral-400",
637
+ "tw:hover:not-disabled:[&_svg]:text-secondary-600",
638
+ "tw:active:not-disabled:[&_svg]:text-secondary-600",
764
639
  // anchor disabled override
765
- "aria-disabled:!tw-bg-transparent"
640
+ "tw:aria-disabled:!bg-transparent"
766
641
  ],
767
642
  outline: [
768
- "tw-text-neutral-800",
769
- "tw-bg-white",
643
+ "tw:text-neutral-800",
644
+ "tw:bg-white",
770
645
  // border
771
- "!tw-border-neutral-200",
772
- "hover:tw-text-neutral-800",
773
- "focus:tw-text-neutral-800",
774
- "hover:not-disabled:!tw-border-neutral-300",
775
- "hover:not-disabled:tw-bg-neutral-100",
776
- "active:not-disabled:tw-bg-neutral-200",
646
+ "tw:!border-neutral-200",
647
+ "tw:hover:text-neutral-800",
648
+ "tw:focus:text-neutral-800",
649
+ "tw:hover:not-disabled:!border-neutral-300",
650
+ "tw:hover:not-disabled:bg-neutral-100",
651
+ "tw:active:not-disabled:bg-neutral-200",
777
652
  // contrasting icon hover, same as invisible
778
- "[&_svg]:tw-text-neutral-400",
779
- "[&_svg]:not-disabled:hover:tw-text-secondary-600",
780
- "[&_svg]:active:not-disabled:tw-text-secondary-600",
653
+ "tw:[&_svg]:text-neutral-400",
654
+ "tw:not-disabled:hover:[&_svg]:text-secondary-600",
655
+ "tw:active:not-disabled:[&_svg]:text-secondary-600",
781
656
  // anchor disabled override
782
- "aria-disabled:!tw-bg-white",
783
- "aria-disabled:!tw-border-neutral-200"
657
+ "tw:aria-disabled:!bg-white",
658
+ "tw:aria-disabled:!border-neutral-200"
784
659
  ],
785
660
  inline: [
786
- "tw-text-neutral-800",
787
- "tw-bg-transparent",
788
- "tw-rounded-full",
789
- "[&_svg]:tw-text-neutral-400",
790
- "[&_svg]:not-disabled:hover:tw-text-secondary-600",
791
- "[&_svg]:not-disabled:focus:tw-text-secondary-600"
661
+ "tw:text-neutral-800",
662
+ "tw:bg-transparent",
663
+ "tw:rounded-full",
664
+ "tw:[&_svg]:text-neutral-400",
665
+ "tw:not-disabled:hover:[&_svg]:text-secondary-600",
666
+ "tw:not-disabled:focus:[&_svg]:text-secondary-600"
792
667
  ]
793
668
  },
794
669
  size: {
795
670
  medium: [
796
- "tw-max-h-10",
797
- "tw-min-h-10",
798
- "tw-px-4",
799
- "tw-py-2.5",
800
- '[&_svg:not([class*="tw-size-"])]:tw-size-4'
671
+ "tw:max-h-10",
672
+ "tw:min-h-10",
673
+ "tw:px-4",
674
+ "tw:py-2.5",
675
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4'
801
676
  ],
802
677
  small: [
803
- "tw-max-h-8",
804
- "tw-min-h-8",
805
- "tw-px-4",
806
- "tw-py-1.5",
807
- '[&_svg:not([class*="tw-size-"])]:tw-size-4'
678
+ "tw:max-h-8",
679
+ "tw:min-h-8",
680
+ "tw:px-4",
681
+ "tw:py-1.5",
682
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4'
808
683
  ],
809
684
  large: [
810
- "tw-max-h-12",
811
- "tw-min-h-12",
812
- "tw-px-4",
813
- "tw-py-3.5",
814
- '[&_svg:not([class*="tw-size-"])]:tw-size-4'
685
+ "tw:max-h-12",
686
+ "tw:min-h-12",
687
+ "tw:px-4",
688
+ "tw:py-3.5",
689
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4'
815
690
  ],
816
- "icon-lg": ["tw-size-12", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-6'],
817
- icon: ["tw-size-10", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
818
- "icon-sm": ["tw-size-8", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
819
- "icon-xs": ["tw-size-6", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
691
+ "icon-lg": ["tw:size-12", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-6'],
692
+ icon: ["tw:size-10", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-4'],
693
+ "icon-sm": ["tw:size-8", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-4'],
694
+ "icon-xs": ["tw:size-6", "tw:p-0", 'tw:[&_svg:not([class*="tw:size-"])]:size-4'],
820
695
  "icon-2xs": [
821
- "!tw-inline-flex",
822
- "tw-size-5",
823
- "tw-max-h-5",
824
- '[&_svg:not([class*="tw-size-"])]:tw-size-3'
696
+ "tw:!inline-flex",
697
+ "tw:size-5",
698
+ "tw:max-h-5",
699
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-3'
825
700
  ],
826
- "icon-3xs": ["tw-h-fit", "tw-w-fit", '[&_svg:not([class*="tw-size-"])]:tw-size-4']
701
+ "icon-3xs": ["tw:h-fit", "tw:w-fit", 'tw:[&_svg:not([class*="tw:size-"])]:size-4']
827
702
  }
828
703
  }
829
704
  }
@@ -832,37 +707,37 @@ var init_styles = __esm({
832
707
  [
833
708
  "tailwindcss-preflight",
834
709
  // layout
835
- "tw-relative",
836
- "tw-inline-flex",
837
- "tw-items-center",
838
- "tw-justify-center",
839
- "tw-whitespace-nowrap",
840
- "tw-gap-2",
710
+ "tw:relative",
711
+ "tw:inline-flex",
712
+ "tw:items-center",
713
+ "tw:justify-center",
714
+ "tw:whitespace-nowrap",
715
+ "tw:gap-2",
841
716
  // border
842
- "tw-border",
843
- "tw-border-transparent",
844
- "tw-rounded-[var(--radius-lg,0.25rem)]",
717
+ "tw:border",
718
+ "tw:border-transparent",
719
+ "tw:rounded-[var(--radius-lg,0.25rem)]",
845
720
  // text
846
- "tw-font-medium",
847
- "tw-select-none",
721
+ "tw:font-medium",
722
+ "tw:select-none",
848
723
  // focus visible
849
- "!tw-outline-none",
850
- "focus-visible:tw-ring-2",
724
+ "tw:!outline-hidden",
725
+ "tw:focus-visible:ring-2",
851
726
  // disabled
852
- "disabled:tw-cursor-not-allowed",
853
- "disabled:tw-opacity-50",
854
- "active:tw-opacity-60",
855
- "tw-transition-all",
856
- "tw-bg-clip-padding",
727
+ "tw:disabled:cursor-not-allowed",
728
+ "tw:disabled:opacity-50",
729
+ "tw:active:opacity-60",
730
+ "tw:transition-all",
731
+ "tw:bg-clip-padding",
857
732
  // anchor support
858
- "!tw-no-underline",
859
- "aria-disabled:tw-cursor-not-allowed",
860
- "aria-disabled:tw-opacity-50",
733
+ "tw:!no-underline",
734
+ "tw:aria-disabled:cursor-not-allowed",
735
+ "tw:aria-disabled:opacity-50",
861
736
  // icon
862
- "tw-shrink-0",
863
- "[&_svg]:tw-pointer-events-none",
864
- "[&_svg]:tw-shrink-0",
865
- "[&_svg:not([class*='tw-size-'])]:tw-size-4"
737
+ "tw:shrink-0",
738
+ "tw:[&_svg]:pointer-events-none",
739
+ "tw:[&_svg]:shrink-0",
740
+ "tw:[&_svg:not([class*='tw:size-'])]:size-4"
866
741
  ],
867
742
  {
868
743
  defaultVariants: {
@@ -871,77 +746,77 @@ var init_styles = __esm({
871
746
  },
872
747
  variants: {
873
748
  block: {
874
- true: ["tw-w-full"]
749
+ true: ["tw:w-full"]
875
750
  },
876
751
  variant: {
877
752
  primary: [
878
- "tw-bg-primary",
879
- "tw-text-primary-foreground",
880
- "[a]:hover:tw-bg-primary/80",
881
- "hover:not-disabled:tw-bg-primary/90",
882
- "hover:tw-text-primary-foreground",
883
- "focus:tw-text-primary-foreground",
884
- "focus-visible:tw-border-primary",
885
- "focus-visible:tw-ring-ring/50"
753
+ "tw:bg-primary",
754
+ "tw:text-primary-foreground",
755
+ "tw:[a]:hover:bg-primary/80",
756
+ "tw:hover:not-disabled:bg-primary/90",
757
+ "tw:hover:text-primary-foreground",
758
+ "tw:focus:text-primary-foreground",
759
+ "tw:focus-visible:border-primary",
760
+ "tw:focus-visible:ring-ring/50"
886
761
  ],
887
762
  secondary: [
888
- "tw-bg-primary/10",
889
- "tw-text-primary",
890
- "hover:not-disabled:tw-bg-primary/20",
891
- "focus-visible:tw-border-primary",
892
- "focus-visible:tw-ring-ring/50"
763
+ "tw:bg-primary/10",
764
+ "tw:text-primary",
765
+ "tw:hover:not-disabled:bg-primary/20",
766
+ "tw:focus-visible:border-primary",
767
+ "tw:focus-visible:ring-ring/50"
893
768
  ],
894
769
  // should be called "destructive" by Figma
895
770
  danger: [
896
- "tw-bg-destructive",
897
- "tw-text-destructive-foreground",
898
- "hover:tw-text-destructive-foreground",
899
- "focus:tw-text-destructive-foreground",
900
- "focus-visible:tw-border-destructive",
901
- "focus-visible:tw-ring-destructive/20"
771
+ "tw:bg-destructive",
772
+ "tw:text-destructive-foreground",
773
+ "tw:hover:text-destructive-foreground",
774
+ "tw:focus:text-destructive-foreground",
775
+ "tw:focus-visible:border-destructive",
776
+ "tw:focus-visible:ring-destructive/20"
902
777
  ],
903
778
  outline: [
904
- "!tw-border-input",
905
- "tw-bg-background",
779
+ "tw:!border-input",
780
+ "tw:bg-background",
906
781
  // Semantic base text color so the label/icon flips in dark mode
907
782
  // (matches `invisible`); previously unset → inherited a fixed dark color.
908
- "tw-text-foreground",
783
+ "tw:text-foreground",
909
784
  // Hover follows the brand primary (translucent tint), matching the
910
785
  // `secondary` variant — not the fixed `accent` blue.
911
- "hover:not-disabled:tw-bg-primary/10",
912
- "hover:not-disabled:tw-text-primary",
913
- "hover:active:tw-bg-background",
914
- "focus-visible:!tw-border-primary",
915
- "focus-visible:tw-ring-ring/50"
786
+ "tw:hover:not-disabled:bg-primary/10",
787
+ "tw:hover:not-disabled:text-primary",
788
+ "tw:hover:active:bg-background",
789
+ "tw:focus-visible:!border-primary",
790
+ "tw:focus-visible:ring-ring/50"
916
791
  ],
917
792
  // should be called "ghost" by Figma
918
793
  invisible: [
919
- "tw-bg-transparent",
920
- "tw-text-foreground",
921
- "hover:not-disabled:tw-bg-primary/10",
922
- "hover:not-disabled:tw-text-primary",
923
- "hover:not-disabled:tw-border-primary/10",
924
- "focus-visible:tw-ring-ring/50"
794
+ "tw:bg-transparent",
795
+ "tw:text-foreground",
796
+ "tw:hover:not-disabled:bg-primary/10",
797
+ "tw:hover:not-disabled:text-primary",
798
+ "tw:hover:not-disabled:border-primary/10",
799
+ "tw:focus-visible:ring-ring/50"
925
800
  ],
926
801
  // should be called "link" by Figma
927
802
  inline: [
928
- "tw-bg-transparent",
929
- "tw-text-primary",
930
- "hover:tw-underline",
931
- "hover:active:tw-bg-transparent",
932
- "focus-visible:tw-ring-ring/50"
803
+ "tw:bg-transparent",
804
+ "tw:text-primary",
805
+ "tw:hover:underline",
806
+ "tw:hover:active:bg-transparent",
807
+ "tw:focus-visible:ring-ring/50"
933
808
  ]
934
809
  },
935
810
  size: {
936
811
  // should be called "default" by Figma
937
- medium: ["tw-max-h-9", "tw-py-2", "tw-px-4", "tw-text-sm"],
812
+ medium: ["tw:max-h-9", "tw:py-2", "tw:px-4", "tw:text-sm"],
938
813
  // should be called "small" by Figma
939
- small: ["tw-max-h-8", "tw-py-2", "tw-px-3", "tw-text-xs"],
814
+ small: ["tw:max-h-8", "tw:py-2", "tw:px-3", "tw:text-xs"],
940
815
  // should be called "large" by Figma
941
- large: ["tw-max-h-10", "tw-py-2.5", "tw-px-6", "tw-text-sm"],
942
- "icon-lg": ["tw-size-10"],
943
- icon: ["tw-size-9"],
944
- "icon-sm": ["tw-size-8"],
816
+ large: ["tw:max-h-10", "tw:py-2.5", "tw:px-6", "tw:text-sm"],
817
+ "icon-lg": ["tw:size-10"],
818
+ icon: ["tw:size-9"],
819
+ "icon-sm": ["tw:size-8"],
945
820
  // unsupported in ARGO, remove when old design is gone
946
821
  "icon-xs": [],
947
822
  "icon-2xs": [],
@@ -998,7 +873,7 @@ var init_Button = __esm({
998
873
  onClick: handleClick,
999
874
  className: cn(classNames),
1000
875
  children: [
1001
- isLoading && /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-size-4 tw-shrink-0 tw-animate-spin" }),
876
+ isLoading && /* @__PURE__ */ jsx(Loader2, { className: "tw:size-4 tw:shrink-0 tw:animate-spin" }),
1002
877
  /* @__PURE__ */ jsx(Slottable, { children: isLoading && isIconOnly ? null : children })
1003
878
  ]
1004
879
  }
@@ -1011,18 +886,18 @@ var init_ButtonInline = __esm({
1011
886
  cva(
1012
887
  [
1013
888
  "tailwindcss-preflight",
1014
- "tw-inline-flex",
1015
- "tw-items-center",
1016
- "tw-gap-2",
1017
- "tw-underline-offset-2",
1018
- "disabled:tw-opacity-40",
1019
- "disabled:tw-cursor-not-allowed",
1020
- "disabled:tw-text-neutral-500",
1021
- "disabled:tw-no-underline",
1022
- "[&_svg]:disabled:tw-text-neutral-400",
889
+ "tw:inline-flex",
890
+ "tw:items-center",
891
+ "tw:gap-2",
892
+ "tw:underline-offset-2",
893
+ "tw:disabled:opacity-40",
894
+ "tw:disabled:cursor-not-allowed",
895
+ "tw:disabled:text-neutral-500",
896
+ "tw:disabled:no-underline",
897
+ "tw:disabled:[&_svg]:text-neutral-400",
1023
898
  // Default size for nested Lucide icons; callers can override on the icon.
1024
- "[&_svg.lucide:not([class*='tw-size-'])]:tw-size-4",
1025
- "[&_svg]:tw-shrink-0"
899
+ "tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4",
900
+ "tw:[&_svg]:shrink-0"
1026
901
  ],
1027
902
  {
1028
903
  defaultVariants: {
@@ -1031,15 +906,15 @@ var init_ButtonInline = __esm({
1031
906
  },
1032
907
  variants: {
1033
908
  color: {
1034
- link: ["tw-text-primary", "hover:tw-text-primary/90", "[&_svg]:tw-text-primary"],
1035
- dark: ["tw-text-neutral-800 [&_svg]:tw-text-neutral-400"],
1036
- danger: ["tw-text-error-500 [&_svg]:tw-text-error-500"],
1037
- muted: ["tw-text-muted-foreground [&_svg]:tw-text-muted-foreground"],
909
+ link: ["tw:text-primary", "tw:hover:text-primary/90", "tw:[&_svg]:text-primary"],
910
+ dark: ["tw:text-neutral-800 tw:[&_svg]:text-neutral-400"],
911
+ danger: ["tw:text-error-500 tw:[&_svg]:text-error-500"],
912
+ muted: ["tw:text-muted-foreground tw:[&_svg]:text-muted-foreground"],
1038
913
  custom: []
1039
914
  },
1040
915
  variant: {
1041
- link: ["tw-underline", "hover:tw-no-underline"],
1042
- "link-reverse": ["tw-no-underline", "", "hover:tw-underline"],
916
+ link: ["tw:underline", "tw:hover:no-underline"],
917
+ "link-reverse": ["tw:no-underline", "", "tw:hover:underline"],
1043
918
  custom: []
1044
919
  }
1045
920
  }
@@ -1055,12 +930,12 @@ var init_Button2 = __esm({
1055
930
  init_ButtonInline();
1056
931
  }
1057
932
  });
1058
- var Clipboard;
933
+ var Clipboard2;
1059
934
  var init_Clipboard = __esm({
1060
935
  "src/components/Clipboard/Clipboard.tsx"() {
1061
936
  init_utils2();
1062
937
  init_Tooltip2();
1063
- Clipboard = ({
938
+ Clipboard2 = ({
1064
939
  ref,
1065
940
  text: textProp,
1066
941
  children,
@@ -1085,6 +960,7 @@ var init_Clipboard = __esm({
1085
960
  }
1086
961
  };
1087
962
  const handleOnClick = (event) => {
963
+ setIsTooltipOpen(true);
1088
964
  if (text && state === "ready") void copy(text);
1089
965
  onClick?.(event);
1090
966
  };
@@ -1099,6 +975,7 @@ var init_Clipboard = __esm({
1099
975
  return tooltip;
1100
976
  })();
1101
977
  const tooltipVariant = state === "ready" && !!text ? tooltipVariantProp : "action";
978
+ const hasTooltipContent = tooltipContent !== null && tooltipContent !== void 0;
1102
979
  return /* @__PURE__ */ jsxs(Tooltip.Root, { open: isTooltipOpen, onOpenChange: handleOnOpenChange, children: [
1103
980
  /* @__PURE__ */ jsx(
1104
981
  Tooltip.Trigger,
@@ -1107,12 +984,12 @@ var init_Clipboard = __esm({
1107
984
  asChild,
1108
985
  keepOpenOnClick: true,
1109
986
  onClick: handleOnClick,
1110
- className: cn("tw-cursor-pointer", className),
987
+ className: cn("tw:cursor-pointer", className),
1111
988
  ref,
1112
989
  children: children ?? text
1113
990
  }
1114
991
  ),
1115
- /* @__PURE__ */ jsx(
992
+ hasTooltipContent && /* @__PURE__ */ jsx(
1116
993
  Tooltip.Content,
1117
994
  {
1118
995
  keepOpenOnPointerDownOutside: true,
@@ -1138,7 +1015,7 @@ var init_ClipboardButton = __esm({
1138
1015
  init_Button2();
1139
1016
  init_Clipboard2();
1140
1017
  init_icons();
1141
- DEFAULT_ICON = /* @__PURE__ */ jsx(icons_exports.Copy, {});
1018
+ DEFAULT_ICON = /* @__PURE__ */ jsx(Copy, {});
1142
1019
  DEFAULT_ARIA_LABEL = "Copy";
1143
1020
  ClipboardButton = ({
1144
1021
  // clipboard props
@@ -1155,7 +1032,7 @@ var init_ClipboardButton = __esm({
1155
1032
  const defaultAriaLabel = typeof tooltip === "string" && tooltip.trim() ? tooltip : DEFAULT_ARIA_LABEL;
1156
1033
  const ariaLabel = rest["aria-label"] ?? (children == null ? defaultAriaLabel : void 0);
1157
1034
  return /* @__PURE__ */ jsx(
1158
- Clipboard,
1035
+ Clipboard2,
1159
1036
  {
1160
1037
  asChild: true,
1161
1038
  tooltip,
@@ -1189,7 +1066,13 @@ var init_ZoomableSvg = __esm({
1189
1066
  MIN_SCALE = 0.5;
1190
1067
  MAX_SCALE = 3;
1191
1068
  ZOOM_STEP = 0.1;
1192
- ZoomableSvg = ({ html, copyText, className, allowForeignObject }) => {
1069
+ ZoomableSvg = ({
1070
+ html,
1071
+ copyText,
1072
+ className,
1073
+ allowForeignObject,
1074
+ renderActions
1075
+ }) => {
1193
1076
  const safeHtml = useMemo(
1194
1077
  () => DOMPurify.sanitize(html, {
1195
1078
  USE_PROFILES: { svg: true, svgFilters: true },
@@ -1268,7 +1151,7 @@ var init_ZoomableSvg = __esm({
1268
1151
  "div",
1269
1152
  {
1270
1153
  role: "presentation",
1271
- className: cn("tw-group/zoom tw-relative", isFullscreen && "tw-h-full"),
1154
+ className: cn("tw:group/zoom tw:relative", isFullscreen && "tw:h-full"),
1272
1155
  onClick: handleClick,
1273
1156
  children: [
1274
1157
  /* @__PURE__ */ jsx(
@@ -1277,8 +1160,8 @@ var init_ZoomableSvg = __esm({
1277
1160
  role: "presentation",
1278
1161
  ref: containerRef,
1279
1162
  className: cn(
1280
- "tw-overflow-hidden tw-cursor-grab active:tw-cursor-grabbing tw-p-3",
1281
- isFullscreen && "tw-h-full"
1163
+ "tw:overflow-hidden tw:cursor-grab tw:active:cursor-grabbing tw:p-3",
1164
+ isFullscreen && "tw:h-full"
1282
1165
  ),
1283
1166
  onMouseDown: handleMouseDown,
1284
1167
  onMouseMove: handleMouseMove,
@@ -1288,8 +1171,8 @@ var init_ZoomableSvg = __esm({
1288
1171
  "div",
1289
1172
  {
1290
1173
  className: cn(
1291
- "tw-flex tw-justify-center tw-origin-center",
1292
- isFullscreen && "tw-h-full [&>svg]:tw-h-full"
1174
+ "tw:flex tw:justify-center tw:origin-center",
1175
+ isFullscreen && "tw:h-full tw:[&>svg]:h-full"
1293
1176
  ),
1294
1177
  style: { transform: `translate(${translate.x}px, ${translate.y}px) scale(${scale})` },
1295
1178
  dangerouslySetInnerHTML: { __html: safeHtml }
@@ -1301,11 +1184,12 @@ var init_ZoomableSvg = __esm({
1301
1184
  "div",
1302
1185
  {
1303
1186
  role: "presentation",
1304
- 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",
1187
+ 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",
1305
1188
  onClick: stopPropagation,
1306
1189
  children: [
1307
1190
  isZoomed && /* @__PURE__ */ jsx(Tooltip, { tooltip: "Reset zoom", placement: "top", triggerAsChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "outline", onClick: handleReset, children: "Reset" }) }),
1308
1191
  copyText && /* @__PURE__ */ jsx(ClipboardButton, { text: copyText, tooltip: "Copy code", size: "icon-sm", variant: "outline" }),
1192
+ renderActions?.(safeHtml),
1309
1193
  /* @__PURE__ */ jsx(
1310
1194
  Tooltip,
1311
1195
  {
@@ -1319,7 +1203,7 @@ var init_ZoomableSvg = __esm({
1319
1203
  variant: "outline",
1320
1204
  "aria-label": isFullscreen ? "Exit fullscreen" : "Fullscreen",
1321
1205
  onClick: () => setIsFullscreen((f) => !f),
1322
- children: isFullscreen ? /* @__PURE__ */ jsx(icons_exports.Minimize2, { className: "tw-size-4" }) : /* @__PURE__ */ jsx(icons_exports.Maximize2, { className: "tw-size-4" })
1206
+ children: isFullscreen ? /* @__PURE__ */ jsx(Minimize2, { className: "tw:size-4" }) : /* @__PURE__ */ jsx(Maximize2, { className: "tw:size-4" })
1323
1207
  }
1324
1208
  )
1325
1209
  }
@@ -1337,7 +1221,7 @@ var init_ZoomableSvg = __esm({
1337
1221
  {
1338
1222
  role: "presentation",
1339
1223
  "data-testid": "zoomable-svg-fullscreen",
1340
- className: "tailwindcss-preflight tw-fixed tw-inset-0 tw-z-[1060] tw-bg-muted tw-p-4",
1224
+ className: "tw:fixed tw:inset-0 tw:z-[1060] tw:bg-muted tw:p-4 tailwindcss-preflight",
1341
1225
  onClick: stopPropagation,
1342
1226
  children: diagramContent
1343
1227
  }
@@ -1349,7 +1233,7 @@ var init_ZoomableSvg = __esm({
1349
1233
  "div",
1350
1234
  {
1351
1235
  className: cn(
1352
- "tw-overflow-hidden tw-rounded-md tw-border tw-border-border tw-bg-muted",
1236
+ "tw:overflow-hidden tw:rounded-md tw:border tw:border-border tw:bg-muted",
1353
1237
  className
1354
1238
  ),
1355
1239
  children: diagramContent
@@ -1365,6 +1249,13 @@ var init_ZoomableSvg2 = __esm({
1365
1249
  init_ZoomableSvg();
1366
1250
  }
1367
1251
  });
1252
+ var DiagramSkeleton;
1253
+ var init_DiagramSkeleton = __esm({
1254
+ "src/blocks/MermaidDiagram/DiagramSkeleton.tsx"() {
1255
+ init_Skeleton();
1256
+ DiagramSkeleton = () => /* @__PURE__ */ 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__ */ jsx(Skeleton, { className: "tw:h-40" }) });
1257
+ }
1258
+ });
1368
1259
 
1369
1260
  // src/blocks/MermaidDiagram/svgTransforms.ts
1370
1261
  var HTML_TAG, FOREIGN_OBJECT, ROOT_SVG_TAG, flattenForeignObjectLabels, STYLE_ATTR, makeResponsive;
@@ -1402,13 +1293,13 @@ __export(MermaidDiagram_exports, {
1402
1293
  var PRIMARY_FALLBACK_CHANNELS, resolvePrimary, mermaidPromise, registerLucideIconPack, getMermaid, stripFontImports, hasIconSyntax, tryFastRender, RENDER_DEBOUNCE_MS, svgCache, resolveSyncSvg, MermaidDiagram;
1403
1294
  var init_MermaidDiagram = __esm({
1404
1295
  "src/blocks/MermaidDiagram/MermaidDiagram.tsx"() {
1405
- init_Skeleton();
1406
1296
  init_ZoomableSvg2();
1407
1297
  init_utils2();
1298
+ init_DiagramSkeleton();
1408
1299
  init_svgTransforms();
1409
1300
  PRIMARY_FALLBACK_CHANNELS = "31 143 255";
1410
1301
  resolvePrimary = () => {
1411
- const channels = typeof document === "undefined" ? PRIMARY_FALLBACK_CHANNELS : getComputedStyle(document.documentElement).getPropertyValue("--color-primary").trim() || PRIMARY_FALLBACK_CHANNELS;
1302
+ const channels = typeof document === "undefined" ? PRIMARY_FALLBACK_CHANNELS : getComputedStyle(document.documentElement).getPropertyValue("--primary").trim() || PRIMARY_FALLBACK_CHANNELS;
1412
1303
  return `rgb(${channels})`;
1413
1304
  };
1414
1305
  mermaidPromise = null;
@@ -1513,7 +1404,7 @@ var init_MermaidDiagram = __esm({
1513
1404
  if (fast) svgCache.set(code, fast);
1514
1405
  return fast;
1515
1406
  };
1516
- MermaidDiagram = ({ code }) => {
1407
+ MermaidDiagram = ({ code, renderActions }) => {
1517
1408
  const id = useId();
1518
1409
  const [svg, setSvg] = useState(() => resolveSyncSvg(code));
1519
1410
  const [renderFailed, setRenderFailed] = useState(false);
@@ -1575,11 +1466,11 @@ var init_MermaidDiagram = __esm({
1575
1466
  "pre",
1576
1467
  {
1577
1468
  className: cn(
1578
- "tw-my-3 tw-overflow-auto tw-whitespace-pre-wrap tw-break-all",
1579
- "tw-py-3 tw-px-4",
1580
- "tw-bg-neutral-50",
1581
- "tw-rounded-md tw-text-neutral-400",
1582
- "tw-text-sm tw-font-mono"
1469
+ "tw:my-3 tw:overflow-auto tw:whitespace-pre-wrap tw:break-all",
1470
+ "tw:py-3 tw:px-4",
1471
+ "tw:bg-neutral-50",
1472
+ "tw:rounded-md tw:text-neutral-400",
1473
+ "tw:text-sm tw:font-mono"
1583
1474
  ),
1584
1475
  children: /* @__PURE__ */ jsx("code", { children: code })
1585
1476
  }
@@ -1593,13 +1484,14 @@ var init_MermaidDiagram = __esm({
1593
1484
  copyText: `\`\`\`mermaid
1594
1485
  ${code}
1595
1486
  \`\`\``,
1596
- className: "tw-my-3",
1597
- allowForeignObject: true
1487
+ className: "tw:my-3",
1488
+ allowForeignObject: true,
1489
+ renderActions
1598
1490
  },
1599
1491
  code
1600
1492
  );
1601
1493
  }
1602
- return /* @__PURE__ */ 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__ */ jsx(Skeleton, { className: "tw-h-40" }) });
1494
+ return /* @__PURE__ */ jsx(DiagramSkeleton, {});
1603
1495
  };
1604
1496
  }
1605
1497
  });
@@ -1613,7 +1505,7 @@ var isPlaceholder = (src) => src.startsWith("upload-placeholder-");
1613
1505
  var ImageNodeComponent = ({ src, alt }) => {
1614
1506
  const renderer = useImageRenderer();
1615
1507
  if (isPlaceholder(src)) {
1616
- return /* @__PURE__ */ 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" });
1508
+ return /* @__PURE__ */ 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" });
1617
1509
  }
1618
1510
  if (renderer) return /* @__PURE__ */ jsx(Fragment, { children: renderer({ src, alt }) });
1619
1511
  return /* @__PURE__ */ jsx("img", { src, alt });
@@ -1717,7 +1609,7 @@ var MermaidNodeComponent = ({ code }) => {
1717
1609
  return /* @__PURE__ */ jsx(
1718
1610
  Suspense,
1719
1611
  {
1720
- fallback: /* @__PURE__ */ 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__ */ jsx(Skeleton, { className: "tw-h-40" }) }),
1612
+ fallback: /* @__PURE__ */ 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__ */ jsx(Skeleton, { className: "tw:h-40" }) }),
1721
1613
  children: /* @__PURE__ */ jsx(MermaidDiagram2, { code })
1722
1614
  }
1723
1615
  );
@@ -1792,21 +1684,21 @@ var ToastAction = ({ ref, className, ...rest }) => /* @__PURE__ */ jsx(
1792
1684
  type: "button",
1793
1685
  className: cn(
1794
1686
  // layout
1795
- "tw-col-start-3",
1796
- "tw-row-start-1",
1797
- "tw-flex",
1798
- "tw-items-center",
1799
- "tw-justify-center",
1687
+ "tw:col-start-3",
1688
+ "tw:row-start-1",
1689
+ "tw:flex",
1690
+ "tw:items-center",
1691
+ "tw:justify-center",
1800
1692
  // font
1801
- "tw-text-xs",
1802
- "tw-font-medium",
1803
- "tw-text-primary",
1693
+ "tw:text-xs",
1694
+ "tw:font-medium",
1695
+ "tw:text-primary",
1804
1696
  // sizing
1805
- "tw-px-2",
1806
- "tw-h-6",
1697
+ "tw:px-2",
1698
+ "tw:h-6",
1807
1699
  // styles
1808
- "tw-bg-primary-foreground",
1809
- "tw-rounded",
1700
+ "tw:bg-primary-foreground",
1701
+ "tw:rounded",
1810
1702
  className
1811
1703
  )
1812
1704
  }
@@ -1820,11 +1712,11 @@ var ToastDescription = ({ ref, className, children, ...rest }) => /* @__PURE__ *
1820
1712
  ref,
1821
1713
  "data-slot": "toast-description",
1822
1714
  className: cn(
1823
- "tw-col-start-2",
1824
- "tw-font-normal",
1825
- "tw-break-words",
1826
- "tw-text-white",
1827
- "group-data-[variant=default]/toast:tw-text-muted-foreground",
1715
+ "tw:col-start-2",
1716
+ "tw:font-normal",
1717
+ "tw:break-words",
1718
+ "tw:text-white",
1719
+ "tw:group-data-[variant=default]/toast:text-muted-foreground",
1828
1720
  className
1829
1721
  ),
1830
1722
  ...rest,
@@ -1841,24 +1733,24 @@ var ToastDismiss = ({ ref, className, ...rest }) => /* @__PURE__ */ jsxs(
1841
1733
  ref,
1842
1734
  "data-slot": "toast-dismiss",
1843
1735
  className: cn(
1844
- "tw-flex",
1845
- "tw-justify-center",
1846
- "tw-col-start-4",
1847
- "tw-row-start-1",
1736
+ "tw:flex",
1737
+ "tw:justify-center",
1738
+ "tw:col-start-4",
1739
+ "tw:row-start-1",
1848
1740
  "tailwindcss-preflight",
1849
- "[&_svg]:tw-aspect-square",
1850
- '[&_svg:not([class*="tw-size-"])]:tw-size-4',
1851
- "[&_svg]:tw-m-1",
1852
- "tw-text-white",
1853
- "group-data-[variant=default]/toast:[&_svg]:tw-text-popover-foreground",
1854
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:tw-text-foreground",
1741
+ "tw:[&_svg]:aspect-square",
1742
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
1743
+ "tw:[&_svg]:m-1",
1744
+ "tw:text-white",
1745
+ "tw:group-data-[variant=default]/toast:[&_svg]:text-popover-foreground",
1746
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:text-foreground",
1855
1747
  className
1856
1748
  ),
1857
1749
  type: "button",
1858
1750
  ...rest,
1859
1751
  children: [
1860
- /* @__PURE__ */ jsx(icons_exports.X, {}),
1861
- /* @__PURE__ */ jsx("span", { className: "tw-sr-only", children: "Dismiss" })
1752
+ /* @__PURE__ */ jsx(X, {}),
1753
+ /* @__PURE__ */ jsx("span", { className: "tw:sr-only", children: "Dismiss" })
1862
1754
  ]
1863
1755
  }
1864
1756
  );
@@ -1871,20 +1763,20 @@ var ToastDuration = ({ ref, duration, className, style, ...rest }) => /* @__PURE
1871
1763
  ...rest,
1872
1764
  ref,
1873
1765
  className: cn(
1874
- "tw-bg-white/30",
1875
- "group-data-[variant=default]/toast:tw-bg-popover-foreground/20",
1876
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-bg-foreground/20",
1877
- "tw-rounded-bl-lg",
1878
- "tw-mx-px",
1766
+ "tw:bg-white/30",
1767
+ "tw:group-data-[variant=default]/toast:bg-popover-foreground/20",
1768
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:bg-foreground/20",
1769
+ "tw:rounded-bl-lg",
1770
+ "tw:mx-px",
1879
1771
  // positioning
1880
- "tw-absolute",
1881
- "tw-bottom-0",
1882
- "tw-left-0",
1772
+ "tw:absolute",
1773
+ "tw:bottom-0",
1774
+ "tw:left-0",
1883
1775
  // sizing
1884
- "tw-h-1",
1776
+ "tw:h-1",
1885
1777
  // animation
1886
- "tw-animate-toast-progress",
1887
- "group-hover/toast:[animation-play-state:paused]",
1778
+ "tw:animate-toast-progress",
1779
+ "tw:group-hover/toast:[animation-play-state:paused]",
1888
1780
  className
1889
1781
  ),
1890
1782
  style: {
@@ -1902,16 +1794,16 @@ var ToastTitle = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsx(
1902
1794
  ref,
1903
1795
  "data-slot": "toast-title",
1904
1796
  className: cn(
1905
- "tw-col-start-2",
1906
- "tw-text-sm",
1907
- "tw-leading-6",
1908
- "tw-min-h-6",
1909
- "tw-self-center",
1910
- "tw-text-white",
1911
- "group-data-[variant=default]/toast:tw-text-popover-foreground",
1912
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground",
1913
- "tw-break-words",
1914
- "tw-font-medium",
1797
+ "tw:col-start-2",
1798
+ "tw:text-sm",
1799
+ "tw:leading-6",
1800
+ "tw:min-h-6",
1801
+ "tw:self-center",
1802
+ "tw:text-white",
1803
+ "tw:group-data-[variant=default]/toast:text-popover-foreground",
1804
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground",
1805
+ "tw:break-words",
1806
+ "tw:font-medium",
1915
1807
  className
1916
1808
  ),
1917
1809
  ...rest,
@@ -1921,24 +1813,24 @@ var ToastTitle = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsx(
1921
1813
  var variants2 = cva(
1922
1814
  [
1923
1815
  "tailwindcss-preflight",
1924
- "tw-group/toast",
1925
- "tw-relative",
1816
+ "tw:group/toast",
1817
+ "tw:relative",
1926
1818
  // layout
1927
- "tw-grid",
1928
- "tw-grid-cols-[0_1fr_auto_auto]",
1929
- "tw-items-start",
1930
- "has-[[data-slot=toast-description]]:tw-grid-rows-[auto_auto]",
1931
- "has-[[data-slot=toast-icon]]:tw-grid-cols-[auto_1fr_auto_auto]",
1932
- "[&_[data-slot=toast-icon]]:tw-mr-2",
1933
- "[&_[data-slot=toast-title]]:tw-mr-2.5",
1934
- "[&_[data-slot=toast-description]]:tw-mr-2.5",
1935
- "[&_[data-slot=toast-action]]:tw-mr-2",
1936
- "[&_[data-slot=toast-description]]:tw-col-end-3",
1937
- "tw-gap-y-0",
1819
+ "tw:grid",
1820
+ "tw:grid-cols-[0_1fr_auto_auto]",
1821
+ "tw:items-start",
1822
+ "tw:has-[[data-slot=toast-description]]:grid-rows-[auto_auto]",
1823
+ "tw:has-[[data-slot=toast-icon]]:grid-cols-[auto_1fr_auto_auto]",
1824
+ "tw:[&_[data-slot=toast-icon]]:mr-2",
1825
+ "tw:[&_[data-slot=toast-title]]:mr-2.5",
1826
+ "tw:[&_[data-slot=toast-description]]:mr-2.5",
1827
+ "tw:[&_[data-slot=toast-action]]:mr-2",
1828
+ "tw:[&_[data-slot=toast-description]]:col-end-3",
1829
+ "tw:gap-y-0",
1938
1830
  // styles
1939
- "tw-p-4",
1940
- "tw-rounded-lg",
1941
- "tw-shadow-md"
1831
+ "tw:p-4",
1832
+ "tw:rounded-lg",
1833
+ "tw:shadow-md"
1942
1834
  ],
1943
1835
  {
1944
1836
  defaultVariants: {
@@ -1946,20 +1838,20 @@ var variants2 = cva(
1946
1838
  },
1947
1839
  variants: {
1948
1840
  variant: {
1949
- default: "tw-border tw-border-border tw-bg-popover",
1950
- error: "tw-bg-error-550",
1951
- info: "tw-bg-blue-600",
1952
- success: "tw-bg-green-700",
1953
- warning: "tw-bg-warning-550"
1841
+ default: "tw:border tw:border-border tw:bg-popover",
1842
+ error: "tw:bg-error-550",
1843
+ info: "tw:bg-blue-600",
1844
+ success: "tw:bg-green-700",
1845
+ warning: "tw:bg-warning-550"
1954
1846
  }
1955
1847
  }
1956
1848
  }
1957
1849
  );
1958
1850
  var DEFAULT_VARIANT_ICON = {
1959
- error: /* @__PURE__ */ jsx(icons_exports.AlertTriangle, {}),
1960
- info: /* @__PURE__ */ jsx(icons_exports.Info, {}),
1961
- success: /* @__PURE__ */ jsx(icons_exports.CircleCheck, {}),
1962
- warning: /* @__PURE__ */ jsx(icons_exports.AlertCircle, {})
1851
+ error: /* @__PURE__ */ jsx(AlertTriangle, {}),
1852
+ info: /* @__PURE__ */ jsx(Info, {}),
1853
+ success: /* @__PURE__ */ jsx(CircleCheck, {}),
1854
+ warning: /* @__PURE__ */ jsx(AlertCircle, {})
1963
1855
  };
1964
1856
  var ToastRoot = ({
1965
1857
  id,
@@ -1973,7 +1865,7 @@ var ToastRoot = ({
1973
1865
  }) => {
1974
1866
  const renderArgo = useArgoDesign();
1975
1867
  const icon = (() => {
1976
- if (loading) return /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-animate-spin" });
1868
+ if (loading) return /* @__PURE__ */ jsx(Loader2, { className: "tw:animate-spin" });
1977
1869
  if (iconProp) return iconProp;
1978
1870
  if (variant === "default" || variant === null) return null;
1979
1871
  return DEFAULT_VARIANT_ICON[variant];
@@ -1989,7 +1881,7 @@ var ToastRoot = ({
1989
1881
  "data-argo": renderArgo,
1990
1882
  className: cn(
1991
1883
  variants2({ variant }),
1992
- "data-[variant=default]:data-[argo=true]:tw-bg-background"
1884
+ "tw:data-[variant=default]:data-[argo=true]:bg-background"
1993
1885
  ),
1994
1886
  children: [
1995
1887
  icon && /* @__PURE__ */ jsx(
@@ -1997,17 +1889,17 @@ var ToastRoot = ({
1997
1889
  {
1998
1890
  "data-slot": "toast-icon",
1999
1891
  className: cn(
2000
- "tw-inline-flex",
2001
- "tw-items-center",
2002
- "tw-justify-center",
2003
- "tw-self-center",
2004
- "tw-aspect-square",
2005
- "tw-size-5",
2006
- "tw-shrink-0",
2007
- '[&_svg:not([class*="tw-size-"])]:tw-size-5',
2008
- "tw-text-white",
2009
- "group-data-[variant=default]/toast:tw-text-popover-foreground",
2010
- "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground"
1892
+ "tw:inline-flex",
1893
+ "tw:items-center",
1894
+ "tw:justify-center",
1895
+ "tw:self-center",
1896
+ "tw:aspect-square",
1897
+ "tw:size-5",
1898
+ "tw:shrink-0",
1899
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-5',
1900
+ "tw:text-white",
1901
+ "tw:group-data-[variant=default]/toast:text-popover-foreground",
1902
+ "tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground"
2011
1903
  ),
2012
1904
  children: icon
2013
1905
  }
@@ -2053,7 +1945,7 @@ var toast = ({
2053
1945
  dismissible,
2054
1946
  duration,
2055
1947
  // override default focus-visible styles to match our design
2056
- className: cn("tw-rounded-lg", "focus-visible:!tw-ring-4", "focus-visible:!tw-ring-ring/50")
1948
+ className: cn("tw:rounded-lg", "tw:focus-visible:!ring-4", "tw:focus-visible:!ring-ring/50")
2057
1949
  });
2058
1950
  };
2059
1951
  toast.success = (title, options) => toast({
@@ -2420,59 +2312,59 @@ init_icons();
2420
2312
  var variants3 = cva(
2421
2313
  [
2422
2314
  "tailwindcss-preflight",
2423
- "tw-pointer-events-none",
2315
+ "tw:pointer-events-none",
2424
2316
  // sizing
2425
- "tw-size-4",
2426
- "tw-aspect-square",
2427
- "tw-shrink-0",
2317
+ "tw:size-4",
2318
+ "tw:aspect-square",
2319
+ "tw:shrink-0",
2428
2320
  // layout
2429
- "tw-flex",
2430
- "tw-items-center",
2431
- "tw-justify-center"
2321
+ "tw:flex",
2322
+ "tw:items-center",
2323
+ "tw:justify-center"
2432
2324
  ],
2433
2325
  {
2434
2326
  variants: {
2435
2327
  variant: {
2436
2328
  none: [],
2437
2329
  radio: [
2438
- "tw-border",
2439
- "tw-border-solid",
2440
- "tw-border-border",
2441
- "tw-rounded-full",
2442
- "group-data-[variant=default]/dropdown-menu-content:tw-bg-white",
2443
- "group-data-[variant=argo]/dropdown-menu-content:tw-bg-background",
2444
- '[&_svg:not([class*="tw-size-"])]:tw-size-2',
2445
- "[&_svg]:data-[state=unchecked]:tw-hidden",
2330
+ "tw:border",
2331
+ "tw:border-solid",
2332
+ "tw:border-border",
2333
+ "tw:rounded-full",
2334
+ "tw:group-data-[variant=default]/dropdown-menu-content:bg-white",
2335
+ "tw:group-data-[variant=argo]/dropdown-menu-content:bg-background",
2336
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-2',
2337
+ "tw:data-[state=unchecked]:[&_svg]:hidden",
2446
2338
  // Lucide Circle is stroke-only — force fill to match the stroke
2447
2339
  // (currentColor) so the indicator reads as a solid dot.
2448
- "[&_svg]:tw-fill-current",
2449
- "group-data-[variant=argo]/dropdown-menu-content:[&_svg]:tw-text-primary",
2450
- "group-data-[variant=default]/dropdown-menu-content:[&_svg]:tw-text-primary"
2340
+ "tw:[&_svg]:fill-current",
2341
+ "tw:group-data-[variant=argo]/dropdown-menu-content:[&_svg]:text-primary",
2342
+ "tw:group-data-[variant=default]/dropdown-menu-content:[&_svg]:text-primary"
2451
2343
  ],
2452
- check: ['[&_svg:not([class*="tw-size-"])]:tw-size-3.5', "[&_svg]:tw-text-primary"],
2344
+ check: ['tw:[&_svg:not([class*="tw:size-"])]:size-3.5', "tw:[&_svg]:text-primary"],
2453
2345
  checkbox: [
2454
- "[&_svg]:tw-text-primary-foreground",
2455
- "tw-border",
2456
- "tw-border-solid",
2457
- "tw-rounded",
2458
- "group-data-[variant=default]/dropdown-menu-content:tw-border-neutral-200",
2459
- "group-data-[variant=argo]/dropdown-menu-content:tw-border-input",
2460
- '[&_svg:not([class*="tw-size-"])]:tw-size-3',
2461
- "[&_svg]:data-[state=unchecked]:tw-hidden",
2462
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-border-primary",
2463
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-bg-primary",
2464
- "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-border-primary",
2465
- "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-bg-primary"
2346
+ "tw:[&_svg]:text-primary-foreground",
2347
+ "tw:border",
2348
+ "tw:border-solid",
2349
+ "tw:rounded",
2350
+ "tw:group-data-[variant=default]/dropdown-menu-content:border-neutral-200",
2351
+ "tw:group-data-[variant=argo]/dropdown-menu-content:border-input",
2352
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-3',
2353
+ "tw:data-[state=unchecked]:[&_svg]:hidden",
2354
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:border-primary",
2355
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:bg-primary",
2356
+ "tw:group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:border-primary",
2357
+ "tw:group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:bg-primary"
2466
2358
  ],
2467
2359
  switch: [
2468
- "tw-size-5",
2360
+ "tw:size-5",
2469
2361
  // Lucide SVGs default to 24×24 — constrain the rendered ToggleRight
2470
2362
  // to the indicator slot so it doesn't overflow.
2471
- '[&_svg:not([class*="tw-size-"])]:tw-size-5',
2472
- "tw-text-neutral-400",
2473
- "data-[state=unchecked]:tw-rotate-180",
2474
- "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-text-primary",
2475
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-text-primary"
2363
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-5',
2364
+ "tw:text-neutral-400",
2365
+ "tw:data-[state=unchecked]:rotate-180",
2366
+ "tw:group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:text-primary",
2367
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:text-primary"
2476
2368
  ]
2477
2369
  }
2478
2370
  }
@@ -2485,9 +2377,9 @@ var DropdownMenuItemIndicator = ({
2485
2377
  ...rest
2486
2378
  }) => {
2487
2379
  const IconComp = (() => {
2488
- if (variant === "switch") return icons_exports.ToggleRight;
2489
- if (variant === "radio") return icons_exports.Circle;
2490
- return icons_exports.Check;
2380
+ if (variant === "switch") return ToggleRight;
2381
+ if (variant === "radio") return Circle;
2382
+ return Check;
2491
2383
  })();
2492
2384
  const forceMount = (() => {
2493
2385
  if (forceMountProp) return true;
@@ -2512,18 +2404,18 @@ var ItemIcon = ({ className, children, ...props }) => /* @__PURE__ */ jsx(
2512
2404
  {
2513
2405
  ...props,
2514
2406
  className: cn(
2515
- "tw-inline-flex",
2516
- "tw-items-center",
2517
- "tw-justify-center",
2518
- "tw-aspect-square",
2407
+ "tw:inline-flex",
2408
+ "tw:items-center",
2409
+ "tw:justify-center",
2410
+ "tw:aspect-square",
2519
2411
  // 20px container fits the 16px Lucide glyph plus 2px breathing room
2520
- // each side — the previous tw-size-4 + tw-p-0.5 clipped the 16px child.
2521
- "tw-size-5",
2522
- '[&_svg:not([class*="tw-size-"])]:tw-size-4',
2523
- "group-data-[variant=default]/dropdown-menu-content:tw-text-neutral-400",
2524
- "group-data-[variant=argo]/dropdown-menu-content:tw-text-primary",
2525
- "group-data-[variant=argo]/dropdown-menu-content:group-aria-disabled:tw-text-muted-foreground",
2526
- "group-data-[variant=default]/dropdown-menu-content:group-hover:tw-text-primary",
2412
+ // each side — the previous tw:size-4 + tw:p-0.5 clipped the 16px child.
2413
+ "tw:size-5",
2414
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
2415
+ "tw:group-data-[variant=default]/dropdown-menu-content:text-neutral-400",
2416
+ "tw:group-data-[variant=argo]/dropdown-menu-content:text-primary",
2417
+ "tw:group-data-[variant=argo]/dropdown-menu-content:group-aria-disabled:text-muted-foreground",
2418
+ "tw:group-data-[variant=default]/dropdown-menu-content:group-hover:text-primary",
2527
2419
  className
2528
2420
  ),
2529
2421
  children
@@ -2535,74 +2427,74 @@ init_utils2();
2535
2427
  var itemVariants = cn(
2536
2428
  // reset
2537
2429
  "tailwindcss-preflight",
2538
- "tw-outline-none",
2539
- "tw-group",
2540
- "tw-peer",
2541
- "tw-relative",
2430
+ "tw:outline-hidden",
2431
+ "tw:group",
2432
+ "tw:peer",
2433
+ "tw:relative",
2542
2434
  // positioning
2543
- "tw-flex",
2544
- "tw-flex-1",
2545
- "tw-items-center",
2546
- "tw-gap-2",
2547
- "tw-cursor-pointer",
2548
- "tw-select-none",
2549
- "tw-transition-colors",
2435
+ "tw:flex",
2436
+ "tw:flex-1",
2437
+ "tw:items-center",
2438
+ "tw:gap-2",
2439
+ "tw:cursor-pointer",
2440
+ "tw:select-none",
2441
+ "tw:transition-colors",
2550
2442
  // spacing
2551
- "tw-p-2",
2443
+ "tw:p-2",
2552
2444
  // typography
2553
- "tw-font-sans",
2554
- "tw-text-sm",
2555
- "aria-disabled:tw-pointer-events-none",
2556
- "aria-disabled:tw-opacity-50",
2557
- "focus-visible:tw-outline-none",
2558
- "group-data-[variant=default]/dropdown-menu-content:tw-rounded",
2559
- "group-data-[variant=default]/dropdown-menu-content:focus:tw-bg-neutral-100",
2560
- "group-data-[variant=default]/dropdown-menu-content:focus:tw-text-neutral-900",
2561
- "group-data-[variant=default]/dropdown-menu-content:hover:tw-bg-neutral-100",
2562
- "group-data-[variant=default]/dropdown-menu-content:hover:tw-text-neutral-900",
2563
- "group-data-[variant=argo]/dropdown-menu-content:tw-rounded-md",
2564
- "group-data-[variant=argo]/dropdown-menu-content:tw-text-popover-foreground",
2565
- "group-data-[variant=argo]/dropdown-menu-content:focus:tw-text-primary",
2566
- "group-data-[variant=argo]/dropdown-menu-content:focus:tw-bg-primary/10",
2567
- "group-data-[variant=argo]/dropdown-menu-content:hover:tw-text-primary",
2568
- "group-data-[variant=argo]/dropdown-menu-content:hover:tw-bg-primary/10"
2445
+ "tw:font-sans",
2446
+ "tw:text-sm",
2447
+ "tw:aria-disabled:pointer-events-none",
2448
+ "tw:aria-disabled:opacity-50",
2449
+ "tw:focus-visible:outline-hidden",
2450
+ "tw:group-data-[variant=default]/dropdown-menu-content:rounded",
2451
+ "tw:group-data-[variant=default]/dropdown-menu-content:focus:bg-neutral-100",
2452
+ "tw:group-data-[variant=default]/dropdown-menu-content:focus:text-neutral-900",
2453
+ "tw:group-data-[variant=default]/dropdown-menu-content:hover:bg-neutral-100",
2454
+ "tw:group-data-[variant=default]/dropdown-menu-content:hover:text-neutral-900",
2455
+ "tw:group-data-[variant=argo]/dropdown-menu-content:rounded-md",
2456
+ "tw:group-data-[variant=argo]/dropdown-menu-content:text-popover-foreground",
2457
+ "tw:group-data-[variant=argo]/dropdown-menu-content:focus:text-primary",
2458
+ "tw:group-data-[variant=argo]/dropdown-menu-content:focus:bg-primary/10",
2459
+ "tw:group-data-[variant=argo]/dropdown-menu-content:hover:text-primary",
2460
+ "tw:group-data-[variant=argo]/dropdown-menu-content:hover:bg-primary/10"
2569
2461
  );
2570
2462
  var contentVariants = cn(
2571
2463
  "tailwindcss-preflight",
2572
- "tw-group/dropdown-menu-content",
2464
+ "tw:group/dropdown-menu-content",
2573
2465
  // Sit above Modal/Sheet (z-1051), matching the other floating overlays (Popover/Select z-1055)
2574
- "tw-z-[1055]",
2466
+ "tw:z-[1055]",
2575
2467
  // positioning
2576
- "tw-flex",
2577
- "tw-flex-col",
2578
- "tw-origin-[--radix-dropdown-menu-content-transform-origin]",
2468
+ "tw:flex",
2469
+ "tw:flex-col",
2470
+ "tw:origin-(--radix-dropdown-menu-content-transform-origin)",
2579
2471
  // sizing
2580
- "tw-max-h-[var(--radix-dropdown-menu-content-available-height)]",
2581
- "tw-min-w-32",
2472
+ "tw:max-h-[var(--radix-dropdown-menu-content-available-height)]",
2473
+ "tw:min-w-32",
2582
2474
  // border
2583
- "tw-border",
2584
- "tw-shadow-md",
2475
+ "tw:border",
2476
+ "tw:shadow-md",
2585
2477
  // Legacy surface — fixed white panel.
2586
- "data-[variant=default]:tw-rounded-md",
2587
- "data-[variant=default]:tw-bg-white",
2588
- "data-[variant=default]:tw-border-neutral-100",
2589
- "data-[variant=default]:tw-text-neutral-800",
2478
+ "tw:data-[variant=default]:rounded-md",
2479
+ "tw:data-[variant=default]:bg-white",
2480
+ "tw:data-[variant=default]:border-neutral-100",
2481
+ "tw:data-[variant=default]:text-neutral-800",
2590
2482
  // Argo surface — semantic popover tokens (brand + dark aware).
2591
- "data-[variant=argo]:tw-rounded-2xl",
2592
- "data-[variant=argo]:tw-bg-popover",
2593
- "data-[variant=argo]:tw-text-popover-foreground",
2594
- "data-[variant=argo]:tw-border-border",
2483
+ "tw:data-[variant=argo]:rounded-2xl",
2484
+ "tw:data-[variant=argo]:bg-popover",
2485
+ "tw:data-[variant=argo]:text-popover-foreground",
2486
+ "tw:data-[variant=argo]:border-border",
2595
2487
  // animations
2596
- "data-[state=open]:tw-animate-in",
2597
- "data-[state=open]:tw-fade-in-0",
2598
- "data-[state=open]:tw-zoom-in-95",
2599
- "data-[state=closed]:tw-animate-out",
2600
- "data-[state=closed]:tw-fade-out-0",
2601
- "data-[state=closed]:tw-zoom-out-95",
2602
- "data-[side=bottom]:tw-slide-in-from-top-2",
2603
- "data-[side=left]:tw-slide-in-from-right-2",
2604
- "data-[side=right]:tw-slide-in-from-left-2",
2605
- "data-[side=top]:tw-slide-in-from-bottom-2"
2488
+ "tw:data-[state=open]:animate-in",
2489
+ "tw:data-[state=open]:fade-in-0",
2490
+ "tw:data-[state=open]:zoom-in-95",
2491
+ "tw:data-[state=closed]:animate-out",
2492
+ "tw:data-[state=closed]:fade-out-0",
2493
+ "tw:data-[state=closed]:zoom-out-95",
2494
+ "tw:data-[side=bottom]:slide-in-from-top-2",
2495
+ "tw:data-[side=left]:slide-in-from-right-2",
2496
+ "tw:data-[side=right]:slide-in-from-left-2",
2497
+ "tw:data-[side=top]:slide-in-from-bottom-2"
2606
2498
  );
2607
2499
  var DropdownMenuCheckboxItem = ({
2608
2500
  className,
@@ -2616,7 +2508,7 @@ var DropdownMenuCheckboxItem = ({
2616
2508
  ...props
2617
2509
  }) => {
2618
2510
  const isAtStart = indicatorAlign === "start";
2619
- const indicatorEle = isLoading ? /* @__PURE__ */ jsx(ItemIcon, { className: isAtStart ? "" : "tw-ml-auto", children: /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) }) : /* @__PURE__ */ jsx(DropdownMenuItemIndicator, { variant: indicator, className: isAtStart ? "" : "tw-ml-auto" });
2511
+ const indicatorEle = isLoading ? /* @__PURE__ */ jsx(ItemIcon, { className: isAtStart ? "" : "tw:ml-auto", children: /* @__PURE__ */ jsx(Loader2, { className: "tw:animate-spin" }) }) : /* @__PURE__ */ jsx(DropdownMenuItemIndicator, { variant: indicator, className: isAtStart ? "" : "tw:ml-auto" });
2620
2512
  const handleSelect = (event) => {
2621
2513
  if (!closeOnSelect) event.preventDefault();
2622
2514
  onSelect?.(event);
@@ -2650,10 +2542,10 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
2650
2542
  {
2651
2543
  orientation,
2652
2544
  className: cn(
2653
- "tw-flex tw-touch-none tw-select-none tw-transition-color",
2545
+ "tw:flex tw:touch-none tw:select-none tw:transition-color",
2654
2546
  {
2655
- "tw-h-full tw-w-2.5 tw-p-px": orientation === "vertical",
2656
- "tw-h-2.5 tw-flex-col tw-p-px": orientation === "horizontal"
2547
+ "tw:h-full tw:w-2.5 tw:p-px": orientation === "vertical",
2548
+ "tw:h-2.5 tw:flex-col tw:p-px": orientation === "horizontal"
2657
2549
  },
2658
2550
  className
2659
2551
  ),
@@ -2662,11 +2554,11 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
2662
2554
  ScrollAreaPrimitive2.ScrollAreaThumb,
2663
2555
  {
2664
2556
  className: cn(
2665
- "tw-relative",
2666
- "tw-flex-1",
2667
- "tw-rounded-full",
2668
- "tw-bg-border",
2669
- "hover:tw-bg-muted-foreground"
2557
+ "tw:relative",
2558
+ "tw:flex-1",
2559
+ "tw:rounded-full",
2560
+ "tw:bg-border",
2561
+ "tw:hover:bg-muted-foreground"
2670
2562
  )
2671
2563
  }
2672
2564
  )
@@ -2685,7 +2577,7 @@ var ScrollArea = ({
2685
2577
  {
2686
2578
  "data-slot": "scroll-area",
2687
2579
  className: cn(
2688
- "tw-peer/scroll-area tw-relative tw-overflow-hidden focus-visible:tw-outline-none",
2580
+ "tw:peer/scroll-area tw:relative tw:overflow-hidden tw:focus-visible:outline-hidden",
2689
2581
  className
2690
2582
  ),
2691
2583
  ...props,
@@ -2695,7 +2587,7 @@ var ScrollArea = ({
2695
2587
  {
2696
2588
  ref,
2697
2589
  className: cn(
2698
- "tw-h-full tw-w-full tw-rounded-[inherit] focus-visible:tw-outline-none",
2590
+ "tw:h-full tw:w-full tw:rounded-[inherit] tw:focus-visible:outline-hidden",
2699
2591
  viewPortClassName
2700
2592
  ),
2701
2593
  children
@@ -2735,11 +2627,11 @@ var DropdownMenuContent = ({
2735
2627
  {
2736
2628
  className,
2737
2629
  viewPortClassName: cn(
2738
- "tw-p-2",
2739
- "tw-max-h-[var(--radix-dropdown-menu-content-available-height)]",
2630
+ "tw:p-2",
2631
+ "tw:max-h-[var(--radix-dropdown-menu-content-available-height)]",
2740
2632
  viewPortClassName
2741
2633
  ),
2742
- scrollBarClassName: "tw-w-1.5",
2634
+ scrollBarClassName: "tw:w-1.5",
2743
2635
  children
2744
2636
  }
2745
2637
  )
@@ -2765,7 +2657,7 @@ var DropdownMenuItem = ({
2765
2657
  ...props
2766
2658
  }) => {
2767
2659
  const Comp = asChild ? Root$2 : "div";
2768
- const adornment = isLoading ? /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) : icon;
2660
+ const adornment = isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "tw:animate-spin" }) : icon;
2769
2661
  const handleOnSelect = (event) => {
2770
2662
  if (asModalTrigger) event.preventDefault();
2771
2663
  onSelect?.(event);
@@ -2786,7 +2678,7 @@ var DropdownMenuItem = ({
2786
2678
  onSelect: handleOnSelect,
2787
2679
  onPointerLeave: handlePointerLeave,
2788
2680
  onPointerMove: handlePointerMove,
2789
- className: cn(itemVariants, className),
2681
+ className: cn(itemVariants, asChild && "tw:text-inherit", className),
2790
2682
  asChild: true,
2791
2683
  children: /* @__PURE__ */ jsxs(Comp, { children: [
2792
2684
  adornment && /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: adornment }),
@@ -2800,18 +2692,18 @@ var DropdownMenuItem = ({
2800
2692
  init_utils2();
2801
2693
  var descriptionVariants = cva(
2802
2694
  [
2803
- "tw-box-border",
2804
- "tw-ml-auto",
2805
- "tw-font-sans",
2806
- "tw-tracking-normal",
2807
- "tw-font-normal",
2808
- "tw-text-xs",
2809
- "tw-text-muted-foreground"
2695
+ "tw:box-border",
2696
+ "tw:ml-auto",
2697
+ "tw:font-sans",
2698
+ "tw:tracking-normal",
2699
+ "tw:font-normal",
2700
+ "tw:text-xs",
2701
+ "tw:text-muted-foreground"
2810
2702
  ],
2811
2703
  {
2812
2704
  variants: {
2813
2705
  hideOnHover: {
2814
- true: ["group-focus-within:tw-hidden", "group-hover:tw-hidden"],
2706
+ true: ["tw:group-focus-within:hidden", "tw:group-hover:hidden"],
2815
2707
  false: []
2816
2708
  }
2817
2709
  },
@@ -2834,10 +2726,10 @@ var DropdownMenuLabel = ({ className, ...props }) => {
2834
2726
  DropdownMenuPrimitive3.Label,
2835
2727
  {
2836
2728
  className: cn(
2837
- "tw-p-2",
2838
- "tw-font-medium",
2839
- "tw-text-xs",
2840
- "tw-text-muted-foreground",
2729
+ "tw:p-2",
2730
+ "tw:font-medium",
2731
+ "tw:text-xs",
2732
+ "tw:text-muted-foreground",
2841
2733
  className
2842
2734
  ),
2843
2735
  ...props
@@ -2880,7 +2772,7 @@ var DropdownMenuRadioItem = ({
2880
2772
  ...props
2881
2773
  }) => {
2882
2774
  const isAtStart = indicatorAlign === "start";
2883
- const indicatorEle = isLoading ? /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) }) : /* @__PURE__ */ jsx(DropdownMenuItemIndicator, { variant: indicator });
2775
+ const indicatorEle = isLoading ? /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: /* @__PURE__ */ jsx(Loader2, { className: "tw:animate-spin" }) }) : /* @__PURE__ */ jsx(DropdownMenuItemIndicator, { variant: indicator });
2884
2776
  const handleSelect = (event) => {
2885
2777
  if (!closeOnSelect) event.preventDefault();
2886
2778
  onSelect?.(event);
@@ -2890,13 +2782,13 @@ var DropdownMenuRadioItem = ({
2890
2782
  {
2891
2783
  className: cn(
2892
2784
  itemVariants,
2893
- "data-[state=checked]:tw-cursor-default",
2785
+ "tw:data-[state=checked]:cursor-default",
2894
2786
  {
2895
- "data-[state=checked]:tw-bg-neutral-100": indicator === "none",
2787
+ "tw:data-[state=checked]:bg-neutral-100": indicator === "none",
2896
2788
  // Semantic brand tint (flips under `[data-theme='dark']`) instead of a
2897
- // hardcoded `tw-bg-sky-100`, which stayed light in dark mode and left the
2789
+ // hardcoded `tw:bg-sky-100`, which stayed light in dark mode and left the
2898
2790
  // checked item's text near-invisible.
2899
- "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-bg-primary/10": indicator === "check"
2791
+ "tw:group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:bg-primary/10": indicator === "check"
2900
2792
  },
2901
2793
  className
2902
2794
  ),
@@ -2905,7 +2797,7 @@ var DropdownMenuRadioItem = ({
2905
2797
  children: [
2906
2798
  isAtStart && indicatorEle,
2907
2799
  icon && /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: icon }),
2908
- /* @__PURE__ */ jsx("span", { className: "tw-flex tw-min-w-0 tw-flex-1 tw-items-center tw-gap-2", children }),
2800
+ /* @__PURE__ */ jsx("span", { className: "tw:flex tw:min-w-0 tw:flex-1 tw:items-center tw:gap-2", children }),
2909
2801
  !isAtStart && indicatorEle
2910
2802
  ]
2911
2803
  }
@@ -2918,21 +2810,21 @@ var DropdownMenuSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(
2918
2810
  DropdownMenuPrimitive3.Separator,
2919
2811
  {
2920
2812
  className: cn(
2921
- "tw-relative",
2922
- "tw-z-10",
2813
+ "tw:relative",
2814
+ "tw:z-10",
2923
2815
  // layout
2924
- "tw-flex",
2925
- "tw-items-center",
2926
- "tw-justify-center",
2927
- "tw-w-full",
2816
+ "tw:flex",
2817
+ "tw:items-center",
2818
+ "tw:justify-center",
2819
+ "tw:w-full",
2928
2820
  // separator line
2929
- 'before:tw-content-[""]',
2930
- "before:tw-w-full",
2931
- "before:tw-h-px",
2932
- "group-data-[variant=default]/dropdown-menu-content:tw-py-2",
2933
- "group-data-[variant=default]/dropdown-menu-content:before:tw-bg-neutral-150",
2934
- "group-data-[variant=argo]/dropdown-menu-content:tw-py-1",
2935
- "group-data-[variant=argo]/dropdown-menu-content:before:tw-bg-border",
2821
+ 'tw:before:content-[""]',
2822
+ "tw:before:w-full",
2823
+ "tw:before:h-px",
2824
+ "tw:group-data-[variant=default]/dropdown-menu-content:py-2",
2825
+ "tw:group-data-[variant=default]/dropdown-menu-content:before:bg-neutral-150",
2826
+ "tw:group-data-[variant=argo]/dropdown-menu-content:py-1",
2827
+ "tw:group-data-[variant=argo]/dropdown-menu-content:before:bg-border",
2936
2828
  className
2937
2829
  ),
2938
2830
  ...props
@@ -2948,7 +2840,7 @@ var DropdownMenuSubContent = ({ className, ...props }) => {
2948
2840
  DropdownMenuPrimitive3.SubContent,
2949
2841
  {
2950
2842
  "data-variant": variant,
2951
- className: cn(contentVariants, "tw-z-[1041]", "tw-p-2", className),
2843
+ className: cn(contentVariants, "tw:z-[1041]", "tw:p-2", className),
2952
2844
  ...props
2953
2845
  }
2954
2846
  ) });
@@ -2960,7 +2852,7 @@ init_utils2();
2960
2852
  var DropdownMenuSubTrigger = ({ className, children, ...props }) => {
2961
2853
  return /* @__PURE__ */ jsxs(DropdownMenuPrimitive3.SubTrigger, { className: cn(itemVariants, className), ...props, children: [
2962
2854
  children,
2963
- /* @__PURE__ */ jsx(icons_exports.ChevronRight, { className: "tw-ml-auto tw-size-5" })
2855
+ /* @__PURE__ */ jsx(ChevronRight, { className: "tw:ml-auto tw:size-5" })
2964
2856
  ] });
2965
2857
  };
2966
2858
 
@@ -2972,7 +2864,7 @@ var DropdownMenuTrigger = ({ ref, className, ...props }) => /* @__PURE__ */ jsx(
2972
2864
  ...props,
2973
2865
  ref,
2974
2866
  "data-slot": "dropdown-menu-trigger",
2975
- className: cn("tw-group/dropdown-menu-trigger", className)
2867
+ className: cn("tw:group/dropdown-menu-trigger", className)
2976
2868
  }
2977
2869
  );
2978
2870
  var DropdownMenu = ({
@@ -3003,10 +2895,10 @@ init_Tooltip2();
3003
2895
  init_icons();
3004
2896
  init_utils2();
3005
2897
  var ALIGNMENT_OPTIONS = [
3006
- { value: "left", label: "Left", icon: icons_exports.AlignLeft },
3007
- { value: "center", label: "Center", icon: icons_exports.AlignCenter },
3008
- { value: "right", label: "Right", icon: icons_exports.AlignRight },
3009
- { value: "justify", label: "Justify", icon: icons_exports.AlignJustify }
2898
+ { value: "left", label: "Left", icon: AlignLeft },
2899
+ { value: "center", label: "Center", icon: AlignCenter },
2900
+ { value: "right", label: "Right", icon: AlignRight },
2901
+ { value: "justify", label: "Justify", icon: AlignJustify }
3010
2902
  ];
3011
2903
  var ALIGNMENT_ICONS = Object.fromEntries(
3012
2904
  ALIGNMENT_OPTIONS.map(({ value, icon }) => [value, icon])
@@ -3032,32 +2924,32 @@ var AlignmentDropdown = ({
3032
2924
  editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, align);
3033
2925
  });
3034
2926
  };
3035
- const CurrentAlignmentIcon = ALIGNMENT_ICONS[alignment] ?? icons_exports.AlignLeft;
2927
+ const CurrentAlignmentIcon = ALIGNMENT_ICONS[alignment] ?? AlignLeft;
3036
2928
  return /* @__PURE__ */ jsxs(DropdownMenu, { onOpenChange: handleOpenChange, children: [
3037
2929
  /* @__PURE__ */ jsx(Tooltip, { tooltip: "Text alignment", placement: "top", triggerAsChild: true, children: /* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
3038
2930
  "button",
3039
2931
  {
3040
2932
  type: "button",
3041
2933
  className: cn(
3042
- "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",
3043
- "hover:tw-bg-accent"
2934
+ "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",
2935
+ "tw:hover:bg-accent"
3044
2936
  ),
3045
2937
  children: [
3046
- /* @__PURE__ */ jsx(CurrentAlignmentIcon, { className: "tw-size-4" }),
3047
- /* @__PURE__ */ jsx(icons_exports.ChevronDown, { className: "tw-size-3" })
2938
+ /* @__PURE__ */ jsx(CurrentAlignmentIcon, { className: "tw:size-4" }),
2939
+ /* @__PURE__ */ jsx(ChevronDown, { className: "tw:size-3" })
3048
2940
  ]
3049
2941
  }
3050
2942
  ) }) }),
3051
- /* @__PURE__ */ jsx(DropdownMenu.Content, { align: "start", className: "tw-min-w-32", children: ALIGNMENT_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxs(
2943
+ /* @__PURE__ */ jsx(DropdownMenu.Content, { align: "start", className: "tw:min-w-32", children: ALIGNMENT_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxs(
3052
2944
  DropdownMenu.Item,
3053
2945
  {
3054
2946
  onSelect: () => handleSelect(value),
3055
2947
  className: cn(
3056
- "tw-flex tw-items-center tw-gap-2",
3057
- alignment === value && "tw-bg-secondary-50 tw-text-secondary-500"
2948
+ "tw:flex tw:items-center tw:gap-2",
2949
+ alignment === value && "tw:bg-secondary-50 tw:text-secondary-500"
3058
2950
  ),
3059
2951
  children: [
3060
- /* @__PURE__ */ jsx(IconComp, { className: "tw-size-4" }),
2952
+ /* @__PURE__ */ jsx(IconComp, { className: "tw:size-4" }),
3061
2953
  label
3062
2954
  ]
3063
2955
  },
@@ -3069,14 +2961,14 @@ init_Tooltip2();
3069
2961
  init_icons();
3070
2962
  init_utils2();
3071
2963
  var BLOCK_TYPE_META = {
3072
- paragraph: { label: "Normal", icon: icons_exports.Type, selectable: true },
3073
- h1: { label: "Heading 1", icon: icons_exports.Heading1, selectable: true },
3074
- h2: { label: "Heading 2", icon: icons_exports.Heading2, selectable: true },
3075
- h3: { label: "Heading 3", icon: icons_exports.Heading3, selectable: true },
3076
- bullet: { label: "Bullet List", icon: icons_exports.List, selectable: false },
3077
- number: { label: "Numbered List", icon: icons_exports.ListOrdered, selectable: false },
3078
- quote: { label: "Quote", icon: icons_exports.Quote, selectable: false },
3079
- code: { label: "Code Block", icon: icons_exports.SquareCode, selectable: false }
2964
+ paragraph: { label: "Normal", icon: Type, selectable: true },
2965
+ h1: { label: "Heading 1", icon: Heading1, selectable: true },
2966
+ h2: { label: "Heading 2", icon: Heading2, selectable: true },
2967
+ h3: { label: "Heading 3", icon: Heading3, selectable: true },
2968
+ bullet: { label: "Bullet List", icon: List, selectable: false },
2969
+ number: { label: "Numbered List", icon: ListOrdered, selectable: false },
2970
+ quote: { label: "Quote", icon: Quote, selectable: false },
2971
+ code: { label: "Code Block", icon: SquareCode, selectable: false }
3080
2972
  };
3081
2973
  var BLOCK_TYPE_OPTIONS = Object.entries(BLOCK_TYPE_META).filter(([, meta]) => meta.selectable).map(([value, { label, icon }]) => ({ value, label, icon }));
3082
2974
  var isBlockType = (value) => Object.prototype.hasOwnProperty.call(BLOCK_TYPE_META, value);
@@ -3086,7 +2978,7 @@ var BlockTypeDropdown = ({
3086
2978
  }) => {
3087
2979
  const savedSelectionRef = useRef(null);
3088
2980
  const currentMeta = isBlockType(blockType) ? BLOCK_TYPE_META[blockType] : null;
3089
- const CurrentBlockIcon = currentMeta?.icon ?? icons_exports.Type;
2981
+ const CurrentBlockIcon = currentMeta?.icon ?? Type;
3090
2982
  const handleOpenChange = (open) => {
3091
2983
  if (open) {
3092
2984
  editor.getEditorState().read(() => {
@@ -3123,26 +3015,26 @@ var BlockTypeDropdown = ({
3123
3015
  {
3124
3016
  type: "button",
3125
3017
  className: cn(
3126
- "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",
3127
- "hover:tw-bg-accent"
3018
+ "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",
3019
+ "tw:hover:bg-accent"
3128
3020
  ),
3129
3021
  children: [
3130
- /* @__PURE__ */ jsx(CurrentBlockIcon, { className: "tw-size-4" }),
3022
+ /* @__PURE__ */ jsx(CurrentBlockIcon, { className: "tw:size-4" }),
3131
3023
  currentMeta?.label ?? "Normal",
3132
- /* @__PURE__ */ jsx(icons_exports.ChevronDown, { className: "tw-size-3" })
3024
+ /* @__PURE__ */ jsx(ChevronDown, { className: "tw:size-3" })
3133
3025
  ]
3134
3026
  }
3135
3027
  ) }) }),
3136
- /* @__PURE__ */ jsx(DropdownMenu.Content, { align: "start", className: "tw-min-w-40", children: BLOCK_TYPE_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxs(
3028
+ /* @__PURE__ */ jsx(DropdownMenu.Content, { align: "start", className: "tw:min-w-40", children: BLOCK_TYPE_OPTIONS.map(({ value, label, icon: IconComp }) => /* @__PURE__ */ jsxs(
3137
3029
  DropdownMenu.Item,
3138
3030
  {
3139
3031
  onSelect: () => handleSelect(value),
3140
3032
  className: cn(
3141
- "tw-flex tw-items-center tw-gap-2",
3142
- blockType === value && "tw-bg-secondary-50 tw-text-secondary-500"
3033
+ "tw:flex tw:items-center tw:gap-2",
3034
+ blockType === value && "tw:bg-secondary-50 tw:text-secondary-500"
3143
3035
  ),
3144
3036
  children: [
3145
- /* @__PURE__ */ jsx(IconComp, { className: "tw-size-4" }),
3037
+ /* @__PURE__ */ jsx(IconComp, { className: "tw:size-4" }),
3146
3038
  label
3147
3039
  ]
3148
3040
  },
@@ -3167,12 +3059,12 @@ init_context();
3167
3059
  init_utils2();
3168
3060
  var addonVariants = cva(
3169
3061
  [
3170
- "tw-flex",
3171
- "tw-items-center",
3172
- "tw-gap-1",
3062
+ "tw:flex",
3063
+ "tw:items-center",
3064
+ "tw:gap-1",
3173
3065
  // Default size for nested Lucide icons in prefix/suffix slots; callers can override on the icon.
3174
- "[&_svg.lucide:not([class*='tw-size-'])]:tw-size-4",
3175
- "[&_svg]:tw-shrink-0"
3066
+ "tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4",
3067
+ "tw:[&_svg]:shrink-0"
3176
3068
  ],
3177
3069
  {
3178
3070
  defaultVariants: {
@@ -3180,22 +3072,22 @@ var addonVariants = cva(
3180
3072
  },
3181
3073
  variants: {
3182
3074
  align: {
3183
- "inline-start": ["tw-order-first", "[&:not(:empty)]:tw-pl-4"],
3184
- "inline-end": ["tw-order-last", "[&:not(:empty)]:tw-pr-4"],
3075
+ "inline-start": ["tw:order-first", "tw:[&:not(:empty)]:pl-4"],
3076
+ "inline-end": ["tw:order-last", "tw:[&:not(:empty)]:pr-4"],
3185
3077
  "block-start": [
3186
- "tw-order-first",
3187
- // `tw-w-full` needs to be empty-conditional too — when the addon
3078
+ "tw:order-first",
3079
+ // `tw:w-full` needs to be empty-conditional too — when the addon
3188
3080
  // has no content the root stays in flex-row, and a 100%-wide
3189
3081
  // empty addon would claim half of the input row beside the input.
3190
- "[&:not(:empty)]:tw-w-full",
3191
- "[&:not(:empty)]:tw-px-4",
3192
- "[&:not(:empty)]:tw-py-1.5"
3082
+ "tw:[&:not(:empty)]:w-full",
3083
+ "tw:[&:not(:empty)]:px-4",
3084
+ "tw:[&:not(:empty)]:py-1.5"
3193
3085
  ],
3194
3086
  "block-end": [
3195
- "tw-order-last",
3196
- "[&:not(:empty)]:tw-w-full",
3197
- "[&:not(:empty)]:tw-px-4",
3198
- "[&:not(:empty)]:tw-py-1.5"
3087
+ "tw:order-last",
3088
+ "tw:[&:not(:empty)]:w-full",
3089
+ "tw:[&:not(:empty)]:px-4",
3090
+ "tw:[&:not(:empty)]:py-1.5"
3199
3091
  ]
3200
3092
  }
3201
3093
  }
@@ -3219,7 +3111,7 @@ var InputGroupButton = ({ ref, className, tabIndex = -1, ...props }) => /* @__PU
3219
3111
  ref,
3220
3112
  variant: "invisible",
3221
3113
  size: "icon-sm",
3222
- className: cn("tw-size-5", "[&_svg]:tw-text-muted-foreground", className)
3114
+ className: cn("tw:size-5", "tw:[&_svg]:text-muted-foreground", className)
3223
3115
  }
3224
3116
  );
3225
3117
 
@@ -3231,17 +3123,17 @@ var InputGroupInput = ({ ref, className, ...inputProps }) => /* @__PURE__ */ jsx
3231
3123
  ...inputProps,
3232
3124
  ref,
3233
3125
  className: cn(
3234
- "tw-w-full",
3235
- "tw-bg-transparent",
3236
- "tw-outline-none",
3126
+ "tw:w-full",
3127
+ "tw:bg-transparent",
3128
+ "tw:outline-hidden",
3237
3129
  // font
3238
- "tw-font-sans",
3239
- "tw-text-sm",
3130
+ "tw:font-sans",
3131
+ "tw:text-sm",
3240
3132
  // placeholder
3241
- "placeholder:tw-text-neutral-400",
3242
- "placeholder:tw-font-normal",
3133
+ "tw:placeholder:text-neutral-400",
3134
+ "tw:placeholder:font-normal",
3243
3135
  // disabled
3244
- "disabled:tw-cursor-not-allowed",
3136
+ "tw:disabled:cursor-not-allowed",
3245
3137
  className
3246
3138
  )
3247
3139
  }
@@ -3253,13 +3145,13 @@ var InputGroupText = ({ className, ...props }) => /* @__PURE__ */ jsx(
3253
3145
  "span",
3254
3146
  {
3255
3147
  className: cn(
3256
- "tw-flex",
3257
- "tw-items-center",
3258
- "tw-gap-2",
3259
- "tw-text-sm",
3260
- "tw-text-muted-foreground",
3261
- "[&_svg]:tw-pointer-events-none",
3262
- '[&_svg:not([class*="tw-size-"])]:tw-size-4',
3148
+ "tw:flex",
3149
+ "tw:items-center",
3150
+ "tw:gap-2",
3151
+ "tw:text-sm",
3152
+ "tw:text-muted-foreground",
3153
+ "tw:[&_svg]:pointer-events-none",
3154
+ 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
3263
3155
  className
3264
3156
  ),
3265
3157
  ...props
@@ -3302,20 +3194,20 @@ var InputGroupTextArea = ({
3302
3194
  minRows,
3303
3195
  maxRows: maxRows === "unlimited" ? void 0 : maxRows,
3304
3196
  className: cn(
3305
- "tw-w-full",
3306
- "tw-bg-transparent",
3307
- "tw-outline-none",
3308
- "tw-px-4",
3197
+ "tw:w-full",
3198
+ "tw:bg-transparent",
3199
+ "tw:outline-hidden",
3200
+ "tw:px-4",
3309
3201
  // font
3310
- "tw-font-sans",
3311
- "tw-text-sm",
3202
+ "tw:font-sans",
3203
+ "tw:text-sm",
3312
3204
  // placeholder
3313
- "placeholder:tw-text-neutral-400",
3314
- "placeholder:tw-font-normal",
3205
+ "tw:placeholder:text-neutral-400",
3206
+ "tw:placeholder:font-normal",
3315
3207
  // disabled
3316
- "disabled:tw-cursor-not-allowed",
3208
+ "tw:disabled:cursor-not-allowed",
3317
3209
  {
3318
- "tw-resize-none": disableResize
3210
+ "tw:resize-none": disableResize
3319
3211
  },
3320
3212
  className
3321
3213
  )
@@ -3325,39 +3217,39 @@ var InputGroupTextArea = ({
3325
3217
  var inputGroupVariants = cva(
3326
3218
  [
3327
3219
  "tailwindcss-preflight",
3328
- "tw-group",
3329
- "tw-overflow-hidden",
3330
- "tw-box-border",
3220
+ "tw:group",
3221
+ "tw:overflow-hidden",
3222
+ "tw:box-border",
3331
3223
  // positioning
3332
- "tw-flex",
3333
- "tw-items-center",
3224
+ "tw:flex",
3225
+ "tw:items-center",
3334
3226
  // base — legacy (non-argo) chrome uses a fixed radius; argo overrides it with
3335
3227
  // the brand radius token in the `argo` variant below.
3336
- "tw-rounded",
3337
- "tw-border",
3338
- "tw-border-solid",
3339
- "tw-border-neutral-200",
3340
- "tw-text-neutral-800",
3341
- "tw-transition",
3228
+ "tw:rounded",
3229
+ "tw:border",
3230
+ "tw:border-solid",
3231
+ "tw:border-neutral-200",
3232
+ "tw:text-neutral-800",
3233
+ "tw:transition",
3342
3234
  // focus
3343
- "has-[:is(input,textarea):focus]:tw-ring-4",
3235
+ "tw:has-[:is(input,textarea):focus]:ring-4",
3344
3236
  // readonly
3345
- "has-[:is(input,textarea)[readonly]]:tw-bg-neutral-150",
3346
- "has-[:is(input,textarea)[readonly]]:focus-within:tw-ring-0",
3347
- "has-[:is(input,textarea)[readonly]]:tw-border-neutral-150",
3237
+ "tw:has-[:is(input,textarea)[readonly]]:bg-neutral-150",
3238
+ "tw:has-[:is(input,textarea)[readonly]]:focus-within:ring-0",
3239
+ "tw:has-[:is(input,textarea)[readonly]]:border-neutral-150",
3348
3240
  // disabled cursor (opacity owned by variant)
3349
- "has-[:is(input,textarea):disabled]:tw-cursor-not-allowed",
3241
+ "tw:has-[:is(input,textarea):disabled]:cursor-not-allowed",
3350
3242
  // textarea: top-align addons, allow vertical expansion, own its y-padding
3351
- "has-[textarea]:tw-items-start",
3352
- "has-[[data-align=block-start]:not(:empty)]:tw-flex-wrap",
3353
- "has-[[data-align=block-end]:not(:empty)]:tw-flex-wrap",
3354
- "[&>input]:has-[[data-align=block-start]:not(:empty)]:tw-w-auto",
3355
- "[&>input]:has-[[data-align=block-start]:not(:empty)]:tw-flex-1",
3356
- "[&>input]:has-[[data-align=block-end]:not(:empty)]:tw-w-auto",
3357
- "[&>input]:has-[[data-align=block-end]:not(:empty)]:tw-flex-1",
3358
- "[&>input]:tw-px-4",
3359
- "[&>input]:has-[[data-align=inline-start]:not(:empty)]:tw-pl-2",
3360
- "[&>input]:has-[[data-align=inline-end]:not(:empty)]:tw-pr-2"
3243
+ "tw:has-[textarea]:items-start",
3244
+ "tw:has-[[data-align=block-start]:not(:empty)]:flex-wrap",
3245
+ "tw:has-[[data-align=block-end]:not(:empty)]:flex-wrap",
3246
+ "tw:[&>input]:has-[[data-align=block-start]:not(:empty)]:w-auto",
3247
+ "tw:[&>input]:has-[[data-align=block-start]:not(:empty)]:flex-1",
3248
+ "tw:[&>input]:has-[[data-align=block-end]:not(:empty)]:w-auto",
3249
+ "tw:[&>input]:has-[[data-align=block-end]:not(:empty)]:flex-1",
3250
+ "tw:[&>input]:px-4",
3251
+ "tw:[&>input]:has-[[data-align=inline-start]:not(:empty)]:pl-2",
3252
+ "tw:[&>input]:has-[[data-align=inline-end]:not(:empty)]:pr-2"
3361
3253
  ],
3362
3254
  {
3363
3255
  defaultVariants: {
@@ -3370,153 +3262,153 @@ var inputGroupVariants = cva(
3370
3262
  {
3371
3263
  variant: "secondary",
3372
3264
  state: "error",
3373
- className: ["tw-bg-error-100"]
3265
+ className: ["tw:bg-error-100"]
3374
3266
  },
3375
3267
  {
3376
3268
  variant: "secondary",
3377
3269
  state: "warning",
3378
- className: ["tw-bg-warning-100"]
3270
+ className: ["tw:bg-warning-100"]
3379
3271
  },
3380
3272
  {
3381
3273
  variant: "primary",
3382
3274
  state: "default",
3383
3275
  focusVariant: "off",
3384
- className: ["has-[:is(input,textarea):focus]:tw-border-neutral-200"]
3276
+ className: ["tw:has-[:is(input,textarea):focus]:border-neutral-200"]
3385
3277
  },
3386
3278
  {
3387
3279
  variant: "secondary",
3388
3280
  state: "default",
3389
3281
  focusVariant: "off",
3390
- className: ["has-[:is(input,textarea):focus]:tw-border-neutral-100"]
3282
+ className: ["tw:has-[:is(input,textarea):focus]:border-neutral-100"]
3391
3283
  },
3392
3284
  {
3393
3285
  variant: ["primary", "secondary"],
3394
3286
  state: "error",
3395
3287
  focusVariant: "on",
3396
- className: ["!tw-border-error-500", "!tw-ring-error-200"]
3288
+ className: ["tw:!border-error-500", "tw:!ring-error-200"]
3397
3289
  },
3398
3290
  {
3399
3291
  variant: ["primary", "secondary"],
3400
3292
  state: "warning",
3401
3293
  focusVariant: "on",
3402
- className: ["!tw-border-warning-500", "!tw-ring-warning-200"]
3294
+ className: ["tw:!border-warning-500", "tw:!ring-warning-200"]
3403
3295
  },
3404
3296
  // --- argo ---
3405
3297
  {
3406
3298
  variant: "argo",
3407
3299
  state: "default",
3408
3300
  className: [
3409
- "has-[:is(input,textarea):focus]:tw-border-primary",
3410
- "has-[:is(input,textarea):focus]:tw-ring-ring/50"
3301
+ "tw:has-[:is(input,textarea):focus]:border-primary",
3302
+ "tw:has-[:is(input,textarea):focus]:ring-ring/50"
3411
3303
  ]
3412
3304
  },
3413
3305
  {
3414
3306
  variant: "argo",
3415
3307
  state: "error",
3416
3308
  className: [
3417
- "tw-border-destructive",
3418
- "has-[:is(input,textarea):focus]:tw-border-destructive",
3419
- "has-[:is(input,textarea):focus]:tw-ring-destructive/20"
3309
+ "tw:border-destructive",
3310
+ "tw:has-[:is(input,textarea):focus]:border-destructive",
3311
+ "tw:has-[:is(input,textarea):focus]:ring-destructive/20"
3420
3312
  ]
3421
3313
  },
3422
3314
  {
3423
3315
  variant: "argo",
3424
3316
  focusVariant: "on",
3425
- className: ["!tw-border-primary", "!tw-ring-ring/50"]
3317
+ className: ["tw:!border-primary", "tw:!ring-ring/50"]
3426
3318
  },
3427
3319
  {
3428
3320
  variant: "argo",
3429
3321
  state: "error",
3430
3322
  focusVariant: "on",
3431
- className: ["!tw-border-destructive", "!tw-ring-destructive/20"]
3323
+ className: ["tw:!border-destructive", "tw:!ring-destructive/20"]
3432
3324
  },
3433
3325
  {
3434
3326
  variant: "argo",
3435
3327
  state: "default",
3436
3328
  focusVariant: "off",
3437
- className: ["has-[:is(input,textarea):focus]:tw-border-input"]
3329
+ className: ["tw:has-[:is(input,textarea):focus]:border-input"]
3438
3330
  }
3439
3331
  ],
3440
3332
  variants: {
3441
3333
  focusVariant: {
3442
3334
  default: [],
3443
- on: ["!tw-border-ring", "!tw-ring-ring/30", "!tw-ring-4"],
3444
- off: ["has-[:is(input,textarea):focus]:!tw-ring-0"]
3335
+ on: ["tw:!border-ring", "tw:!ring-ring/30", "tw:!ring-4"],
3336
+ off: ["tw:has-[:is(input,textarea):focus]:!ring-0"]
3445
3337
  },
3446
3338
  variant: {
3447
3339
  primary: [
3448
- "tw-bg-white",
3449
- "has-[:is(input,textarea):disabled]:tw-opacity-40",
3340
+ "tw:bg-white",
3341
+ "tw:has-[:is(input,textarea):disabled]:opacity-40",
3450
3342
  // aria-invalid on the control surfaces the error chrome without a `state` prop — the
3451
3343
  // accessible path (mirrors the `state="error"` legacy tokens). Higher specificity than
3452
3344
  // the default focus selector, so it wins without `!important`.
3453
- "has-[:is(input,textarea)[aria-invalid=true]]:tw-border-error-500",
3454
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-error-500",
3455
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-error-200"
3345
+ "tw:has-[:is(input,textarea)[aria-invalid=true]]:border-error-500",
3346
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:border-error-500",
3347
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:ring-error-200"
3456
3348
  ],
3457
3349
  secondary: [
3458
- "tw-bg-neutral-100",
3459
- "tw-border-neutral-100",
3460
- "has-[:is(input,textarea):disabled]:tw-opacity-40",
3461
- "has-[:is(input,textarea)[aria-invalid=true]]:tw-border-error-500",
3462
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-error-500",
3463
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-error-200"
3350
+ "tw:bg-neutral-100",
3351
+ "tw:border-neutral-100",
3352
+ "tw:has-[:is(input,textarea):disabled]:opacity-40",
3353
+ "tw:has-[:is(input,textarea)[aria-invalid=true]]:border-error-500",
3354
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:border-error-500",
3355
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:ring-error-200"
3464
3356
  ],
3465
3357
  argo: [
3466
3358
  // argo follows the brand radius token (overrides the static base)
3467
- "tw-rounded-[var(--radius-lg,0.25rem)]",
3359
+ "tw:rounded-[var(--radius-lg,0.25rem)]",
3468
3360
  // muted filled input surface — gray, distinct from white containers; not the app-background token
3469
- "tw-bg-muted",
3470
- "tw-border-input",
3471
- "tw-text-foreground",
3472
- "has-[:is(input,textarea):disabled]:tw-opacity-50",
3361
+ "tw:bg-muted",
3362
+ "tw:border-input",
3363
+ "tw:text-foreground",
3364
+ "tw:has-[:is(input,textarea):disabled]:opacity-50",
3473
3365
  // readonly: keep the themed input surface/border. The base layer's fixed
3474
3366
  // `neutral-150` (a light grey) is correct for the legacy light chrome but
3475
3367
  // collides with argo's themed `foreground` text — light-on-light, invisible
3476
3368
  // in dark mode. Re-pin to the same `muted`/`input` tokens the editable argo
3477
3369
  // input uses (validated AA), so readonly stays legible in every scheme.
3478
- "has-[:is(input,textarea)[readonly]]:tw-bg-muted",
3479
- "has-[:is(input,textarea)[readonly]]:tw-border-input",
3370
+ "tw:has-[:is(input,textarea)[readonly]]:bg-muted",
3371
+ "tw:has-[:is(input,textarea)[readonly]]:border-input",
3480
3372
  // higher specificity than has-[:is(input,textarea):focus] — prevents focus border on readonly
3481
- "has-[:is(input,textarea)[readonly]:focus]:tw-border-input",
3373
+ "tw:has-[:is(input,textarea)[readonly]:focus]:border-input",
3482
3374
  // aria-invalid on the control surfaces the error chrome without a `state` prop — the
3483
3375
  // accessible path (uses the themeable `destructive` status token).
3484
- "has-[:is(input,textarea)[aria-invalid=true]]:tw-border-destructive",
3485
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-destructive",
3486
- "has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-destructive/20"
3376
+ "tw:has-[:is(input,textarea)[aria-invalid=true]]:border-destructive",
3377
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:border-destructive",
3378
+ "tw:has-[:is(input,textarea)[aria-invalid=true]:focus]:ring-destructive/20"
3487
3379
  ]
3488
3380
  },
3489
3381
  sizing: {
3490
3382
  default: [
3491
- "[&>:is(input,textarea)]:tw-py-2.5",
3492
- "[&>:is(input,textarea)]:tw-leading-[18px]",
3493
- "[&>textarea]:!tw-min-h-[calc(2.5rem-2px)]"
3383
+ "tw:[&>:is(input,textarea)]:py-2.5",
3384
+ "tw:[&>:is(input,textarea)]:leading-[18px]",
3385
+ "tw:[&>textarea]:!min-h-[calc(2.5rem-2px)]"
3494
3386
  ],
3495
3387
  small: [
3496
- "[&>:is(input,textarea)]:tw-py-2",
3497
- "[&>:is(input,textarea)]:tw-leading-[16px]",
3498
- "[&>textarea]:!tw-min-h-[calc(2rem-2px)]"
3388
+ "tw:[&>:is(input,textarea)]:py-2",
3389
+ "tw:[&>:is(input,textarea)]:leading-[16px]",
3390
+ "tw:[&>textarea]:!min-h-[calc(2rem-2px)]"
3499
3391
  ],
3500
3392
  medium: [
3501
- "[&>:is(input,textarea)]:tw-py-2",
3502
- "[&>:is(input,textarea)]:tw-leading-[18px]",
3503
- "[&>textarea]:!tw-min-h-[calc(2.25rem-2px)]"
3393
+ "tw:[&>:is(input,textarea)]:py-2",
3394
+ "tw:[&>:is(input,textarea)]:leading-[18px]",
3395
+ "tw:[&>textarea]:!min-h-[calc(2.25rem-2px)]"
3504
3396
  ]
3505
3397
  },
3506
3398
  state: {
3507
3399
  default: [
3508
- "has-[:is(input,textarea):focus]:tw-border-ring",
3509
- "has-[:is(input,textarea):focus]:tw-ring-ring/30"
3400
+ "tw:has-[:is(input,textarea):focus]:border-ring",
3401
+ "tw:has-[:is(input,textarea):focus]:ring-ring/30"
3510
3402
  ],
3511
3403
  error: [
3512
- "tw-border-error-500",
3513
- "has-[:is(input,textarea):focus]:tw-border-error-500",
3514
- "has-[:is(input,textarea):focus]:tw-ring-error-200"
3404
+ "tw:border-error-500",
3405
+ "tw:has-[:is(input,textarea):focus]:border-error-500",
3406
+ "tw:has-[:is(input,textarea):focus]:ring-error-200"
3515
3407
  ],
3516
3408
  warning: [
3517
- "tw-border-warning-500",
3518
- "has-[:is(input,textarea):focus]:tw-border-warning-500",
3519
- "has-[:is(input,textarea):focus]:tw-ring-warning-200"
3409
+ "tw:border-warning-500",
3410
+ "tw:has-[:is(input,textarea):focus]:border-warning-500",
3411
+ "tw:has-[:is(input,textarea):focus]:ring-warning-200"
3520
3412
  ]
3521
3413
  }
3522
3414
  }
@@ -3629,7 +3521,7 @@ var ColorPicker = ({ value, disabled, readOnly, ...props }) => {
3629
3521
  if (!pickerRef.current) return;
3630
3522
  showPicker(pickerRef.current);
3631
3523
  };
3632
- return /* @__PURE__ */ jsxs("div", { className: "tw-relative", children: [
3524
+ return /* @__PURE__ */ jsxs("div", { className: "tw:relative", children: [
3633
3525
  /* @__PURE__ */ jsx(
3634
3526
  "input",
3635
3527
  {
@@ -3639,7 +3531,7 @@ var ColorPicker = ({ value, disabled, readOnly, ...props }) => {
3639
3531
  value: coerceColorPickerValue(value),
3640
3532
  tabIndex: -1,
3641
3533
  "aria-hidden": true,
3642
- className: "tw-pointer-events-none tw-absolute tw-left-0 tw-top-full tw-size-0 tw-opacity-0",
3534
+ className: "tw:pointer-events-none tw:absolute tw:left-0 tw:top-full tw:size-0 tw:opacity-0",
3643
3535
  disabled,
3644
3536
  readOnly
3645
3537
  }
@@ -3651,7 +3543,7 @@ var ColorPicker = ({ value, disabled, readOnly, ...props }) => {
3651
3543
  disabled: disabled || readOnly,
3652
3544
  onClick: handleOpenPicker,
3653
3545
  "aria-label": "Pick color",
3654
- children: /* @__PURE__ */ jsx(icons_exports.Pipette, { className: "tw-size-4" })
3546
+ children: /* @__PURE__ */ jsx(Pipette, { className: "tw:size-4" })
3655
3547
  }
3656
3548
  )
3657
3549
  ] });
@@ -3726,24 +3618,24 @@ var ColorInput = ({
3726
3618
  {
3727
3619
  align: "inline-start",
3728
3620
  className: cn(
3729
- { "-tw-ml-7 tw-opacity-0": !value },
3730
- "tw-transition-[opacity,margin]",
3731
- "tw-ease-linear",
3732
- "tw-duration-200"
3621
+ { "tw:-ml-7 tw:opacity-0": !value },
3622
+ "tw:transition-[opacity,margin]",
3623
+ "tw:ease-linear",
3624
+ "tw:duration-200"
3733
3625
  ),
3734
3626
  children: /* @__PURE__ */ jsx(
3735
3627
  "div",
3736
3628
  {
3737
3629
  style: isValidSwatch ? { background: swatchColor } : void 0,
3738
3630
  className: cn(
3739
- "tw-size-5",
3740
- "tw-shrink-0",
3741
- "tw-rounded-sm",
3742
- "tw-border",
3743
- "tw-border-solid",
3744
- "tw-border-neutral-300",
3631
+ "tw:size-5",
3632
+ "tw:shrink-0",
3633
+ "tw:rounded-sm",
3634
+ "tw:border",
3635
+ "tw:border-solid",
3636
+ "tw:border-neutral-300",
3745
3637
  {
3746
- "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
3638
+ "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
3747
3639
  }
3748
3640
  )
3749
3641
  }
@@ -3770,7 +3662,7 @@ var ColorInput = ({
3770
3662
  onMouseDown: (event) => event.preventDefault(),
3771
3663
  onClick: handleClear,
3772
3664
  "aria-label": "Clear color",
3773
- children: /* @__PURE__ */ jsx(icons_exports.X, { className: "tw-size-4" })
3665
+ children: /* @__PURE__ */ jsx(X, { className: "tw:size-4" })
3774
3666
  }
3775
3667
  ),
3776
3668
  /* @__PURE__ */ jsx(
@@ -3801,19 +3693,19 @@ var FormGroupError = ({ children, className, errors, ...rest }) => {
3801
3693
  const messages = (errors ?? []).map(toMessage).filter((message) => !!message);
3802
3694
  if (messages.length === 0) return null;
3803
3695
  if (messages.length === 1) return messages[0];
3804
- return /* @__PURE__ */ 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__ */ jsx("li", { children: message }, index)) });
3696
+ return /* @__PURE__ */ 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__ */ jsx("li", { children: message }, index)) });
3805
3697
  }, [children, errors]);
3806
3698
  if (!content) return null;
3807
- return /* @__PURE__ */ jsx("div", { ...rest, role: "alert", className: cn("tw-m-0 tw-text-xs tw-text-destructive", className), children: content });
3699
+ return /* @__PURE__ */ jsx("div", { ...rest, role: "alert", className: cn("tw:m-0 tw:text-xs tw:text-destructive", className), children: content });
3808
3700
  };
3809
- var helpVariants = cva(["tw-m-0", "tw-text-xs"], {
3701
+ var helpVariants = cva(["tw:m-0", "tw:text-xs"], {
3810
3702
  defaultVariants: {
3811
3703
  state: "default"
3812
3704
  },
3813
3705
  variants: {
3814
3706
  state: {
3815
- default: ["tw-text-muted-foreground"],
3816
- warning: ["tw-text-warning"]
3707
+ default: ["tw:text-muted-foreground"],
3708
+ warning: ["tw:text-warning"]
3817
3709
  }
3818
3710
  }
3819
3711
  });
@@ -4027,14 +3919,14 @@ var TextInput = ({
4027
3919
  onMouseDown: (e) => e.preventDefault(),
4028
3920
  onClick: handleClear,
4029
3921
  "data-testid": testId.clearButton,
4030
- children: /* @__PURE__ */ jsx(icons_exports.X, { className: "tw-size-4" })
3922
+ children: /* @__PURE__ */ jsx(X, { className: "tw:size-4" })
4031
3923
  }
4032
3924
  ),
4033
3925
  rightSuffix && /* @__PURE__ */ jsx(
4034
3926
  "div",
4035
3927
  {
4036
3928
  className: cn({
4037
- "tw-whitespace-nowrap tw-bg-muted tw-px-4 -tw-mr-4 tw-py-2.5": rightSuffixVariant === "addon"
3929
+ "tw:whitespace-nowrap tw:bg-muted tw:px-4 tw:-mr-4 tw:py-2.5": rightSuffixVariant === "addon"
4038
3930
  }),
4039
3931
  children: rightSuffix
4040
3932
  }
@@ -4049,7 +3941,7 @@ var FormGroupTextInput = ({ ref, ...props }) => {
4049
3941
  return /* @__PURE__ */ jsx(TextInput, { state, ...props, ref });
4050
3942
  };
4051
3943
  var FormGroup = ({ className, children, state, ...rest }) => {
4052
- return /* @__PURE__ */ jsx(FormGroupProvider, { value: { state }, children: /* @__PURE__ */ jsx("div", { ...rest, className: cn("tw-flex tw-flex-col tw-gap-1", className), children }) });
3944
+ return /* @__PURE__ */ jsx(FormGroupProvider, { value: { state }, children: /* @__PURE__ */ jsx("div", { ...rest, className: cn("tw:flex tw:flex-col tw:gap-1", className), children }) });
4053
3945
  };
4054
3946
  FormGroup.Help = FormGroupHelp;
4055
3947
  FormGroup.Error = FormGroupError;
@@ -4060,8 +3952,11 @@ FormGroup.Textarea = FormGroupTextarea;
4060
3952
 
4061
3953
  // src/blocks/MarkdownEditor/plugins/toolbar/LinkPanel.tsx
4062
3954
  init_Button2();
3955
+
3956
+ // src/components/ButtonGroup/ButtonGroup.tsx
3957
+ init_utils2();
4063
3958
  var buttonGroupVariant = cva(
4064
- ["tailwindcss-preflight", "tw-inline-flex", "tw-items-center", "tw-group/button-group"],
3959
+ ["tailwindcss-preflight", "tw:inline-flex", "tw:items-center", "tw:group/button-group"],
4065
3960
  {
4066
3961
  defaultVariants: {
4067
3962
  variant: "inline",
@@ -4071,35 +3966,35 @@ var buttonGroupVariant = cva(
4071
3966
  variant: {
4072
3967
  inline: [],
4073
3968
  block: [
4074
- "tw-w-full",
4075
- "tw-flex-col",
4076
- "sm:tw-flex-row",
4077
- "[&_a]:tw-flex-1",
4078
- "[&>button:not([data-icon-only=true])]:tw-flex-1"
3969
+ "tw:w-full",
3970
+ "tw:flex-col",
3971
+ "tw:sm:flex-row",
3972
+ "tw:[&_a]:flex-1",
3973
+ "tw:[&>button:not([data-icon-only=true])]:flex-1"
4079
3974
  ]
4080
3975
  },
4081
3976
  space: {
4082
- "extra-small": "tw-gap-1",
4083
- "little-small": "tw-gap-2",
4084
- small: "tw-gap-3",
4085
- medium: "tw-gap-4",
4086
- large: "tw-gap-6",
3977
+ "extra-small": "tw:gap-1",
3978
+ "little-small": "tw:gap-2",
3979
+ small: "tw:gap-3",
3980
+ medium: "tw:gap-4",
3981
+ large: "tw:gap-6",
4087
3982
  compact: [
4088
- "tw-border-collapse",
4089
- "!tw-gap-0",
3983
+ "tw:border-collapse",
3984
+ "tw:!gap-0",
4090
3985
  // ensure that focus visible outline is at the top
4091
- "[&>*:focus-visible]:!tw-z-10",
4092
- "[&>*:not(:first-child)]:tw-rounded-l-none",
4093
- "[&>*:not(:last-child)]:tw-rounded-r-none",
4094
- "[&>*:not(:last-child)]:tw-border-r-0",
4095
- "[&>*:not(:first-child)]:tw-border-l-0",
3986
+ "tw:[&>*:focus-visible]:!z-10",
3987
+ "tw:[&>*:not(:first-child)]:rounded-l-none",
3988
+ "tw:[&>*:not(:last-child)]:rounded-r-none",
3989
+ "tw:[&>*:not(:last-child)]:border-r-0",
3990
+ "tw:[&>*:not(:first-child)]:border-l-0",
4096
3991
  // separator
4097
- "[&>*:not(:first-child)]:before:tw-content",
4098
- "[&>*:not(:first-child)]:before:tw-absolute",
4099
- "[&>*:not(:first-child)]:before:tw-left-0",
4100
- "[&>*:not(:first-child)]:before:tw-h-full",
4101
- "[&>*:not(:first-child)]:before:tw-w-px",
4102
- "[&>*:not(:first-child)]:before:tw-bg-black/10"
3992
+ "tw:[&>*:not(:first-child)]:before:content",
3993
+ "tw:[&>*:not(:first-child)]:before:absolute",
3994
+ "tw:[&>*:not(:first-child)]:before:left-0",
3995
+ "tw:[&>*:not(:first-child)]:before:h-full",
3996
+ "tw:[&>*:not(:first-child)]:before:w-px",
3997
+ "tw:[&>*:not(:first-child)]:before:bg-black/10"
4103
3998
  ]
4104
3999
  }
4105
4000
  }
@@ -4120,7 +4015,7 @@ var ButtonGroup = ({
4120
4015
  ...rest,
4121
4016
  role: "group",
4122
4017
  "data-variant": variant,
4123
- className: buttonGroupVariant({ variant, className, space }),
4018
+ className: cn(buttonGroupVariant({ variant, space }), className),
4124
4019
  children
4125
4020
  }
4126
4021
  );
@@ -4128,8 +4023,8 @@ var ButtonGroup = ({
4128
4023
 
4129
4024
  // src/components/Label/Label.tsx
4130
4025
  init_utils2();
4131
- var Optional = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-muted-foreground", className), children: "(optional)" });
4132
- var Required = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-primary", className), children: "*" });
4026
+ var Optional = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw:ml-0.5", "tw:text-muted-foreground", className), children: "(optional)" });
4027
+ var Required = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw:ml-0.5", "tw:text-primary", className), children: "*" });
4133
4028
  var Label2 = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */ jsx(
4134
4029
  RLabel.Root,
4135
4030
  {
@@ -4137,7 +4032,7 @@ var Label2 = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */
4137
4032
  id: id?.toString(),
4138
4033
  htmlFor: htmlFor?.toString(),
4139
4034
  className: cn(
4140
- "tw-m-0 tw-text-foreground tw-font-normal peer-disabled:tw-opacity-50",
4035
+ "tw:m-0 tw:text-foreground tw:font-normal tw:peer-disabled:opacity-50",
4141
4036
  className
4142
4037
  ),
4143
4038
  children
@@ -4166,9 +4061,9 @@ var ToolbarButton = ({
4166
4061
  disabled,
4167
4062
  onClick,
4168
4063
  className: cn(
4169
- "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",
4170
- "hover:tw-bg-accent disabled:tw-cursor-not-allowed disabled:tw-opacity-30",
4171
- active && "tw-bg-secondary-100 tw-text-secondary-500",
4064
+ "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",
4065
+ "tw:hover:bg-accent tw:disabled:cursor-not-allowed tw:disabled:opacity-30",
4066
+ active && "tw:bg-secondary-100 tw:text-secondary-500",
4172
4067
  extraClassName
4173
4068
  ),
4174
4069
  children
@@ -4240,20 +4135,20 @@ var LinkPanel = ({ editor, isLink }) => {
4240
4135
  active: true,
4241
4136
  onClick: () => editor.dispatchCommand(TOGGLE_LINK_COMMAND, null),
4242
4137
  tooltip: "Remove Link",
4243
- children: /* @__PURE__ */ jsx(icons_exports.Link, { className: "tw-size-4" })
4138
+ children: /* @__PURE__ */ jsx(Link, { className: "tw:size-4" })
4244
4139
  }
4245
4140
  );
4246
4141
  }
4247
- return /* @__PURE__ */ jsxs("div", { className: "tw-relative", children: [
4248
- /* @__PURE__ */ jsx(ToolbarButton, { active: open, onClick: handleOpen, tooltip: "Insert Link", children: /* @__PURE__ */ jsx(icons_exports.Link, { className: "tw-size-4" }) }),
4142
+ return /* @__PURE__ */ jsxs("div", { className: "tw:relative", children: [
4143
+ /* @__PURE__ */ jsx(ToolbarButton, { active: open, onClick: handleOpen, tooltip: "Insert Link", children: /* @__PURE__ */ jsx(Link, { className: "tw:size-4" }) }),
4249
4144
  open && /* @__PURE__ */ jsx(
4250
4145
  "div",
4251
4146
  {
4252
4147
  ref: panelRef,
4253
- 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",
4254
- children: /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-2", children: [
4148
+ 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",
4149
+ children: /* @__PURE__ */ jsxs("div", { className: "tw:flex tw:flex-col tw:gap-2", children: [
4255
4150
  /* @__PURE__ */ jsxs(FormGroup, { children: [
4256
- /* @__PURE__ */ jsx(Label2, { htmlFor: "link-label", className: "tw-mb-1 tw-text-xs", children: "Label" }),
4151
+ /* @__PURE__ */ jsx(Label2, { htmlFor: "link-label", className: "tw:mb-1 tw:text-xs", children: "Label" }),
4257
4152
  /* @__PURE__ */ jsx(
4258
4153
  TextInput,
4259
4154
  {
@@ -4268,7 +4163,7 @@ var LinkPanel = ({ editor, isLink }) => {
4268
4163
  )
4269
4164
  ] }),
4270
4165
  /* @__PURE__ */ jsxs(FormGroup, { children: [
4271
- /* @__PURE__ */ jsx(Label2, { htmlFor: "link-url", className: "tw-mb-1 tw-text-xs", children: "URL" }),
4166
+ /* @__PURE__ */ jsx(Label2, { htmlFor: "link-url", className: "tw:mb-1 tw:text-xs", children: "URL" }),
4272
4167
  /* @__PURE__ */ jsx(
4273
4168
  TextInput,
4274
4169
  {
@@ -4290,7 +4185,7 @@ var LinkPanel = ({ editor, isLink }) => {
4290
4185
  )
4291
4186
  ] });
4292
4187
  };
4293
- var ToolbarDivider = () => /* @__PURE__ */ jsx("div", { className: "tw-mx-0.5 tw-h-5 tw-w-px tw-bg-border" });
4188
+ var ToolbarDivider = () => /* @__PURE__ */ jsx("div", { className: "tw:mx-0.5 tw:h-5 tw:w-px tw:bg-border" });
4294
4189
  var ELEMENT_FORMAT_TYPES = ["left", "center", "right", "justify", "start", "end", ""];
4295
4190
  var isElementFormatType = (value) => ELEMENT_FORMAT_TYPES.includes(value);
4296
4191
  var toElementFormatType = (value) => isElementFormatType(value) ? value : "left";
@@ -4399,7 +4294,7 @@ var ToolbarPlugin = () => {
4399
4294
  "aria-label": "Formatting options",
4400
4295
  onMouseDown: (e) => e.preventDefault(),
4401
4296
  style: { top: position.top, left: position.left },
4402
- 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",
4297
+ 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",
4403
4298
  children: [
4404
4299
  /* @__PURE__ */ jsx(BlockTypeDropdown, { editor, blockType }),
4405
4300
  /* @__PURE__ */ jsx(ToolbarDivider, {}),
@@ -4409,7 +4304,7 @@ var ToolbarPlugin = () => {
4409
4304
  active: isBold,
4410
4305
  onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "bold"),
4411
4306
  tooltip: "Bold (Ctrl+B)",
4412
- children: /* @__PURE__ */ jsx(icons_exports.Bold, { className: "tw-size-4" })
4307
+ children: /* @__PURE__ */ jsx(Bold, { className: "tw:size-4" })
4413
4308
  }
4414
4309
  ),
4415
4310
  /* @__PURE__ */ jsx(
@@ -4418,7 +4313,7 @@ var ToolbarPlugin = () => {
4418
4313
  active: isItalic,
4419
4314
  onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "italic"),
4420
4315
  tooltip: "Italic (Ctrl+I)",
4421
- children: /* @__PURE__ */ jsx(icons_exports.Italic, { className: "tw-size-4" })
4316
+ children: /* @__PURE__ */ jsx(Italic, { className: "tw:size-4" })
4422
4317
  }
4423
4318
  ),
4424
4319
  /* @__PURE__ */ jsx(
@@ -4427,7 +4322,7 @@ var ToolbarPlugin = () => {
4427
4322
  active: isUnderline,
4428
4323
  onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "underline"),
4429
4324
  tooltip: "Underline (Ctrl+U)",
4430
- children: /* @__PURE__ */ jsx(icons_exports.Underline, { className: "tw-size-4" })
4325
+ children: /* @__PURE__ */ jsx(Underline, { className: "tw:size-4" })
4431
4326
  }
4432
4327
  ),
4433
4328
  /* @__PURE__ */ jsx(
@@ -4436,7 +4331,7 @@ var ToolbarPlugin = () => {
4436
4331
  active: isStrikethrough,
4437
4332
  onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "strikethrough"),
4438
4333
  tooltip: "Strikethrough",
4439
- children: /* @__PURE__ */ jsx(icons_exports.Strikethrough, { className: "tw-size-4" })
4334
+ children: /* @__PURE__ */ jsx(Strikethrough, { className: "tw:size-4" })
4440
4335
  }
4441
4336
  ),
4442
4337
  /* @__PURE__ */ jsx(
@@ -4445,7 +4340,7 @@ var ToolbarPlugin = () => {
4445
4340
  active: isCode,
4446
4341
  onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "code"),
4447
4342
  tooltip: "Inline Code",
4448
- children: /* @__PURE__ */ jsx(icons_exports.Code, { className: "tw-size-4" })
4343
+ children: /* @__PURE__ */ jsx(Code, { className: "tw:size-4" })
4449
4344
  }
4450
4345
  ),
4451
4346
  /* @__PURE__ */ jsx(ToolbarDivider, {}),
@@ -4463,7 +4358,7 @@ var ToolbarPlugin = () => {
4463
4358
  }
4464
4359
  },
4465
4360
  tooltip: "Bullet List",
4466
- children: /* @__PURE__ */ jsx(icons_exports.List, { className: "tw-size-4" })
4361
+ children: /* @__PURE__ */ jsx(List, { className: "tw:size-4" })
4467
4362
  }
4468
4363
  ),
4469
4364
  /* @__PURE__ */ jsx(
@@ -4478,7 +4373,7 @@ var ToolbarPlugin = () => {
4478
4373
  }
4479
4374
  },
4480
4375
  tooltip: "Numbered List",
4481
- children: /* @__PURE__ */ jsx(icons_exports.ListOrdered, { className: "tw-size-4" })
4376
+ children: /* @__PURE__ */ jsx(ListOrdered, { className: "tw:size-4" })
4482
4377
  }
4483
4378
  ),
4484
4379
  /* @__PURE__ */ jsx(ToolbarDivider, {}),
@@ -4500,7 +4395,7 @@ var ToolbarPlugin = () => {
4500
4395
  });
4501
4396
  },
4502
4397
  tooltip: "Quote",
4503
- children: /* @__PURE__ */ jsx(icons_exports.Quote, { className: "tw-size-4" })
4398
+ children: /* @__PURE__ */ jsx(Quote, { className: "tw:size-4" })
4504
4399
  }
4505
4400
  ),
4506
4401
  /* @__PURE__ */ jsx(
@@ -4519,7 +4414,7 @@ var ToolbarPlugin = () => {
4519
4414
  });
4520
4415
  },
4521
4416
  tooltip: "Code Block",
4522
- children: /* @__PURE__ */ jsx(icons_exports.SquareCode, { className: "tw-size-4" })
4417
+ children: /* @__PURE__ */ jsx(SquareCode, { className: "tw:size-4" })
4523
4418
  }
4524
4419
  )
4525
4420
  ]
@@ -4531,33 +4426,33 @@ var ToolbarPlugin = () => {
4531
4426
 
4532
4427
  // src/blocks/MarkdownEditor/theme.ts
4533
4428
  var editorTheme = {
4534
- link: "tw-cursor-pointer !tw-text-primary tw-underline",
4429
+ link: "tw:cursor-pointer tw:!text-primary tw:underline",
4535
4430
  text: {
4536
- bold: "tw-font-bold",
4537
- italic: "tw-italic",
4538
- strikethrough: "tw-line-through",
4539
- underline: "tw-underline",
4540
- code: "tw-rounded tw-bg-muted tw-px-1 tw-py-0.5 tw-font-mono tw-text-[0.85em]"
4431
+ bold: "tw:font-bold",
4432
+ italic: "tw:italic",
4433
+ strikethrough: "tw:line-through",
4434
+ underline: "tw:underline",
4435
+ code: "tw:rounded tw:bg-muted tw:px-1 tw:py-0.5 tw:font-mono tw:text-[0.85em]"
4541
4436
  },
4542
4437
  list: {
4543
- ol: "!tw-list-decimal",
4544
- ul: "!tw-list-disc",
4545
- checklist: "!tw-list-none !tw-pl-0",
4438
+ ol: "tw:!list-decimal",
4439
+ ul: "tw:!list-disc",
4440
+ checklist: "tw:!list-none tw:!pl-0",
4546
4441
  listitemChecked: [
4547
- "tw-relative !tw-pl-6 tw-list-none tw-outline-none tw-line-through tw-text-muted-foreground",
4548
- 'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
4549
- "before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid",
4550
- "before:tw-bg-primary before:tw-border-primary before:tw-cursor-pointer",
4551
- 'after:tw-content-[""] after:tw-absolute after:tw-left-[5.5px] after:tw-top-[5.5px]',
4552
- "after:tw-w-1 after:tw-h-2 after:tw-border-primary-foreground after:tw-border-solid",
4553
- "after:tw-border-r-[1.5px] after:tw-border-b-[1.5px] after:tw-border-t-0 after:tw-border-l-0",
4554
- "after:tw-rotate-45"
4442
+ "tw:relative tw:!pl-6 tw:list-none tw:outline-hidden tw:line-through tw:text-muted-foreground",
4443
+ 'tw:before:content-[""] tw:before:absolute tw:before:left-0 tw:before:top-[3px]',
4444
+ "tw:before:size-4 tw:before:rounded tw:before:border tw:before:border-solid",
4445
+ "tw:before:bg-primary tw:before:border-primary tw:before:cursor-pointer",
4446
+ 'tw:after:content-[""] tw:after:absolute tw:after:left-[5.5px] tw:after:top-[5.5px]',
4447
+ "tw:after:w-1 tw:after:h-2 tw:after:border-primary-foreground tw:after:border-solid",
4448
+ "tw:after:border-r-[1.5px] tw:after:border-b-[1.5px] tw:after:border-t-0 tw:after:border-l-0",
4449
+ "tw:after:rotate-45"
4555
4450
  ].join(" "),
4556
4451
  listitemUnchecked: [
4557
- "tw-relative !tw-pl-6 tw-list-none tw-outline-none",
4558
- 'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
4559
- "before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid",
4560
- "before:tw-border-input before:tw-bg-background before:tw-cursor-pointer"
4452
+ "tw:relative tw:!pl-6 tw:list-none tw:outline-hidden",
4453
+ 'tw:before:content-[""] tw:before:absolute tw:before:left-0 tw:before:top-[3px]',
4454
+ "tw:before:size-4 tw:before:rounded tw:before:border tw:before:border-solid",
4455
+ "tw:before:border-input tw:before:bg-background tw:before:cursor-pointer"
4561
4456
  ].join(" ")
4562
4457
  }
4563
4458
  };
@@ -4621,16 +4516,16 @@ var MarkdownEditor = ({
4621
4516
  "div",
4622
4517
  {
4623
4518
  className: cn(
4624
- !compact && "tw-prose",
4625
- // Compact mode drops `tw-prose`, so Lexical's <p> wrappers fall back to the browser
4519
+ !compact && "tw:prose",
4520
+ // Compact mode drops `tw:prose`, so Lexical's <p> wrappers fall back to the browser
4626
4521
  // default `margin: 1em 0` — visually huge at heading sizes. Zero them, and use the
4627
4522
  // adjacent-sibling selector for paragraph spacing so single-paragraph blocks (titles,
4628
4523
  // short descriptions) stay tight while multi-paragraph blocks still breathe.
4629
- compact && "[&_p]:tw-m-0 [&_p+p]:tw-mt-2",
4524
+ compact && "tw:[&_p]:m-0 tw:[&_p+p]:mt-2",
4630
4525
  // Display-state clamp: 2 lines, dropped in focus-within so editing expands to full
4631
4526
  // height. line-clamp is self-gating (no effect below 3 lines), so short/empty content
4632
4527
  // renders clean; a CSS fade can't gate on overflow without JS, so it's omitted.
4633
- clampDisplay && "[&:not(:focus-within)]:tw-line-clamp-2",
4528
+ clampDisplay && "tw:[&:not(:focus-within)]:line-clamp-2",
4634
4529
  className
4635
4530
  ),
4636
4531
  onBlur: handleBlur,
@@ -4640,12 +4535,12 @@ var MarkdownEditor = ({
4640
4535
  "div",
4641
4536
  {
4642
4537
  className: cn(
4643
- "tw-relative tw-rounded-md tw-transition-colors",
4538
+ "tw:relative tw:rounded-md tw:transition-colors",
4644
4539
  // In compact mode the padding lets the hover bg / focus ring extend past the text,
4645
4540
  // but a matching negative margin shifts the wrapper outward so the text itself stays
4646
4541
  // aligned with the parent's content edge (i.e. with where static text would render).
4647
- compact ? "tw-px-1.5 tw-py-0.5 -tw-mx-1.5 -tw-my-0.5" : "tw-p-2",
4648
- editable && "tw-cursor-text hover:tw-bg-muted focus-within:tw-ring-2 focus-within:tw-ring-ring/40"
4542
+ compact ? "tw:px-1.5 tw:py-0.5 tw:-mx-1.5 tw:-my-0.5" : "tw:p-2",
4543
+ editable && "tw:cursor-text tw:hover:bg-muted tw:focus-within:ring-2 tw:focus-within:ring-ring/40"
4649
4544
  ),
4650
4545
  children: /* @__PURE__ */ jsx(
4651
4546
  RichTextPlugin,
@@ -4653,15 +4548,15 @@ var MarkdownEditor = ({
4653
4548
  contentEditable: /* @__PURE__ */ jsx(
4654
4549
  ContentEditable,
4655
4550
  {
4656
- className: cn("tw-outline-none", useDefaultMinHeight && "tw-min-h-[100px]"),
4551
+ className: cn("tw:outline-hidden", useDefaultMinHeight && "tw:min-h-[100px]"),
4657
4552
  style: customMinHeight,
4658
4553
  "aria-placeholder": placeholder ?? "",
4659
4554
  placeholder: placeholder ? /* @__PURE__ */ jsx(
4660
4555
  "div",
4661
4556
  {
4662
4557
  className: cn(
4663
- "tw-pointer-events-none tw-absolute tw-select-none tw-text-muted-foreground",
4664
- compact ? "tw-left-1.5 tw-top-0.5" : "tw-left-2 tw-top-[calc(0.5rem+0.35em)]"
4558
+ "tw:pointer-events-none tw:absolute tw:select-none tw:text-muted-foreground",
4559
+ compact ? "tw:left-1.5 tw:top-0.5" : "tw:left-2 tw:top-[calc(0.5rem+0.35em)]"
4665
4560
  ),
4666
4561
  children: placeholder
4667
4562
  }