@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.
- package/README.md +25 -0
- package/dist/icons.cjs +731 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.js +29 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +429 -333
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +426 -331
- package/dist/index.js.map +1 -1
- package/dist/markdown-editor.cjs +270 -135
- package/dist/markdown-editor.cjs.map +1 -1
- package/dist/markdown-editor.js +270 -135
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.cjs +24 -15
- package/dist/mermaid.cjs.map +1 -1
- package/dist/mermaid.js +24 -15
- package/dist/mermaid.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +12 -5
- package/src/blocks/AIKit/CollapsibleStepHeader.tsx +7 -8
- package/src/blocks/AIKit/InlineStepLabel.tsx +7 -7
- package/src/blocks/AIKit/MessageBubble.stories.tsx +11 -3
- package/src/blocks/AIKit/MessageBubble.tsx +1 -1
- package/src/blocks/AIKit/PlanApproval.tsx +9 -8
- package/src/blocks/AIKit/PlanRewritingIndicator.tsx +2 -2
- package/src/blocks/AIKit/PromptInput.stories.tsx +10 -2
- package/src/blocks/AIKit/PromptInputSubmit.tsx +12 -8
- package/src/blocks/AIKit/Question.tsx +8 -9
- package/src/blocks/AIKit/SuggestedPrompt.tsx +12 -5
- package/src/blocks/AIKit/ThinkingIndicator.tsx +2 -2
- package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.tsx +4 -4
- package/src/blocks/ClipboardButton/ClipboardButton.tsx +7 -5
- package/src/blocks/ClipboardButton/ClipboardInline.tsx +2 -3
- package/src/blocks/ColorInput/ColorInput.tsx +4 -2
- package/src/blocks/ColorInput/ColorPicker.tsx +5 -2
- package/src/blocks/EmptyState/EmptyState.tsx +16 -0
- package/src/blocks/ErrorState/ErrorState.tsx +15 -0
- package/src/blocks/Form/formHook.ts +15 -0
- package/src/blocks/MultiActionButtonGroup/MultiActionButton.stories.tsx +12 -11
- package/src/blocks/MultiActionButtonGroup/MultiActionButton.tsx +4 -4
- package/src/blocks/MultiCombobox/MultiCombobox.tsx +28 -12
- package/src/blocks/PageHeader/AGENTS.md +63 -3
- package/src/blocks/PageHeader/PageHeader.stories.tsx +124 -28
- package/src/blocks/PageHeader/PageHeader.tsx +15 -0
- package/src/blocks/PageHeader/PageHeaderDetail.tsx +23 -1
- package/src/blocks/PageHeader/PageHeaderIndex.tsx +20 -1
- package/src/blocks/PageLayout/PageLayout.tsx +26 -0
- package/src/blocks/PageToolbar/PageToolbar.stories.tsx +348 -0
- package/src/blocks/PageToolbar/PageToolbar.tsx +119 -0
- package/src/blocks/PageToolbar/index.ts +1 -0
- package/src/blocks/PasswordInput/PasswordInput.tsx +10 -10
- package/src/blocks/SearchInput/SearchInput.tsx +30 -4
- package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx +9 -6
- package/src/blocks/SplitButton/SplitButton.stories.tsx +7 -4
- package/src/blocks/SplitButton/SplitButton.tsx +17 -4
- package/src/blocks/Tagger/TagItem.tsx +4 -1
- package/src/blocks/Tagger/TagSelectPopover/TagSelectCreateItem.tsx +3 -1
- package/src/blocks/Tagger/TagSelectPopover/TagSelectList.tsx +2 -2
- package/src/blocks/Tagger/Tagger.tsx +2 -2
- package/src/components/Alert/Alert.stories.tsx +11 -3
- package/src/components/Alert/Alert.tsx +19 -1
- package/src/components/Alert/AlertCollapsibleIcon.tsx +3 -4
- package/src/components/Alert/AlertIcon.tsx +18 -21
- package/src/components/Badge/Badge.stories.tsx +22 -4
- package/src/components/Badge/Badge.tsx +16 -0
- package/src/components/Badge/BadgeButton.tsx +7 -6
- package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +2 -2
- package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +2 -2
- package/src/components/Button/Button.stories.tsx +14 -2
- package/src/components/Button/Button.tsx +42 -5
- package/src/components/Button/styles.ts +4 -6
- package/src/components/ButtonGroup/ButtonGroup.stories.tsx +32 -10
- package/src/components/Card/Card.tsx +17 -0
- package/src/components/Checkbox/Checkbox.tsx +3 -6
- package/src/components/CodeEditor/highlighting.ts +1 -1
- package/src/components/CollapsiblePanel.tsx +2 -5
- package/src/components/Combobox/Combobox.tsx +12 -14
- package/src/components/Combobox/ComboboxChips.tsx +6 -1
- package/src/components/Combobox/ComboboxItem.tsx +3 -4
- package/src/components/Combobox/ComboboxItemIndicator.tsx +6 -4
- package/src/components/Combobox/types.ts +2 -6
- package/src/components/Command/Command.stories.tsx +47 -56
- package/src/components/Command/CommandItem/CheckIndicator.tsx +26 -14
- package/src/components/Command/CommandItem/CommandItem.tsx +6 -3
- package/src/components/DropdownMenu/DropdownMenu.stories.tsx +8 -4
- package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +4 -1
- package/src/components/DropdownMenu/DropdownMenuItem.tsx +12 -6
- package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +12 -6
- package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx +8 -5
- package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubTrigger.tsx +2 -2
- package/src/components/DropdownMenu/ItemIcon.tsx +16 -8
- package/src/components/FormGroup/FormGroup.tsx +15 -0
- package/src/components/FullScreenModal/FullScreenModalHeader.tsx +4 -1
- package/src/components/Input/DateInput/DateInput.tsx +4 -1
- package/src/components/Input/DateRangeInput/DateRangeInput.tsx +4 -6
- package/src/components/Input/Input.tsx +18 -2
- package/src/components/Input/TextInput/TextInput.tsx +16 -0
- package/src/components/Input/TimeInput/TimeInput.tsx +4 -1
- package/src/components/InputGroup/InputGroup.stories.tsx +11 -3
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +63 -1
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +105 -15
- package/src/components/MarkdownEditor/nodes/ImageNode.tsx +10 -10
- package/src/components/MarkdownEditor/nodes/MermaidNode.tsx +8 -8
- package/src/components/MarkdownEditor/plugins/KeyboardPlugin.tsx +47 -3
- package/src/components/MarkdownEditor/plugins/MarkdownSyncPlugin.tsx +12 -3
- package/src/components/MarkdownEditor/plugins/ToolbarPlugin.tsx +20 -10
- package/src/components/MarkdownEditor/plugins/toolbar/AlignmentDropdown.tsx +20 -14
- package/src/components/MarkdownEditor/plugins/toolbar/BlockTypeDropdown.tsx +25 -16
- package/src/components/MarkdownEditor/plugins/toolbar/LinkPanel.tsx +3 -3
- package/src/components/MarkdownEditor/transformers.ts +10 -0
- package/src/components/MergeEditor/AcceptControls/AcceptButton.tsx +9 -4
- package/src/components/MergeEditor/AcceptControls/AcceptControls.tsx +25 -14
- package/src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx +2 -2
- package/src/components/MergeEditor/MergeEditor.stories.tsx +15 -0
- package/src/components/MergeEditor/MergeEditor.tsx +9 -0
- package/src/components/MergeEditor/MergePane.tsx +22 -4
- package/src/components/MergeEditor/decorations.ts +2 -2
- package/src/components/Modal/Modal.stories.tsx +6 -4
- package/src/components/Modal/Modal.tsx +26 -0
- package/src/components/Modal/ModalBody.tsx +5 -0
- package/src/components/Modal/ModalCloseIcon.tsx +2 -3
- package/src/components/Modal/ModalContent.tsx +8 -0
- package/src/components/Modal/ModalFooter.tsx +5 -0
- package/src/components/Modal/ModalHeader.tsx +11 -0
- package/src/components/Modal/ModalIcon.tsx +45 -19
- package/src/components/Navbar/Navbar.stories.tsx +26 -13
- package/src/components/Navbar/NavbarMenuButton.tsx +11 -10
- package/src/components/Pagination/PaginationEllipsis.tsx +2 -2
- package/src/components/Pagination/PaginationNext.tsx +2 -1
- package/src/components/Pagination/PaginationPrevious.tsx +4 -1
- package/src/components/PanelWithDetails.tsx +3 -4
- package/src/components/Popconfirm/Popconfirm.stories.tsx +13 -5
- package/src/components/RadioGroup/Radio.tsx +6 -12
- package/src/components/Search/ClearButton.tsx +2 -2
- package/src/components/Search/Search.tsx +3 -3
- package/src/components/Select/Select.tsx +16 -5
- package/src/components/Select/SelectContent.tsx +13 -4
- package/src/components/Select/SelectItem.tsx +6 -5
- package/src/components/Select/SelectTrigger.tsx +2 -2
- package/src/components/Sidebar/Sidebar.stories.tsx +55 -19
- package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +8 -4
- package/src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx +4 -2
- package/src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx +3 -2
- package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +12 -12
- package/src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx +3 -7
- package/src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx +3 -5
- package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
- package/src/components/Skeleton/Skeleton.tsx +24 -1
- package/src/components/Table/Table.stories.tsx +223 -1
- package/src/components/Table/Table.tsx +17 -0
- package/src/components/Tabs.tsx +25 -2
- package/src/components/Toast/ToastDismiss.tsx +3 -3
- package/src/components/Toast/ToastRoot.tsx +24 -19
- package/src/components/Toggle/Toggle.tsx +11 -6
- package/src/components/Tooltip/Tooltip.tsx +23 -0
- package/src/components/ZoomableSvg/ZoomableSvg.tsx +8 -6
- package/src/icons/Keboola.tsx +28 -0
- package/src/icons/icons.stories.tsx +174 -0
- package/src/icons/index.ts +180 -0
- package/src/index.ts +1 -0
- package/src/patterns/AlertWithAction.stories.tsx +30 -0
- package/src/patterns/CardWithEmptyState.stories.tsx +66 -0
- package/src/patterns/ConfirmDialog.stories.tsx +72 -0
- package/src/patterns/CreatableMultiCombobox.stories.tsx +33 -0
- package/src/patterns/DataCardWithSkeleton.stories.tsx +48 -0
- package/src/patterns/DisabledButtonTooltip.stories.tsx +30 -0
- package/src/patterns/FilterToolbar.stories.tsx +71 -0
- package/src/patterns/InfoTooltip.stories.tsx +56 -0
- package/src/patterns/ListDetail.stories.tsx +65 -0
- package/src/patterns/ModalForm.stories.tsx +59 -0
- package/src/patterns/PageHeaderTabs.stories.tsx +48 -0
- package/src/styles.css +16 -8
- 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,
|
|
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-
|
|
548
|
-
"tw-text-
|
|
549
|
-
"hover:tw-bg-
|
|
550
|
-
"
|
|
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":
|
|
648
|
+
"data-icon-only": String(size).startsWith("icon"),
|
|
650
649
|
type,
|
|
651
650
|
onClick: handleClick,
|
|
652
651
|
className: cn(classNames),
|
|
653
652
|
children: [
|
|
654
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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",
|
|
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",
|
|
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(
|
|
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
|
|
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(
|
|
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
|
-
|
|
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-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
3650
|
-
if (variant === "switch") return
|
|
3651
|
-
if (variant === "radio") return
|
|
3652
|
-
return
|
|
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(
|
|
3646
|
+
children: /* @__PURE__ */ jsx(IconComp, {})
|
|
3666
3647
|
}
|
|
3667
3648
|
);
|
|
3668
3649
|
};
|
|
3669
|
-
var ItemIcon = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
3670
|
-
|
|
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
|
-
|
|
3676
|
-
|
|
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, {
|
|
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
|
|
3816
|
+
icon,
|
|
3830
3817
|
iconClassName,
|
|
3831
3818
|
isLoading = false,
|
|
3832
3819
|
...props
|
|
3833
3820
|
}) => {
|
|
3834
3821
|
const Comp = asChild ? Root$1 : "div";
|
|
3835
|
-
const
|
|
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
|
-
|
|
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, {
|
|
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, {
|
|
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(
|
|
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
|
-
|
|
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 = (
|
|
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
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
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, {
|
|
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__ */
|
|
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
|
-
|
|
4680
|
-
"
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
5416
|
+
children,
|
|
5426
5417
|
...rest
|
|
5427
5418
|
}) => /* @__PURE__ */ jsx(
|
|
5428
|
-
|
|
5419
|
+
"span",
|
|
5429
5420
|
{
|
|
5430
5421
|
...rest,
|
|
5431
5422
|
ref,
|
|
5432
|
-
icon,
|
|
5433
5423
|
className: cn(
|
|
5434
|
-
"tw-
|
|
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
|
-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
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(
|
|
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
|
|
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, {
|
|
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
|
-
|
|
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(
|
|
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
|
|
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,
|
|
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:
|
|
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:
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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(
|
|
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__ */
|
|
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:
|
|
7817
|
+
children: [
|
|
7818
|
+
/* @__PURE__ */ jsx(ChevronRight, { className: "tw-size-5" }),
|
|
7819
|
+
children ?? "Next"
|
|
7820
|
+
]
|
|
7824
7821
|
}
|
|
7825
7822
|
);
|
|
7826
|
-
var PaginationPrevious = ({ children, ...props }) => /* @__PURE__ */
|
|
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
|
-
|
|
8036
|
-
|
|
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(
|
|
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,
|
|
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
|
|
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
|
-
|
|
9426
|
+
ChevronDown$1,
|
|
9433
9427
|
{
|
|
9434
|
-
icon: "chevron-down",
|
|
9435
9428
|
className: cn(
|
|
9436
9429
|
"tw-mt-px",
|
|
9437
|
-
"tw-size-
|
|
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
|
|
9471
|
-
info:
|
|
9472
|
-
warning:
|
|
9473
|
-
error:
|
|
9474
|
-
success:
|
|
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
|
-
|
|
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-
|
|
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 =
|
|
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__ */
|
|
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(
|
|
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 = ({
|
|
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-
|
|
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
|
|
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(
|
|
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
|
-
|
|
11486
|
+
ChevronDown$1,
|
|
11475
11487
|
{
|
|
11476
|
-
icon: "chevron-down",
|
|
11477
11488
|
className: cn(
|
|
11478
|
-
"tw-
|
|
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(
|
|
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
|
|
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
|
-
|
|
11683
|
-
|
|
11684
|
-
|
|
11685
|
-
|
|
11686
|
-
|
|
11687
|
-
|
|
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-
|
|
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(
|
|
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:
|
|
11933
|
-
info:
|
|
11934
|
-
success:
|
|
11935
|
-
warning:
|
|
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 "
|
|
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
|
-
|
|
11977
|
+
"span",
|
|
11960
11978
|
{
|
|
11961
11979
|
"data-slot": "toast-icon",
|
|
11962
|
-
spin: loading,
|
|
11963
11980
|
className: cn(
|
|
11964
|
-
|
|
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-
|
|
11988
|
+
"tw-size-5",
|
|
11967
11989
|
"tw-shrink-0",
|
|
11968
|
-
"tw-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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: "
|
|
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(
|
|
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(
|
|
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(
|
|
12915
|
+
return /* @__PURE__ */ jsx(Loader2, { className: "tw-size-4 tw-animate-spin" });
|
|
12817
12916
|
}
|
|
12818
12917
|
if (variant === "error") {
|
|
12819
|
-
return /* @__PURE__ */ jsx(
|
|
12918
|
+
return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4" });
|
|
12820
12919
|
}
|
|
12821
12920
|
if (variant === "dismissed") {
|
|
12822
|
-
return /* @__PURE__ */ jsx(
|
|
12921
|
+
return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4 tw-text-neutral-500" });
|
|
12823
12922
|
}
|
|
12824
|
-
return /* @__PURE__ */ jsx(
|
|
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
|
-
|
|
12947
|
+
ChevronDown$1,
|
|
12849
12948
|
{
|
|
12850
|
-
|
|
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(
|
|
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(
|
|
12962
|
+
return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4 tw-text-error-500" });
|
|
12865
12963
|
}
|
|
12866
12964
|
if (variant === "dismissed") {
|
|
12867
|
-
return /* @__PURE__ */ jsx(
|
|
12965
|
+
return /* @__PURE__ */ jsx(XCircle, { className: "tw-size-4 tw-text-neutral-200" });
|
|
12868
12966
|
}
|
|
12869
|
-
return /* @__PURE__ */ jsx(
|
|
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
|
-
|
|
13086
|
+
ChevronDown$1,
|
|
12989
13087
|
{
|
|
12990
|
-
|
|
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(
|
|
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
|
|
13247
|
-
if (status === "streaming") return "
|
|
13248
|
-
if (status === "interrupted") return "
|
|
13249
|
-
return "
|
|
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
|
-
|
|
13267
|
-
|
|
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
|
-
|
|
13726
|
+
ChevronLeft,
|
|
13630
13727
|
{
|
|
13631
|
-
icon: "chevron-left",
|
|
13632
13728
|
className: cn(
|
|
13633
|
-
"tw-size-
|
|
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
|
-
|
|
13750
|
+
ChevronRight,
|
|
13655
13751
|
{
|
|
13656
|
-
icon: "chevron-right",
|
|
13657
13752
|
className: cn(
|
|
13658
|
-
"tw-size-
|
|
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
|
-
|
|
13853
|
+
FileText,
|
|
13759
13854
|
{
|
|
13760
|
-
className:
|
|
13761
|
-
|
|
13762
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|