@keboola/design 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +25 -0
  2. package/dist/icons.cjs +731 -0
  3. package/dist/icons.cjs.map +1 -0
  4. package/dist/icons.js +29 -0
  5. package/dist/icons.js.map +1 -0
  6. package/dist/index.cjs +429 -333
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.js +426 -331
  9. package/dist/index.js.map +1 -1
  10. package/dist/markdown-editor.cjs +270 -135
  11. package/dist/markdown-editor.cjs.map +1 -1
  12. package/dist/markdown-editor.js +270 -135
  13. package/dist/markdown-editor.js.map +1 -1
  14. package/dist/mermaid.cjs +24 -15
  15. package/dist/mermaid.cjs.map +1 -1
  16. package/dist/mermaid.js +24 -15
  17. package/dist/mermaid.js.map +1 -1
  18. package/dist/styles.css +1 -1
  19. package/package.json +12 -5
  20. package/src/blocks/AIKit/CollapsibleStepHeader.tsx +7 -8
  21. package/src/blocks/AIKit/InlineStepLabel.tsx +7 -7
  22. package/src/blocks/AIKit/MessageBubble.stories.tsx +11 -3
  23. package/src/blocks/AIKit/MessageBubble.tsx +1 -1
  24. package/src/blocks/AIKit/PlanApproval.tsx +9 -8
  25. package/src/blocks/AIKit/PlanRewritingIndicator.tsx +2 -2
  26. package/src/blocks/AIKit/PromptInput.stories.tsx +10 -2
  27. package/src/blocks/AIKit/PromptInputSubmit.tsx +12 -8
  28. package/src/blocks/AIKit/Question.tsx +8 -9
  29. package/src/blocks/AIKit/SuggestedPrompt.tsx +12 -5
  30. package/src/blocks/AIKit/ThinkingIndicator.tsx +2 -2
  31. package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.tsx +4 -4
  32. package/src/blocks/ClipboardButton/ClipboardButton.tsx +7 -5
  33. package/src/blocks/ClipboardButton/ClipboardInline.tsx +2 -3
  34. package/src/blocks/ColorInput/ColorInput.tsx +4 -2
  35. package/src/blocks/ColorInput/ColorPicker.tsx +5 -2
  36. package/src/blocks/EmptyState/EmptyState.tsx +16 -0
  37. package/src/blocks/ErrorState/ErrorState.tsx +15 -0
  38. package/src/blocks/Form/formHook.ts +15 -0
  39. package/src/blocks/MultiActionButtonGroup/MultiActionButton.stories.tsx +12 -11
  40. package/src/blocks/MultiActionButtonGroup/MultiActionButton.tsx +4 -4
  41. package/src/blocks/MultiCombobox/MultiCombobox.tsx +28 -12
  42. package/src/blocks/PageHeader/AGENTS.md +63 -3
  43. package/src/blocks/PageHeader/PageHeader.stories.tsx +124 -28
  44. package/src/blocks/PageHeader/PageHeader.tsx +15 -0
  45. package/src/blocks/PageHeader/PageHeaderDetail.tsx +23 -1
  46. package/src/blocks/PageHeader/PageHeaderIndex.tsx +20 -1
  47. package/src/blocks/PageLayout/PageLayout.tsx +26 -0
  48. package/src/blocks/PageToolbar/PageToolbar.stories.tsx +348 -0
  49. package/src/blocks/PageToolbar/PageToolbar.tsx +119 -0
  50. package/src/blocks/PageToolbar/index.ts +1 -0
  51. package/src/blocks/PasswordInput/PasswordInput.tsx +10 -10
  52. package/src/blocks/SearchInput/SearchInput.tsx +30 -4
  53. package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx +9 -6
  54. package/src/blocks/SplitButton/SplitButton.stories.tsx +7 -4
  55. package/src/blocks/SplitButton/SplitButton.tsx +17 -4
  56. package/src/blocks/Tagger/TagItem.tsx +4 -1
  57. package/src/blocks/Tagger/TagSelectPopover/TagSelectCreateItem.tsx +3 -1
  58. package/src/blocks/Tagger/TagSelectPopover/TagSelectList.tsx +2 -2
  59. package/src/blocks/Tagger/Tagger.tsx +2 -2
  60. package/src/components/Alert/Alert.stories.tsx +11 -3
  61. package/src/components/Alert/Alert.tsx +19 -1
  62. package/src/components/Alert/AlertCollapsibleIcon.tsx +3 -4
  63. package/src/components/Alert/AlertIcon.tsx +18 -21
  64. package/src/components/Badge/Badge.stories.tsx +22 -4
  65. package/src/components/Badge/Badge.tsx +16 -0
  66. package/src/components/Badge/BadgeButton.tsx +7 -6
  67. package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +2 -2
  68. package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +2 -2
  69. package/src/components/Button/Button.stories.tsx +14 -2
  70. package/src/components/Button/Button.tsx +42 -5
  71. package/src/components/Button/styles.ts +4 -6
  72. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +32 -10
  73. package/src/components/Card/Card.tsx +17 -0
  74. package/src/components/Checkbox/Checkbox.tsx +3 -6
  75. package/src/components/CodeEditor/highlighting.ts +1 -1
  76. package/src/components/CollapsiblePanel.tsx +2 -5
  77. package/src/components/Combobox/Combobox.tsx +12 -14
  78. package/src/components/Combobox/ComboboxChips.tsx +6 -1
  79. package/src/components/Combobox/ComboboxItem.tsx +3 -4
  80. package/src/components/Combobox/ComboboxItemIndicator.tsx +6 -4
  81. package/src/components/Combobox/types.ts +2 -6
  82. package/src/components/Command/Command.stories.tsx +47 -56
  83. package/src/components/Command/CommandItem/CheckIndicator.tsx +26 -14
  84. package/src/components/Command/CommandItem/CommandItem.tsx +6 -3
  85. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +8 -4
  86. package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +4 -1
  87. package/src/components/DropdownMenu/DropdownMenuItem.tsx +12 -6
  88. package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +12 -6
  89. package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx +8 -5
  90. package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubTrigger.tsx +2 -2
  91. package/src/components/DropdownMenu/ItemIcon.tsx +16 -8
  92. package/src/components/FormGroup/FormGroup.tsx +15 -0
  93. package/src/components/FullScreenModal/FullScreenModalHeader.tsx +4 -1
  94. package/src/components/Input/DateInput/DateInput.tsx +4 -1
  95. package/src/components/Input/DateRangeInput/DateRangeInput.tsx +4 -6
  96. package/src/components/Input/Input.tsx +18 -2
  97. package/src/components/Input/TextInput/TextInput.tsx +16 -0
  98. package/src/components/Input/TimeInput/TimeInput.tsx +4 -1
  99. package/src/components/InputGroup/InputGroup.stories.tsx +11 -3
  100. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +63 -1
  101. package/src/components/MarkdownEditor/MarkdownEditor.tsx +105 -15
  102. package/src/components/MarkdownEditor/nodes/ImageNode.tsx +10 -10
  103. package/src/components/MarkdownEditor/nodes/MermaidNode.tsx +8 -8
  104. package/src/components/MarkdownEditor/plugins/KeyboardPlugin.tsx +47 -3
  105. package/src/components/MarkdownEditor/plugins/MarkdownSyncPlugin.tsx +12 -3
  106. package/src/components/MarkdownEditor/plugins/ToolbarPlugin.tsx +20 -10
  107. package/src/components/MarkdownEditor/plugins/toolbar/AlignmentDropdown.tsx +20 -14
  108. package/src/components/MarkdownEditor/plugins/toolbar/BlockTypeDropdown.tsx +25 -16
  109. package/src/components/MarkdownEditor/plugins/toolbar/LinkPanel.tsx +3 -3
  110. package/src/components/MarkdownEditor/transformers.ts +10 -0
  111. package/src/components/MergeEditor/AcceptControls/AcceptButton.tsx +9 -4
  112. package/src/components/MergeEditor/AcceptControls/AcceptControls.tsx +25 -14
  113. package/src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx +2 -2
  114. package/src/components/MergeEditor/MergeEditor.stories.tsx +15 -0
  115. package/src/components/MergeEditor/MergeEditor.tsx +9 -0
  116. package/src/components/MergeEditor/MergePane.tsx +22 -4
  117. package/src/components/MergeEditor/decorations.ts +2 -2
  118. package/src/components/Modal/Modal.stories.tsx +6 -4
  119. package/src/components/Modal/Modal.tsx +26 -0
  120. package/src/components/Modal/ModalBody.tsx +5 -0
  121. package/src/components/Modal/ModalCloseIcon.tsx +2 -3
  122. package/src/components/Modal/ModalContent.tsx +8 -0
  123. package/src/components/Modal/ModalFooter.tsx +5 -0
  124. package/src/components/Modal/ModalHeader.tsx +11 -0
  125. package/src/components/Modal/ModalIcon.tsx +45 -19
  126. package/src/components/Navbar/Navbar.stories.tsx +26 -13
  127. package/src/components/Navbar/NavbarMenuButton.tsx +11 -10
  128. package/src/components/Pagination/PaginationEllipsis.tsx +2 -2
  129. package/src/components/Pagination/PaginationNext.tsx +2 -1
  130. package/src/components/Pagination/PaginationPrevious.tsx +4 -1
  131. package/src/components/PanelWithDetails.tsx +3 -4
  132. package/src/components/Popconfirm/Popconfirm.stories.tsx +13 -5
  133. package/src/components/RadioGroup/Radio.tsx +6 -12
  134. package/src/components/Search/ClearButton.tsx +2 -2
  135. package/src/components/Search/Search.tsx +3 -3
  136. package/src/components/Select/Select.tsx +16 -5
  137. package/src/components/Select/SelectContent.tsx +13 -4
  138. package/src/components/Select/SelectItem.tsx +6 -5
  139. package/src/components/Select/SelectTrigger.tsx +2 -2
  140. package/src/components/Sidebar/Sidebar.stories.tsx +55 -19
  141. package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +8 -4
  142. package/src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx +4 -2
  143. package/src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx +3 -2
  144. package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +12 -12
  145. package/src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx +3 -7
  146. package/src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx +3 -5
  147. package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
  148. package/src/components/Skeleton/Skeleton.tsx +24 -1
  149. package/src/components/Table/Table.stories.tsx +223 -1
  150. package/src/components/Table/Table.tsx +17 -0
  151. package/src/components/Tabs.tsx +25 -2
  152. package/src/components/Toast/ToastDismiss.tsx +3 -3
  153. package/src/components/Toast/ToastRoot.tsx +24 -19
  154. package/src/components/Toggle/Toggle.tsx +11 -6
  155. package/src/components/Tooltip/Tooltip.tsx +23 -0
  156. package/src/components/ZoomableSvg/ZoomableSvg.tsx +8 -6
  157. package/src/icons/Keboola.tsx +28 -0
  158. package/src/icons/icons.stories.tsx +174 -0
  159. package/src/icons/index.ts +180 -0
  160. package/src/index.ts +1 -0
  161. package/src/patterns/AlertWithAction.stories.tsx +30 -0
  162. package/src/patterns/CardWithEmptyState.stories.tsx +66 -0
  163. package/src/patterns/ConfirmDialog.stories.tsx +72 -0
  164. package/src/patterns/CreatableMultiCombobox.stories.tsx +33 -0
  165. package/src/patterns/DataCardWithSkeleton.stories.tsx +48 -0
  166. package/src/patterns/DisabledButtonTooltip.stories.tsx +30 -0
  167. package/src/patterns/FilterToolbar.stories.tsx +71 -0
  168. package/src/patterns/InfoTooltip.stories.tsx +56 -0
  169. package/src/patterns/ListDetail.stories.tsx +65 -0
  170. package/src/patterns/ModalForm.stories.tsx +59 -0
  171. package/src/patterns/PageHeaderTabs.stories.tsx +48 -0
  172. package/src/styles.css +16 -8
  173. package/src/utils/legacyIcon.tsx +28 -0
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Slot, Root as Root$1, Slottable } from '@radix-ui/react-slot';
2
2
  export { Slot } from '@radix-ui/react-slot';
3
+ import { ChevronLeft, Loader2, Calendar, Clock, Sparkles, Search, Check, Minus, X, ChevronDown as ChevronDown$1, Plus, Copy, CircleCheck, AlertTriangle, ChevronUp, Send, ChevronRight, FileText, ArrowBigUpDash, EyeOff, Eye, Minimize2, Maximize2, Circle, Ellipsis, XCircle, Info, ChevronsRight, ChevronsLeft, CirclePause, Play, AlertCircle, ToggleRight } from 'lucide-react';
3
4
  import { clsx } from 'clsx';
4
5
  import { extendTailwindMerge } from 'tailwind-merge';
5
6
  import { createContext, useRef, useEffect, useMemo, useState, useId, use, useCallback, Fragment as Fragment$1, useLayoutEffect, useReducer, Children } from 'react';
@@ -14,7 +15,7 @@ import { Root as Root$2, Trigger, Close, Portal as Portal$1, Content as Content$
14
15
  import * as ScrollAreaPrimitive2 from '@radix-ui/react-scroll-area';
15
16
  import TextareaAutosize from 'react-textarea-autosize';
16
17
  import * as RLabel from '@radix-ui/react-label';
17
- import { Button as Button$1, cn as cn$1, Switch as Switch$1, Checkbox as Checkbox$1, Select as Select$1, FormGroup as FormGroup$1, PasswordInput as PasswordInput$1, Tooltip as Tooltip$1, Label as Label$1, Icon as Icon$1, TextInput as TextInput$1, Separator as Separator$1, ButtonGroup as ButtonGroup$1 } from '@keboola/design';
18
+ import { Button as Button$1, cn as cn$1, Switch as Switch$1, Checkbox as Checkbox$1, Select as Select$1, FormGroup as FormGroup$1, PasswordInput as PasswordInput$1, Tooltip as Tooltip$1, Label as Label$1, TextInput as TextInput$1, Separator as Separator$1, ButtonGroup as ButtonGroup$1 } from '@keboola/design';
18
19
  import { Root as Root$3, Thumb } from '@radix-ui/react-switch';
19
20
  import { Root as Root$4, Trigger as Trigger$1, Portal as Portal$2, Content as Content$2 } from '@radix-ui/react-hover-card';
20
21
  import * as RSeparator from '@radix-ui/react-separator';
@@ -29,6 +30,7 @@ import { Root, Group, Trigger as Trigger$4 } from '@radix-ui/react-dropdown-menu
29
30
  import * as DialogPrimitive from '@radix-ui/react-dialog';
30
31
  import { Root as Root$7, Close as Close$1, Trigger as Trigger$2, Portal as Portal$3, Content as Content$3, Overlay, Title } from '@radix-ui/react-dialog';
31
32
  import { createPortal } from 'react-dom';
33
+ import { ChevronDown, Search as Search$1, Pipette, Plus as Plus$1 } from '@keboola/design/icons';
32
34
  import { Root as Root$8, CollapsibleTrigger, Content as Content$4 } from '@radix-ui/react-collapsible';
33
35
  import { Command as Command$1, CommandInput as CommandInput$1, defaultFilter, useCommandState } from 'cmdk';
34
36
  export { defaultFilter, useCommandState } from 'cmdk';
@@ -544,12 +546,10 @@ var argoVariants = cva(
544
546
  "focus-visible:tw-ring-primary/50"
545
547
  ],
546
548
  secondary: [
547
- "tw-bg-secondary",
548
- "tw-text-secondary-foreground",
549
- "hover:tw-bg-secondary/80",
550
- "hover:tw-text-secondary-foreground",
551
- "focus:tw-text-secondary-foreground",
552
- "focus-visible:tw-border-secondary",
549
+ "tw-bg-primary/10",
550
+ "tw-text-primary",
551
+ "hover:not-disabled:tw-bg-primary/20",
552
+ "focus-visible:tw-border-primary",
553
553
  "focus-visible:tw-ring-primary/50"
554
554
  ],
555
555
  // should be called "destructive" by Figma
@@ -612,7 +612,6 @@ var Button = ({
612
612
  disabled = false,
613
613
  className,
614
614
  type = "button",
615
- icon: iconProp,
616
615
  isLoading = false,
617
616
  asChild = false,
618
617
  onClick,
@@ -620,10 +619,10 @@ var Button = ({
620
619
  variant = "primary",
621
620
  size = "medium",
622
621
  block = false,
622
+ icon,
623
623
  ...buttonProps
624
624
  }) => {
625
625
  const Comp = asChild ? Root$1 : "button";
626
- const icon = isLoading ? "spinner" : iconProp;
627
626
  const classNames = argo ? argoVariants({ variant, size, block, className }) : variants({
628
627
  size,
629
628
  variant,
@@ -646,12 +645,13 @@ var Button = ({
646
645
  disabled,
647
646
  "aria-disabled": disabled,
648
647
  "data-variant": variant,
649
- "data-icon-only": !children,
648
+ "data-icon-only": String(size).startsWith("icon"),
650
649
  type,
651
650
  onClick: handleClick,
652
651
  className: cn(classNames),
653
652
  children: [
654
- icon && /* @__PURE__ */ jsx(Icon, { spin: isLoading, icon }),
653
+ isLoading && /* @__PURE__ */ jsx(Loader2, { className: "tw-size-4 tw-shrink-0 tw-animate-spin" }),
654
+ !isLoading && icon && /* @__PURE__ */ jsx(Icon, { icon }),
655
655
  /* @__PURE__ */ jsx(Slottable, { children })
656
656
  ]
657
657
  }
@@ -791,7 +791,7 @@ var rangePickerClassNames = {
791
791
  selected: `tw-font-medium tw-rounded`,
792
792
  range_middle: `tw-bg-secondary-300 tw-border-secondary-300 tw-rounded-none tw-font-medium`
793
793
  };
794
- var Calendar = ({ className, classNames, ...props }) => {
794
+ var Calendar2 = ({ className, classNames, ...props }) => {
795
795
  const defaultClassNames = getDefaultClassNames();
796
796
  return /* @__PURE__ */ jsx(
797
797
  DayPicker,
@@ -813,7 +813,7 @@ var Calendar = ({ className, classNames, ...props }) => {
813
813
  }
814
814
  );
815
815
  };
816
- Calendar.displayName = "Calendar";
816
+ Calendar2.displayName = "Calendar";
817
817
  var variants2 = cva(
818
818
  [
819
819
  "tailwindcss-preflight",
@@ -915,7 +915,7 @@ var DatePicker = ({
915
915
  alignOffset,
916
916
  className: "tw-w-auto tw-p-0",
917
917
  sideOffset,
918
- children: /* @__PURE__ */ jsx(Calendar, { ...calendarProps })
918
+ children: /* @__PURE__ */ jsx(Calendar2, { ...calendarProps })
919
919
  }
920
920
  )
921
921
  ] });
@@ -1539,10 +1539,11 @@ var Input = ({
1539
1539
  allowClear && isClearButtonVisible && /* @__PURE__ */ jsx(
1540
1540
  InputGroup.Button,
1541
1541
  {
1542
- icon: "xmark",
1542
+ "aria-label": "Clear",
1543
1543
  onMouseDown: (e) => e.preventDefault(),
1544
1544
  onClick: handleClear,
1545
- "data-testid": testId.clearButton
1545
+ "data-testid": testId.clearButton,
1546
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
1546
1547
  }
1547
1548
  ),
1548
1549
  rightSuffix && /* @__PURE__ */ jsx(
@@ -1695,7 +1696,7 @@ var DateInput = ({
1695
1696
  open: isOpen,
1696
1697
  selected: currentValue ?? void 0,
1697
1698
  startMonth,
1698
- children: /* @__PURE__ */ jsx(Button, { "aria-label": "Select Date", icon: "calendar", variant: "inline", size: "icon-3xs" })
1699
+ children: /* @__PURE__ */ jsx(Button, { "aria-label": "Select Date", variant: "inline", size: "icon-3xs", children: /* @__PURE__ */ jsx(Calendar, { className: "tw-size-4" }) })
1699
1700
  }
1700
1701
  ) : void 0,
1701
1702
  type: "text"
@@ -1822,15 +1823,7 @@ var DateRangeInput = ({
1822
1823
  open: isOpen,
1823
1824
  startMonth,
1824
1825
  selected: currentValue ?? void 0,
1825
- children: /* @__PURE__ */ jsx(
1826
- Button,
1827
- {
1828
- "aria-label": "Select Date Range",
1829
- icon: "calendar",
1830
- variant: "inline",
1831
- size: "icon-3xs"
1832
- }
1833
- )
1826
+ children: /* @__PURE__ */ jsx(Button, { "aria-label": "Select Date Range", variant: "inline", size: "icon-3xs", children: /* @__PURE__ */ jsx(Calendar, { className: "tw-size-4" }) })
1834
1827
  }
1835
1828
  ) : void 0,
1836
1829
  type: "text"
@@ -1939,7 +1932,7 @@ var TimeInput = ({
1939
1932
  onOpenChange: handleOpenChange,
1940
1933
  onSelect: handleTimePickerSelect,
1941
1934
  selected: currentValue,
1942
- children: /* @__PURE__ */ jsx(Button, { "aria-label": "Select Time", icon: "clock", variant: "inline", size: "icon-3xs" })
1935
+ children: /* @__PURE__ */ jsx(Button, { "aria-label": "Select Time", variant: "inline", size: "icon-3xs", children: /* @__PURE__ */ jsx(Clock, { className: "tw-size-4" }) })
1943
1936
  }
1944
1937
  ) : void 0
1945
1938
  }
@@ -2532,21 +2525,7 @@ var Radio = ({ className, ...props }) => /* @__PURE__ */ jsx(
2532
2525
  "focus-visible:tw-ring-secondary-200",
2533
2526
  className
2534
2527
  ),
2535
- children: /* @__PURE__ */ jsx(
2536
- Indicator$2,
2537
- {
2538
- className: cn(
2539
- "tw-flex",
2540
- "tw-items-center",
2541
- "tw-justify-center",
2542
- 'after:tw-content-[""]',
2543
- "after:tw-block",
2544
- "after:tw-size-2.5",
2545
- "after:tw-rounded-full",
2546
- "after:tw-bg-primary"
2547
- )
2548
- }
2549
- )
2528
+ children: /* @__PURE__ */ jsx(Indicator$2, { className: cn("tw-flex", "tw-items-center", "tw-justify-center"), children: /* @__PURE__ */ jsx(Circle, { className: "tw-size-2.5 tw-fill-current tw-text-primary" }) })
2550
2529
  }
2551
2530
  );
2552
2531
  var RadioGroupItemButton = ({
@@ -2904,7 +2883,7 @@ var ClearButton = ({ onClick, testId }) => {
2904
2883
  "hover:tw-text-neutral-800"
2905
2884
  ),
2906
2885
  "data-testid": testId,
2907
- children: /* @__PURE__ */ jsx(Icon, { className: "tw-size-4", icon: "xmark" })
2886
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
2908
2887
  }
2909
2888
  );
2910
2889
  };
@@ -2997,7 +2976,7 @@ var genSearchTestId = (prefix = "") => {
2997
2976
  clearButton: ps`search-clear-button`
2998
2977
  };
2999
2978
  };
3000
- var Search = ({
2979
+ var Search2 = ({
3001
2980
  ref,
3002
2981
  suffix,
3003
2982
  className,
@@ -3056,7 +3035,7 @@ var Search = ({
3056
3035
  ),
3057
3036
  "data-testid": testId.wrapper,
3058
3037
  children: [
3059
- variant === "ai" ? /* @__PURE__ */ jsx(Icon, { icon: ["far", "sparkles"], className: "[&_path]:tw-fill-aigradient-600" }) : /* @__PURE__ */ jsx(Icon, { className: "tw-text-base tw-text-neutral-400", icon: "magnifying-glass" }),
3038
+ variant === "ai" ? /* @__PURE__ */ jsx(Sparkles, { className: "tw-size-4 [&_*]:tw-stroke-aigradient-600" }) : /* @__PURE__ */ jsx(Search, { className: "tw-size-4 tw-text-neutral-400" }),
3060
3039
  /* @__PURE__ */ jsx(
3061
3040
  "input",
3062
3041
  {
@@ -3094,7 +3073,7 @@ var SearchForm = ({
3094
3073
  onSubmit("");
3095
3074
  };
3096
3075
  return /* @__PURE__ */ jsx("form", { onSubmit: handleSubmit, children: /* @__PURE__ */ jsx(
3097
- Search,
3076
+ Search2,
3098
3077
  {
3099
3078
  ...props,
3100
3079
  ref,
@@ -3110,7 +3089,7 @@ var scrollButtonStyles = cn(
3110
3089
  "tw-justify-center",
3111
3090
  "tw-rounded-sm",
3112
3091
  "tw-p-1",
3113
- "[&_svg]:tw-size-3"
3092
+ "[&_svg]:tw-size-5"
3114
3093
  );
3115
3094
  var SelectContent = ({
3116
3095
  ref,
@@ -3166,7 +3145,7 @@ var SelectContent = ({
3166
3145
  className
3167
3146
  ),
3168
3147
  children: [
3169
- /* @__PURE__ */ jsx(SelectPrimitive.ScrollUpButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsx(Icon, { icon: "chevron-up" }) }),
3148
+ /* @__PURE__ */ jsx(SelectPrimitive.ScrollUpButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsx(ChevronUp, {}) }),
3170
3149
  /* @__PURE__ */ jsx(
3171
3150
  SelectPrimitive.Viewport,
3172
3151
  {
@@ -3176,11 +3155,13 @@ var SelectContent = ({
3176
3155
  children
3177
3156
  }
3178
3157
  ),
3179
- /* @__PURE__ */ jsx(SelectPrimitive.ScrollDownButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsx(Icon, { icon: "chevron-down" }) })
3158
+ /* @__PURE__ */ jsx(SelectPrimitive.ScrollDownButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsx(ChevronDown$1, {}) })
3180
3159
  ]
3181
3160
  }
3182
3161
  ) });
3183
3162
  var SelectGroup = ({ className, ...props }) => /* @__PURE__ */ jsx(SelectPrimitive.Group, { ...props, className: cn("tw-flex tw-flex-col tw-gap-0.5", className) });
3163
+ var isFAIconValue = (value) => typeof value === "string" || Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && typeof value[1] === "string";
3164
+ var renderLegacyIcon = (value) => isFAIconValue(value) ? /* @__PURE__ */ jsx(Icon, { icon: value }) : value;
3184
3165
  var SelectItem = ({
3185
3166
  ref,
3186
3167
  className,
@@ -3228,9 +3209,9 @@ var SelectItem = ({
3228
3209
  className
3229
3210
  ),
3230
3211
  children: [
3231
- icon && /* @__PURE__ */ jsx(Icon, { icon }),
3212
+ renderLegacyIcon(icon),
3232
3213
  /* @__PURE__ */ jsx("span", { className: "tw-flex-1 tw-truncate", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children }) }),
3233
- /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { className: "tw-pointer-events-none", children: /* @__PURE__ */ jsx(Icon, { icon: "check", className: "tw-size-4" }) })
3214
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { className: "tw-pointer-events-none", children: /* @__PURE__ */ jsx(Check, { className: "tw-size-4" }) })
3234
3215
  ]
3235
3216
  }
3236
3217
  );
@@ -3405,7 +3386,7 @@ var SelectTrigger = ({
3405
3386
  ...props,
3406
3387
  children: [
3407
3388
  /* @__PURE__ */ jsx(SelectPrimitive.Value, { placeholder }),
3408
- /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(Icon, { icon: "chevron-down", className: "tw-size-3.5 tw-text-muted-foreground" }) })
3389
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDown$1, { className: "tw-size-5 tw-text-muted-foreground" }) })
3409
3390
  ]
3410
3391
  }
3411
3392
  );
@@ -3571,14 +3552,8 @@ function Checkbox({
3571
3552
  const id = idProp?.toString() ?? fallbackId;
3572
3553
  const styleVariant = argo ? "argo" : "default";
3573
3554
  const checkboxElement = /* @__PURE__ */ jsx(Root$6, { id, ...rest, className: cn(rootVariants({ variant: styleVariant, className })), children: /* @__PURE__ */ jsxs(Indicator, { className: cn(indicatorVariants({ variant: styleVariant })), children: [
3574
- /* @__PURE__ */ jsx(Icon, { icon: "check", className: "tw-hidden tw-size-3 group-data-[state=checked]:tw-block" }),
3575
- /* @__PURE__ */ jsx(
3576
- Icon,
3577
- {
3578
- icon: "minus",
3579
- className: "tw-hidden tw-size-3 group-data-[state=indeterminate]:tw-block"
3580
- }
3581
- )
3555
+ /* @__PURE__ */ jsx(Check, { className: "tw-hidden tw-size-3 tw-stroke-[4px] group-data-[state=checked]:tw-block" }),
3556
+ /* @__PURE__ */ jsx(Minus, { className: "tw-hidden tw-size-3 tw-stroke-[4px] group-data-[state=indeterminate]:tw-block" })
3582
3557
  ] }) });
3583
3558
  const rendered = !children ? checkboxElement : /* @__PURE__ */ jsxs(FieldBox, { htmlFor: id, variant, position, control: checkboxElement, children: [
3584
3559
  /* @__PURE__ */ jsx(FieldBox.Title, { children }),
@@ -3612,6 +3587,9 @@ var variants4 = cva(
3612
3587
  "tw-bg-white",
3613
3588
  "[&_svg]:tw-size-2",
3614
3589
  "[&_svg]:data-[state=unchecked]:tw-hidden",
3590
+ // Lucide Circle is stroke-only — force fill to match the stroke
3591
+ // (currentColor) so the indicator reads as a solid dot.
3592
+ "[&_svg]:tw-fill-current",
3615
3593
  "group-data-[variant=argo]/dropdown-menu-content:[&_svg]:tw-text-primary",
3616
3594
  "group-data-[variant=default]/dropdown-menu-content:[&_svg]:tw-text-secondary-500"
3617
3595
  ],
@@ -3631,6 +3609,9 @@ var variants4 = cva(
3631
3609
  ],
3632
3610
  switch: [
3633
3611
  "tw-size-5",
3612
+ // Lucide SVGs default to 24×24 — constrain the rendered ToggleRight
3613
+ // to the indicator slot so it doesn't overflow.
3614
+ "[&_svg]:tw-size-5",
3634
3615
  "tw-text-neutral-400",
3635
3616
  "data-[state=unchecked]:tw-rotate-180",
3636
3617
  "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-text-secondary-500",
@@ -3646,10 +3627,10 @@ var DropdownMenuItemIndicator = ({
3646
3627
  forceMount: forceMountProp,
3647
3628
  ...rest
3648
3629
  }) => {
3649
- const icon = (() => {
3650
- if (variant === "switch") return "toggle-large-on";
3651
- if (variant === "radio") return "circle";
3652
- return "check";
3630
+ const IconComp = (() => {
3631
+ if (variant === "switch") return ToggleRight;
3632
+ if (variant === "radio") return Circle;
3633
+ return Check;
3653
3634
  })();
3654
3635
  const forceMount = (() => {
3655
3636
  if (forceMountProp) return true;
@@ -3662,24 +3643,30 @@ var DropdownMenuItemIndicator = ({
3662
3643
  ...rest,
3663
3644
  forceMount,
3664
3645
  className: variants4({ variant, className }),
3665
- children: /* @__PURE__ */ jsx(Icon, { icon })
3646
+ children: /* @__PURE__ */ jsx(IconComp, {})
3666
3647
  }
3667
3648
  );
3668
3649
  };
3669
- var ItemIcon = ({ className, ...props }) => /* @__PURE__ */ jsx(
3670
- Icon,
3650
+ var ItemIcon = ({ className, children, ...props }) => /* @__PURE__ */ jsx(
3651
+ "span",
3671
3652
  {
3672
3653
  ...props,
3673
3654
  className: cn(
3655
+ "tw-inline-flex",
3656
+ "tw-items-center",
3657
+ "tw-justify-center",
3674
3658
  "tw-aspect-square",
3675
- "tw-p-0.5",
3676
- "tw-size-4",
3659
+ // 20px container fits the 16px Lucide glyph plus 2px breathing room
3660
+ // each side — the previous tw-size-4 + tw-p-0.5 clipped the 16px child.
3661
+ "tw-size-5",
3662
+ "[&_svg]:tw-size-4",
3677
3663
  "group-data-[variant=default]/dropdown-menu-content:tw-text-neutral-400",
3678
3664
  "group-data-[variant=argo]/dropdown-menu-content:tw-text-primary",
3679
3665
  "group-data-[variant=argo]/dropdown-menu-content:group-aria-disabled:tw-text-muted-foreground",
3680
3666
  "group-data-[variant=default]/dropdown-menu-content:group-hover:tw-text-secondary-500",
3681
3667
  className
3682
- )
3668
+ ),
3669
+ children
3683
3670
  }
3684
3671
  );
3685
3672
 
@@ -3760,7 +3747,7 @@ var DropdownMenuCheckboxItem = ({
3760
3747
  ...props
3761
3748
  }) => {
3762
3749
  const isAtStart = indicatorAlign === "start";
3763
- const indicatorEle = isLoading ? /* @__PURE__ */ jsx(ItemIcon, { spin: true, icon: "spinner", className: isAtStart ? "" : "tw-ml-auto" }) : /* @__PURE__ */ jsx(DropdownMenuItemIndicator, { variant: indicator, className: isAtStart ? "" : "tw-ml-auto" });
3750
+ 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" });
3764
3751
  const handleSelect = (event) => {
3765
3752
  if (!closeOnSelect) event.preventDefault();
3766
3753
  onSelect?.(event);
@@ -3826,13 +3813,13 @@ var DropdownMenuItem = ({
3826
3813
  onPointerMove,
3827
3814
  children,
3828
3815
  asChild,
3829
- icon: iconProp,
3816
+ icon,
3830
3817
  iconClassName,
3831
3818
  isLoading = false,
3832
3819
  ...props
3833
3820
  }) => {
3834
3821
  const Comp = asChild ? Root$1 : "div";
3835
- const icon = isLoading ? "spinner" : iconProp;
3822
+ const adornment = isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "tw-animate-spin" }) : renderLegacyIcon(icon);
3836
3823
  const handleOnSelect = (event) => {
3837
3824
  if (asModalTrigger) event.preventDefault();
3838
3825
  onSelect?.(event);
@@ -3856,7 +3843,7 @@ var DropdownMenuItem = ({
3856
3843
  className: cn(itemVariants, className),
3857
3844
  asChild: true,
3858
3845
  children: /* @__PURE__ */ jsxs(Comp, { children: [
3859
- icon && /* @__PURE__ */ jsx(ItemIcon, { spin: isLoading, icon, className: iconClassName }),
3846
+ adornment && /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: adornment }),
3860
3847
  /* @__PURE__ */ jsx(Slottable, { children })
3861
3848
  ] })
3862
3849
  }
@@ -3937,7 +3924,7 @@ var DropdownMenuRadioItem = ({
3937
3924
  ...props
3938
3925
  }) => {
3939
3926
  const isAtStart = indicatorAlign === "start";
3940
- const indicatorEle = isLoading ? /* @__PURE__ */ jsx(ItemIcon, { spin: true, icon: "spinner", className: iconClassName }) : /* @__PURE__ */ jsx(DropdownMenuItemIndicator, { variant: indicator });
3927
+ const indicatorEle = isLoading ? /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: /* @__PURE__ */ jsx(Loader2, { className: "tw-animate-spin" }) }) : /* @__PURE__ */ jsx(DropdownMenuItemIndicator, { variant: indicator });
3941
3928
  const handleSelect = (event) => {
3942
3929
  if (!closeOnSelect) event.preventDefault();
3943
3930
  onSelect?.(event);
@@ -3958,7 +3945,7 @@ var DropdownMenuRadioItem = ({
3958
3945
  ...props,
3959
3946
  children: [
3960
3947
  isAtStart && indicatorEle,
3961
- icon && /* @__PURE__ */ jsx(ItemIcon, { icon, className: iconClassName }),
3948
+ icon && /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: renderLegacyIcon(icon) }),
3962
3949
  /* @__PURE__ */ jsx("span", { className: "tw-flex tw-min-w-0 tw-flex-1 tw-items-center tw-gap-2", children }),
3963
3950
  !isAtStart && indicatorEle
3964
3951
  ]
@@ -4004,7 +3991,7 @@ var DropdownMenuSubContent = ({ className, ...props }) => {
4004
3991
  var DropdownMenuSubTrigger = ({ className, children, ...props }) => {
4005
3992
  return /* @__PURE__ */ jsxs(DropdownMenuPrimitive3.SubTrigger, { className: cn(itemVariants, className), ...props, children: [
4006
3993
  children,
4007
- /* @__PURE__ */ jsx(Icon, { icon: "chevron-right", className: "tw-ml-auto" })
3994
+ /* @__PURE__ */ jsx(ChevronRight, { className: "tw-ml-auto tw-size-5" })
4008
3995
  ] });
4009
3996
  };
4010
3997
  var DropdownMenuTrigger = ({
@@ -4176,9 +4163,8 @@ var ModalCloseIcon = ({ className, ...rest }) => /* @__PURE__ */ jsxs(
4176
4163
  ),
4177
4164
  children: [
4178
4165
  /* @__PURE__ */ jsx(
4179
- Icon,
4166
+ X,
4180
4167
  {
4181
- icon: "close",
4182
4168
  className: cn(
4183
4169
  "tw-size-4",
4184
4170
  "tw-text-neutral-400",
@@ -4245,7 +4231,7 @@ var ModalHeader = ({
4245
4231
  }
4246
4232
  );
4247
4233
  var NAMED_COLORS = /* @__PURE__ */ new Set(["orange", "blue", "red", "green", "gray", "violet"]);
4248
- var ModalIcon = ({ color, ...props }) => {
4234
+ var ModalIcon = (props) => {
4249
4235
  const [hasImageError, setHasImageError] = useState(false);
4250
4236
  if ("iconUrl" in props && hasImageError) {
4251
4237
  return null;
@@ -4266,14 +4252,14 @@ var ModalIcon = ({ color, ...props }) => {
4266
4252
  "div",
4267
4253
  {
4268
4254
  className: cn("tw-relative", "tw-rounded-full", "tw-size-12", {
4269
- "tw-bg-warning-500": color === "orange",
4270
- "tw-bg-secondary-500": color === "blue",
4271
- "tw-bg-primary-500": color === "green",
4272
- "tw-bg-error-500": color === "red",
4273
- "tw-bg-neutral-150": color === "gray",
4274
- "tw-bg-purple-100": color === "violet"
4255
+ "tw-bg-warning-500": props.color === "orange",
4256
+ "tw-bg-secondary-500": props.color === "blue",
4257
+ "tw-bg-primary-500": props.color === "green",
4258
+ "tw-bg-error-500": props.color === "red",
4259
+ "tw-bg-neutral-150": props.color === "gray",
4260
+ "tw-bg-purple-100": props.color === "violet"
4275
4261
  }),
4276
- style: color && !NAMED_COLORS.has(color) ? { backgroundColor: color } : void 0,
4262
+ style: props.color && !NAMED_COLORS.has(props.color) ? { backgroundColor: props.color } : void 0,
4277
4263
  children: /* @__PURE__ */ jsx(
4278
4264
  "span",
4279
4265
  {
@@ -4286,19 +4272,15 @@ var ModalIcon = ({ color, ...props }) => {
4286
4272
  "tw-top-1/2",
4287
4273
  "tw-left-1/2",
4288
4274
  "-tw-translate-x-1/2",
4289
- "-tw-translate-y-1/2"
4290
- ),
4291
- children: /* @__PURE__ */ jsx(
4292
- Icon,
4275
+ "-tw-translate-y-1/2",
4293
4276
  {
4294
- className: cn(
4295
- { "tw-text-white": color !== "violet", "tw-text-purple-500": color === "violet" },
4296
- "tw-size-6",
4297
- "tw-aspect-square"
4298
- ),
4299
- ...props
4300
- }
4301
- )
4277
+ "tw-text-white": props.color !== "violet",
4278
+ "tw-text-purple-500": props.color === "violet"
4279
+ },
4280
+ "[&_svg]:tw-size-6",
4281
+ "[&_svg]:tw-aspect-square"
4282
+ ),
4283
+ children: isFAIconValue(props.icon) ? /* @__PURE__ */ jsx(Icon, { icon: props.icon, spin: props.spin }) : props.icon
4302
4284
  }
4303
4285
  )
4304
4286
  }
@@ -4400,7 +4382,7 @@ var FullScreenModalHeader = ({
4400
4382
  ...props,
4401
4383
  children: [
4402
4384
  /* @__PURE__ */ jsxs("div", { className: cn("tw-flex tw-flex-1 tw-items-center", titleWrapperClassName), children: [
4403
- previousTitle && onClose && /* @__PURE__ */ jsx(Button, { icon: "angle-left", onClick: onClose, size: "icon", className: "tw-mr-6" }),
4385
+ previousTitle && onClose && /* @__PURE__ */ jsx(Button, { onClick: onClose, size: "icon", className: "tw-mr-6", children: /* @__PURE__ */ jsx(ChevronLeft, { className: "tw-size-4" }) }),
4404
4386
  /* @__PURE__ */ jsx("div", { className: "tw-w-full", children: /* @__PURE__ */ jsxs(
4405
4387
  "div",
4406
4388
  {
@@ -4660,9 +4642,14 @@ var SplitButtonBase = ({
4660
4642
  isActionsOpen,
4661
4643
  onActionsOpenChange,
4662
4644
  argo = false,
4645
+ icon,
4646
+ children,
4663
4647
  ...rest
4664
4648
  }) => /* @__PURE__ */ jsxs(ButtonGroup, { space: "compact", children: [
4665
- /* @__PURE__ */ jsx(Button, { ...rest, ref, disabled, variant, size, argo }),
4649
+ /* @__PURE__ */ jsxs(Button, { ...rest, ref, disabled, variant, size, argo, children: [
4650
+ !rest.isLoading && renderLegacyIcon(icon),
4651
+ children
4652
+ ] }),
4666
4653
  actions && /* @__PURE__ */ jsxs(
4667
4654
  DropdownMenu,
4668
4655
  {
@@ -4676,8 +4663,8 @@ var SplitButtonBase = ({
4676
4663
  argo,
4677
4664
  size: iconSizeMap[size],
4678
4665
  variant,
4679
- icon: "caret-down",
4680
- "aria-label": "Additional actions"
4666
+ "aria-label": "Additional actions",
4667
+ children: /* @__PURE__ */ jsx(ChevronDown, { className: "tw-size-5" })
4681
4668
  }
4682
4669
  ) }),
4683
4670
  /* @__PURE__ */ jsx(DropdownMenu.Content, { align: "end", children: actions })
@@ -5274,7 +5261,7 @@ var SidebarGroupAction = ({
5274
5261
  ref,
5275
5262
  className,
5276
5263
  type = "button",
5277
- icon,
5264
+ children,
5278
5265
  ...props
5279
5266
  }) => /* @__PURE__ */ jsx(
5280
5267
  "button",
@@ -5296,6 +5283,10 @@ var SidebarGroupAction = ({
5296
5283
  // styles
5297
5284
  "tw-text-neutral-800",
5298
5285
  "tw-rounded-full",
5286
+ // svg defaults: size + colour
5287
+ "[&_svg]:tw-size-3",
5288
+ "[&_svg]:tw-text-neutral-400",
5289
+ "hover:[&_svg]:tw-text-secondary-600",
5299
5290
  "hover:tw-bg-neutral-100",
5300
5291
  "focus-visible:tw-ring-4",
5301
5292
  "focus-visible:tw-ring-secondary-200",
@@ -5304,7 +5295,7 @@ var SidebarGroupAction = ({
5304
5295
  "focus-visible:tw-outline-secondary-500",
5305
5296
  className
5306
5297
  ),
5307
- children: /* @__PURE__ */ jsx(Icon, { icon, className: "tw-size-3 tw-text-neutral-400 hover:tw-text-secondary-600" })
5298
+ children
5308
5299
  }
5309
5300
  );
5310
5301
  var SidebarGroupLabel = ({
@@ -5422,22 +5413,25 @@ var SidebarMenu = ({ className, ...props }) => /* @__PURE__ */ jsx(
5422
5413
  var SidebarMenuIcon = ({
5423
5414
  ref,
5424
5415
  className,
5425
- icon,
5416
+ children,
5426
5417
  ...rest
5427
5418
  }) => /* @__PURE__ */ jsx(
5428
- Icon,
5419
+ "span",
5429
5420
  {
5430
5421
  ...rest,
5431
5422
  ref,
5432
- icon,
5433
5423
  className: cn(
5434
- "tw-size-4",
5424
+ "tw-inline-flex",
5425
+ "tw-items-center",
5426
+ "tw-justify-center",
5435
5427
  "tw-aspect-square",
5436
- "tw-text-sidebar-primary",
5437
5428
  "tw-shrink-0",
5438
5429
  "tw-p-0.5",
5430
+ "tw-text-sidebar-primary",
5431
+ "[&_svg]:tw-size-4",
5439
5432
  className
5440
- )
5433
+ ),
5434
+ children
5441
5435
  }
5442
5436
  );
5443
5437
  var SidebarMenuButton = ({
@@ -5510,7 +5504,7 @@ var SidebarMenuButton = ({
5510
5504
  ),
5511
5505
  tabIndex: 0,
5512
5506
  children: [
5513
- icon && /* @__PURE__ */ jsx(SidebarMenuIcon, { icon }),
5507
+ icon && /* @__PURE__ */ jsx(SidebarMenuIcon, { children: renderLegacyIcon(icon) }),
5514
5508
  /* @__PURE__ */ jsx(Slottable, { children })
5515
5509
  ]
5516
5510
  }
@@ -5612,15 +5606,13 @@ var SidebarSearchInput = ({
5612
5606
  };
5613
5607
  return /* @__PURE__ */ jsxs("div", { className: cn(wrapperClassnames, className), children: [
5614
5608
  /* @__PURE__ */ jsx(
5615
- Icon,
5609
+ Search,
5616
5610
  {
5617
- icon: "search",
5618
- fixedWidth: true,
5619
5611
  className: cn(
5620
5612
  "tw-pointer-events-none",
5621
5613
  "tw-absolute",
5622
5614
  "tw-left-2",
5623
- "tw-h-4",
5615
+ "tw-size-4",
5624
5616
  "tw-text-sidebar-primary",
5625
5617
  "group-data-[state=expanded]/sidebar:tw-text-neutral-400"
5626
5618
  )
@@ -5711,7 +5703,7 @@ var SidebarMenuCard = ({ children, className, icon, title, ...rest }) => {
5711
5703
  ),
5712
5704
  children: /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-2", children: [
5713
5705
  /* @__PURE__ */ jsxs(Title3, { children: [
5714
- /* @__PURE__ */ jsx(SidebarMenuIcon, { className: "tw-p-px", icon }),
5706
+ /* @__PURE__ */ jsx(SidebarMenuIcon, { className: "tw-p-px", children: renderLegacyIcon(icon) }),
5715
5707
  title
5716
5708
  ] }),
5717
5709
  /* @__PURE__ */ jsx(Content8, { className, children })
@@ -5876,13 +5868,7 @@ var SidebarMenuSub = ({
5876
5868
  ),
5877
5869
  children: [
5878
5870
  label,
5879
- /* @__PURE__ */ jsx(
5880
- Icon,
5881
- {
5882
- icon: ["far", "angle-down"],
5883
- className: "tw-ml-auto tw-transition-transform tw-duration-200 group-data-[state=open]:tw-rotate-180"
5884
- }
5885
- )
5871
+ /* @__PURE__ */ jsx(ChevronDown$1, { className: "tw-ml-auto tw-size-5 tw-transition-transform tw-duration-200 group-data-[state=open]:tw-rotate-180" })
5886
5872
  ]
5887
5873
  }
5888
5874
  ) }),
@@ -6337,9 +6323,8 @@ var CheckIndicator = ({ variant = "default" }) => {
6337
6323
  if (variant === "default") return null;
6338
6324
  if (variant === "argo") {
6339
6325
  return /* @__PURE__ */ jsx(
6340
- Icon,
6326
+ Check,
6341
6327
  {
6342
- icon: "check",
6343
6328
  className: cn(
6344
6329
  // visibility
6345
6330
  "tw-hidden",
@@ -6379,17 +6364,30 @@ var CheckIndicator = ({ variant = "default" }) => {
6379
6364
  "data-[variant=checkbox]:group-data-[checked=true]/command-item:tw-bg-secondary-500",
6380
6365
  "tw-shrink-0"
6381
6366
  ),
6382
- children: /* @__PURE__ */ jsx(
6383
- Icon,
6367
+ children: variant === "checkbox" ? /* @__PURE__ */ jsx(
6368
+ Check,
6384
6369
  {
6385
6370
  className: cn(
6386
6371
  "tw-hidden",
6372
+ // Lucide SVGs default to 24×24; constrain to the 16px indicator slot.
6373
+ "tw-size-3",
6374
+ "tw-stroke-[4px]",
6387
6375
  "group-data-[checked=true]/command-item:tw-block",
6388
- "group-data-[variant=checkbox]/check-indicator:tw-text-white",
6389
- "group-data-[variant=radio]/check-indicator:tw-text-secondary-500",
6390
- "group-data-[variant=radio]/check-indicator:tw-size-3"
6391
- ),
6392
- icon: variant === "checkbox" ? "check" : "circle"
6376
+ "group-data-[variant=checkbox]/check-indicator:tw-text-white"
6377
+ )
6378
+ }
6379
+ ) : /* @__PURE__ */ jsx(
6380
+ Circle,
6381
+ {
6382
+ className: cn(
6383
+ "tw-hidden",
6384
+ // Lucide Circle is stroke-only — force fill to match the stroke so
6385
+ // the indicator reads as a solid dot.
6386
+ "tw-size-3",
6387
+ "tw-fill-current",
6388
+ "group-data-[checked=true]/command-item:tw-block",
6389
+ "group-data-[variant=radio]/check-indicator:tw-text-secondary-500"
6390
+ )
6393
6391
  }
6394
6392
  )
6395
6393
  }
@@ -6445,7 +6443,7 @@ var CommandItem = ({
6445
6443
  ),
6446
6444
  children: [
6447
6445
  /* @__PURE__ */ jsx(CheckIndicator, { variant }),
6448
- icon && /* @__PURE__ */ jsx(Icon, { icon, className: "tw-size-4 tw-shrink-0 tw-text-neutral-400" }),
6446
+ icon && /* @__PURE__ */ jsx("span", { className: "tw-inline-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-text-neutral-400 [&_svg]:tw-size-4", children: icon }),
6449
6447
  children
6450
6448
  ]
6451
6449
  }
@@ -6568,8 +6566,8 @@ var BadgeAddon = ({
6568
6566
  var BadgeButton = ({
6569
6567
  ref,
6570
6568
  className,
6571
- icon,
6572
6569
  type = "button",
6570
+ children,
6573
6571
  ...rest
6574
6572
  }) => /* @__PURE__ */ jsx(
6575
6573
  "button",
@@ -6587,9 +6585,13 @@ var BadgeButton = ({
6587
6585
  "tw-text-inherit",
6588
6586
  "hover:tw-brightness-95",
6589
6587
  "tw-px-1",
6588
+ // Default sizing for Lucide-icon children (which ship at 24×24); keeps
6589
+ // the visual baseline aligned with the previous FA-icon API and other
6590
+ // icon-wrapper components (ItemIcon, SidebarMenuIcon).
6591
+ "[&_svg]:tw-size-3",
6590
6592
  className
6591
6593
  ),
6592
- children: /* @__PURE__ */ jsx(Icon, { icon })
6594
+ children
6593
6595
  }
6594
6596
  );
6595
6597
  var BadgeLabel = ({
@@ -6803,7 +6805,7 @@ var ComboboxChips = ({
6803
6805
  /* @__PURE__ */ jsx(Badge.Addon, { variant: "inline", align: "inline-end", children: /* @__PURE__ */ jsx(
6804
6806
  Combobox$1.ChipRemove,
6805
6807
  {
6806
- render: /* @__PURE__ */ jsx(Badge.Button, { icon: "xmark", "aria-label": "Remove value" })
6808
+ render: /* @__PURE__ */ jsx(Badge.Button, { "aria-label": "Remove value", children: /* @__PURE__ */ jsx(X, { className: "tw-size-3" }) })
6807
6809
  }
6808
6810
  ) })
6809
6811
  ]
@@ -6963,12 +6965,12 @@ var ComboboxItemIndicator = ({
6963
6965
  ),
6964
6966
  ...props,
6965
6967
  children: /* @__PURE__ */ jsx(
6966
- Icon,
6968
+ Check,
6967
6969
  {
6968
- icon: "check",
6969
6970
  className: cn(
6970
6971
  "tw-hidden",
6971
6972
  "tw-size-3",
6973
+ "tw-stroke-[4px]",
6972
6974
  "!tw-text-white",
6973
6975
  "group-data-[selected]/combobox-item-indicator:tw-block"
6974
6976
  )
@@ -6987,12 +6989,14 @@ var ComboboxItemIndicator = ({
6987
6989
  "tw-absolute",
6988
6990
  "tw-right-2",
6989
6991
  "group-data-[variant=default]/combobox-content:tw-right-4",
6992
+ // Lucide SVGs default to 24×24 — constrain the rendered child so the
6993
+ // 16px indicator slot owns the actual size.
6990
6994
  "[&_svg]:tw-size-4",
6991
6995
  "group-data-[highlighted]/combobox-item:tw-text-accent-foreground",
6992
6996
  "group-data-[variant=default]/combobox-content:group-data-[highlighted]/combobox-item:tw-text-foreground",
6993
6997
  className
6994
6998
  ),
6995
- render: /* @__PURE__ */ jsx(Icon, { icon: "check" })
6999
+ render: /* @__PURE__ */ jsx(Check, {})
6996
7000
  }
6997
7001
  );
6998
7002
  };
@@ -7045,7 +7049,7 @@ var ComboboxItem = ({
7045
7049
  ),
7046
7050
  children: [
7047
7051
  /* @__PURE__ */ jsx(ComboboxItemIndicator, { variant }),
7048
- icon && /* @__PURE__ */ jsx(Icon, { icon }),
7052
+ icon,
7049
7053
  /* @__PURE__ */ jsx("span", { className: "tw-truncate", children })
7050
7054
  ]
7051
7055
  }
@@ -7280,17 +7284,8 @@ var Combobox = ({
7280
7284
  prefix && /* @__PURE__ */ jsx(InputGroup.Addon, { align: "inline-start", children: prefix }),
7281
7285
  /* @__PURE__ */ jsx(ComboboxInput, { id, placeholder, disabled }),
7282
7286
  /* @__PURE__ */ jsxs(InputGroup.Addon, { align: "inline-end", children: [
7283
- allowClear && /* @__PURE__ */ jsx(InputGroup.Button, { asChild: true, icon: "xmark", "aria-label": "Clear", disabled, children: /* @__PURE__ */ jsx(Combobox$1.Clear, {}) }),
7284
- /* @__PURE__ */ jsx(
7285
- InputGroup.Button,
7286
- {
7287
- disabled,
7288
- asChild: true,
7289
- icon: "chevron-down",
7290
- "aria-label": "Open combobox",
7291
- children: /* @__PURE__ */ jsx(Combobox$1.Trigger, {})
7292
- }
7293
- )
7287
+ allowClear && /* @__PURE__ */ jsx(InputGroup.Button, { asChild: true, "aria-label": "Clear", disabled, children: /* @__PURE__ */ jsx(Combobox$1.Clear, { children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" }) }) }),
7288
+ /* @__PURE__ */ jsx(InputGroup.Button, { disabled, asChild: true, "aria-label": "Open combobox", children: /* @__PURE__ */ jsx(Combobox$1.Trigger, { children: /* @__PURE__ */ jsx(ChevronDown$1, { className: "tw-size-4" }) }) })
7294
7289
  ] })
7295
7290
  ]
7296
7291
  }
@@ -7299,11 +7294,11 @@ var Combobox = ({
7299
7294
  /* @__PURE__ */ jsx(ComboboxEmpty, { children: empty }),
7300
7295
  /* @__PURE__ */ jsx(ComboboxList, { children: (itemOrGroup) => {
7301
7296
  if (isCreatableItem(itemOrGroup))
7302
- return /* @__PURE__ */ jsx(Combobox.Item, { value: itemOrGroup, icon: "plus", children: queryToCreateLabel(itemOrGroup.value) });
7297
+ return /* @__PURE__ */ jsx(Combobox.Item, { value: itemOrGroup, icon: /* @__PURE__ */ jsx(Plus, {}), children: queryToCreateLabel(itemOrGroup.value) });
7303
7298
  if (isGroupItem(itemOrGroup)) {
7304
7299
  const maybeCreatable = itemOrGroup.items[0];
7305
7300
  if (isCreatableItem(maybeCreatable)) {
7306
- return /* @__PURE__ */ jsx(Combobox.Item, { value: maybeCreatable, icon: "plus", children: queryToCreateLabel(maybeCreatable.value) });
7301
+ return /* @__PURE__ */ jsx(Combobox.Item, { value: maybeCreatable, icon: /* @__PURE__ */ jsx(Plus, {}), children: queryToCreateLabel(maybeCreatable.value) });
7307
7302
  }
7308
7303
  const groupLabel = groupToLabel(itemOrGroup);
7309
7304
  return /* @__PURE__ */ jsxs(Combobox.Group, { items: itemOrGroup.items, children: [
@@ -7361,7 +7356,7 @@ var BreadcrumbEllipsis = ({
7361
7356
  ),
7362
7357
  ...props,
7363
7358
  children: [
7364
- /* @__PURE__ */ jsx(Icon, { icon: ["far", "ellipsis"], className: "tw-size-4" }),
7359
+ /* @__PURE__ */ jsx(Ellipsis, { className: "tw-size-4" }),
7365
7360
  /* @__PURE__ */ jsx("span", { className: "tw-sr-only", children: "More" })
7366
7361
  ]
7367
7362
  }
@@ -7455,7 +7450,7 @@ var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */
7455
7450
  className
7456
7451
  ),
7457
7452
  ...props,
7458
- children: children ?? /* @__PURE__ */ jsx(Icon, { icon: "chevron-right" })
7453
+ children: children ?? /* @__PURE__ */ jsx(ChevronRight, { className: "!tw-size-4" })
7459
7454
  }
7460
7455
  );
7461
7456
  var Breadcrumb = ({ className, ...props }) => /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", className: cn("tailwindcss-preflight", className), ...props });
@@ -7680,7 +7675,7 @@ var NavbarMenuButton = ({
7680
7675
  className,
7681
7676
  type = "button",
7682
7677
  children,
7683
- icon: iconProp,
7678
+ icon,
7684
7679
  asChild = false,
7685
7680
  variant = "default",
7686
7681
  ...rest
@@ -7688,7 +7683,7 @@ var NavbarMenuButton = ({
7688
7683
  const Comp = asChild ? Root$1 : "button";
7689
7684
  const isSearchVariant = variant === "search";
7690
7685
  const isEmphasizedVariant = variant === "emphasized";
7691
- const icon = isSearchVariant ? "search" : iconProp;
7686
+ const adornment = isSearchVariant ? /* @__PURE__ */ jsx(Search$1, {}) : renderLegacyIcon(icon);
7692
7687
  const adornmentVariant = (() => {
7693
7688
  if (isSearchVariant || variant === "icon") return "icon-button";
7694
7689
  if (isEmphasizedVariant) return "icon-accent-emphasized";
@@ -7703,7 +7698,7 @@ var NavbarMenuButton = ({
7703
7698
  "data-variant": variant,
7704
7699
  className: cn$1(variants7({ className, variant })),
7705
7700
  children: [
7706
- icon && /* @__PURE__ */ jsx(NavbarMenuItemAdornment, { asChild: true, variant: adornmentVariant, children: /* @__PURE__ */ jsx(Icon$1, { icon }) }),
7701
+ adornment && /* @__PURE__ */ jsx(NavbarMenuItemAdornment, { variant: adornmentVariant, children: adornment }),
7707
7702
  /* @__PURE__ */ jsx(Slottable, { children })
7708
7703
  ]
7709
7704
  }
@@ -7808,22 +7803,27 @@ var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx(
7808
7803
  className
7809
7804
  ),
7810
7805
  ...props,
7811
- children: /* @__PURE__ */ jsx(Icon, { icon: ["far", "ellipsis"] })
7806
+ children: /* @__PURE__ */ jsx(Ellipsis, {})
7812
7807
  }
7813
7808
  );
7814
7809
  var PaginationItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", { className: cn("tw-list-none", className), ...props });
7815
- var PaginationNext = ({ children, className, ...props }) => /* @__PURE__ */ jsx(
7810
+ var PaginationNext = ({ children, className, ...props }) => /* @__PURE__ */ jsxs(
7816
7811
  PaginationButton,
7817
7812
  {
7818
7813
  ...props,
7819
7814
  "aria-label": "Go to next page",
7820
- icon: "chevron-right",
7821
7815
  size: "medium",
7822
7816
  className: cn("tw-flex-row-reverse", className),
7823
- children: children ?? "Next"
7817
+ children: [
7818
+ /* @__PURE__ */ jsx(ChevronRight, { className: "tw-size-5" }),
7819
+ children ?? "Next"
7820
+ ]
7824
7821
  }
7825
7822
  );
7826
- var PaginationPrevious = ({ children, ...props }) => /* @__PURE__ */ jsx(PaginationButton, { ...props, size: "medium", "aria-label": "Go to previous page", icon: "chevron-left", children: children ?? "Previous" });
7823
+ var PaginationPrevious = ({ children, ...props }) => /* @__PURE__ */ jsxs(PaginationButton, { ...props, size: "medium", "aria-label": "Go to previous page", children: [
7824
+ /* @__PURE__ */ jsx(ChevronLeft, { className: "tw-size-5" }),
7825
+ children ?? "Previous"
7826
+ ] });
7827
7827
  var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
7828
7828
  "nav",
7829
7829
  {
@@ -8031,9 +8031,12 @@ var toggleVariants = cva(
8031
8031
  "aria-pressed:tw-to-purple-600",
8032
8032
  "hover:aria-pressed:tw-from-secondary-700",
8033
8033
  "hover:aria-pressed:tw-to-purple-700",
8034
- // icon color - gradient when off, white when on
8035
- "[&_path]:tw-fill-aigradient-600",
8036
- "[&_path]:aria-pressed:tw-fill-white",
8034
+ // icon color - gradient stroke when off, white stroke when on.
8035
+ // Lucide icons are stroke-based; targeting every shape (`*`)
8036
+ // catches paths, circles, and other non-path sub-shapes so the
8037
+ // whole glyph picks up the gradient.
8038
+ "[&_*]:tw-stroke-aigradient-600",
8039
+ "[&_*]:aria-pressed:tw-stroke-white",
8037
8040
  "*:aria-pressed:tw-text-white"
8038
8041
  ],
8039
8042
  "ai-vivid": [
@@ -8122,7 +8125,7 @@ var Toggle = ({
8122
8125
  disabled,
8123
8126
  children: [
8124
8127
  badge && /* @__PURE__ */ jsx("span", { className: "tw-absolute tw-right-0 tw-top-0 -tw-translate-y-1/2 tw-translate-x-1/4", children: badge }),
8125
- icon && /* @__PURE__ */ jsx(Icon, { icon, className: "tw-inline-block tw-size-4 tw-shrink-0 tw-align-middle" }),
8128
+ icon && /* @__PURE__ */ jsx("span", { className: "tw-inline-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-align-middle [&_svg]:tw-size-4", children: renderLegacyIcon(icon) }),
8126
8129
  isAiVariant ? /* @__PURE__ */ jsx("div", { className: "tw-bg-gradient-to-br tw-from-secondary-700 tw-to-purple-700 tw-bg-clip-text tw-text-transparent", children }) : children
8127
8130
  ]
8128
8131
  }
@@ -8964,17 +8967,8 @@ var MultiCombobox = ({
8964
8967
  className: "tw-w-auto tw-min-w-[120px] tw-flex-1"
8965
8968
  }
8966
8969
  ),
8967
- allowClear && /* @__PURE__ */ jsx(InputGroup.Button, { asChild: true, icon: "xmark", "aria-label": "Clear", disabled, children: /* @__PURE__ */ jsx(Combobox$1.Clear, {}) }),
8968
- /* @__PURE__ */ jsx(
8969
- InputGroup.Button,
8970
- {
8971
- disabled,
8972
- asChild: true,
8973
- icon: "chevron-down",
8974
- "aria-label": "Open combobox",
8975
- children: /* @__PURE__ */ jsx(Combobox$1.Trigger, {})
8976
- }
8977
- )
8970
+ allowClear && /* @__PURE__ */ jsx(InputGroup.Button, { asChild: true, "aria-label": "Clear", disabled, children: /* @__PURE__ */ jsx(Combobox$1.Clear, { children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" }) }) }),
8971
+ /* @__PURE__ */ jsx(InputGroup.Button, { disabled, asChild: true, "aria-label": "Open combobox", children: /* @__PURE__ */ jsx(Combobox$1.Trigger, { children: /* @__PURE__ */ jsx(ChevronDown$1, { className: "tw-size-4" }) }) })
8978
8972
  ] })
8979
8973
  ] })
8980
8974
  }
@@ -9066,9 +9060,9 @@ var ColorPicker = ({ value, disabled, readOnly, ...props }) => {
9066
9060
  {
9067
9061
  onMouseDown: (event) => event.preventDefault(),
9068
9062
  disabled: disabled || readOnly,
9069
- icon: "eye-dropper",
9070
9063
  onClick: handleOpenPicker,
9071
- "aria-label": "Pick color"
9064
+ "aria-label": "Pick color",
9065
+ children: /* @__PURE__ */ jsx(Pipette, { className: "tw-size-4" })
9072
9066
  }
9073
9067
  )
9074
9068
  ] });
@@ -9184,10 +9178,10 @@ var ColorInput = ({
9184
9178
  canClear && /* @__PURE__ */ jsx(
9185
9179
  InputGroup.Button,
9186
9180
  {
9187
- icon: "xmark",
9188
9181
  onMouseDown: (event) => event.preventDefault(),
9189
9182
  onClick: handleClear,
9190
- "aria-label": "Clear color"
9183
+ "aria-label": "Clear color",
9184
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
9191
9185
  }
9192
9186
  ),
9193
9187
  /* @__PURE__ */ jsx(
@@ -9295,7 +9289,7 @@ FormGroup.TextInput = FormGroupTextInput;
9295
9289
  FormGroup.NumberInput = FormGroupNumberInput;
9296
9290
  FormGroup.ColorInput = FormGroupColorInput;
9297
9291
  FormGroup.Textarea = FormGroupTextarea;
9298
- var Link = ({
9292
+ var Link2 = ({
9299
9293
  ref,
9300
9294
  children,
9301
9295
  target = "_blank",
@@ -9380,14 +9374,14 @@ var Tabs = ({
9380
9374
  /* @__PURE__ */ jsx(
9381
9375
  Button,
9382
9376
  {
9383
- icon: "xmark",
9384
9377
  variant: "inline",
9385
9378
  size: "icon-3xs",
9386
9379
  disabled: rest2.disabled,
9387
9380
  onClick: () => onClose(value),
9388
9381
  onMouseDown: (e) => e.preventDefault(),
9389
9382
  className: "!tw-size-8 tw-opacity-0 tw-duration-200 group-hover/tab-trigger:tw-opacity-100",
9390
- "aria-label": "Close tab"
9383
+ "aria-label": "Close tab",
9384
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
9391
9385
  }
9392
9386
  )
9393
9387
  ] })
@@ -9429,12 +9423,11 @@ var AlertAction = ({
9429
9423
  );
9430
9424
  };
9431
9425
  var AlertCollapsibleIcon = ({ open }) => /* @__PURE__ */ jsx(Tooltip, { placement: "top", tooltip: open ? "Collapse alert" : "Expand alert", triggerAsChild: true, children: /* @__PURE__ */ jsx(
9432
- Icon,
9426
+ ChevronDown$1,
9433
9427
  {
9434
- icon: "chevron-down",
9435
9428
  className: cn(
9436
9429
  "tw-mt-px",
9437
- "tw-size-4",
9430
+ "tw-size-5",
9438
9431
  "tw-text-neutral-400",
9439
9432
  "group-data-[state=open]/alert:tw-rotate-180",
9440
9433
  "group-data-[variant=info]/alert:group-hover:tw-text-secondary-600",
@@ -9467,35 +9460,31 @@ var AlertDescription = ({
9467
9460
  children
9468
9461
  }
9469
9462
  );
9470
- var ICONS = {
9471
- info: "circle-info",
9472
- warning: "triangle-exclamation",
9473
- error: "triangle-exclamation",
9474
- success: "circle-check"
9463
+ var VARIANT_ICONS = {
9464
+ info: /* @__PURE__ */ jsx(Info, {}),
9465
+ warning: /* @__PURE__ */ jsx(AlertTriangle, {}),
9466
+ error: /* @__PURE__ */ jsx(AlertTriangle, {}),
9467
+ success: /* @__PURE__ */ jsx(CircleCheck, {})
9475
9468
  };
9476
- var AlertIcon = ({
9477
- ref,
9478
- variant,
9479
- icon,
9480
- className,
9481
- ...rest
9482
- }) => /* @__PURE__ */ jsx(
9483
- Icon,
9469
+ var AlertIcon = ({ variant, icon, className, ...rest }) => /* @__PURE__ */ jsx(
9470
+ "span",
9484
9471
  {
9485
9472
  ...rest,
9486
- ref,
9487
9473
  "data-slot": "alert-icon",
9488
- icon: icon ?? ICONS[variant],
9489
9474
  className: cn(
9475
+ "tw-inline-flex",
9476
+ "tw-items-center",
9477
+ "tw-justify-center",
9490
9478
  "tw-self-start",
9491
9479
  "tw-p-0.5",
9492
- "tw-text-base",
9480
+ "[&_svg]:tw-size-4",
9493
9481
  "group-data-[variant=info]/alert:tw-text-secondary-500",
9494
9482
  "group-data-[variant=warning]/alert:tw-text-warning-500",
9495
9483
  "group-data-[variant=error]/alert:tw-text-error-500",
9496
9484
  "group-data-[variant=success]/alert:tw-text-primary-500",
9497
9485
  className
9498
- )
9486
+ ),
9487
+ children: icon ?? VARIANT_ICONS[variant]
9499
9488
  }
9500
9489
  );
9501
9490
  var AlertRoot = ({
@@ -9620,7 +9609,7 @@ var Alert = ({
9620
9609
  actions && /* @__PURE__ */ jsx(AlertAction, { children: actions })
9621
9610
  ] });
9622
9611
  };
9623
- var DEFAULT_ICON = "copy";
9612
+ var DEFAULT_ICON = /* @__PURE__ */ jsx(Copy, {});
9624
9613
  var ClipboardButton = ({
9625
9614
  // clipboard props
9626
9615
  text,
@@ -9640,7 +9629,10 @@ var ClipboardButton = ({
9640
9629
  tooltipPlacement,
9641
9630
  tooltipVariant,
9642
9631
  text,
9643
- children: /* @__PURE__ */ jsx(Button, { ...rest, icon, variant, disabled: !text, children })
9632
+ children: /* @__PURE__ */ jsxs(Button, { ...rest, variant, disabled: !text, children: [
9633
+ icon,
9634
+ children
9635
+ ] })
9644
9636
  }
9645
9637
  );
9646
9638
  var ClipboardInline = ({
@@ -9662,7 +9654,7 @@ var ClipboardInline = ({
9662
9654
  tooltipPlacement,
9663
9655
  tooltipVariant,
9664
9656
  children: /* @__PURE__ */ jsxs(ButtonInline, { ...rest, disabled: !text, children: [
9665
- !hideIcon && /* @__PURE__ */ jsx(Icon$1, { icon: "copy" }),
9657
+ !hideIcon && /* @__PURE__ */ jsx(Copy, { className: "tw-size-4" }),
9666
9658
  children
9667
9659
  ] })
9668
9660
  }
@@ -10425,26 +10417,35 @@ var CHANGE_CLASS = {
10425
10417
  };
10426
10418
  var LINE_HEIGHT_PX = 20;
10427
10419
  var PANE_HEADER_HEIGHT_PX = 58;
10428
- var AcceptButton = ({ side, onAccept }) => {
10420
+ var AcceptButton = ({ side, onAccept, argo }) => {
10429
10421
  const label = `Accept ${side === "left" ? "production" : "branch"} version`;
10422
+ const Chevron = side === "left" ? ChevronsRight : ChevronsLeft;
10430
10423
  return /* @__PURE__ */ jsx(
10431
10424
  Button,
10432
10425
  {
10433
- icon: side === "left" ? ["far", "chevrons-right"] : ["far", "chevrons-left"],
10434
10426
  onClick: onAccept,
10435
10427
  variant: "outline",
10436
- size: "icon",
10428
+ size: "icon-sm",
10437
10429
  title: label,
10438
- "aria-label": label
10430
+ "aria-label": label,
10431
+ argo,
10432
+ children: /* @__PURE__ */ jsx(Chevron, { className: "tw-size-5" })
10439
10433
  }
10440
10434
  );
10441
10435
  };
10442
- var AcceptControls = ({ conflicts, side, onAccept, onDismiss, contentRef }) => /* @__PURE__ */ jsx(
10436
+ var AcceptControls = ({
10437
+ conflicts,
10438
+ side,
10439
+ onAccept,
10440
+ onDismiss,
10441
+ contentRef,
10442
+ argo
10443
+ }) => /* @__PURE__ */ jsx(
10443
10444
  "div",
10444
10445
  {
10445
10446
  className: cn(
10446
10447
  "tw-z-10 tw-flex tw-shrink-0 tw-flex-col tw-items-center",
10447
- conflicts.length > 0 ? "tw-w-10" : "tw-w-0"
10448
+ conflicts.length > 0 ? "tw-w-7" : "tw-w-0"
10448
10449
  ),
10449
10450
  children: conflicts.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
10450
10451
  /* @__PURE__ */ jsx("div", { className: "tw-shrink-0", style: { height: `${PANE_HEADER_HEIGHT_PX}px` } }),
@@ -10457,16 +10458,17 @@ var AcceptControls = ({ conflicts, side, onAccept, onDismiss, contentRef }) => /
10457
10458
  className: "tw-absolute tw-inset-x-0 tw-flex tw-flex-col tw-items-center tw-gap-0.5",
10458
10459
  style: { top: `${topOffset}px` },
10459
10460
  children: [
10460
- /* @__PURE__ */ jsx(AcceptButton, { side, onAccept: () => onAccept(conflict) }),
10461
+ /* @__PURE__ */ jsx(AcceptButton, { side, onAccept: () => onAccept(conflict), argo }),
10461
10462
  onDismiss && /* @__PURE__ */ jsx(
10462
10463
  Button,
10463
10464
  {
10464
- icon: "xmark",
10465
10465
  onClick: () => onDismiss(conflict),
10466
10466
  variant: "outline",
10467
- size: "icon",
10467
+ size: "icon-sm",
10468
10468
  title: "Dismiss",
10469
- "aria-label": `Dismiss ${side === "left" ? "production" : "branch"} change`
10469
+ "aria-label": `Dismiss ${side === "left" ? "production" : "branch"} change`,
10470
+ argo,
10471
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
10470
10472
  }
10471
10473
  )
10472
10474
  ]
@@ -10569,14 +10571,18 @@ var MergePane = ({
10569
10571
  backgroundColor: colors.neutral[50],
10570
10572
  outline: "none"
10571
10573
  },
10572
- "&.cm-editor .cm-scroller": {
10573
- alignItems: "stretch !important"
10574
- },
10575
10574
  ".cm-gutters": {
10576
10575
  backgroundColor: colors.neutral[100]
10577
10576
  },
10578
10577
  "*": { lineHeight: `${LINE_HEIGHT_PX}px` },
10579
10578
  ".cm-lineNumbers .cm-gutterElement": { padding: "0 0 0 25px" }
10579
+ }),
10580
+ // Recalc viewport after every doc change so late-settling layouts (alerts
10581
+ // appearing above the editor) don't leave trailing lines blank.
10582
+ EditorView.updateListener.of((update) => {
10583
+ if (update.docChanged) {
10584
+ requestAnimationFrame(() => update.view.dispatch({}));
10585
+ }
10580
10586
  })
10581
10587
  ],
10582
10588
  []
@@ -10597,12 +10603,21 @@ var MergePane = ({
10597
10603
  useEffect(() => {
10598
10604
  return () => onScrollDOMReady?.(null);
10599
10605
  }, [onScrollDOMReady]);
10606
+ useEffect(() => {
10607
+ const view = editorRef.current?.view;
10608
+ const wrapper = view?.dom.parentElement;
10609
+ if (!view || !wrapper) return;
10610
+ const observer = new ResizeObserver(() => view.dispatch({}));
10611
+ observer.observe(wrapper);
10612
+ return () => observer.disconnect();
10613
+ }, []);
10600
10614
  return /* @__PURE__ */ jsxs("div", { className: cn("tw-flex tw-min-w-0 tw-flex-1 tw-flex-col tw-overflow-hidden", className), children: [
10601
10615
  header && /* @__PURE__ */ jsx("div", { className: cn("tw-bg-white tw-px-4 tw-py-3", headerClassName), children: header }),
10602
- /* @__PURE__ */ jsx("div", { className: "tw-flex tw-h-0 tw-flex-1 tw-flex-col [&_>div]:tw-h-full [&_>div]:tw-overflow-auto", children: /* @__PURE__ */ jsx(
10616
+ /* @__PURE__ */ jsx("div", { className: "tw-flex tw-h-0 tw-flex-1 tw-flex-col [&_>div]:tw-h-full", children: /* @__PURE__ */ jsx(
10603
10617
  CodeMirror,
10604
10618
  {
10605
10619
  ref: editorRef,
10620
+ height: "100%",
10606
10621
  value,
10607
10622
  onChange,
10608
10623
  extensions,
@@ -10694,7 +10709,8 @@ var MergeEditor = ({
10694
10709
  middleHeaderClassName,
10695
10710
  middleClassName,
10696
10711
  rightHeader,
10697
- className
10712
+ className,
10713
+ argo
10698
10714
  }) => {
10699
10715
  const { registerScroller, registerFollower } = useScrollSync();
10700
10716
  return /* @__PURE__ */ jsxs(
@@ -10724,7 +10740,8 @@ var MergeEditor = ({
10724
10740
  side: "left",
10725
10741
  onAccept: acceptLeft,
10726
10742
  onDismiss: dismissLeft,
10727
- contentRef: registerFollower(0, "left-controls")
10743
+ contentRef: registerFollower(0, "left-controls"),
10744
+ argo
10728
10745
  }
10729
10746
  ),
10730
10747
  /* @__PURE__ */ jsx(
@@ -10747,7 +10764,8 @@ var MergeEditor = ({
10747
10764
  side: "right",
10748
10765
  onAccept: acceptRight,
10749
10766
  onDismiss: dismissRight,
10750
- contentRef: registerFollower(2, "right-controls")
10767
+ contentRef: registerFollower(2, "right-controls"),
10768
+ argo
10751
10769
  }
10752
10770
  ),
10753
10771
  /* @__PURE__ */ jsx(
@@ -10789,7 +10807,7 @@ var ConflictStatusIndicator = ({ remainingConflicts, remainingSafeChanges }) =>
10789
10807
  colorClass
10790
10808
  ),
10791
10809
  children: [
10792
- /* @__PURE__ */ jsx(Icon, { icon: allDone ? "circle-check" : "triangle-exclamation" }),
10810
+ allDone ? /* @__PURE__ */ jsx(CircleCheck, { className: "tw-size-4" }) : /* @__PURE__ */ jsx(AlertTriangle, { className: "tw-size-4" }),
10793
10811
  allDone ? "All changes resolved" : `${parts.join(", ")} remaining`
10794
10812
  ]
10795
10813
  }
@@ -11425,13 +11443,7 @@ var CollapsiblePanel = ({
11425
11443
  },
11426
11444
  children: [
11427
11445
  /* @__PURE__ */ jsx("div", { className: "tw-flex tw-flex-1 tw-items-center tw-gap-2 tw-py-px tw-text-sm tw-font-medium tw-text-neutral-800", children: header }),
11428
- !isDisabled && /* @__PURE__ */ jsx("div", { className: "tw-ml-auto tw-shrink-0", children: /* @__PURE__ */ jsx(
11429
- Icon,
11430
- {
11431
- icon: "chevron-down",
11432
- className: cn("tw-text-xs group-data-[state=open]:tw-rotate-180")
11433
- }
11434
- ) })
11446
+ !isDisabled && /* @__PURE__ */ jsx("div", { className: "tw-ml-auto tw-shrink-0", children: /* @__PURE__ */ jsx(ChevronDown$1, { className: cn("tw-size-5 group-data-[state=open]:tw-rotate-180") }) })
11435
11447
  ]
11436
11448
  }
11437
11449
  ),
@@ -11471,11 +11483,10 @@ var PanelWithDetails = ({
11471
11483
  onKeyUp: handleKeyUp,
11472
11484
  children: [
11473
11485
  /* @__PURE__ */ jsx("div", { className: "tw-mr-2 tw-flex tw-shrink-0 tw-items-center", children: /* @__PURE__ */ jsx(
11474
- Icon,
11486
+ ChevronDown$1,
11475
11487
  {
11476
- icon: "chevron-down",
11477
11488
  className: cn(
11478
- "tw-text-xs",
11489
+ "tw-size-5",
11479
11490
  !isOpen ? "-tw-rotate-90" : placement === "bottom" ? "tw-rotate-180" : ""
11480
11491
  )
11481
11492
  }
@@ -11518,7 +11529,14 @@ var ANIMATION_CLASS_NAME = cn(
11518
11529
  var Skeleton = ({ height = "md", className, count = 1 }) => {
11519
11530
  const prefixId = useId();
11520
11531
  const keys2 = Array.from({ length: count }, (_, i) => `${prefixId}-${i}`);
11521
- return /* @__PURE__ */ jsx(Fragment, { children: keys2.map((key) => /* @__PURE__ */ jsx("div", { className: cn(HEIGHT_CLASS_NAME[height], ANIMATION_CLASS_NAME, className) }, key)) });
11532
+ return /* @__PURE__ */ jsx(Fragment, { children: keys2.map((key) => /* @__PURE__ */ jsx(
11533
+ "div",
11534
+ {
11535
+ "data-skeleton": "true",
11536
+ className: cn(HEIGHT_CLASS_NAME[height], ANIMATION_CLASS_NAME, className)
11537
+ },
11538
+ key
11539
+ )) });
11522
11540
  };
11523
11541
  var duplicateArray = (arr, times) => {
11524
11542
  return Array(times).fill(arr).flat();
@@ -11650,7 +11668,7 @@ var TableRow = ({
11650
11668
  className,
11651
11669
  ...props
11652
11670
  }) => /* @__PURE__ */ jsx("tr", { ref, className: cn("hover:tw-bg-neutral-100", className), ...props });
11653
- var Table = ({
11671
+ var Table2 = ({
11654
11672
  borderCollapsed = true,
11655
11673
  bordered = false,
11656
11674
  containerClassName,
@@ -11679,12 +11697,12 @@ var Table = ({
11679
11697
  }
11680
11698
  );
11681
11699
  };
11682
- Table.Header = TableHeader;
11683
- Table.Head = TableHead;
11684
- Table.Body = TableBody;
11685
- Table.Row = TableRow;
11686
- Table.Cell = TableCell;
11687
- Table.Footer = TableFooter;
11700
+ Table2.Header = TableHeader;
11701
+ Table2.Head = TableHead;
11702
+ Table2.Body = TableBody;
11703
+ Table2.Row = TableRow;
11704
+ Table2.Cell = TableCell;
11705
+ Table2.Footer = TableFooter;
11688
11706
  var resizableHandleVariants = cva([
11689
11707
  // base styles
11690
11708
  "tw-bg-neutral-50",
@@ -11819,7 +11837,7 @@ var ToastDismiss = ({
11819
11837
  "tailwindcss-preflight",
11820
11838
  "[&_svg]:tw-aspect-square",
11821
11839
  "[&_svg]:tw-size-4",
11822
- "[&_svg]:tw-p-1",
11840
+ "[&_svg]:tw-m-1",
11823
11841
  "tw-text-white",
11824
11842
  "group-data-[variant=default]/toast:[&_svg]:tw-text-popover-foreground",
11825
11843
  className
@@ -11827,7 +11845,7 @@ var ToastDismiss = ({
11827
11845
  type: "button",
11828
11846
  ...rest,
11829
11847
  children: [
11830
- /* @__PURE__ */ jsx(Icon, { icon: "times" }),
11848
+ /* @__PURE__ */ jsx(X, {}),
11831
11849
  /* @__PURE__ */ jsx("span", { className: "tw-sr-only", children: "Dismiss" })
11832
11850
  ]
11833
11851
  }
@@ -11929,10 +11947,10 @@ var variants11 = cva(
11929
11947
  }
11930
11948
  );
11931
11949
  var DEFAULT_VARIANT_ICON = {
11932
- error: "exclamation-triangle",
11933
- info: "info-circle",
11934
- success: "check-circle",
11935
- warning: "exclamation-circle"
11950
+ error: /* @__PURE__ */ jsx(AlertTriangle, {}),
11951
+ info: /* @__PURE__ */ jsx(Info, {}),
11952
+ success: /* @__PURE__ */ jsx(CircleCheck, {}),
11953
+ warning: /* @__PURE__ */ jsx(AlertCircle, {})
11936
11954
  };
11937
11955
  var ToastRoot = ({
11938
11956
  id,
@@ -11945,8 +11963,8 @@ var ToastRoot = ({
11945
11963
  icon: iconProp
11946
11964
  }) => {
11947
11965
  const icon = (() => {
11948
- if (loading) return "spinner";
11949
- if (iconProp) return iconProp;
11966
+ if (loading) return /* @__PURE__ */ jsx(Loader2, { className: "tw-animate-spin" });
11967
+ if (iconProp) return renderLegacyIcon(iconProp);
11950
11968
  if (variant === "default" || variant === null) return null;
11951
11969
  return DEFAULT_VARIANT_ICON[variant];
11952
11970
  })();
@@ -11956,20 +11974,24 @@ var ToastRoot = ({
11956
11974
  };
11957
11975
  return /* @__PURE__ */ jsxs("div", { "data-variant": variant, className: cn(variants11({ variant })), children: [
11958
11976
  icon && /* @__PURE__ */ jsx(
11959
- Icon,
11977
+ "span",
11960
11978
  {
11961
11979
  "data-slot": "toast-icon",
11962
- spin: loading,
11963
11980
  className: cn(
11964
- // styles
11981
+ "tw-inline-flex",
11982
+ "tw-items-center",
11983
+ "tw-justify-center",
11984
+ // styles — container at 20px with no padding so the 20px Lucide
11985
+ // glyph fills the slot (previous tw-size-4 + tw-p-1 clipped a
11986
+ // 16px child into 8px of visible space)
11965
11987
  "tw-aspect-square",
11966
- "tw-size-4",
11988
+ "tw-size-5",
11967
11989
  "tw-shrink-0",
11968
- "tw-p-1",
11990
+ "[&_svg]:tw-size-5",
11969
11991
  "tw-text-white",
11970
11992
  "group-data-[variant=default]/toast:tw-text-popover-foreground"
11971
11993
  ),
11972
- icon
11994
+ children: icon
11973
11995
  }
11974
11996
  ),
11975
11997
  /* @__PURE__ */ jsx(ToastTitle, { children: title }),
@@ -12318,11 +12340,17 @@ var Footer = ({
12318
12340
  }
12319
12341
  );
12320
12342
  var PageLayout = Object.assign(Root27, {
12343
+ /** Detail-pattern breadcrumb row. Usually composed automatically by `PageHeader.Detail` — slot exists for layouts that don't fit either `PageHeader` variant. */
12321
12344
  Breadcrumbs,
12345
+ /** Host slot for `PageHeader.Index` / `PageHeader.Detail`, or custom header JSX when neither variant fits. */
12322
12346
  Header,
12347
+ /** Escape hatch for routing-based tab rows. Use `Tabs` / `TabsContent` core components inside, never a raw `<button>`. */
12323
12348
  Tabs: Tabs2,
12349
+ /** Search / filter pill row. Belongs here, NOT in the header per the page-header patterns. */
12324
12350
  Toolbar,
12351
+ /** Main content slot. Lists, cards, tables. */
12325
12352
  Content: Content11,
12353
+ /** Bottom action bar — form submit + cancel. Pass `sticky` for a footer that pins to the viewport. */
12326
12354
  Footer
12327
12355
  });
12328
12356
 
@@ -12400,9 +12428,80 @@ var PageHeaderIndex = ({
12400
12428
 
12401
12429
  // src/blocks/PageHeader/PageHeader.tsx
12402
12430
  var PageHeader = {
12431
+ /** Index variant — top-level list / collection pages. No breadcrumbs; `metadata` wins over `description`. */
12403
12432
  Index: PageHeaderIndex,
12433
+ /** Detail variant — single-entity pages with required breadcrumbs and an overflow-actions slot. Max 2 visible actions. */
12404
12434
  Detail: PageHeaderDetail
12405
12435
  };
12436
+ var Root28 = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx(
12437
+ "div",
12438
+ {
12439
+ ref,
12440
+ className: cn("tw-flex tw-flex-wrap tw-items-center tw-gap-3 tw-w-full", className),
12441
+ ...props,
12442
+ children
12443
+ }
12444
+ );
12445
+ var Search4 = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx(
12446
+ "div",
12447
+ {
12448
+ ref,
12449
+ className: cn(
12450
+ "tw-mr-auto tw-flex tw-items-center tw-gap-2 tw-w-full sm:tw-w-auto sm:tw-min-w-64 sm:tw-max-w-md",
12451
+ className
12452
+ ),
12453
+ ...props,
12454
+ children
12455
+ }
12456
+ );
12457
+ var Right = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx(
12458
+ "div",
12459
+ {
12460
+ ref,
12461
+ className: cn("tw-flex tw-flex-wrap tw-items-center tw-gap-2", className),
12462
+ ...props,
12463
+ children
12464
+ }
12465
+ );
12466
+ var ControlGroup = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx("div", { ref, className: cn("tw-flex tw-items-center tw-gap-2", className), ...props, children });
12467
+ var ActiveFilters = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx(
12468
+ "div",
12469
+ {
12470
+ ref,
12471
+ className: cn("tw-flex tw-flex-wrap tw-items-center tw-gap-2 tw-basis-full", className),
12472
+ ...props,
12473
+ children
12474
+ }
12475
+ );
12476
+ var AddFilter = ({ className, children, ...props }) => /* @__PURE__ */ jsxs(Button, { argo: true, variant: "invisible", size: "small", className: cn("tw-gap-1.5", className), ...props, children: [
12477
+ /* @__PURE__ */ jsx(Icon, { icon: "plus" }),
12478
+ children ?? "Add filter"
12479
+ ] });
12480
+ var Clear = ({ className, children, ...props }) => /* @__PURE__ */ jsx(Button, { argo: true, variant: "invisible", size: "small", className: cn("tw-ml-auto", className), ...props, children: children ?? "Clear all" });
12481
+ var PageToolbar = Object.assign(Root28, {
12482
+ /** Left slot — typically a `SearchInput`. */
12483
+ Search: Search4,
12484
+ /** Right cluster — host the four control groups below in the recommended order. */
12485
+ Right,
12486
+ /** Filter controls (`Combobox`, `Select`, `DatePicker`). */
12487
+ Filters: ControlGroup,
12488
+ /** Sort control. */
12489
+ Sort: ControlGroup,
12490
+ /** Utility actions (Export, Refresh, …). */
12491
+ Actions: ControlGroup,
12492
+ /** View toggle (List / Grid). Always render last in the right cluster. */
12493
+ View: ControlGroup,
12494
+ /**
12495
+ * Active filters row. Render only when one or more filters are active. Pass filter chips
12496
+ * (Standard variant) or tokens (Query Builder variant) as children, optionally followed
12497
+ * by `AddFilter` / `Clear`.
12498
+ */
12499
+ ActiveFilters,
12500
+ /** "+ Add filter" action — typically rendered after the chips/tokens in `ActiveFilters`. */
12501
+ AddFilter,
12502
+ /** "Clear all" action — self-aligns to the far right of `ActiveFilters`. */
12503
+ Clear
12504
+ });
12406
12505
  var SearchInput = ({
12407
12506
  ref,
12408
12507
  // group props
@@ -12482,7 +12581,7 @@ var SearchInput = ({
12482
12581
  focusVariant,
12483
12582
  className,
12484
12583
  children: [
12485
- /* @__PURE__ */ jsx(InputGroup.Addon, { align: "inline-start", children: /* @__PURE__ */ jsx(Icon, { icon: "magnifying-glass", className: "tw-text-muted-foreground" }) }),
12584
+ /* @__PURE__ */ jsx(InputGroup.Addon, { align: "inline-start", children: /* @__PURE__ */ jsx(Search, { className: "tw-size-4 tw-text-muted-foreground" }) }),
12486
12585
  /* @__PURE__ */ jsx(
12487
12586
  InputGroup.Input,
12488
12587
  {
@@ -12498,10 +12597,10 @@ var SearchInput = ({
12498
12597
  canClear && /* @__PURE__ */ jsx(InputGroup.Addon, { align: "inline-end", children: /* @__PURE__ */ jsx(
12499
12598
  InputGroup.Button,
12500
12599
  {
12501
- icon: "xmark",
12502
12600
  "aria-label": "Clear search",
12503
12601
  onMouseDown: (event) => event.preventDefault(),
12504
- onClick: handleClear
12602
+ onClick: handleClear,
12603
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
12505
12604
  }
12506
12605
  ) })
12507
12606
  ]
@@ -12538,7 +12637,7 @@ var SearchInputWithNavigation = ({
12538
12637
  placeholder,
12539
12638
  onValueChange,
12540
12639
  onClear,
12541
- prefix: /* @__PURE__ */ jsx(Icon$1, { className: "tw-text-neutral-400", icon: "magnifying-glass" }),
12640
+ prefix: /* @__PURE__ */ jsx(Search, { className: "tw-size-4 tw-text-neutral-400" }),
12542
12641
  focusVariant,
12543
12642
  onKeyDown: handleKeyDown2,
12544
12643
  variant,
@@ -12564,7 +12663,7 @@ var SearchInputWithNavigation = ({
12564
12663
  size: "icon-3xs",
12565
12664
  onClick: onNavigatePrevious,
12566
12665
  disabled: !totalResults,
12567
- icon: "angle-up"
12666
+ children: /* @__PURE__ */ jsx(ChevronUp, { className: "tw-size-4" })
12568
12667
  }
12569
12668
  ),
12570
12669
  /* @__PURE__ */ jsx(
@@ -12574,7 +12673,7 @@ var SearchInputWithNavigation = ({
12574
12673
  size: "icon-3xs",
12575
12674
  onClick: onNavigateNext,
12576
12675
  disabled: !totalResults,
12577
- icon: "angle-down"
12676
+ children: /* @__PURE__ */ jsx(ChevronDown$1, { className: "tw-size-4" })
12578
12677
  }
12579
12678
  )
12580
12679
  ] })
@@ -12591,7 +12690,7 @@ var TagItem = ({ tag, onRemove, disabled = false }) => {
12591
12690
  const isDisabled = disabled || !!tag.disabled;
12592
12691
  return /* @__PURE__ */ jsxs(Badge.Root, { variant: "tag", color: tag.color, children: [
12593
12692
  /* @__PURE__ */ jsx(Badge.Label, { children: tag.name }),
12594
- onRemove && !isDisabled && /* @__PURE__ */ jsx(Badge.Addon, { variant: "floating", align: "inline-end", children: /* @__PURE__ */ jsx(Badge.Button, { onClick: handleRemove, icon: "xmark", "aria-label": "Remove Tag" }) })
12693
+ onRemove && !isDisabled && /* @__PURE__ */ jsx(Badge.Addon, { variant: "floating", align: "inline-end", children: /* @__PURE__ */ jsx(Badge.Button, { onClick: handleRemove, "aria-label": "Remove Tag", children: /* @__PURE__ */ jsx(X, { className: "tw-size-3" }) }) })
12595
12694
  ] });
12596
12695
  };
12597
12696
  var TagSelectCreateItem = ({ onCreate, value }) => {
@@ -12610,7 +12709,7 @@ var TagSelectCreateItem = ({ onCreate, value }) => {
12610
12709
  className: cn("[&_svg]:tw-text-primary-500", {
12611
12710
  "tw-hidden": !isCreateItemVisible
12612
12711
  }),
12613
- icon: "plus",
12712
+ icon: /* @__PURE__ */ jsx(Plus$1, { className: "tw-size-4" }),
12614
12713
  children: [
12615
12714
  "Create",
12616
12715
  " ",
@@ -12692,7 +12791,7 @@ var TagSelectList = ({ options = defaultOptions, onAdd, onCreate }) => {
12692
12791
  Command.Input,
12693
12792
  {
12694
12793
  variant: "secondary",
12695
- prefix: /* @__PURE__ */ jsx(Icon, { icon: "search", className: "tw-size-4 tw-text-neutral-400" }),
12794
+ prefix: /* @__PURE__ */ jsx(Search, { className: "tw-size-4 tw-text-neutral-400" }),
12696
12795
  placeholder: "Search tags",
12697
12796
  allowClear: true
12698
12797
  }
@@ -12768,7 +12867,7 @@ var Tagger = ({
12768
12867
  return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs("ul", { className: "tailwindcss-preflight tw-flex tw-min-h-6 tw-flex-wrap tw-items-center tw-gap-2", children: [
12769
12868
  value.map((tag) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(TagItem, { disabled, tag, onRemove: handleRemove }) }, tag.name)),
12770
12869
  !disabled && /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(TagSelectPopover, { options: tagsToAdd, onAdd: handleAdd, onCreate: handleCreate, children: /* @__PURE__ */ jsx(Badge, { color: "gray-inverse", asChild: true, children: /* @__PURE__ */ jsxs("button", { type: "button", className: "tw-flex tw-items-center tw-gap-1", children: [
12771
- /* @__PURE__ */ jsx(Icon, { icon: "plus" }),
12870
+ /* @__PURE__ */ jsx(Plus, { className: "tw-size-4" }),
12772
12871
  /* @__PURE__ */ jsx(
12773
12872
  "span",
12774
12873
  {
@@ -12794,13 +12893,13 @@ var MultiActionButton = ({
12794
12893
  Button,
12795
12894
  {
12796
12895
  disabled,
12797
- icon,
12798
12896
  isLoading,
12799
12897
  "aria-label": label,
12800
12898
  onClick,
12801
12899
  variant: "invisible",
12802
12900
  size: "icon",
12803
- "data-testid": dataTestId
12901
+ "data-testid": dataTestId,
12902
+ children: !isLoading && icon
12804
12903
  }
12805
12904
  ) });
12806
12905
  var MultiActionButtonGroup = ({ children, className }) => /* @__PURE__ */ jsx(ButtonGroup, { className: cn("tw-text-nowrap", className), children });
@@ -12813,15 +12912,15 @@ var variantClasses = {
12813
12912
  };
12814
12913
  var renderVariantIcon = (variant) => {
12815
12914
  if (variant === "processing") {
12816
- return /* @__PURE__ */ jsx(Icon, { icon: "spinner", spin: true, className: "tw-size-4" });
12915
+ return /* @__PURE__ */ jsx(Loader2, { className: "tw-size-4 tw-animate-spin" });
12817
12916
  }
12818
12917
  if (variant === "error") {
12819
- return /* @__PURE__ */ jsx(Icon, { icon: "circle-xmark", className: "tw-size-4" });
12918
+ return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4" });
12820
12919
  }
12821
12920
  if (variant === "dismissed") {
12822
- return /* @__PURE__ */ jsx(Icon, { icon: "circle-xmark", className: "tw-size-4 tw-text-neutral-500" });
12921
+ return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4 tw-text-neutral-500" });
12823
12922
  }
12824
- return /* @__PURE__ */ jsx(Icon, { icon: "circle-check", className: "tw-size-4" });
12923
+ return /* @__PURE__ */ jsx(CircleCheck, { className: "tw-size-4" });
12825
12924
  };
12826
12925
  var CollapsibleStepHeader = ({
12827
12926
  isExpanded,
@@ -12845,10 +12944,9 @@ var CollapsibleStepHeader = ({
12845
12944
  /* @__PURE__ */ jsx("span", { children: label })
12846
12945
  ] }),
12847
12946
  /* @__PURE__ */ jsx(
12848
- Icon,
12947
+ ChevronDown$1,
12849
12948
  {
12850
- icon: "chevron-down",
12851
- className: cn("tw-size-3 tw-transition-transform", isExpanded && "tw-rotate-180")
12949
+ className: cn("tw-size-4 tw-transition-transform", isExpanded && "tw-rotate-180")
12852
12950
  }
12853
12951
  )
12854
12952
  ]
@@ -12858,19 +12956,19 @@ var CollapsibleStepHeader = ({
12858
12956
  var InlineStepDetail = ({ children }) => /* @__PURE__ */ jsx("div", { className: "tw-ml-2.5 tw-whitespace-pre-wrap tw-border-l tw-border-neutral-200 tw-pl-3 tw-text-xs tw-text-neutral-400", children });
12859
12957
  var renderVariantIcon2 = (variant) => {
12860
12958
  if (variant === "processing") {
12861
- return /* @__PURE__ */ jsx(Icon, { icon: "spinner", spin: true, className: "tw-size-3 tw-text-neutral-200" });
12959
+ return /* @__PURE__ */ jsx(Loader2, { className: "tw-size-4 tw-animate-spin tw-text-neutral-200" });
12862
12960
  }
12863
12961
  if (variant === "error") {
12864
- return /* @__PURE__ */ jsx(Icon, { icon: "circle-xmark", className: "tw-size-3 tw-text-error-500" });
12962
+ return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4 tw-text-error-500" });
12865
12963
  }
12866
12964
  if (variant === "dismissed") {
12867
- return /* @__PURE__ */ jsx(Icon, { icon: "circle-xmark", className: "tw-size-3 tw-text-neutral-200" });
12965
+ return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4 tw-text-neutral-200" });
12868
12966
  }
12869
- return /* @__PURE__ */ jsx(Icon, { icon: "circle-check", className: "tw-size-3 tw-text-neutral-200" });
12967
+ return /* @__PURE__ */ jsx(CircleCheck, { className: "tw-size-4 tw-text-neutral-200" });
12870
12968
  };
12871
- var InlineStepLabel = ({ variant, children }) => /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-gap-1", children: [
12969
+ var InlineStepLabel = ({ variant, children }) => /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-min-w-0 tw-items-center tw-gap-1", children: [
12872
12970
  /* @__PURE__ */ jsx("div", { className: "tw-flex tw-size-5 tw-shrink-0 tw-items-center tw-justify-center", children: renderVariantIcon2(variant) }),
12873
- /* @__PURE__ */ jsx("div", { className: "tw-flex tw-flex-wrap tw-items-center tw-gap-x-1.5 tw-gap-y-1 tw-text-sm tw-font-medium tw-italic tw-text-neutral-800", children })
12971
+ /* @__PURE__ */ jsx("div", { className: "tw-flex tw-min-w-0 tw-flex-wrap tw-items-center tw-gap-x-1.5 tw-gap-y-1 tw-text-sm tw-font-medium tw-italic tw-text-neutral-800", children })
12874
12972
  ] });
12875
12973
  var SECTION_LABELS = {
12876
12974
  success: "Answered questions",
@@ -12924,7 +13022,7 @@ var contentClasses = cva(
12924
13022
  {
12925
13023
  variants: {
12926
13024
  variant: {
12927
- assistant: ["tw-flex-1", "tw-w-full", "tw-min-w-0"],
13025
+ assistant: ["tw-flex-1", "tw-w-full", "tw-min-w-0", "[&>*]:tw-min-w-0"],
12928
13026
  user: [
12929
13027
  "tw-max-w-screen-sm",
12930
13028
  "tw-w-fit",
@@ -12985,10 +13083,9 @@ var ExpandToggle = ({
12985
13083
  children: [
12986
13084
  /* @__PURE__ */ jsx("span", { children: isExpanded ? showLessLabel : showMoreLabel }),
12987
13085
  /* @__PURE__ */ jsx(
12988
- Icon,
13086
+ ChevronDown$1,
12989
13087
  {
12990
- icon: "chevron-down",
12991
- className: cn("tw-size-3 tw-transition-transform", isExpanded && "tw-rotate-180")
13088
+ className: cn("tw-size-5 tw-transition-transform", isExpanded && "tw-rotate-180")
12992
13089
  }
12993
13090
  )
12994
13091
  ]
@@ -13094,11 +13191,11 @@ var PlanApproval = ({
13094
13191
  argo: true,
13095
13192
  variant: "outline",
13096
13193
  size: "icon-sm",
13097
- icon: ["far", "xmark"],
13098
13194
  "aria-label": closeLabel,
13099
13195
  onClick: onClose,
13100
13196
  disabled: isSubmitting,
13101
- "data-testid": "plan-close-button"
13197
+ "data-testid": "plan-close-button",
13198
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
13102
13199
  }
13103
13200
  )
13104
13201
  ] }),
@@ -13142,11 +13239,11 @@ var PlanApproval = ({
13142
13239
  type: "submit",
13143
13240
  variant: "invisible",
13144
13241
  size: "icon-sm",
13145
- icon: "paper-plane-top",
13146
13242
  "aria-label": changeRequestSubmitLabel,
13147
13243
  disabled: !canSubmitChangeRequest,
13148
13244
  className: "tw-absolute tw-right-2 tw-top-1/2 tw--translate-y-1/2 [&_svg]:tw-text-secondary-500 not-disabled:hover:[&_svg]:tw-text-secondary-600",
13149
- "data-testid": "plan-change-request-submit"
13245
+ "data-testid": "plan-change-request-submit",
13246
+ children: /* @__PURE__ */ jsx(Send, { className: "tw-size-4" })
13150
13247
  }
13151
13248
  )
13152
13249
  ] })
@@ -13222,7 +13319,7 @@ var PlanRewritingIndicator = ({
13222
13319
  role: "status",
13223
13320
  "data-testid": "plan-rewriting-indicator",
13224
13321
  children: [
13225
- /* @__PURE__ */ jsx(Icon, { icon: "spinner", spin: true, className: "tw-size-4 tw-text-secondary-500" }),
13322
+ /* @__PURE__ */ jsx(Loader2, { className: "tw-size-4 tw-animate-spin tw-text-secondary-500" }),
13226
13323
  /* @__PURE__ */ jsx("span", { className: "tw-text-sm tw-italic tw-text-secondary-500", children: label })
13227
13324
  ]
13228
13325
  }
@@ -13243,11 +13340,11 @@ var PromptInputSubmit = ({
13243
13340
  disabled,
13244
13341
  status = "ready"
13245
13342
  }) => {
13246
- const getIcon = () => {
13247
- if (status === "streaming") return "stop-circle";
13248
- if (status === "interrupted") return "play";
13249
- return "paper-plane-top";
13250
- };
13343
+ const icon = (() => {
13344
+ if (status === "streaming") return /* @__PURE__ */ jsx(CirclePause, { className: "tw-size-4" });
13345
+ if (status === "interrupted") return /* @__PURE__ */ jsx(Play, { className: "tw-size-4" });
13346
+ return /* @__PURE__ */ jsx(Send, { className: "tw-size-4" });
13347
+ })();
13251
13348
  const getTooltipText = () => {
13252
13349
  if (status === "streaming") return "Stop";
13253
13350
  if (status === "interrupted") return "Continue";
@@ -13263,8 +13360,8 @@ var PromptInputSubmit = ({
13263
13360
  size: "icon-sm",
13264
13361
  variant: "invisible",
13265
13362
  isLoading: status === "submitted",
13266
- icon: getIcon(),
13267
- className: "tw-ml-auto tw-flex tw-items-center tw-rounded-lg [&_svg]:tw-text-secondary-500 not-disabled:hover:[&_svg]:tw-text-secondary-600"
13363
+ className: "tw-ml-auto tw-flex tw-items-center tw-rounded-lg [&_svg]:tw-text-secondary-500 not-disabled:hover:[&_svg]:tw-text-secondary-600",
13364
+ children: status !== "submitted" && icon
13268
13365
  }
13269
13366
  ) }) }),
13270
13367
  getTooltipText() && /* @__PURE__ */ jsx(Tooltip.Content, { placement: "top", variant: "action", children: getTooltipText() })
@@ -13514,10 +13611,10 @@ var Question = ({
13514
13611
  argo: true,
13515
13612
  variant: "outline",
13516
13613
  size: "icon-sm",
13517
- icon: ["far", "xmark"],
13518
13614
  "aria-label": "Close",
13519
13615
  onClick: onClose,
13520
- "data-testid": "question-close-button"
13616
+ "data-testid": "question-close-button",
13617
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
13521
13618
  }
13522
13619
  )
13523
13620
  ] }),
@@ -13626,11 +13723,10 @@ var Question = ({
13626
13723
  onClick: onPrevious,
13627
13724
  "aria-label": "Previous step",
13628
13725
  children: /* @__PURE__ */ jsx(
13629
- Icon,
13726
+ ChevronLeft,
13630
13727
  {
13631
- icon: "chevron-left",
13632
13728
  className: cn(
13633
- "tw-size-4",
13729
+ "tw-size-5",
13634
13730
  isFirstStep ? "tw-text-primary/25" : "tw-text-primary"
13635
13731
  )
13636
13732
  }
@@ -13651,11 +13747,10 @@ var Question = ({
13651
13747
  onClick: onNext,
13652
13748
  "aria-label": "Next step",
13653
13749
  children: /* @__PURE__ */ jsx(
13654
- Icon,
13750
+ ChevronRight,
13655
13751
  {
13656
- icon: "chevron-right",
13657
13752
  className: cn(
13658
- "tw-size-4",
13753
+ "tw-size-5",
13659
13754
  currentStep === totalSteps ? "tw-text-primary/25" : "tw-text-primary"
13660
13755
  )
13661
13756
  }
@@ -13755,11 +13850,18 @@ var SuggestedPrompt = ({ label, disabled, onClick, icon, className }) => {
13755
13850
  onClick,
13756
13851
  children: [
13757
13852
  icon ?? /* @__PURE__ */ jsx(
13758
- Icon,
13853
+ FileText,
13759
13854
  {
13760
- className: "group-not-disabled:group-hover:[&_path]:tw-fill-secondary-600 tw-size-4 tw-shrink-0 tw-basis-4 [&_path]:tw-fill-aigradient-600",
13761
- fixedWidth: true,
13762
- icon: ["far", "file-lines"]
13855
+ className: cn(
13856
+ "tw-size-4 tw-shrink-0 tw-basis-4",
13857
+ // Lucide icons are stroke-based — paint the visible line with the
13858
+ // AI gradient (no fill, so the glyph keeps its outline silhouette
13859
+ // instead of becoming a solid block). The `*` selector catches
13860
+ // every shape element (path, circle, polyline, …) so multi-part
13861
+ // icons don't lose sub-shapes the way `path`-only selectors do.
13862
+ "[&_*]:tw-stroke-aigradient-600",
13863
+ "group-not-disabled:group-hover:[&_*]:tw-stroke-secondary-600"
13864
+ )
13763
13865
  }
13764
13866
  ),
13765
13867
  /* @__PURE__ */ jsx("div", { className: "tw-whitespace-normal tw-text-left", children: label })
@@ -13769,7 +13871,7 @@ var SuggestedPrompt = ({ label, disabled, onClick, icon, className }) => {
13769
13871
  };
13770
13872
  var ThinkingIndicator = ({ label = "Thinking..." }) => {
13771
13873
  return /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-gap-2", "data-testid": "chat-thinking-indicator", children: [
13772
- /* @__PURE__ */ jsx(Icon, { icon: "spinner", spin: true, className: "tw-size-4 tw-text-secondary-500" }),
13874
+ /* @__PURE__ */ jsx(Loader2, { className: "tw-size-4 tw-animate-spin tw-text-secondary-500" }),
13773
13875
  /* @__PURE__ */ jsx("span", { className: "tw-text-sm tw-italic tw-text-secondary-500", children: label })
13774
13876
  ] });
13775
13877
  };
@@ -13839,15 +13941,15 @@ var AutoSaveTextarea = ({
13839
13941
  " / ",
13840
13942
  maxLength
13841
13943
  ] }),
13842
- /* @__PURE__ */ jsxs("span", { className: "tw-text-neutral-400", children: [
13944
+ /* @__PURE__ */ jsxs("span", { className: "tw-flex tw-items-center tw-gap-1 tw-text-neutral-400", children: [
13843
13945
  isOverLimit && "Character limit exceeded",
13844
13946
  !isOverLimit && isChanged && !isSaving && "Unsaved",
13845
13947
  !isOverLimit && isChanged && isSaving && /* @__PURE__ */ jsxs(Fragment, { children: [
13846
- /* @__PURE__ */ jsx(Icon, { spin: true, icon: "spinner", className: "tw-mr-1" }),
13948
+ /* @__PURE__ */ jsx(Loader2, { className: "tw-size-4 tw-animate-spin" }),
13847
13949
  " Saving"
13848
13950
  ] }),
13849
13951
  !isOverLimit && value !== null && !isChanged && !isSaving && /* @__PURE__ */ jsxs(Fragment, { children: [
13850
- /* @__PURE__ */ jsx(Icon, { icon: "check-circle", className: "tw-text-primary-500" }),
13952
+ /* @__PURE__ */ jsx(CircleCheck, { className: "tw-size-4 tw-text-primary-500" }),
13851
13953
  " Saved"
13852
13954
  ] })
13853
13955
  ] })
@@ -13956,30 +14058,23 @@ var PasswordInput = ({
13956
14058
  }
13957
14059
  ),
13958
14060
  (capsLock || canClear || allowPasswordToggle) && /* @__PURE__ */ jsxs(InputGroup.Addon, { align: "inline-end", children: [
13959
- capsLock && /* @__PURE__ */ jsx(
13960
- Icon,
13961
- {
13962
- icon: "up-from-line",
13963
- title: "Caps Lock is on",
13964
- className: "tw-size-4 tw-text-primary"
13965
- }
13966
- ),
14061
+ capsLock && /* @__PURE__ */ jsx(ArrowBigUpDash, { className: "tw-size-4 tw-text-primary", children: /* @__PURE__ */ jsx("title", { children: "Caps Lock is on" }) }),
13967
14062
  canClear && /* @__PURE__ */ jsx(
13968
14063
  InputGroup.Button,
13969
14064
  {
13970
- icon: "xmark",
13971
14065
  "aria-label": "Clear password",
13972
14066
  onMouseDown: (event) => event.preventDefault(),
13973
- onClick: handleClear
14067
+ onClick: handleClear,
14068
+ children: /* @__PURE__ */ jsx(X, { className: "tw-size-4" })
13974
14069
  }
13975
14070
  ),
13976
14071
  allowPasswordToggle && /* @__PURE__ */ jsx(
13977
14072
  InputGroup.Button,
13978
14073
  {
13979
- icon: isPasswordVisible ? "eye-slash" : "eye",
13980
14074
  "aria-label": isPasswordVisible ? "Hide password" : "Show password",
13981
14075
  onMouseDown: (event) => event.preventDefault(),
13982
- onClick: handleTogglePasswordVisibility
14076
+ onClick: handleTogglePasswordVisibility,
14077
+ children: isPasswordVisible ? /* @__PURE__ */ jsx(EyeOff, { className: "tw-size-4" }) : /* @__PURE__ */ jsx(Eye, { className: "tw-size-4" })
13983
14078
  }
13984
14079
  )
13985
14080
  ] })
@@ -14349,10 +14444,10 @@ var ZoomableSvg = ({ html, copyText, className }) => {
14349
14444
  {
14350
14445
  size: "icon-sm",
14351
14446
  variant: "outline",
14352
- icon: isFullscreen ? "down-left-and-up-right-to-center" : "up-right-and-down-left-from-center",
14353
14447
  "aria-label": isFullscreen ? "Exit fullscreen" : "Fullscreen",
14354
14448
  onClick: () => setIsFullscreen((f) => !f),
14355
- argo: true
14449
+ argo: true,
14450
+ children: isFullscreen ? /* @__PURE__ */ jsx(Minimize2, { className: "tw-size-4" }) : /* @__PURE__ */ jsx(Maximize2, { className: "tw-size-4" })
14356
14451
  }
14357
14452
  )
14358
14453
  }
@@ -14453,6 +14548,6 @@ function useAutosizeInput({
14453
14548
  return { inputRef, inputStyle, sizerElement };
14454
14549
  }
14455
14550
 
14456
- export { Alert, AnswerSummary, AutoSaveTextarea, Avatar, Badge, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, Checkbox, Clipboard, ClipboardButton, ClipboardInline, CodeEditor, Collapse, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, DateInput, DatePicker, DateRangeInput, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, HelpBlock, HoverCard, Icon, InlineStepDetail, InlineStepLabel, InputGroup, Kbd, Label, Link, MarkedText, MergeEditor, MessageBubble, Modal, MultiActionButtonGroup, MultiCombobox, Navbar, NumberInput, PageHeader, PageLayout, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, Select, Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, SplitButton, SqlEditor, SuggestedPrompt, Switch, Table, Tabs, TabsContent, Tagger, TextInput, Textarea, ThemeProvider, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, Tooltip, TooltipProvider, Truncated, ZoomableSvg, argoVariants, cn, computeDiffRows, computeLineInformation, copyToClipboard, isIconName, isMac, kbdVariants, keys, mergeRefs, setServerFieldErrors, toast, useAppForm, useAutosizeInput, useMergeDiff, useNotification, useScrollbarPosition, useSidebar, withForm };
14551
+ export { Alert, AnswerSummary, AutoSaveTextarea, Avatar, Badge, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar2 as Calendar, Card, Checkbox, Clipboard, ClipboardButton, ClipboardInline, CodeEditor, Collapse, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, DateInput, DatePicker, DateRangeInput, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, HelpBlock, HoverCard, Icon, InlineStepDetail, InlineStepLabel, InputGroup, Kbd, Label, Link2 as Link, MarkedText, MergeEditor, MessageBubble, Modal, MultiActionButtonGroup, MultiCombobox, Navbar, NumberInput, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Search2 as Search, SearchForm, SearchInput, SearchInputWithNavigation, Select, Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, SplitButton, SqlEditor, SuggestedPrompt, Switch, Table2 as Table, Tabs, TabsContent, Tagger, TextInput, Textarea, ThemeProvider, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, Tooltip, TooltipProvider, Truncated, ZoomableSvg, argoVariants, cn, computeDiffRows, computeLineInformation, copyToClipboard, isIconName, isMac, kbdVariants, keys, mergeRefs, setServerFieldErrors, toast, useAppForm, useAutosizeInput, useMergeDiff, useNotification, useScrollbarPosition, useSidebar, withForm };
14457
14552
  //# sourceMappingURL=index.js.map
14458
14553
  //# sourceMappingURL=index.js.map