@assure-one/design-system 1.41.2 → 1.43.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/dist/brand-scope-BOKu4iOc.d.ts +262 -0
- package/dist/{chunk-UAPQ7VTS.js → chunk-LUWPEBXZ.js} +283 -178
- package/dist/chunk-LUWPEBXZ.js.map +1 -0
- package/dist/{chunk-AF3QYJ24.js → chunk-TBDTXAFH.js} +6 -4
- package/dist/chunk-TBDTXAFH.js.map +1 -0
- package/dist/{chunk-JKNHNNNY.js → chunk-TYXT5C2B.js} +95 -11
- package/dist/chunk-TYXT5C2B.js.map +1 -0
- package/dist/{chunk-XN7OBLQR.js → chunk-XJKCKBHI.js} +20 -16
- package/dist/chunk-XJKCKBHI.js.map +1 -0
- package/dist/css/components.css +1 -1
- package/dist/css/tokens.css +4 -4
- package/dist/{data-table-view-ep8al7P9.d.ts → data-table-view-BWhKeUiw.d.ts} +186 -2
- package/dist/{design-system-provider-CfD2g2lY.d.ts → design-system-provider-Coe2S3Lh.d.ts} +1 -1
- package/dist/icons/index.d.ts +5 -1
- package/dist/icons/index.js +1 -1
- package/dist/index.d.ts +290 -455
- package/dist/index.js +636 -250
- package/dist/index.js.map +1 -1
- package/dist/legacy/index.d.ts +11 -4
- package/dist/legacy/index.js +3 -3
- package/dist/next/index.d.ts +2 -2
- package/dist/styles.css +1 -1
- package/dist/suite/index.d.ts +14 -3
- package/dist/suite/index.js +3 -3
- package/dist/{types-Coqw8iaS.d.ts → types-DlqmlVyZ.d.ts} +11 -1
- package/docs/components.md +11 -8
- package/docs/components.registry.json +89 -22
- package/package.json +1 -1
- package/dist/brand-scope-BOHId6BY.d.ts +0 -58
- package/dist/chunk-AF3QYJ24.js.map +0 -1
- package/dist/chunk-JKNHNNNY.js.map +0 -1
- package/dist/chunk-UAPQ7VTS.js.map +0 -1
- package/dist/chunk-XN7OBLQR.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useFormReset, badgeVariants, DataTableBody, DataTableRow, DataTableCell, Badge, Pagination, TableBody, TableRow, TableCell, Table, TableHeader, TableHead
|
|
3
|
-
export { Badge, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DataTableView, EmptyValue, PROGRESS_LEGACY_TO_INTENT, Pagination, ProgressBar, ProgressRing, SERVICE_TONES, STATUS_DOT_TONE_TO_INTENT, SegmentedProgress, StatusDot, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, ToggleGroup, ToggleGroupItem, badgeVariants, compareSortValues, nextSortDirection, progressBarVariants, progressRingVariants, resolveBadgeAppearance, serviceToneLabel, serviceToneStyle, statusDotVariants, useDataTable } from './chunk-
|
|
4
|
-
import { Collapsible, CollapsibleTrigger, CollapsibleContent, PlainLink, Combobox, CmdkCompatContext, Sheet, SheetContent, SheetTitle } from './chunk-
|
|
5
|
-
export { BrandScope, BrandScopeProvider, Chip, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, DEFAULT_COMBOBOX_MESSAGES, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarBrand, SidebarBrandText, SidebarDrawer, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, assetPath, brandScope, chipVariants, getAssetBasePath, resolveChipStyle, setAssetBasePath, sidebarLinkBadgeVariants, useBrandScope, useSidebarPeekLock, useSidebarState } from './chunk-
|
|
6
|
-
import { withPortalContainer, Backdrop, alertDialogAnatomy, OverlaySurface, OverlayTitle, OverlayDescription, Button, slot, useDsMessages, useLinkComponent, surfaceAnatomy, stateAttributes, cardAnatomy, ModalPortal, kbdAnatomy, FieldContext, fieldAnatomy, useFieldContext, MENU_SUB_TRIGGER_CHEVRON, menuSubTriggerClasses, MENU_INSET, contextMenuAnatomy, presence, menuItemClasses, MENU_ITEM_DANGER, MENU_INDICATOR_WELL, MENU_CHECK_GLYPH, menuIndicatorItemClasses, MENU_RADIO_GLYPH, menuLabelClasses, menuSeparatorClasses, useFieldControl, useMergedRefs, joinIds, Popover, PopoverTrigger, PopoverContent, FormBridge, dialogAnatomy, DismissButton, DEFAULT_OVERLAY_MESSAGES, DISMISS_GLYPH_CLASSES, OverlayBody, headingAnatomy, deprecate, floatingSurfaceClasses, FLOATING_PADDING, FLOATING_WIDTH, labelAnatomy, warnLegacyButtonProps, resolveButtonIcons, buttonVariants, INERT_CLASSES, DISABLED_LOOK_CLASSES, inertHandlers, INERT_ATTRIBUTES, linkButtonAnatomy, useControllableState, controlChrome, mergeRefs, numberInputAnatomy, EN_MESSAGES, phoneFieldAnatomy, Input, useFieldsetContext, radioGroupAnatomy, microInteractions, CONTROL_LABEL_TEXT, searchInputAnatomy, IconButton, codeAnatomy, Slot, textAnatomy, stackAnatomy, inlineAnatomy, statusBadgeAnatomy,
|
|
7
|
-
export { Avatar, Button, Checkbox, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileChip, FileUpload, IconButton, Input, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, Pressable, SPINNER_TONE_TO_INTENT, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Spinner, Textarea, ThemeScope, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, buttonVariants, iconButtonVariants, inputVariants, resolveButtonStyle, spinnerVariants, textareaVariants, useDsMessages, useFieldControl } from './chunk-
|
|
8
|
-
import { cn, ChevronDownIcon, EyeIcon, DownloadIcon, ChevronRightIcon, CheckIcon, CircleIcon, CopyIcon, CalendarIcon, XIcon, AlertTriangleIcon, ArrowRightIcon, ArrowLeftIcon, FileTextIcon, ZoomOutIcon, ZoomInIcon, TrendingUpIcon, TrendingDownIcon, SearchIcon, TableIcon, StarIcon, ListChecksIcon, CheckCircleSolidIcon, HelpCircleIcon, UserIcon, SendIcon, SettingsIcon, ChevronLeftIcon, FolderOpenIcon, FolderClosedIcon, MinusIcon, AlertCircleIcon, CheckCircle2Icon, PlusIcon, LoaderIcon, InfoCircleSolidIcon, AlertTriangleSolidIcon, XCircleSolidIcon, RotateCcwIcon, InfoIcon, CommandIcon } from './chunk-
|
|
9
|
-
export { AlertCircleIcon, AlertTriangleIcon, AlertTriangleSolidIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, ArrowUpRightIcon, AtSignIcon, BanIcon, BarChartIcon, BellIcon, BoldIcon, BrainIcon, BriefcaseIcon, Building2Icon, BuildingIcon, CalculatorIcon, CalendarIcon, CameraIcon, ChatBubbleIcon, CheckCheckIcon, CheckCircle2Icon, CheckCircleSolidIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsDownUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClipboardCheckIcon, ClockIcon, CloseIcon, CommandIcon, CopyIcon, CornerDownLeftIcon, CreditCardIcon, DocumentIcon, DollarSignIcon, DownloadIcon, ExternalLinkIcon, ExtractIcon, EyeIcon, EyeOffIcon, FileChartColumnIcon, FileIcon, FileReturnIcon, FileTextIcon, FilterIcon, FlagIcon, FolderClosedIcon, FolderDownIcon, FolderOpenIcon, FolderPlusIcon, FolderUpIcon, GlobeIcon, GoogleBrandIcon, GraduationCapIcon, GripHorizontalIcon, GripVerticalIcon, HelpCircleIcon, HistoryIcon, HomeIcon, InboxIcon, InfoCircleSolidIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyIcon, LandmarkIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, MailIcon, MapPinIcon, MaximizeIcon, MenuIcon, MessageCircleIcon, MessageCircleMoreIcon, MessageCircleWarningIcon, MicIcon, MicrosoftBrandIcon, MinimizeIcon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoreVerticalIcon, MousePointer2Icon, MoveIcon, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PanelRightCloseIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenSignIcon, PenToolIcon, PencilIcon, PhoneIcon, PlayIcon, PlusIcon, ReceiptIcon, RefreshCwIcon, ReplyIcon, RotateCcwIcon, SaveIcon, SearchIcon, SendIcon, SettingsIcon, ShieldIcon, SigmaIcon, SlashIcon, SmartphoneIcon, SparkleIcon, SparklesIcon, SquarePlayIcon, StarIcon, StopIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TeamIcon, ThumbsDownIcon, ThumbsUpIcon, TimerIcon, Trash2Icon, TrashIcon, TrashSolidIcon, TrendingDownIcon, TrendingUpIcon, TypeIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VideoIcon, Volume2Icon, VolumeXIcon, WorkflowIcon, XCircleSolidIcon, XIcon, ZoomInIcon, ZoomOutIcon, cn, createIcon } from './chunk-
|
|
2
|
+
import { Skeleton, useFormReset, ToggleGroup, ToggleGroupItem, badgeVariants, DataTableBody, DataTableRow, DataTableCell, Badge, Pagination, TableBody, TableRow, TableCell, Table, TableHeader, TableHead } from './chunk-LUWPEBXZ.js';
|
|
3
|
+
export { Badge, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DataTableView, EmptyValue, PROGRESS_LEGACY_TO_INTENT, Pagination, ProgressBar, ProgressRing, SERVICE_TONES, STATUS_DOT_TONE_TO_INTENT, SegmentedProgress, Skeleton, SkeletonCircle, SkeletonText, StatusDot, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, ToggleGroup, ToggleGroupItem, badgeVariants, compareSortValues, nextSortDirection, progressBarVariants, progressRingVariants, resolveBadgeAppearance, serviceToneLabel, serviceToneStyle, statusDotVariants, useDataTable } from './chunk-LUWPEBXZ.js';
|
|
4
|
+
import { Collapsible, CollapsibleTrigger, CollapsibleContent, PlainLink, Combobox, Sidebar, SidebarFooter, SidebarUser, useSidebarState, SidebarSection, SidebarLinkGroup, SidebarLink, SidebarLinkLabel, SidebarLinkBadge, CmdkCompatContext, Sheet, SheetContent, SheetTitle } from './chunk-TYXT5C2B.js';
|
|
5
|
+
export { BrandScope, BrandScopeProvider, Chip, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, DEFAULT_COMBOBOX_MESSAGES, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarBrand, SidebarBrandText, SidebarDrawer, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, assetPath, brandScope, chipVariants, getAssetBasePath, resolveChipStyle, setAssetBasePath, sidebarLinkBadgeVariants, useBrandScope, useSidebarPeekLock, useSidebarState } from './chunk-TYXT5C2B.js';
|
|
6
|
+
import { withPortalContainer, Backdrop, alertDialogAnatomy, OverlaySurface, OverlayTitle, OverlayDescription, Button, slot, useDsMessages, useLinkComponent, surfaceAnatomy, stateAttributes, cardAnatomy, ModalPortal, kbdAnatomy, FieldContext, fieldAnatomy, useFieldContext, MENU_SUB_TRIGGER_CHEVRON, menuSubTriggerClasses, MENU_INSET, contextMenuAnatomy, presence, menuItemClasses, MENU_ITEM_DANGER, MENU_INDICATOR_WELL, MENU_CHECK_GLYPH, menuIndicatorItemClasses, MENU_RADIO_GLYPH, menuLabelClasses, menuSeparatorClasses, useFieldControl, useMergedRefs, joinIds, Popover, PopoverTrigger, PopoverContent, FormBridge, CONTROL_SIZE_CLASSES, dialogAnatomy, DismissButton, DEFAULT_OVERLAY_MESSAGES, DISMISS_GLYPH_CLASSES, OverlayBody, headingAnatomy, deprecate, floatingSurfaceClasses, FLOATING_PADDING, FLOATING_WIDTH, labelAnatomy, warnLegacyButtonProps, resolveButtonIcons, buttonVariants, INERT_CLASSES, DISABLED_LOOK_CLASSES, inertHandlers, INERT_ATTRIBUTES, linkButtonAnatomy, useControllableState, controlChrome, mergeRefs, numberInputAnatomy, EN_MESSAGES, phoneFieldAnatomy, Input, useFieldsetContext, radioGroupAnatomy, microInteractions, CONTROL_LABEL_TEXT, searchInputAnatomy, IconButton, Tooltip, TooltipTrigger, TooltipContent, codeAnatomy, Slot, textAnatomy, stackAnatomy, inlineAnatomy, statusBadgeAnatomy, useFieldsetState, FieldsetContext, fieldsetAnatomy, useFieldsetLegend, shellAnatomy, Avatar, dataTableAnatomy, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuCheckboxItem, useId as useId$1, partId, errorOnce, isLabelable, Spinner, Select, Checkbox, FIELD_PARTS, SelectRoot, SelectTrigger, SelectValue, SelectContent, SelectItem, OverlayHeader, OverlayFooter, commandAnatomy, menuShortcutClasses, useFormReset as useFormReset$1, sideDrawerAnatomy, Portal, toastAnatomy, useExitPresence, TooltipProvider, TOOLTIP_DEFAULT_DELAY_MS, DesignSystemContext, PortalContainerContext, ModalRoot, ModalOverlay, ModalContent, ModalTitle, ModalDescription } from './chunk-XJKCKBHI.js';
|
|
7
|
+
export { Avatar, Button, Checkbox, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileChip, FileUpload, IconButton, Input, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, Pressable, SPINNER_TONE_TO_INTENT, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Spinner, Textarea, ThemeScope, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, buttonVariants, iconButtonVariants, inputVariants, resolveButtonStyle, spinnerVariants, textareaVariants, useDsMessages, useFieldControl } from './chunk-XJKCKBHI.js';
|
|
8
|
+
import { cn, ChevronDownIcon, EyeIcon, DownloadIcon, ChevronRightIcon, CheckIcon, CircleIcon, CopyIcon, CalendarIcon, XIcon, AlertTriangleIcon, ArrowRightIcon, ArrowLeftIcon, FileTextIcon, ZoomOutIcon, ZoomInIcon, TrendingUpIcon, TrendingDownIcon, SearchIcon, TableIcon, StarIcon, RowsIcon, Rows4Icon, ListChecksIcon, CheckCircleSolidIcon, HelpCircleIcon, UserIcon, SendIcon, SettingsIcon, ChevronLeftIcon, FolderOpenIcon, FolderClosedIcon, MinusIcon, AlertCircleIcon, CheckCircle2Icon, PlusIcon, LoaderIcon, InfoCircleSolidIcon, AlertTriangleSolidIcon, XCircleSolidIcon, RotateCcwIcon, InfoIcon, CommandIcon } from './chunk-TBDTXAFH.js';
|
|
9
|
+
export { AlertCircleIcon, AlertTriangleIcon, AlertTriangleSolidIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, ArrowUpRightIcon, AtSignIcon, BanIcon, BarChartIcon, BellIcon, BoldIcon, BrainIcon, BriefcaseIcon, Building2Icon, BuildingIcon, CalculatorIcon, CalendarIcon, CameraIcon, ChatBubbleIcon, CheckCheckIcon, CheckCircle2Icon, CheckCircleSolidIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsDownUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClipboardCheckIcon, ClockIcon, CloseIcon, CommandIcon, CopyIcon, CornerDownLeftIcon, CreditCardIcon, DocumentIcon, DollarSignIcon, DownloadIcon, ExternalLinkIcon, ExtractIcon, EyeIcon, EyeOffIcon, FileChartColumnIcon, FileIcon, FileReturnIcon, FileTextIcon, FilterIcon, FlagIcon, FolderClosedIcon, FolderDownIcon, FolderOpenIcon, FolderPlusIcon, FolderUpIcon, GlobeIcon, GoogleBrandIcon, GraduationCapIcon, GripHorizontalIcon, GripVerticalIcon, HelpCircleIcon, HistoryIcon, HomeIcon, InboxIcon, InfoCircleSolidIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyIcon, LandmarkIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, MailIcon, MapPinIcon, MaximizeIcon, MenuIcon, MessageCircleIcon, MessageCircleMoreIcon, MessageCircleWarningIcon, MicIcon, MicrosoftBrandIcon, MinimizeIcon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoreVerticalIcon, MousePointer2Icon, MoveIcon, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PanelRightCloseIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenSignIcon, PenToolIcon, PencilIcon, PhoneIcon, PlayIcon, PlusIcon, ReceiptIcon, RefreshCwIcon, ReplyIcon, RotateCcwIcon, Rows4Icon, RowsIcon, SaveIcon, SearchIcon, SendIcon, SettingsIcon, ShieldIcon, SigmaIcon, SlashIcon, SmartphoneIcon, SparkleIcon, SparklesIcon, SquarePlayIcon, StarIcon, StopIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TeamIcon, ThumbsDownIcon, ThumbsUpIcon, TimerIcon, Trash2Icon, TrashIcon, TrashSolidIcon, TrendingDownIcon, TrendingUpIcon, TypeIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VideoIcon, Volume2Icon, VolumeXIcon, WorkflowIcon, XCircleSolidIcon, XIcon, ZoomInIcon, ZoomOutIcon, cn, createIcon } from './chunk-TBDTXAFH.js';
|
|
10
10
|
export { systemTokens } from './chunk-CPOGSNXS.js';
|
|
11
11
|
import './chunk-EUHGZA6Q.js';
|
|
12
12
|
export { colors, radii, reference, shadows, spacing, surfaces, typography } from './chunk-YRHRVOLV.js';
|
|
13
|
-
import * as
|
|
14
|
-
import { forwardRef, useId, useRef, useState,
|
|
13
|
+
import * as React30 from 'react';
|
|
14
|
+
import { forwardRef, useId, useRef, useState, useLayoutEffect, createContext, useEffect, useCallback, useMemo, useImperativeHandle, Children, isValidElement, cloneElement, useSyncExternalStore, useContext } from 'react';
|
|
15
15
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
16
16
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
17
17
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
@@ -33,7 +33,7 @@ import { useFormStatus } from 'react-dom';
|
|
|
33
33
|
import { Branch } from '@radix-ui/react-dismissable-layer';
|
|
34
34
|
import * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';
|
|
35
35
|
|
|
36
|
-
var Accordion =
|
|
36
|
+
var Accordion = React30.forwardRef(function Accordion2({ className, ...props }, ref) {
|
|
37
37
|
return /* @__PURE__ */ jsx(
|
|
38
38
|
AccordionPrimitive.Root,
|
|
39
39
|
{
|
|
@@ -44,22 +44,28 @@ var Accordion = React28.forwardRef(function Accordion2({ className, ...props },
|
|
|
44
44
|
);
|
|
45
45
|
});
|
|
46
46
|
Accordion.displayName = AccordionPrimitive.Root.displayName;
|
|
47
|
-
var AccordionItem =
|
|
47
|
+
var AccordionItem = React30.forwardRef(function AccordionItem2({ className, ...props }, ref) {
|
|
48
48
|
return /* @__PURE__ */ jsx(AccordionPrimitive.Item, { ref, className: cn(className), ...props });
|
|
49
49
|
});
|
|
50
50
|
AccordionItem.displayName = AccordionPrimitive.Item.displayName;
|
|
51
|
-
var AccordionTrigger =
|
|
51
|
+
var AccordionTrigger = React30.forwardRef(function AccordionTrigger2({ children, className, ...props }, ref) {
|
|
52
52
|
return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "ds:flex", children: /* @__PURE__ */ jsxs(
|
|
53
53
|
AccordionPrimitive.Trigger,
|
|
54
54
|
{
|
|
55
55
|
ref,
|
|
56
56
|
className: cn(
|
|
57
|
-
"ds:group group ds:text-fg ds:flex ds:flex-1 ds:items-center ds:justify-between ds:gap-4 ds:py-4 ds:text-left ds:text-sm ds:font-medium",
|
|
57
|
+
"ds:group group ds:text-fg ds:flex ds:flex-1 ds:items-center ds:justify-between ds:gap-4 ds:rounded-control ds:py-4 ds:text-left ds:text-sm ds:font-medium",
|
|
58
58
|
"ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
59
59
|
"ds:hover:text-fg-2",
|
|
60
60
|
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
|
|
61
61
|
"ds:data-[disabled]:cursor-not-allowed ds:data-[disabled]:opacity-50 ds:data-[disabled]:hover:text-fg",
|
|
62
|
+
// `aria-expanded` twin: a TooltipTrigger asChild ancestor can
|
|
63
|
+
// clobber this trigger's own `data-state` with the tooltip's (see
|
|
64
|
+
// toggle-group.tsx's note on the same bug), but never sets
|
|
65
|
+
// `aria-expanded` — which Radix's Collapsible-backed Accordion
|
|
66
|
+
// trigger always carries alongside `data-state`.
|
|
62
67
|
"ds:[&[data-state=open]>svg]:rotate-180",
|
|
68
|
+
"ds:[&[aria-expanded=true]>svg]:rotate-180",
|
|
63
69
|
className
|
|
64
70
|
),
|
|
65
71
|
...props,
|
|
@@ -77,7 +83,7 @@ var AccordionTrigger = React28.forwardRef(function AccordionTrigger2({ children,
|
|
|
77
83
|
) });
|
|
78
84
|
});
|
|
79
85
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
80
|
-
var AccordionContent =
|
|
86
|
+
var AccordionContent = React30.forwardRef(function AccordionContent2({ children, className, ...props }, ref) {
|
|
81
87
|
return /* @__PURE__ */ jsx(
|
|
82
88
|
AccordionPrimitive.Content,
|
|
83
89
|
{
|
|
@@ -97,7 +103,7 @@ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
|
97
103
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
98
104
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
99
105
|
var AlertDialogPortal = withPortalContainer(AlertDialogPrimitive.Portal);
|
|
100
|
-
var AlertDialogOverlay =
|
|
106
|
+
var AlertDialogOverlay = React30.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
101
107
|
Backdrop,
|
|
102
108
|
{
|
|
103
109
|
as: AlertDialogPrimitive.Overlay,
|
|
@@ -108,7 +114,7 @@ var AlertDialogOverlay = React28.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
|
108
114
|
}
|
|
109
115
|
));
|
|
110
116
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
111
|
-
var AlertDialogContent =
|
|
117
|
+
var AlertDialogContent = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
112
118
|
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
113
119
|
/* @__PURE__ */ jsx(
|
|
114
120
|
OverlaySurface,
|
|
@@ -129,9 +135,9 @@ var AlertDialogHeader = (props) => /* @__PURE__ */ jsx(OverlayHeader, { anatomy:
|
|
|
129
135
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
130
136
|
var AlertDialogFooter = (props) => /* @__PURE__ */ jsx(OverlayFooter, { anatomy: alertDialogAnatomy, layout: "inset", ...props });
|
|
131
137
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
132
|
-
var AlertDialogTitle =
|
|
138
|
+
var AlertDialogTitle = React30.forwardRef((props, ref) => /* @__PURE__ */ jsx(OverlayTitle, { as: AlertDialogPrimitive.Title, anatomy: alertDialogAnatomy, ref, ...props }));
|
|
133
139
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
134
|
-
var AlertDialogDescription =
|
|
140
|
+
var AlertDialogDescription = React30.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
135
141
|
OverlayDescription,
|
|
136
142
|
{
|
|
137
143
|
as: AlertDialogPrimitive.Description,
|
|
@@ -144,7 +150,7 @@ AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayNam
|
|
|
144
150
|
var EMPHASES = /* @__PURE__ */ new Set(["solid", "soft", "outline", "ghost", "link"]);
|
|
145
151
|
var isEmphasis = (word) => EMPHASES.has(word);
|
|
146
152
|
var LEGACY_ACTION_HOVER = "ds:hover:bg-destructive/90";
|
|
147
|
-
var AlertDialogAction =
|
|
153
|
+
var AlertDialogAction = React30.forwardRef(({ variant, intent, className, ...props }, ref) => {
|
|
148
154
|
const legacy = variant === void 0 && intent === void 0;
|
|
149
155
|
const resolvedIntent = intent ?? (variant === void 0 || isEmphasis(variant) ? "danger" : void 0);
|
|
150
156
|
return /* @__PURE__ */ jsx(AlertDialogPrimitive.Action, { ref, asChild: true, ...slot(alertDialogAnatomy, "action"), children: /* @__PURE__ */ jsx(
|
|
@@ -160,7 +166,7 @@ var AlertDialogAction = React28.forwardRef(({ variant, intent, className, ...pro
|
|
|
160
166
|
});
|
|
161
167
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
162
168
|
var LEGACY_CANCEL_HOVER = "ds:hover:border-rule-strong ds:hover:text-fg";
|
|
163
|
-
var AlertDialogCancel =
|
|
169
|
+
var AlertDialogCancel = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AlertDialogPrimitive.Cancel, { ref, asChild: true, ...slot(alertDialogAnatomy, "cancel"), children: /* @__PURE__ */ jsx(
|
|
164
170
|
Button,
|
|
165
171
|
{
|
|
166
172
|
variant: "outline",
|
|
@@ -258,9 +264,11 @@ var AreaChart = forwardRef(function AreaChart2({ data, height = 140, formatValue
|
|
|
258
264
|
const wrapRef = useRef(null);
|
|
259
265
|
const [width, setWidth] = useState(620);
|
|
260
266
|
const [hover, setHover] = useState(null);
|
|
261
|
-
|
|
267
|
+
useLayoutEffect(() => {
|
|
262
268
|
const el = wrapRef.current;
|
|
263
269
|
if (!el) return;
|
|
270
|
+
const measured = el.getBoundingClientRect().width;
|
|
271
|
+
if (measured > 0) setWidth(measured);
|
|
264
272
|
const ro = new ResizeObserver((entries) => {
|
|
265
273
|
for (const entry of entries) setWidth(entry.contentRect.width);
|
|
266
274
|
});
|
|
@@ -287,6 +295,7 @@ var AreaChart = forwardRef(function AreaChart2({ data, height = 140, formatValue
|
|
|
287
295
|
width,
|
|
288
296
|
height,
|
|
289
297
|
viewBox: `0 0 ${width} ${height}`,
|
|
298
|
+
className: "ds:block ds:h-auto ds:max-w-full",
|
|
290
299
|
role: "img",
|
|
291
300
|
"aria-label": "Area trend chart",
|
|
292
301
|
onMouseLeave: () => setHover(null),
|
|
@@ -351,7 +360,7 @@ var AreaChart = forwardRef(function AreaChart2({ data, height = 140, formatValue
|
|
|
351
360
|
] });
|
|
352
361
|
});
|
|
353
362
|
AreaChart.displayName = "AreaChart";
|
|
354
|
-
var AspectRatio =
|
|
363
|
+
var AspectRatio = React30.forwardRef(function AspectRatio2({ className, ratio = 16 / 9, ...props }, ref) {
|
|
355
364
|
return /* @__PURE__ */ jsx(
|
|
356
365
|
AspectRatioPrimitive.Root,
|
|
357
366
|
{
|
|
@@ -1086,15 +1095,15 @@ function Calendar({
|
|
|
1086
1095
|
const range = isRange ? selected : void 0;
|
|
1087
1096
|
const locale = useLocale(typeof localeProp === "string" ? localeProp : void 0);
|
|
1088
1097
|
const localeObject = typeof localeProp === "object" ? localeProp : void 0;
|
|
1089
|
-
const localeProps =
|
|
1098
|
+
const localeProps = React30.useMemo(
|
|
1090
1099
|
() => localeObject ? {} : calendarLocaleProps(locale),
|
|
1091
1100
|
[locale, localeObject]
|
|
1092
1101
|
);
|
|
1093
1102
|
const hydrated = useHydrated();
|
|
1094
|
-
const clockToday =
|
|
1103
|
+
const clockToday = React30.useMemo(() => hydrated ? startOfDay(/* @__PURE__ */ new Date()) : void 0, [hydrated]);
|
|
1095
1104
|
const today = todayProp ?? clockToday;
|
|
1096
1105
|
const anchor = props.month ?? props.defaultMonth ?? todayProp;
|
|
1097
|
-
const { modifiers, modifiersClassNames } =
|
|
1106
|
+
const { modifiers, modifiersClassNames } = React30.useMemo(() => {
|
|
1098
1107
|
const buckets = {};
|
|
1099
1108
|
for (const h of highlights) {
|
|
1100
1109
|
const key = h.color ?? "primary";
|
|
@@ -1109,7 +1118,7 @@ function Calendar({
|
|
|
1109
1118
|
}
|
|
1110
1119
|
return { modifiers: mods, modifiersClassNames: modClasses };
|
|
1111
1120
|
}, [highlights]);
|
|
1112
|
-
const disabledMatcher =
|
|
1121
|
+
const disabledMatcher = React30.useMemo(() => {
|
|
1113
1122
|
if (!minDate && !maxDate) return void 0;
|
|
1114
1123
|
if (minDate && maxDate) return [{ before: minDate }, { after: maxDate }];
|
|
1115
1124
|
if (minDate) return { before: minDate };
|
|
@@ -1117,7 +1126,7 @@ function Calendar({
|
|
|
1117
1126
|
}, [minDate, maxDate]);
|
|
1118
1127
|
const rangeFrom = range?.from;
|
|
1119
1128
|
const rangeTo = range?.to;
|
|
1120
|
-
const navRange =
|
|
1129
|
+
const navRange = React30.useMemo(
|
|
1121
1130
|
() => captionLayout === "label" ? void 0 : resolveCalendarNavRange({
|
|
1122
1131
|
minDate,
|
|
1123
1132
|
maxDate,
|
|
@@ -1182,7 +1191,7 @@ function Calendar({
|
|
|
1182
1191
|
day: "ds:flex-1 ds:text-center ds:relative ds:p-0",
|
|
1183
1192
|
day_button: cn(
|
|
1184
1193
|
"ds:inline-flex ds:size-8 ds:w-full ds:items-center ds:justify-center ds:rounded-input ds:font-mono ds:tabular-nums ds:text-(length:--control-font-size-md) ds:text-fg",
|
|
1185
|
-
"ds:transition-colors ds:duration-[var(--duration-instant)] ds:motion-reduce:transition-none",
|
|
1194
|
+
"ds:transition-colors ds:duration-[var(--duration-instant)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
1186
1195
|
"ds:hover:bg-surface-hover",
|
|
1187
1196
|
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
1188
1197
|
"ds:disabled:pointer-events-none ds:disabled:cursor-not-allowed ds:disabled:text-fg-disabled"
|
|
@@ -1279,7 +1288,10 @@ var CardHeader = forwardRef(
|
|
|
1279
1288
|
ref,
|
|
1280
1289
|
...slot(cardAnatomy, "header"),
|
|
1281
1290
|
className: cn(
|
|
1282
|
-
|
|
1291
|
+
// `border-rule` colours the documented `className="border-b"` divider
|
|
1292
|
+
// the way CardFooter's border is coloured (Tailwind 4 would otherwise
|
|
1293
|
+
// paint it `currentColor`); it draws nothing without a border width.
|
|
1294
|
+
"ds:grid ds:auto-cols-fr ds:grid-cols-[1fr_auto] ds:items-start ds:gap-1.5 ds:border-rule ds:p-6 ds:[.border-b]:pb-4",
|
|
1283
1295
|
className
|
|
1284
1296
|
),
|
|
1285
1297
|
...props
|
|
@@ -1295,7 +1307,12 @@ var CardTitle = forwardRef(function CardTitle2({ className, children, headingLev
|
|
|
1295
1307
|
{
|
|
1296
1308
|
ref,
|
|
1297
1309
|
...slot(cardAnatomy, "title"),
|
|
1298
|
-
className: cn(
|
|
1310
|
+
className: cn(
|
|
1311
|
+
// Column 1 of CardHeader's `1fr auto` grid, so a description stacks
|
|
1312
|
+
// under the title instead of flowing into the action column.
|
|
1313
|
+
"ds:col-start-1 ds:text-fg ds:text-base ds:leading-tight ds:font-medium",
|
|
1314
|
+
className
|
|
1315
|
+
),
|
|
1299
1316
|
...props,
|
|
1300
1317
|
children
|
|
1301
1318
|
}
|
|
@@ -1308,7 +1325,7 @@ var CardDescription = forwardRef(function CardDescription2({ className, ...props
|
|
|
1308
1325
|
{
|
|
1309
1326
|
ref,
|
|
1310
1327
|
...slot(cardAnatomy, "description"),
|
|
1311
|
-
className: cn("ds:text-fg-3 ds:text-sm", className),
|
|
1328
|
+
className: cn("ds:col-start-1 ds:text-fg-3 ds:text-sm", className),
|
|
1312
1329
|
...props
|
|
1313
1330
|
}
|
|
1314
1331
|
);
|
|
@@ -1552,17 +1569,17 @@ function CommandPalette({
|
|
|
1552
1569
|
}) {
|
|
1553
1570
|
const messages = useDsMessages("commandPalette", messagesProp);
|
|
1554
1571
|
const placeholder = placeholderProp ?? messages.search;
|
|
1555
|
-
const [internalOpen, setInternalOpen] =
|
|
1572
|
+
const [internalOpen, setInternalOpen] = React30.useState(defaultOpen);
|
|
1556
1573
|
const isControlled = controlledOpen !== void 0;
|
|
1557
1574
|
const open = isControlled ? controlledOpen : internalOpen;
|
|
1558
|
-
const setOpen =
|
|
1575
|
+
const setOpen = React30.useCallback(
|
|
1559
1576
|
(value) => {
|
|
1560
1577
|
if (!isControlled) setInternalOpen(value);
|
|
1561
1578
|
onOpenChange?.(value);
|
|
1562
1579
|
},
|
|
1563
1580
|
[isControlled, onOpenChange]
|
|
1564
1581
|
);
|
|
1565
|
-
|
|
1582
|
+
React30.useEffect(() => {
|
|
1566
1583
|
function handleKeyDown(e) {
|
|
1567
1584
|
if ((e.metaKey || e.ctrlKey) && e.key === "k") {
|
|
1568
1585
|
e.preventDefault();
|
|
@@ -1881,19 +1898,19 @@ function ConfirmDialog({
|
|
|
1881
1898
|
}) {
|
|
1882
1899
|
const messages = useDsMessages("confirm", messagesOverride);
|
|
1883
1900
|
const isControlled = open !== void 0;
|
|
1884
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
1901
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React30.useState(defaultOpen);
|
|
1885
1902
|
const resolvedOpen = isControlled ? open : uncontrolledOpen;
|
|
1886
|
-
const [pending, setPending] =
|
|
1887
|
-
const [error, setError] =
|
|
1888
|
-
const actionRef =
|
|
1889
|
-
const mounted =
|
|
1890
|
-
|
|
1903
|
+
const [pending, setPending] = React30.useState(false);
|
|
1904
|
+
const [error, setError] = React30.useState(void 0);
|
|
1905
|
+
const actionRef = React30.useRef(null);
|
|
1906
|
+
const mounted = React30.useRef(true);
|
|
1907
|
+
React30.useEffect(() => {
|
|
1891
1908
|
mounted.current = true;
|
|
1892
1909
|
return () => {
|
|
1893
1910
|
mounted.current = false;
|
|
1894
1911
|
};
|
|
1895
1912
|
}, []);
|
|
1896
|
-
const setDialogOpen =
|
|
1913
|
+
const setDialogOpen = React30.useCallback(
|
|
1897
1914
|
(nextOpen) => {
|
|
1898
1915
|
onOpenChange?.(nextOpen);
|
|
1899
1916
|
if (!isControlled) setUncontrolledOpen(nextOpen);
|
|
@@ -2022,7 +2039,7 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
|
2022
2039
|
var ContextMenuPortal = withPortalContainer(ContextMenuPrimitive.Portal);
|
|
2023
2040
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
2024
2041
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
2025
|
-
var ContextMenuSubTrigger =
|
|
2042
|
+
var ContextMenuSubTrigger = React30.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2026
2043
|
ContextMenuPrimitive.SubTrigger,
|
|
2027
2044
|
{
|
|
2028
2045
|
ref,
|
|
@@ -2036,7 +2053,7 @@ var ContextMenuSubTrigger = React28.forwardRef(({ className, inset, children, ..
|
|
|
2036
2053
|
}
|
|
2037
2054
|
));
|
|
2038
2055
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
2039
|
-
var ContextMenuSubContent =
|
|
2056
|
+
var ContextMenuSubContent = React30.forwardRef(({ className, ...props }, ref) => (
|
|
2040
2057
|
// Portal the sub-content to the body. The parent Content is transformed
|
|
2041
2058
|
// while its presence keyframes run, which makes it the containing block for
|
|
2042
2059
|
// `position: fixed` descendants — and its `overflow-hidden` would then clip
|
|
@@ -2056,7 +2073,7 @@ var ContextMenuSubContent = React28.forwardRef(({ className, ...props }, ref) =>
|
|
|
2056
2073
|
) })
|
|
2057
2074
|
));
|
|
2058
2075
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
2059
|
-
var ContextMenuContent =
|
|
2076
|
+
var ContextMenuContent = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPortal, { children: /* @__PURE__ */ jsx(
|
|
2060
2077
|
ContextMenuPrimitive.Content,
|
|
2061
2078
|
{
|
|
2062
2079
|
ref,
|
|
@@ -2070,7 +2087,7 @@ var ContextMenuContent = React28.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2070
2087
|
}
|
|
2071
2088
|
) }));
|
|
2072
2089
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
2073
|
-
var ContextMenuItem =
|
|
2090
|
+
var ContextMenuItem = React30.forwardRef(({ className, destructive, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2074
2091
|
ContextMenuPrimitive.Item,
|
|
2075
2092
|
{
|
|
2076
2093
|
ref,
|
|
@@ -2085,7 +2102,7 @@ var ContextMenuItem = React28.forwardRef(({ className, destructive, inset, ...pr
|
|
|
2085
2102
|
}
|
|
2086
2103
|
));
|
|
2087
2104
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
2088
|
-
var ContextMenuCheckboxItem =
|
|
2105
|
+
var ContextMenuCheckboxItem = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2089
2106
|
ContextMenuPrimitive.CheckboxItem,
|
|
2090
2107
|
{
|
|
2091
2108
|
ref,
|
|
@@ -2099,7 +2116,7 @@ var ContextMenuCheckboxItem = React28.forwardRef(({ className, children, ...prop
|
|
|
2099
2116
|
}
|
|
2100
2117
|
));
|
|
2101
2118
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
2102
|
-
var ContextMenuRadioItem =
|
|
2119
|
+
var ContextMenuRadioItem = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2103
2120
|
ContextMenuPrimitive.RadioItem,
|
|
2104
2121
|
{
|
|
2105
2122
|
ref,
|
|
@@ -2113,7 +2130,7 @@ var ContextMenuRadioItem = React28.forwardRef(({ className, children, ...props }
|
|
|
2113
2130
|
}
|
|
2114
2131
|
));
|
|
2115
2132
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
2116
|
-
var ContextMenuLabel =
|
|
2133
|
+
var ContextMenuLabel = React30.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2117
2134
|
ContextMenuPrimitive.Label,
|
|
2118
2135
|
{
|
|
2119
2136
|
ref,
|
|
@@ -2127,7 +2144,7 @@ var ContextMenuLabel = React28.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2127
2144
|
}
|
|
2128
2145
|
));
|
|
2129
2146
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
2130
|
-
var ContextMenuSeparator =
|
|
2147
|
+
var ContextMenuSeparator = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2131
2148
|
ContextMenuPrimitive.Separator,
|
|
2132
2149
|
{
|
|
2133
2150
|
ref,
|
|
@@ -2148,10 +2165,13 @@ ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
|
2148
2165
|
var CopyButton = forwardRef(function CopyButton2({ value, feedbackDuration = 2e3, messages: messagesProp, className, children, ...props }, ref) {
|
|
2149
2166
|
const messages = useDsMessages("copyButton", messagesProp);
|
|
2150
2167
|
const [copied, setCopied] = useState(false);
|
|
2168
|
+
const resetTimer = useRef(void 0);
|
|
2169
|
+
useEffect(() => () => clearTimeout(resetTimer.current), []);
|
|
2151
2170
|
const handleCopy = useCallback(async () => {
|
|
2152
2171
|
await navigator.clipboard.writeText(value);
|
|
2153
2172
|
setCopied(true);
|
|
2154
|
-
|
|
2173
|
+
clearTimeout(resetTimer.current);
|
|
2174
|
+
resetTimer.current = setTimeout(() => setCopied(false), feedbackDuration);
|
|
2155
2175
|
}, [value, feedbackDuration]);
|
|
2156
2176
|
return /* @__PURE__ */ jsx(
|
|
2157
2177
|
"button",
|
|
@@ -2168,11 +2188,67 @@ var CopyButton = forwardRef(function CopyButton2({ value, feedbackDuration = 2e3
|
|
|
2168
2188
|
),
|
|
2169
2189
|
"aria-label": copied ? messages.copied : messages.copy,
|
|
2170
2190
|
...props,
|
|
2171
|
-
children: copied ? /* @__PURE__ */ jsx(
|
|
2191
|
+
children: copied ? /* @__PURE__ */ jsx(
|
|
2192
|
+
CheckIcon,
|
|
2193
|
+
{
|
|
2194
|
+
size: 16,
|
|
2195
|
+
"aria-hidden": "true",
|
|
2196
|
+
className: "ds:text-success-fg ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:zoom-in-50 ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)]"
|
|
2197
|
+
}
|
|
2198
|
+
) : children ?? /* @__PURE__ */ jsx(CopyIcon, { size: 16, "aria-hidden": "true" })
|
|
2172
2199
|
}
|
|
2173
2200
|
);
|
|
2174
2201
|
});
|
|
2175
2202
|
CopyButton.displayName = "CopyButton";
|
|
2203
|
+
var DATE_PICKER_BOX = {
|
|
2204
|
+
xs: "ds:h-(--control-height-xs) ds:text-(length:--control-font-size-xs)",
|
|
2205
|
+
sm: "ds:h-(--control-height-sm) ds:text-(length:--control-font-size-sm)",
|
|
2206
|
+
md: "ds:h-(--control-height-md) ds:text-(length:--control-font-size-md)",
|
|
2207
|
+
lg: "ds:h-(--control-height-lg) ds:text-(length:--control-font-size-lg)",
|
|
2208
|
+
xl: "ds:h-(--control-height-xl) ds:text-(length:--control-font-size-xl)"
|
|
2209
|
+
};
|
|
2210
|
+
var DATE_PICKER_OUTER_PAD_LEFT = {
|
|
2211
|
+
xs: "ds:pl-2",
|
|
2212
|
+
sm: "ds:pl-2.5",
|
|
2213
|
+
md: "ds:pl-3",
|
|
2214
|
+
lg: "ds:pl-3.5",
|
|
2215
|
+
xl: "ds:pl-4"
|
|
2216
|
+
};
|
|
2217
|
+
var DATE_PICKER_OUTER_PAD_RIGHT = {
|
|
2218
|
+
xs: "ds:pr-2",
|
|
2219
|
+
sm: "ds:pr-2.5",
|
|
2220
|
+
md: "ds:pr-3",
|
|
2221
|
+
lg: "ds:pr-3.5",
|
|
2222
|
+
xl: "ds:pr-4"
|
|
2223
|
+
};
|
|
2224
|
+
var DATE_PICKER_ICON_SLOT = {
|
|
2225
|
+
xs: "ds:w-8",
|
|
2226
|
+
sm: "ds:w-9",
|
|
2227
|
+
md: "ds:w-10",
|
|
2228
|
+
lg: "ds:w-11",
|
|
2229
|
+
xl: "ds:w-12"
|
|
2230
|
+
};
|
|
2231
|
+
var DATE_PICKER_ICON_PAD_LEFT = {
|
|
2232
|
+
xs: "ds:pl-8",
|
|
2233
|
+
sm: "ds:pl-9",
|
|
2234
|
+
md: "ds:pl-10",
|
|
2235
|
+
lg: "ds:pl-11",
|
|
2236
|
+
xl: "ds:pl-12"
|
|
2237
|
+
};
|
|
2238
|
+
var DATE_PICKER_ICON_PAD_RIGHT = {
|
|
2239
|
+
xs: "ds:pr-8",
|
|
2240
|
+
sm: "ds:pr-9",
|
|
2241
|
+
md: "ds:pr-10",
|
|
2242
|
+
lg: "ds:pr-11",
|
|
2243
|
+
xl: "ds:pr-12"
|
|
2244
|
+
};
|
|
2245
|
+
var DATE_PICKER_ICON_SIZE = {
|
|
2246
|
+
xs: "ds:size-(--control-icon-xs)",
|
|
2247
|
+
sm: "ds:size-(--control-icon-sm)",
|
|
2248
|
+
md: "ds:size-(--control-icon-md)",
|
|
2249
|
+
lg: "ds:size-(--control-icon-lg)",
|
|
2250
|
+
xl: "ds:size-(--control-icon-xl)"
|
|
2251
|
+
};
|
|
2176
2252
|
function YearGrid({ selected, onSelect, minYear, maxYear, formatLabel, autoFocus }) {
|
|
2177
2253
|
const messages = useDsMessages("datePicker");
|
|
2178
2254
|
const today = (/* @__PURE__ */ new Date()).getFullYear();
|
|
@@ -2248,7 +2324,7 @@ function YearGrid({ selected, onSelect, minYear, maxYear, formatLabel, autoFocus
|
|
|
2248
2324
|
className: cn(
|
|
2249
2325
|
"ds:rounded-input ds:font-mono ds:text-(length:--control-font-size-md) ds:tabular-nums",
|
|
2250
2326
|
"ds:inline-flex ds:h-10 ds:items-center ds:justify-center",
|
|
2251
|
-
"ds:transition-colors ds:duration-[var(--duration-instant)] ds:motion-reduce:transition-none",
|
|
2327
|
+
"ds:transition-colors ds:duration-[var(--duration-instant)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
2252
2328
|
"ds:hover:bg-surface-hover",
|
|
2253
2329
|
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
2254
2330
|
"ds:disabled:text-fg-disabled ds:disabled:pointer-events-none ds:disabled:cursor-not-allowed",
|
|
@@ -2286,7 +2362,8 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
2286
2362
|
formatLabel,
|
|
2287
2363
|
iconPosition = "right",
|
|
2288
2364
|
captionLayout = "dropdown",
|
|
2289
|
-
inputClassName
|
|
2365
|
+
inputClassName,
|
|
2366
|
+
size
|
|
2290
2367
|
}, ref) {
|
|
2291
2368
|
const messages = useDsMessages("datePicker");
|
|
2292
2369
|
const isYearMode = picker === "year";
|
|
@@ -2442,7 +2519,7 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
2442
2519
|
"aria-describedby": joinIds(wiring["aria-describedby"], error ? errorId : void 0),
|
|
2443
2520
|
"aria-labelledby": wiring["aria-labelledby"],
|
|
2444
2521
|
"aria-label": ariaLabel,
|
|
2445
|
-
className: cn(
|
|
2522
|
+
className: size == null ? cn(
|
|
2446
2523
|
"ds:rounded-input ds:bg-surface ds:text-fg ds:flex ds:h-9 ds:w-full ds:border ds:font-mono ds:text-(length:--control-font-size-md) ds:tabular-nums",
|
|
2447
2524
|
"ds:border-field-border ds:py-2",
|
|
2448
2525
|
iconPosition === "left" ? "ds:pl-10 ds:pr-3" : "ds:pl-3 ds:pr-10",
|
|
@@ -2457,6 +2534,22 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
2457
2534
|
"ds:aria-[invalid=true]:focus-visible:[box-shadow:0_0_0_2px_var(--color-danger-bg)]",
|
|
2458
2535
|
hasCustomYearLabel && "ds:cursor-pointer",
|
|
2459
2536
|
inputClassName
|
|
2537
|
+
) : cn(
|
|
2538
|
+
"ds:rounded-input ds:bg-surface ds:text-fg ds:flex ds:w-full ds:border ds:font-mono ds:tabular-nums",
|
|
2539
|
+
DATE_PICKER_BOX[size],
|
|
2540
|
+
"ds:border-field-border ds:py-2",
|
|
2541
|
+
iconPosition === "left" ? cn(DATE_PICKER_ICON_PAD_LEFT[size], DATE_PICKER_OUTER_PAD_RIGHT[size]) : cn(DATE_PICKER_OUTER_PAD_LEFT[size], DATE_PICKER_ICON_PAD_RIGHT[size]),
|
|
2542
|
+
"ds:transition-[color,background-color,border-color,box-shadow] ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)]",
|
|
2543
|
+
"ds:motion-reduce:transition-none",
|
|
2544
|
+
"ds:placeholder:font-body ds:placeholder:text-fg-4",
|
|
2545
|
+
"ds:not-disabled:hover:border-field-border-hover",
|
|
2546
|
+
"ds:focus-visible:[border-color:var(--focus-ring-border)] ds:focus-visible:outline-none",
|
|
2547
|
+
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring-field)]",
|
|
2548
|
+
"ds:disabled:bg-bg-disabled ds:disabled:text-fg-disabled ds:disabled:cursor-not-allowed",
|
|
2549
|
+
"ds:aria-[invalid=true]:border-field-border-invalid ds:aria-[invalid=true]:focus-visible:border-danger-fg",
|
|
2550
|
+
"ds:aria-[invalid=true]:focus-visible:[box-shadow:0_0_0_2px_var(--color-danger-bg)]",
|
|
2551
|
+
hasCustomYearLabel && "ds:cursor-pointer",
|
|
2552
|
+
inputClassName
|
|
2460
2553
|
)
|
|
2461
2554
|
}
|
|
2462
2555
|
),
|
|
@@ -2468,7 +2561,7 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
2468
2561
|
disabled: isDisabled,
|
|
2469
2562
|
tabIndex: -1,
|
|
2470
2563
|
"aria-label": messages.openCalendar,
|
|
2471
|
-
className: cn(
|
|
2564
|
+
className: size == null ? cn(
|
|
2472
2565
|
"ds:text-fg-3 ds:absolute ds:inset-y-0 ds:flex ds:w-10 ds:cursor-pointer ds:items-center ds:justify-center",
|
|
2473
2566
|
iconPosition === "left" ? "ds:left-0 ds:rounded-l-input" : "ds:right-0 ds:rounded-r-input",
|
|
2474
2567
|
"ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)]",
|
|
@@ -2476,8 +2569,17 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
2476
2569
|
"ds:hover:bg-surface-hover ds:hover:text-fg",
|
|
2477
2570
|
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
|
|
2478
2571
|
"ds:disabled:text-fg-disabled ds:disabled:cursor-not-allowed ds:disabled:hover:bg-transparent"
|
|
2572
|
+
) : cn(
|
|
2573
|
+
"ds:text-fg-3 ds:absolute ds:inset-y-0 ds:flex ds:cursor-pointer ds:items-center ds:justify-center",
|
|
2574
|
+
DATE_PICKER_ICON_SLOT[size],
|
|
2575
|
+
iconPosition === "left" ? "ds:left-0 ds:rounded-l-input" : "ds:right-0 ds:rounded-r-input",
|
|
2576
|
+
"ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)]",
|
|
2577
|
+
"ds:motion-reduce:transition-none",
|
|
2578
|
+
"ds:hover:bg-surface-hover ds:hover:text-fg",
|
|
2579
|
+
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
|
|
2580
|
+
"ds:disabled:text-fg-disabled ds:disabled:cursor-not-allowed ds:disabled:hover:bg-transparent"
|
|
2479
2581
|
),
|
|
2480
|
-
children: /* @__PURE__ */ jsx(CalendarIcon, { className: "
|
|
2582
|
+
children: /* @__PURE__ */ jsx(CalendarIcon, { className: DATE_PICKER_ICON_SIZE[size ?? "md"], "aria-hidden": "true" })
|
|
2481
2583
|
}
|
|
2482
2584
|
) }),
|
|
2483
2585
|
/* @__PURE__ */ jsx(
|
|
@@ -2550,7 +2652,8 @@ var DateRangePicker = forwardRef(
|
|
|
2550
2652
|
max,
|
|
2551
2653
|
iconPosition = "right",
|
|
2552
2654
|
"aria-label": ariaLabel,
|
|
2553
|
-
captionLayout = "dropdown"
|
|
2655
|
+
captionLayout = "dropdown",
|
|
2656
|
+
size
|
|
2554
2657
|
}, ref) {
|
|
2555
2658
|
const messages = useDsMessages("dateRangePicker");
|
|
2556
2659
|
const placeholder = placeholderProp ?? messages.placeholder;
|
|
@@ -2682,7 +2785,7 @@ var DateRangePicker = forwardRef(
|
|
|
2682
2785
|
"aria-label": ariaLabel ?? label ?? messages.name,
|
|
2683
2786
|
"aria-haspopup": "dialog",
|
|
2684
2787
|
"aria-expanded": open,
|
|
2685
|
-
className: cn(
|
|
2788
|
+
className: size == null ? cn(
|
|
2686
2789
|
"ds:rounded-input ds:bg-surface ds:flex ds:h-9 ds:w-full ds:cursor-pointer ds:items-center ds:border ds:font-mono ds:text-(length:--control-font-size-md) ds:tabular-nums",
|
|
2687
2790
|
"ds:border-field-border ds:px-3 ds:py-2 ds:gap-2",
|
|
2688
2791
|
"ds:transition-[color,background-color,border-color,box-shadow] ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)]",
|
|
@@ -2693,6 +2796,18 @@ var DateRangePicker = forwardRef(
|
|
|
2693
2796
|
"ds:disabled:bg-bg-disabled ds:disabled:text-fg-disabled ds:disabled:cursor-not-allowed ds:disabled:hover:bg-bg-disabled",
|
|
2694
2797
|
"ds:data-[invalid=true]:border-field-border-invalid ds:data-[invalid=true]:focus-visible:border-danger-fg",
|
|
2695
2798
|
"ds:data-[invalid=true]:focus-visible:[box-shadow:0_0_0_2px_var(--color-danger-bg)]"
|
|
2799
|
+
) : cn(
|
|
2800
|
+
"ds:rounded-input ds:bg-surface ds:flex ds:w-full ds:cursor-pointer ds:items-center ds:border ds:font-mono ds:tabular-nums",
|
|
2801
|
+
"ds:border-field-border",
|
|
2802
|
+
CONTROL_SIZE_CLASSES[size],
|
|
2803
|
+
"ds:transition-[color,background-color,border-color,box-shadow] ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)]",
|
|
2804
|
+
"ds:motion-reduce:transition-none",
|
|
2805
|
+
"ds:hover:bg-surface-hover ds:not-disabled:hover:border-field-border-hover",
|
|
2806
|
+
"ds:focus-visible:[border-color:var(--focus-ring-border)] ds:focus-visible:outline-none",
|
|
2807
|
+
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring-field)]",
|
|
2808
|
+
"ds:disabled:bg-bg-disabled ds:disabled:text-fg-disabled ds:disabled:cursor-not-allowed ds:disabled:hover:bg-bg-disabled",
|
|
2809
|
+
"ds:data-[invalid=true]:border-field-border-invalid ds:data-[invalid=true]:focus-visible:border-danger-fg",
|
|
2810
|
+
"ds:data-[invalid=true]:focus-visible:[box-shadow:0_0_0_2px_var(--color-danger-bg)]"
|
|
2696
2811
|
),
|
|
2697
2812
|
children: [
|
|
2698
2813
|
iconPosition === "left" && iconNode,
|
|
@@ -2777,7 +2892,7 @@ DateRangePicker.displayName = "DateRangePicker";
|
|
|
2777
2892
|
var Dialog = DialogPrimitive.Root;
|
|
2778
2893
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
2779
2894
|
var DialogPortal = withPortalContainer(DialogPrimitive.Portal);
|
|
2780
|
-
var DialogOverlay =
|
|
2895
|
+
var DialogOverlay = React30.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
2781
2896
|
Backdrop,
|
|
2782
2897
|
{
|
|
2783
2898
|
as: DialogPrimitive.Overlay,
|
|
@@ -2811,7 +2926,7 @@ var DIALOG_HEIGHTS = {
|
|
|
2811
2926
|
full: "ds:h-[calc(100vh-6rem)]"
|
|
2812
2927
|
};
|
|
2813
2928
|
function useTitleRequired(element) {
|
|
2814
|
-
|
|
2929
|
+
React30.useEffect(() => {
|
|
2815
2930
|
if (process.env.NODE_ENV === "production" || process.env.NODE_ENV === "test") return;
|
|
2816
2931
|
const timer = setTimeout(() => {
|
|
2817
2932
|
const node = element.current;
|
|
@@ -2828,7 +2943,7 @@ function useTitleRequired(element) {
|
|
|
2828
2943
|
return () => clearTimeout(timer);
|
|
2829
2944
|
}, [element]);
|
|
2830
2945
|
}
|
|
2831
|
-
var DialogContent =
|
|
2946
|
+
var DialogContent = React30.forwardRef(
|
|
2832
2947
|
({
|
|
2833
2948
|
size = "md",
|
|
2834
2949
|
height = "auto",
|
|
@@ -2840,7 +2955,7 @@ var DialogContent = React28.forwardRef(
|
|
|
2840
2955
|
children,
|
|
2841
2956
|
...props
|
|
2842
2957
|
}, ref) => {
|
|
2843
|
-
const element =
|
|
2958
|
+
const element = React30.useRef(null);
|
|
2844
2959
|
const mergedRef = useMergedRefs(ref, element);
|
|
2845
2960
|
useTitleRequired(element);
|
|
2846
2961
|
const heightRow = DIALOG_HEIGHTS[height];
|
|
@@ -2878,7 +2993,7 @@ var DialogContent = React28.forwardRef(
|
|
|
2878
2993
|
}
|
|
2879
2994
|
);
|
|
2880
2995
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
2881
|
-
var DialogClose =
|
|
2996
|
+
var DialogClose = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2882
2997
|
DialogPrimitive.Close,
|
|
2883
2998
|
{
|
|
2884
2999
|
ref,
|
|
@@ -2890,15 +3005,15 @@ var DialogClose = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2890
3005
|
DialogClose.displayName = "DialogClose";
|
|
2891
3006
|
var DialogHeader = (props) => /* @__PURE__ */ jsx(OverlayHeader, { anatomy: dialogAnatomy, layout: "inset", dismissGutter: true, ...props });
|
|
2892
3007
|
DialogHeader.displayName = "DialogHeader";
|
|
2893
|
-
var DialogBody =
|
|
3008
|
+
var DialogBody = React30.forwardRef(
|
|
2894
3009
|
({ padding = "none", ...props }, ref) => /* @__PURE__ */ jsx(OverlayBody, { anatomy: dialogAnatomy, layout: "inset", padding, ref, ...props })
|
|
2895
3010
|
);
|
|
2896
3011
|
DialogBody.displayName = "DialogBody";
|
|
2897
3012
|
var DialogFooter = (props) => /* @__PURE__ */ jsx(OverlayFooter, { anatomy: dialogAnatomy, layout: "inset", ...props });
|
|
2898
3013
|
DialogFooter.displayName = "DialogFooter";
|
|
2899
|
-
var DialogTitle =
|
|
3014
|
+
var DialogTitle = React30.forwardRef((props, ref) => /* @__PURE__ */ jsx(OverlayTitle, { as: DialogPrimitive.Title, anatomy: dialogAnatomy, ref, ...props }));
|
|
2900
3015
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
2901
|
-
var DialogDescription =
|
|
3016
|
+
var DialogDescription = React30.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
2902
3017
|
OverlayDescription,
|
|
2903
3018
|
{
|
|
2904
3019
|
as: DialogPrimitive.Description,
|
|
@@ -2928,7 +3043,7 @@ var chipVariants2 = cva(
|
|
|
2928
3043
|
}
|
|
2929
3044
|
}
|
|
2930
3045
|
);
|
|
2931
|
-
var DismissibleChip =
|
|
3046
|
+
var DismissibleChip = React30.forwardRef(function DismissibleChip2({ label, onDismiss, variant, className, ...props }, ref) {
|
|
2932
3047
|
const messages = useDsMessages("dismissibleChip");
|
|
2933
3048
|
return /* @__PURE__ */ jsxs(
|
|
2934
3049
|
"button",
|
|
@@ -3042,7 +3157,7 @@ var DonutChart = forwardRef(function DonutChart2({
|
|
|
3042
3157
|
onBlur: () => setHover(null),
|
|
3043
3158
|
className: cn(
|
|
3044
3159
|
"ds:flex ds:w-full ds:items-center ds:gap-2 ds:rounded-[var(--radius-icon)] ds:px-1.5 ds:py-1 ds:text-left ds:text-sm ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
3045
|
-
hover === i ? "ds:bg-
|
|
3160
|
+
hover === i ? "ds:bg-surface-hover" : "ds:hover:bg-surface-hover"
|
|
3046
3161
|
),
|
|
3047
3162
|
children: [
|
|
3048
3163
|
/* @__PURE__ */ jsx(
|
|
@@ -3262,7 +3377,7 @@ var ErrorState = forwardRef(function ErrorState2({
|
|
|
3262
3377
|
{
|
|
3263
3378
|
className: cn(
|
|
3264
3379
|
"ds:text-fg-3 ds:hover:text-fg ds:mx-auto ds:w-auto ds:gap-1 ds:rounded-md",
|
|
3265
|
-
"ds:px-1.5 ds:py-0.5 ds:text-xs ds:font-medium ds:transition-colors",
|
|
3380
|
+
"ds:px-1.5 ds:py-0.5 ds:text-xs ds:font-medium ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)]",
|
|
3266
3381
|
"ds:motion-reduce:transition-none"
|
|
3267
3382
|
),
|
|
3268
3383
|
children: [
|
|
@@ -3273,7 +3388,7 @@ var ErrorState = forwardRef(function ErrorState2({
|
|
|
3273
3388
|
size: 12,
|
|
3274
3389
|
"aria-hidden": "true",
|
|
3275
3390
|
className: cn(
|
|
3276
|
-
"ds:transition-transform ds:motion-reduce:transition-none",
|
|
3391
|
+
"ds:transition-transform ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
3277
3392
|
detailsOpen && "ds:rotate-180"
|
|
3278
3393
|
)
|
|
3279
3394
|
}
|
|
@@ -3438,7 +3553,7 @@ FormSection.displayName = "FormSection";
|
|
|
3438
3553
|
var HoverCard = HoverCardPrimitive.Root;
|
|
3439
3554
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
3440
3555
|
var HoverCardPortal = withPortalContainer(HoverCardPrimitive.Portal);
|
|
3441
|
-
var HoverCardContent =
|
|
3556
|
+
var HoverCardContent = React30.forwardRef(
|
|
3442
3557
|
({
|
|
3443
3558
|
className,
|
|
3444
3559
|
align = "center",
|
|
@@ -3559,19 +3674,19 @@ function KeyboardShortcutsDialog({
|
|
|
3559
3674
|
messages: messagesProp
|
|
3560
3675
|
} = {}) {
|
|
3561
3676
|
const messages = useDsMessages("keyboardShortcuts", messagesProp);
|
|
3562
|
-
const [internalOpen, setInternalOpen] =
|
|
3677
|
+
const [internalOpen, setInternalOpen] = React30.useState(defaultOpen);
|
|
3563
3678
|
const isControlled = controlledOpen !== void 0;
|
|
3564
3679
|
const open = isControlled ? controlledOpen : internalOpen;
|
|
3565
|
-
const openRef =
|
|
3680
|
+
const openRef = React30.useRef(open);
|
|
3566
3681
|
openRef.current = open;
|
|
3567
|
-
const setOpen =
|
|
3682
|
+
const setOpen = React30.useCallback(
|
|
3568
3683
|
(value) => {
|
|
3569
3684
|
if (!isControlled) setInternalOpen(value);
|
|
3570
3685
|
onOpenChange?.(value);
|
|
3571
3686
|
},
|
|
3572
3687
|
[isControlled, onOpenChange]
|
|
3573
3688
|
);
|
|
3574
|
-
|
|
3689
|
+
React30.useEffect(() => {
|
|
3575
3690
|
if (hotkey === null) return;
|
|
3576
3691
|
function handleKeyDown(e) {
|
|
3577
3692
|
const target = e.target;
|
|
@@ -3610,7 +3725,7 @@ function KeyboardShortcutsDialog({
|
|
|
3610
3725
|
className: "ds:flex ds:items-center ds:justify-between ds:gap-3 ds:py-1",
|
|
3611
3726
|
children: [
|
|
3612
3727
|
/* @__PURE__ */ jsx("span", { className: "ds:text-fg ds:text-sm", children: shortcut.description }),
|
|
3613
|
-
/* @__PURE__ */ jsx("div", { className: "ds:flex ds:shrink-0 ds:items-center ds:gap-1", children: shortcut.keys.map((key, i) => /* @__PURE__ */ jsxs(
|
|
3728
|
+
/* @__PURE__ */ jsx("div", { className: "ds:flex ds:shrink-0 ds:items-center ds:gap-1", children: shortcut.keys.map((key, i) => /* @__PURE__ */ jsxs(React30.Fragment, { children: [
|
|
3614
3729
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "ds:text-fg-4 ds:mx-0.5 ds:text-(length:--text-caption)", children: messages.then }),
|
|
3615
3730
|
/* @__PURE__ */ jsx(Kbd, { children: key })
|
|
3616
3731
|
] }, i)) })
|
|
@@ -3631,7 +3746,7 @@ function KeyboardShortcutsDialog({
|
|
|
3631
3746
|
var labelVariants = cva(
|
|
3632
3747
|
"ds:text-(length:--text-label) ds:font-medium ds:leading-none ds:text-fg ds:select-none ds:peer-disabled:cursor-not-allowed ds:peer-disabled:text-fg-disabled ds:has-[+input:disabled]:text-fg-disabled"
|
|
3633
3748
|
);
|
|
3634
|
-
var Label2 =
|
|
3749
|
+
var Label2 = React30.forwardRef(
|
|
3635
3750
|
function Label3({ children, required, className, id, htmlFor, onClick, ...props }, ref) {
|
|
3636
3751
|
const field = useFieldContext();
|
|
3637
3752
|
const fieldLabelId = useFieldPart("label", id, field !== null);
|
|
@@ -3780,49 +3895,6 @@ var LinkAction = forwardRef(function LinkAction2({ arrow, iconRight, children, c
|
|
|
3780
3895
|
);
|
|
3781
3896
|
});
|
|
3782
3897
|
LinkAction.displayName = "LinkAction";
|
|
3783
|
-
var SKELETON_SURFACE = cn(
|
|
3784
|
-
"skeleton ds:bg-skeleton ds:relative ds:overflow-hidden",
|
|
3785
|
-
"ds:after:absolute ds:after:inset-0 ds:after:-translate-x-full",
|
|
3786
|
-
"ds:after:bg-[linear-gradient(90deg,transparent,var(--color-skeleton-sheen),transparent)]",
|
|
3787
|
-
"ds:motion-safe:after:animate-skeleton-shimmer"
|
|
3788
|
-
);
|
|
3789
|
-
var Skeleton = forwardRef(function Skeleton2({ className, ...props }, ref) {
|
|
3790
|
-
return /* @__PURE__ */ jsx(
|
|
3791
|
-
"div",
|
|
3792
|
-
{
|
|
3793
|
-
ref,
|
|
3794
|
-
className: cn(SKELETON_SURFACE, "ds:rounded-icon", className),
|
|
3795
|
-
"aria-hidden": "true",
|
|
3796
|
-
...props
|
|
3797
|
-
}
|
|
3798
|
-
);
|
|
3799
|
-
});
|
|
3800
|
-
Skeleton.displayName = "Skeleton";
|
|
3801
|
-
var SkeletonText = forwardRef(function SkeletonText2({ lines = 3, className, ...props }, ref) {
|
|
3802
|
-
return /* @__PURE__ */ jsx("div", { ref, className: cn("ds:space-y-2", className), "aria-hidden": "true", ...props, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx(
|
|
3803
|
-
"div",
|
|
3804
|
-
{
|
|
3805
|
-
className: cn(SKELETON_SURFACE, "ds:rounded-icon ds:h-4", i === lines - 1 && "ds:w-3/4")
|
|
3806
|
-
},
|
|
3807
|
-
i
|
|
3808
|
-
)) });
|
|
3809
|
-
});
|
|
3810
|
-
SkeletonText.displayName = "SkeletonText";
|
|
3811
|
-
var SkeletonCircle = forwardRef(
|
|
3812
|
-
function SkeletonCircle2({ size = 40, className, ...props }, ref) {
|
|
3813
|
-
return /* @__PURE__ */ jsx(
|
|
3814
|
-
"div",
|
|
3815
|
-
{
|
|
3816
|
-
ref,
|
|
3817
|
-
className: cn(SKELETON_SURFACE, "ds:rounded-full", className),
|
|
3818
|
-
style: { width: size, height: size },
|
|
3819
|
-
"aria-hidden": "true",
|
|
3820
|
-
...props
|
|
3821
|
-
}
|
|
3822
|
-
);
|
|
3823
|
-
}
|
|
3824
|
-
);
|
|
3825
|
-
SkeletonCircle.displayName = "SkeletonCircle";
|
|
3826
3898
|
var LoadingRows = forwardRef(function LoadingRows2({
|
|
3827
3899
|
count = 3,
|
|
3828
3900
|
rowHeight = "ds:h-14",
|
|
@@ -4049,7 +4121,7 @@ function MultiFilterPill({
|
|
|
4049
4121
|
"span",
|
|
4050
4122
|
{
|
|
4051
4123
|
className: cn(
|
|
4052
|
-
"ds:flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center ds:rounded-[3px] ds:border ds:transition-colors ds:duration-[var(--duration-fast)] ds:motion-reduce:transition-none",
|
|
4124
|
+
"ds:flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center ds:rounded-[3px] ds:border ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
4053
4125
|
isSelected ? "ds:border-brand ds:bg-brand ds:text-fg-on-brand" : "ds:border-rule-strong ds:bg-surface"
|
|
4054
4126
|
),
|
|
4055
4127
|
"aria-hidden": "true",
|
|
@@ -4103,7 +4175,7 @@ function MultiSelectField({
|
|
|
4103
4175
|
size = "md",
|
|
4104
4176
|
id
|
|
4105
4177
|
}) {
|
|
4106
|
-
const selected =
|
|
4178
|
+
const selected = React30.useMemo(
|
|
4107
4179
|
() => new Set(value ? value.split(",").filter(Boolean) : []),
|
|
4108
4180
|
[value]
|
|
4109
4181
|
);
|
|
@@ -4116,7 +4188,7 @@ function MultiSelectField({
|
|
|
4116
4188
|
}
|
|
4117
4189
|
onChange(Array.from(next).join(","));
|
|
4118
4190
|
};
|
|
4119
|
-
const generatedId =
|
|
4191
|
+
const generatedId = React30.useId();
|
|
4120
4192
|
const groupId = id ?? generatedId;
|
|
4121
4193
|
return /* @__PURE__ */ jsxs("div", { className: cn("ds:w-full", className), children: [
|
|
4122
4194
|
/* @__PURE__ */ jsx(
|
|
@@ -4499,7 +4571,7 @@ function OTPInput({
|
|
|
4499
4571
|
"aria-labelledby": ariaLabelledBy,
|
|
4500
4572
|
"aria-describedby": ariaDescribedBy
|
|
4501
4573
|
});
|
|
4502
|
-
const inputRef =
|
|
4574
|
+
const inputRef = React30.useRef(null);
|
|
4503
4575
|
useFormReset$1(inputRef, () => setValue(defaultValue ?? ""), wiring.name, form);
|
|
4504
4576
|
const errorId = `${wiring.id}-error`;
|
|
4505
4577
|
const hasError = wiring["aria-invalid"] === true;
|
|
@@ -4560,7 +4632,7 @@ function OTPSlot({ isActive, char, hasFakeCaret, hasError }) {
|
|
|
4560
4632
|
className: cn(
|
|
4561
4633
|
"ds:relative ds:flex ds:h-12 ds:w-10 ds:items-center ds:justify-center",
|
|
4562
4634
|
"ds:rounded-input ds:bg-surface ds:text-fg ds:border ds:font-mono ds:text-lg ds:tabular-nums",
|
|
4563
|
-
"ds:transition-[color,background-color,border-color,box-shadow] ds:duration-[var(--duration-
|
|
4635
|
+
"ds:transition-[color,background-color,border-color,box-shadow] ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
4564
4636
|
"ds:sm:h-14 ds:sm:w-12 ds:sm:text-xl",
|
|
4565
4637
|
"ds:border-field-border",
|
|
4566
4638
|
isActive && "ds:[border-color:var(--focus-ring-border)] ds:z-[calc(var(--z-base)+10)] ds:[box-shadow:var(--shadow-focus-ring-field)]",
|
|
@@ -5338,10 +5410,25 @@ function CountryFlag2({ iso }) {
|
|
|
5338
5410
|
}
|
|
5339
5411
|
);
|
|
5340
5412
|
}
|
|
5413
|
+
var COUNTRY_SELECT_SIZE_ROWS = {
|
|
5414
|
+
xs: "ds:h-(--control-height-xs) ds:w-[72px] ds:gap-1 ds:px-2 ds:text-xs",
|
|
5415
|
+
sm: "ds:h-(--control-height-sm) ds:w-[80px] ds:gap-1 ds:px-2 ds:text-xs",
|
|
5416
|
+
md: "ds:h-(--control-height-md) ds:w-[90px] ds:gap-1.5 ds:px-2.5 ds:text-sm",
|
|
5417
|
+
lg: "ds:h-(--control-height-lg) ds:w-[100px] ds:gap-2 ds:px-3 ds:text-sm",
|
|
5418
|
+
xl: "ds:h-(--control-height-xl) ds:w-[120px] ds:gap-2 ds:px-3.5 ds:text-base"
|
|
5419
|
+
};
|
|
5420
|
+
var COUNTRY_SELECT_ICON_SIZE = {
|
|
5421
|
+
xs: "ds:size-2.5",
|
|
5422
|
+
sm: "ds:size-2.5",
|
|
5423
|
+
md: "ds:size-3",
|
|
5424
|
+
lg: "ds:size-3.5",
|
|
5425
|
+
xl: "ds:size-4"
|
|
5426
|
+
};
|
|
5341
5427
|
function CountrySelect({
|
|
5342
5428
|
value,
|
|
5343
5429
|
onChange,
|
|
5344
|
-
disabled
|
|
5430
|
+
disabled,
|
|
5431
|
+
size
|
|
5345
5432
|
}) {
|
|
5346
5433
|
const messages = useDsMessages("phoneCountryInput");
|
|
5347
5434
|
const [open, setOpen] = useState(false);
|
|
@@ -5371,14 +5458,17 @@ function CountrySelect({
|
|
|
5371
5458
|
type: "button",
|
|
5372
5459
|
disabled,
|
|
5373
5460
|
"aria-label": messages.selectCountry,
|
|
5374
|
-
className: "ds:rounded-input ds:flex ds:h-9 ds:w-[90px] ds:shrink-0 ds:items-center ds:gap-1.5 ds:border ds:border-field-border ds:bg-surface ds:px-2.5 ds:text-sm ds:text-fg ds:transition-colors ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none ds:motion-reduce:transition-none ds:disabled:cursor-not-allowed ds:disabled:bg-bg-disabled ds:disabled:text-fg-disabled"
|
|
5461
|
+
className: size == null ? "ds:rounded-input ds:flex ds:h-9 ds:w-[90px] ds:shrink-0 ds:items-center ds:gap-1.5 ds:border ds:border-field-border ds:bg-surface ds:px-2.5 ds:text-sm ds:text-fg ds:transition-colors ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none ds:motion-reduce:transition-none ds:disabled:cursor-not-allowed ds:disabled:bg-bg-disabled ds:disabled:text-fg-disabled" : cn(
|
|
5462
|
+
"ds:rounded-input ds:flex ds:shrink-0 ds:items-center ds:border ds:border-field-border ds:bg-surface ds:text-fg ds:transition-colors ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none ds:motion-reduce:transition-none ds:disabled:cursor-not-allowed ds:disabled:bg-bg-disabled ds:disabled:text-fg-disabled",
|
|
5463
|
+
COUNTRY_SELECT_SIZE_ROWS[size]
|
|
5464
|
+
),
|
|
5375
5465
|
children: [
|
|
5376
5466
|
/* @__PURE__ */ jsx(CountryFlag2, { iso: selected.iso }),
|
|
5377
5467
|
/* @__PURE__ */ jsx("span", { className: "ds:text-xs ds:tabular-nums ds:text-fg-3", children: selected.dialCode }),
|
|
5378
5468
|
/* @__PURE__ */ jsx(
|
|
5379
5469
|
ChevronDownIcon,
|
|
5380
5470
|
{
|
|
5381
|
-
className: "ds:ml-auto ds:
|
|
5471
|
+
className: cn("ds:ml-auto ds:shrink-0 ds:text-fg-3", COUNTRY_SELECT_ICON_SIZE[size ?? "md"]),
|
|
5382
5472
|
"aria-hidden": "true"
|
|
5383
5473
|
}
|
|
5384
5474
|
)
|
|
@@ -5546,18 +5636,18 @@ function PriorityIcon({ priority, size = 16, className, ...props }) {
|
|
|
5546
5636
|
)),
|
|
5547
5637
|
priority === "urgent" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5548
5638
|
/* @__PURE__ */ jsx("rect", { x: "2", y: "2", width: "12", height: "12", rx: "3", fill: "var(--ds-color-priority-urgent, var(--color-priority-urgent))" }),
|
|
5549
|
-
/* @__PURE__ */ jsx("rect", { x: "7.25", y: "3.75", width: "1.5", height: "5", rx: "0.75", fill: "
|
|
5550
|
-
/* @__PURE__ */ jsx("circle", { cx: "8", cy: "11.25", r: "1", fill: "
|
|
5639
|
+
/* @__PURE__ */ jsx("rect", { x: "7.25", y: "3.75", width: "1.5", height: "5", rx: "0.75", fill: "var(--ds-color-feedback-danger-solid-fg, var(--color-fg-on-danger))" }),
|
|
5640
|
+
/* @__PURE__ */ jsx("circle", { cx: "8", cy: "11.25", r: "1", fill: "var(--ds-color-feedback-danger-solid-fg, var(--color-fg-on-danger))" })
|
|
5551
5641
|
] })
|
|
5552
5642
|
]
|
|
5553
5643
|
}
|
|
5554
5644
|
);
|
|
5555
5645
|
}
|
|
5556
|
-
var RadioGroupContext =
|
|
5646
|
+
var RadioGroupContext = React30.createContext({
|
|
5557
5647
|
appearance: "plain",
|
|
5558
5648
|
invalid: false
|
|
5559
5649
|
});
|
|
5560
|
-
var RadioGroup2 =
|
|
5650
|
+
var RadioGroup2 = React30.forwardRef(function RadioGroup3({
|
|
5561
5651
|
className,
|
|
5562
5652
|
appearance = "plain",
|
|
5563
5653
|
invalid,
|
|
@@ -5589,12 +5679,12 @@ var RadioGroup2 = React28.forwardRef(function RadioGroup3({
|
|
|
5589
5679
|
defaultProp: defaultValue ?? null,
|
|
5590
5680
|
onChange: onValueChange
|
|
5591
5681
|
});
|
|
5592
|
-
const initialValue =
|
|
5593
|
-
const rootRef =
|
|
5682
|
+
const initialValue = React30.useRef(valueProp ?? defaultValue ?? null);
|
|
5683
|
+
const rootRef = React30.useRef(null);
|
|
5594
5684
|
useFormReset(rootRef, () => setValue(initialValue.current));
|
|
5595
5685
|
const mergedRef = useMergedRefs(ref, rootRef);
|
|
5596
5686
|
const isInvalid = wiring["aria-invalid"] === true;
|
|
5597
|
-
const context =
|
|
5687
|
+
const context = React30.useMemo(
|
|
5598
5688
|
() => ({ appearance, invalid: isInvalid }),
|
|
5599
5689
|
[appearance, isInvalid]
|
|
5600
5690
|
);
|
|
@@ -5627,10 +5717,11 @@ var ITEM_CLASSES = cn(
|
|
|
5627
5717
|
"ds:hover:border-fg-4",
|
|
5628
5718
|
"ds:focus-visible:[border-color:var(--focus-ring-border)] ds:focus-visible:[box-shadow:var(--shadow-focus-ring-field)] ds:focus-visible:outline-none",
|
|
5629
5719
|
"ds:data-[state=checked]:border-brand",
|
|
5630
|
-
"ds:disabled:bg-bg-disabled ds:disabled:border-rule ds:disabled:cursor-not-allowed",
|
|
5720
|
+
"ds:disabled:bg-bg-disabled ds:disabled:border-rule ds:disabled:text-fg-disabled ds:disabled:cursor-not-allowed",
|
|
5721
|
+
"ds:disabled:data-[state=checked]:border-rule",
|
|
5631
5722
|
"ds:aria-[invalid=true]:border-danger-line"
|
|
5632
5723
|
);
|
|
5633
|
-
var RadioGroupItem =
|
|
5724
|
+
var RadioGroupItem = React30.forwardRef(function RadioGroupItem2({
|
|
5634
5725
|
className,
|
|
5635
5726
|
label,
|
|
5636
5727
|
description,
|
|
@@ -5639,9 +5730,9 @@ var RadioGroupItem = React28.forwardRef(function RadioGroupItem2({
|
|
|
5639
5730
|
"aria-invalid": ariaInvalid,
|
|
5640
5731
|
...props
|
|
5641
5732
|
}, ref) {
|
|
5642
|
-
const generatedId =
|
|
5733
|
+
const generatedId = React30.useId();
|
|
5643
5734
|
const id = providedId ?? generatedId;
|
|
5644
|
-
const { appearance, invalid } =
|
|
5735
|
+
const { appearance, invalid } = React30.useContext(RadioGroupContext);
|
|
5645
5736
|
const card = appearance === "card";
|
|
5646
5737
|
const descriptionId = card && description ? `${id}-description` : void 0;
|
|
5647
5738
|
const root = /* @__PURE__ */ jsx(
|
|
@@ -5658,8 +5749,8 @@ var RadioGroupItem = React28.forwardRef(function RadioGroupItem2({
|
|
|
5658
5749
|
RadioGroupPrimitive.Indicator,
|
|
5659
5750
|
{
|
|
5660
5751
|
...slot(radioGroupAnatomy, "indicator"),
|
|
5661
|
-
className: "ds:flex ds:items-center ds:justify-center",
|
|
5662
|
-
children: /* @__PURE__ */ jsx(CircleIcon, { className: "ds:fill-
|
|
5752
|
+
className: "ds:flex ds:items-center ds:justify-center ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:zoom-in-50 ds:duration-[var(--motion-duration-press)] ds:ease-[var(--motion-ease-enter)]",
|
|
5753
|
+
children: /* @__PURE__ */ jsx(CircleIcon, { className: "ds:fill-current ds:size-2", "aria-hidden": "true" })
|
|
5663
5754
|
}
|
|
5664
5755
|
)
|
|
5665
5756
|
}
|
|
@@ -5777,19 +5868,19 @@ function ResponsiveDialog({
|
|
|
5777
5868
|
side,
|
|
5778
5869
|
size = "md"
|
|
5779
5870
|
}) {
|
|
5780
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
5871
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React30.useState(defaultOpen);
|
|
5781
5872
|
const controlled = open !== void 0;
|
|
5782
5873
|
const isOpen = controlled ? open : uncontrolledOpen;
|
|
5783
|
-
const handleOpenChange =
|
|
5874
|
+
const handleOpenChange = React30.useCallback(
|
|
5784
5875
|
(next) => {
|
|
5785
5876
|
if (!controlled) setUncontrolledOpen(next);
|
|
5786
5877
|
onOpenChange?.(next);
|
|
5787
5878
|
},
|
|
5788
5879
|
[controlled, onOpenChange]
|
|
5789
5880
|
);
|
|
5790
|
-
const close =
|
|
5881
|
+
const close = React30.useCallback(() => handleOpenChange(false), [handleOpenChange]);
|
|
5791
5882
|
const hasTitle = title !== void 0 && title !== null && title !== "";
|
|
5792
|
-
|
|
5883
|
+
React30.useEffect(() => {
|
|
5793
5884
|
if (process.env.NODE_ENV === "production" || process.env.NODE_ENV === "test") return;
|
|
5794
5885
|
if (!hasTitle) {
|
|
5795
5886
|
errorOnce(
|
|
@@ -5847,7 +5938,7 @@ var RouteTransition = forwardRef(
|
|
|
5847
5938
|
}
|
|
5848
5939
|
);
|
|
5849
5940
|
RouteTransition.displayName = "RouteTransition";
|
|
5850
|
-
var ScrollArea =
|
|
5941
|
+
var ScrollArea = React30.forwardRef(function ScrollArea2({ className, children, ...props }, ref) {
|
|
5851
5942
|
return /* @__PURE__ */ jsxs(
|
|
5852
5943
|
ScrollAreaPrimitive.Root,
|
|
5853
5944
|
{
|
|
@@ -5870,7 +5961,7 @@ var ScrollArea = React28.forwardRef(function ScrollArea2({ className, children,
|
|
|
5870
5961
|
);
|
|
5871
5962
|
});
|
|
5872
5963
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
5873
|
-
var ScrollBar =
|
|
5964
|
+
var ScrollBar = React30.forwardRef(function ScrollBar2({ className, orientation = "vertical", ...props }, ref) {
|
|
5874
5965
|
return /* @__PURE__ */ jsx(
|
|
5875
5966
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
5876
5967
|
{
|
|
@@ -5910,7 +6001,7 @@ var SEARCH_RESET = "ds:[&::-webkit-search-cancel-button]:appearance-none ds:[&::
|
|
|
5910
6001
|
var SEARCH_INPUT_SIZE_ROWS = {
|
|
5911
6002
|
sm: "ds:h-(--control-height-sm) ds:pl-8 ds:pr-8 ds:text-(length:--control-font-size-sm)",
|
|
5912
6003
|
md: "ds:h-(--control-height-md) ds:pl-9 ds:pr-9 ds:text-(length:--control-font-size-md)",
|
|
5913
|
-
lg: "ds:h-(--
|
|
6004
|
+
lg: "ds:h-(--control-height-lg) ds:pl-10 ds:pr-10 ds:text-sm",
|
|
5914
6005
|
compact: "ds:h-(--control-height-sm) ds:pl-8 ds:pr-8 ds:text-(length:--control-font-size-sm)",
|
|
5915
6006
|
default: "ds:h-(--control-height-lg) ds:pl-9 ds:pr-9 ds:text-sm",
|
|
5916
6007
|
comfortable: "ds:h-(--control-height-xl) ds:pl-10 ds:pr-10 ds:text-base"
|
|
@@ -5921,25 +6012,14 @@ function searchInputVariants({
|
|
|
5921
6012
|
class: classProp,
|
|
5922
6013
|
className
|
|
5923
6014
|
} = {}) {
|
|
5924
|
-
const
|
|
5925
|
-
// `sm` is the dense control tier: h-8 + 13px, so a search box lines up
|
|
5926
|
-
// pixel-for-pixel (height AND text) with Button / MultiFilterPill /
|
|
5927
|
-
// FilterChip at their `sm` tier in a toolbar row.
|
|
5928
|
-
sm: "ds:h-8 ds:pl-8 ds:pr-8 ds:text-[13px]",
|
|
5929
|
-
md: "ds:h-9 ds:pl-9 ds:pr-9 ds:text-[13px]",
|
|
5930
|
-
lg: "ds:h-11 ds:pl-10 ds:pr-10 ds:text-sm",
|
|
5931
|
-
compact: "ds:h-8 ds:pl-8 ds:pr-8 ds:text-[13px]",
|
|
5932
|
-
default: "ds:h-10 ds:pl-9 ds:pr-9 ds:text-sm",
|
|
5933
|
-
comfortable: "ds:h-12 ds:pl-10 ds:pr-10 ds:text-base"
|
|
5934
|
-
};
|
|
5935
|
-
const row = size ? SEARCH_INPUT_SIZE_ROWS[size] : LEGACY_ROWS[inputSize ?? "md"];
|
|
6015
|
+
const row = SEARCH_INPUT_SIZE_ROWS[size ?? inputSize ?? "md"];
|
|
5936
6016
|
return controlChrome({
|
|
5937
6017
|
variant: "default",
|
|
5938
6018
|
size: null,
|
|
5939
6019
|
class: cn(SEARCH_RESET, row, classProp, className) || void 0
|
|
5940
6020
|
});
|
|
5941
6021
|
}
|
|
5942
|
-
var SearchInput =
|
|
6022
|
+
var SearchInput = React30.forwardRef(
|
|
5943
6023
|
function SearchInput2({
|
|
5944
6024
|
value,
|
|
5945
6025
|
onValueChange,
|
|
@@ -5978,20 +6058,20 @@ var SearchInput = React28.forwardRef(
|
|
|
5978
6058
|
"aria-labelledby": ariaLabelledBy,
|
|
5979
6059
|
"aria-describedby": ariaDescribedBy
|
|
5980
6060
|
});
|
|
5981
|
-
const inputRef =
|
|
6061
|
+
const inputRef = React30.useRef(null);
|
|
5982
6062
|
const setRefs = useMergedRefs(ref, wiringRef, inputRef);
|
|
5983
6063
|
const debouncedValue = useDebounce(value, debounceMs);
|
|
5984
|
-
const isFirstRender =
|
|
5985
|
-
|
|
6064
|
+
const isFirstRender = React30.useRef(true);
|
|
6065
|
+
React30.useEffect(() => {
|
|
5986
6066
|
if (isFirstRender.current) {
|
|
5987
6067
|
isFirstRender.current = false;
|
|
5988
6068
|
return;
|
|
5989
6069
|
}
|
|
5990
6070
|
onSearch?.(debouncedValue);
|
|
5991
6071
|
}, [debouncedValue, onSearch]);
|
|
5992
|
-
const latestChange =
|
|
6072
|
+
const latestChange = React30.useRef(onValueChange);
|
|
5993
6073
|
latestChange.current = onValueChange;
|
|
5994
|
-
|
|
6074
|
+
React30.useEffect(() => {
|
|
5995
6075
|
const owner = inputRef.current?.form;
|
|
5996
6076
|
if (!owner) return;
|
|
5997
6077
|
const handle = () => latestChange.current("");
|
|
@@ -6121,7 +6201,8 @@ function SearchSelect({
|
|
|
6121
6201
|
"aria-label": ariaLabel,
|
|
6122
6202
|
"aria-labelledby": ariaLabelledBy,
|
|
6123
6203
|
"aria-describedby": ariaDescribedBy,
|
|
6124
|
-
id
|
|
6204
|
+
id,
|
|
6205
|
+
size
|
|
6125
6206
|
}) {
|
|
6126
6207
|
deprecate(
|
|
6127
6208
|
CONTRACT,
|
|
@@ -6133,20 +6214,20 @@ function SearchSelect({
|
|
|
6133
6214
|
const createNewLabel = createNewLabelProp ?? copy.createNew;
|
|
6134
6215
|
const isSingleMode = value !== void 0 || onValueChange !== void 0;
|
|
6135
6216
|
const closeOnSelect = isSingleMode || closeOnSelectProp;
|
|
6136
|
-
const byId =
|
|
6217
|
+
const byId = React30.useMemo(() => new Map(options.map((o) => [o.id, o])), [options]);
|
|
6137
6218
|
const singleSelectedOption = isSingleMode && value ? byId.get(value) ?? null : null;
|
|
6138
|
-
const selected =
|
|
6219
|
+
const selected = React30.useMemo(
|
|
6139
6220
|
() => isSingleMode ? singleSelectedOption ? [singleSelectedOption] : [] : selectedProp ?? [],
|
|
6140
6221
|
[isSingleMode, singleSelectedOption, selectedProp]
|
|
6141
6222
|
);
|
|
6142
|
-
const selectedIds =
|
|
6143
|
-
const [open, setOpen] =
|
|
6144
|
-
const [search, setSearch] =
|
|
6145
|
-
const [activeChip, setActiveChip] =
|
|
6146
|
-
const hasGroups =
|
|
6147
|
-
const hasLeadingDot =
|
|
6148
|
-
const pinnedSet =
|
|
6149
|
-
const chips =
|
|
6223
|
+
const selectedIds = React30.useMemo(() => selected.map((s) => s.id), [selected]);
|
|
6224
|
+
const [open, setOpen] = React30.useState(false);
|
|
6225
|
+
const [search, setSearch] = React30.useState("");
|
|
6226
|
+
const [activeChip, setActiveChip] = React30.useState(null);
|
|
6227
|
+
const hasGroups = React30.useMemo(() => options.some((o) => o.group != null), [options]);
|
|
6228
|
+
const hasLeadingDot = React30.useMemo(() => options.some((o) => !!o.color), [options]);
|
|
6229
|
+
const pinnedSet = React30.useMemo(() => new Set(pinnedGroups ?? []), [pinnedGroups]);
|
|
6230
|
+
const chips = React30.useMemo(() => {
|
|
6150
6231
|
if (!groupFilter || !hasGroups) return [];
|
|
6151
6232
|
const seen = [];
|
|
6152
6233
|
for (const option of options) {
|
|
@@ -6158,7 +6239,7 @@ function SearchSelect({
|
|
|
6158
6239
|
}, [groupFilter, hasGroups, options, pinnedSet]);
|
|
6159
6240
|
const chipActive = chips.length > 0 && activeChip !== null;
|
|
6160
6241
|
const trimmed = search.trim();
|
|
6161
|
-
const groupCounts =
|
|
6242
|
+
const groupCounts = React30.useMemo(() => {
|
|
6162
6243
|
const counts = /* @__PURE__ */ new Map();
|
|
6163
6244
|
if (!showGroupCounts || trimmed) return counts;
|
|
6164
6245
|
for (const option of options) {
|
|
@@ -6168,7 +6249,7 @@ function SearchSelect({
|
|
|
6168
6249
|
}
|
|
6169
6250
|
return counts;
|
|
6170
6251
|
}, [showGroupCounts, trimmed, options, selectedIds]);
|
|
6171
|
-
const rows =
|
|
6252
|
+
const rows = React30.useMemo(
|
|
6172
6253
|
() => options.filter((option) => !chipActive || option.group === activeChip).map((option) => {
|
|
6173
6254
|
const heading = chipActive ? void 0 : option.group ?? void 0;
|
|
6174
6255
|
const count = heading ? groupCounts.get(heading) : void 0;
|
|
@@ -6191,7 +6272,7 @@ function SearchSelect({
|
|
|
6191
6272
|
};
|
|
6192
6273
|
const singleValue = closeOnSelect ? selected[0] ?? null : null;
|
|
6193
6274
|
const showValue = singleValue !== null && !open;
|
|
6194
|
-
const renderValue =
|
|
6275
|
+
const renderValue = React30.useCallback(
|
|
6195
6276
|
(row) => {
|
|
6196
6277
|
const source = sourceOf(row);
|
|
6197
6278
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -6220,7 +6301,7 @@ function SearchSelect({
|
|
|
6220
6301
|
},
|
|
6221
6302
|
[descriptionVariant]
|
|
6222
6303
|
);
|
|
6223
|
-
const messages =
|
|
6304
|
+
const messages = React30.useMemo(
|
|
6224
6305
|
() => ({
|
|
6225
6306
|
empty: search ? copy.empty : copy.noOptions,
|
|
6226
6307
|
clear: singleValue ? copy.clearNamed(singleValue.label) : copy.clear,
|
|
@@ -6270,6 +6351,7 @@ function SearchSelect({
|
|
|
6270
6351
|
const shared = {
|
|
6271
6352
|
options: rows,
|
|
6272
6353
|
id,
|
|
6354
|
+
size,
|
|
6273
6355
|
"aria-label": ariaLabel ?? (ariaLabelledBy ? void 0 : placeholder),
|
|
6274
6356
|
"aria-labelledby": ariaLabelledBy,
|
|
6275
6357
|
"aria-describedby": ariaDescribedBy,
|
|
@@ -6359,7 +6441,7 @@ function SearchSelect({
|
|
|
6359
6441
|
] });
|
|
6360
6442
|
}
|
|
6361
6443
|
SearchSelect.displayName = "SearchSelect";
|
|
6362
|
-
var Separator2 =
|
|
6444
|
+
var Separator2 = React30.forwardRef(function Separator3({ className, orientation = "horizontal", decorative = true, ...props }, ref) {
|
|
6363
6445
|
return /* @__PURE__ */ jsx(
|
|
6364
6446
|
SeparatorPrimitive.Root,
|
|
6365
6447
|
{
|
|
@@ -6496,7 +6578,7 @@ var THUMB_SIZE = {
|
|
|
6496
6578
|
md: "ds:size-4",
|
|
6497
6579
|
lg: "ds:size-(--control-icon-xl)"
|
|
6498
6580
|
};
|
|
6499
|
-
var Slider =
|
|
6581
|
+
var Slider = React30.forwardRef(
|
|
6500
6582
|
function Slider2({
|
|
6501
6583
|
className,
|
|
6502
6584
|
label,
|
|
@@ -6533,8 +6615,8 @@ var Slider = React28.forwardRef(
|
|
|
6533
6615
|
defaultProp: defaultValue,
|
|
6534
6616
|
onChange: onValueChange
|
|
6535
6617
|
});
|
|
6536
|
-
const initialValue =
|
|
6537
|
-
const rootRef =
|
|
6618
|
+
const initialValue = React30.useRef(valueProp ?? defaultValue);
|
|
6619
|
+
const rootRef = React30.useRef(null);
|
|
6538
6620
|
useFormReset(rootRef, () => setValue(initialValue.current), form);
|
|
6539
6621
|
const mergedRef = useMergedRefs(ref, rootRef);
|
|
6540
6622
|
const displayValue = (() => {
|
|
@@ -6890,7 +6972,7 @@ var StackedBarChart = forwardRef(
|
|
|
6890
6972
|
children: ticks.map((t) => /* @__PURE__ */ jsx(
|
|
6891
6973
|
"span",
|
|
6892
6974
|
{
|
|
6893
|
-
className: "ds:absolute ds:right-0 ds
|
|
6975
|
+
className: "ds:absolute ds:right-0 ds:translate-y-1/2 ds:leading-none",
|
|
6894
6976
|
style: { bottom: `${t / niceMax * 100}%` },
|
|
6895
6977
|
children: formatValue(t)
|
|
6896
6978
|
},
|
|
@@ -7313,7 +7395,9 @@ var StickyActionBar = forwardRef(
|
|
|
7313
7395
|
className: cn(
|
|
7314
7396
|
mode === "fixed" ? "ds:fixed" : "ds:sticky",
|
|
7315
7397
|
"ds:inset-x-0 ds:z-[calc(var(--z-base)+20)] ds:flex ds:flex-wrap ds:items-center ds:gap-3",
|
|
7316
|
-
|
|
7398
|
+
// Translucent only where the blur behind it exists; an opaque bar
|
|
7399
|
+
// otherwise, so page content never shows through un-blurred.
|
|
7400
|
+
"ds:border-t ds:border-rule ds:bg-surface ds:px-4 ds:py-3 ds:backdrop-blur-md ds:sm:px-6",
|
|
7317
7401
|
"ds:supports-[backdrop-filter]:bg-surface/80",
|
|
7318
7402
|
offsetForMobileNav ? "ds:bottom-[calc(3.5rem_+_env(safe-area-inset-bottom))] ds:sm:bottom-0" : "ds:bottom-0",
|
|
7319
7403
|
className
|
|
@@ -7442,6 +7526,55 @@ var SuiteProgress = forwardRef(function SuiteProgress2({
|
|
|
7442
7526
|
);
|
|
7443
7527
|
});
|
|
7444
7528
|
SuiteProgress.displayName = "SuiteProgress";
|
|
7529
|
+
var TableDensityToggle = React30.forwardRef(
|
|
7530
|
+
function TableDensityToggle2({
|
|
7531
|
+
value,
|
|
7532
|
+
onValueChange,
|
|
7533
|
+
size = "sm",
|
|
7534
|
+
messages: messagesOverride,
|
|
7535
|
+
"aria-label": ariaLabel,
|
|
7536
|
+
"aria-labelledby": ariaLabelledBy,
|
|
7537
|
+
className
|
|
7538
|
+
}, ref) {
|
|
7539
|
+
const messages = useDsMessages("tableDensity", messagesOverride);
|
|
7540
|
+
const itemClassName = "ds:aspect-square ds:px-0 ds:[&_svg]:size-4";
|
|
7541
|
+
return /* @__PURE__ */ jsxs(
|
|
7542
|
+
ToggleGroup,
|
|
7543
|
+
{
|
|
7544
|
+
ref,
|
|
7545
|
+
type: "single",
|
|
7546
|
+
variant: "segmented",
|
|
7547
|
+
size,
|
|
7548
|
+
value,
|
|
7549
|
+
onValueChange: (next) => {
|
|
7550
|
+
if (next) onValueChange(next);
|
|
7551
|
+
},
|
|
7552
|
+
"aria-label": ariaLabelledBy ? void 0 : ariaLabel ?? messages.label,
|
|
7553
|
+
"aria-labelledby": ariaLabelledBy,
|
|
7554
|
+
className,
|
|
7555
|
+
children: [
|
|
7556
|
+
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
7557
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
7558
|
+
ToggleGroupItem,
|
|
7559
|
+
{
|
|
7560
|
+
value: "comfortable",
|
|
7561
|
+
"aria-label": messages.comfortable,
|
|
7562
|
+
className: itemClassName,
|
|
7563
|
+
children: /* @__PURE__ */ jsx(RowsIcon, {})
|
|
7564
|
+
}
|
|
7565
|
+
) }),
|
|
7566
|
+
/* @__PURE__ */ jsx(TooltipContent, { children: messages.comfortable })
|
|
7567
|
+
] }),
|
|
7568
|
+
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
7569
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(ToggleGroupItem, { value: "compact", "aria-label": messages.compact, className: itemClassName, children: /* @__PURE__ */ jsx(Rows4Icon, {}) }) }),
|
|
7570
|
+
/* @__PURE__ */ jsx(TooltipContent, { children: messages.compact })
|
|
7571
|
+
] })
|
|
7572
|
+
]
|
|
7573
|
+
}
|
|
7574
|
+
);
|
|
7575
|
+
}
|
|
7576
|
+
);
|
|
7577
|
+
TableDensityToggle.displayName = "TableDensityToggle";
|
|
7445
7578
|
var ToastContext = createContext(null);
|
|
7446
7579
|
function useToast() {
|
|
7447
7580
|
const ctx = useContext(ToastContext);
|
|
@@ -8097,7 +8230,7 @@ var StatusBadge = forwardRef(function StatusBadge2({
|
|
|
8097
8230
|
className: cn(
|
|
8098
8231
|
"ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center",
|
|
8099
8232
|
// The dot is its own 6px box, as on Badge; glyphs and the spinner sit in the 14px icon box.
|
|
8100
|
-
!showDot && "ds:size-3.5"
|
|
8233
|
+
!showDot && "ds:size-3.5 ds:[&>svg]:max-h-full ds:[&>svg]:max-w-full"
|
|
8101
8234
|
),
|
|
8102
8235
|
"aria-hidden": "true",
|
|
8103
8236
|
children: indicator
|
|
@@ -8188,6 +8321,9 @@ function MultiSelect(props) {
|
|
|
8188
8321
|
return /* @__PURE__ */ jsx(Combobox, { ...props, multiple: true });
|
|
8189
8322
|
}
|
|
8190
8323
|
MultiSelect.displayName = "MultiSelect";
|
|
8324
|
+
|
|
8325
|
+
// src/foundation/use-reduced-motion.ts
|
|
8326
|
+
var REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
|
|
8191
8327
|
var statusLabel = {
|
|
8192
8328
|
"not-started": "Not started",
|
|
8193
8329
|
"in-progress": "In progress",
|
|
@@ -8236,8 +8372,9 @@ var QuestionnairePanel = forwardRef(
|
|
|
8236
8372
|
const selectedCardRef = useRef(null);
|
|
8237
8373
|
const titleId = useId();
|
|
8238
8374
|
useEffect(() => {
|
|
8375
|
+
const reduce = typeof window !== "undefined" && window.matchMedia?.(REDUCED_MOTION_QUERY).matches;
|
|
8239
8376
|
selectedCardRef.current?.scrollIntoView({
|
|
8240
|
-
behavior: "smooth",
|
|
8377
|
+
behavior: reduce ? "auto" : "smooth",
|
|
8241
8378
|
block: "center",
|
|
8242
8379
|
inline: "center"
|
|
8243
8380
|
});
|
|
@@ -8272,7 +8409,7 @@ var QuestionnairePanel = forwardRef(
|
|
|
8272
8409
|
"aria-expanded": isOpen,
|
|
8273
8410
|
className: cn(
|
|
8274
8411
|
"ds:text-brand ds:flex ds:h-8 ds:w-full ds:items-center ds:gap-2 ds:px-4 ds:text-left ds:text-[11px] ds:font-bold ds:tracking-[0.08em] ds:uppercase",
|
|
8275
|
-
"ds:hover:bg-brand-bg/50 ds:transition-colors ds:duration-[var(--duration-
|
|
8412
|
+
"ds:hover:bg-brand-bg/50 ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
8276
8413
|
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none"
|
|
8277
8414
|
),
|
|
8278
8415
|
children: [
|
|
@@ -8284,7 +8421,7 @@ var QuestionnairePanel = forwardRef(
|
|
|
8284
8421
|
size: 13,
|
|
8285
8422
|
"aria-hidden": "true",
|
|
8286
8423
|
className: cn(
|
|
8287
|
-
"ds:text-brand ds:transition-transform ds:duration-[var(--duration-
|
|
8424
|
+
"ds:text-brand ds:transition-transform ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
8288
8425
|
!isOpen && "ds:-rotate-90"
|
|
8289
8426
|
)
|
|
8290
8427
|
}
|
|
@@ -8303,7 +8440,7 @@ var QuestionnairePanel = forwardRef(
|
|
|
8303
8440
|
"data-active": selected ? "true" : void 0,
|
|
8304
8441
|
className: cn(
|
|
8305
8442
|
"ds:group ds:flex ds:h-8 ds:w-full ds:items-center ds:gap-3 ds:px-5 ds:text-left",
|
|
8306
|
-
"ds:text-fg-2 ds:transition-colors ds:duration-[var(--duration-
|
|
8443
|
+
"ds:text-fg-2 ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
8307
8444
|
"ds:hover:bg-surface-hover ds:hover:text-fg",
|
|
8308
8445
|
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
|
|
8309
8446
|
selected && "ds:bg-brand-bg ds:text-brand ds:font-semibold"
|
|
@@ -8542,7 +8679,9 @@ var FolderTree = forwardRef(function FolderTree2({ nodes, activeId, onSelect, de
|
|
|
8542
8679
|
toggle(node.id);
|
|
8543
8680
|
},
|
|
8544
8681
|
className: cn(
|
|
8545
|
-
"ds:shrink-0 ds:text-fg-4 ds:
|
|
8682
|
+
"ds:shrink-0 ds:rounded-icon ds:text-fg-4 ds:hover:text-fg-2",
|
|
8683
|
+
"ds:transition-[color,transform] ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
8684
|
+
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
8546
8685
|
isOpen && "ds:rotate-90"
|
|
8547
8686
|
),
|
|
8548
8687
|
children: /* @__PURE__ */ jsx(ChevronRightIcon, { size: 13, "aria-hidden": "true" })
|
|
@@ -8617,7 +8756,13 @@ function SegmentedControl({
|
|
|
8617
8756
|
...disabled !== void 0 && { disabled },
|
|
8618
8757
|
"aria-label": aria["aria-label"],
|
|
8619
8758
|
"aria-labelledby": aria["aria-labelledby"],
|
|
8620
|
-
className: cn(
|
|
8759
|
+
className: cn(
|
|
8760
|
+
// `segmented` gets its track chrome from `ToggleGroup` itself
|
|
8761
|
+
// (quiet surface-sunken well, control radius, hairline border) —
|
|
8762
|
+
// this preset's own bare pill track is the `default`/`outline` look.
|
|
8763
|
+
variant === "segmented" ? void 0 : "ds:bg-bg-2 ds:rounded-pill ds:p-0.5",
|
|
8764
|
+
className
|
|
8765
|
+
),
|
|
8621
8766
|
children: options.map((option) => /* @__PURE__ */ jsxs(
|
|
8622
8767
|
ToggleGroupItem,
|
|
8623
8768
|
{
|
|
@@ -8686,6 +8831,195 @@ var Content6 = forwardRef(function Content7({ padding = "default", padTop, padBo
|
|
|
8686
8831
|
);
|
|
8687
8832
|
});
|
|
8688
8833
|
Content6.displayName = "Content";
|
|
8834
|
+
function matchesPath(href, currentPath, mode = "prefix") {
|
|
8835
|
+
if (currentPath === href) return true;
|
|
8836
|
+
if (mode === "exact") return false;
|
|
8837
|
+
return currentPath.startsWith(href.endsWith("/") ? href : `${href}/`);
|
|
8838
|
+
}
|
|
8839
|
+
function findActiveId(sections, currentPath) {
|
|
8840
|
+
let activeId = null;
|
|
8841
|
+
let longest = -1;
|
|
8842
|
+
const visit = (items) => {
|
|
8843
|
+
for (const item of items) {
|
|
8844
|
+
if (matchesPath(item.href, currentPath, item.match) && item.href.length > longest) {
|
|
8845
|
+
longest = item.href.length;
|
|
8846
|
+
activeId = item.id;
|
|
8847
|
+
}
|
|
8848
|
+
if (item.children) visit(item.children);
|
|
8849
|
+
}
|
|
8850
|
+
};
|
|
8851
|
+
for (const section of sections) visit(section.items);
|
|
8852
|
+
return activeId;
|
|
8853
|
+
}
|
|
8854
|
+
function hasActiveDescendant(item, activeId) {
|
|
8855
|
+
if (!item.children || activeId == null) return false;
|
|
8856
|
+
return item.children.some((child) => child.id === activeId || hasActiveDescendant(child, activeId));
|
|
8857
|
+
}
|
|
8858
|
+
var TRUNCATED_LABEL_CLASSNAME = "ds:line-clamp-none ds:truncate";
|
|
8859
|
+
function getNodeText(node) {
|
|
8860
|
+
if (node == null || typeof node === "boolean") return "";
|
|
8861
|
+
if (typeof node === "string" || typeof node === "number") return String(node);
|
|
8862
|
+
if (Array.isArray(node)) return node.map(getNodeText).filter(Boolean).join(" ");
|
|
8863
|
+
if (React30.isValidElement(node)) {
|
|
8864
|
+
return getNodeText(node.props.children);
|
|
8865
|
+
}
|
|
8866
|
+
return "";
|
|
8867
|
+
}
|
|
8868
|
+
function getAccessibleLabel(item) {
|
|
8869
|
+
const parts = [getNodeText(item.label), item.badge != null ? getNodeText(item.badge) : ""];
|
|
8870
|
+
return parts.filter(Boolean).join(", ") || void 0;
|
|
8871
|
+
}
|
|
8872
|
+
function AppSidebarItemContent({ item, showTitle }) {
|
|
8873
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8874
|
+
item.icon,
|
|
8875
|
+
/* @__PURE__ */ jsx(
|
|
8876
|
+
SidebarLinkLabel,
|
|
8877
|
+
{
|
|
8878
|
+
className: TRUNCATED_LABEL_CLASSNAME,
|
|
8879
|
+
title: showTitle && typeof item.label === "string" ? item.label : void 0,
|
|
8880
|
+
children: item.label
|
|
8881
|
+
}
|
|
8882
|
+
),
|
|
8883
|
+
item.badge != null && /* @__PURE__ */ jsx(SidebarLinkBadge, { tone: item.badgeTone, children: item.badge })
|
|
8884
|
+
] });
|
|
8885
|
+
}
|
|
8886
|
+
function AppSidebarLeafLink({
|
|
8887
|
+
item,
|
|
8888
|
+
active,
|
|
8889
|
+
showTitle,
|
|
8890
|
+
RouterLink
|
|
8891
|
+
}) {
|
|
8892
|
+
return /* @__PURE__ */ jsx(SidebarLink, { asChild: true, active, "aria-label": getAccessibleLabel(item), children: /* @__PURE__ */ jsx(RouterLink, { href: item.href, ...item.linkProps, children: /* @__PURE__ */ jsx(AppSidebarItemContent, { item, showTitle }) }) });
|
|
8893
|
+
}
|
|
8894
|
+
function AppSidebarRow({
|
|
8895
|
+
item,
|
|
8896
|
+
activeId,
|
|
8897
|
+
showTitle,
|
|
8898
|
+
RouterLink
|
|
8899
|
+
}) {
|
|
8900
|
+
const active = item.id === activeId;
|
|
8901
|
+
if (!item.children || item.children.length === 0) {
|
|
8902
|
+
return /* @__PURE__ */ jsx(AppSidebarLeafLink, { item, active, showTitle, RouterLink });
|
|
8903
|
+
}
|
|
8904
|
+
return /* @__PURE__ */ jsx(
|
|
8905
|
+
SidebarLinkGroup,
|
|
8906
|
+
{
|
|
8907
|
+
id: item.id,
|
|
8908
|
+
icon: item.icon,
|
|
8909
|
+
label: (
|
|
8910
|
+
// `SidebarLinkGroup` wraps `label` in its own frozen `line-clamp-1`
|
|
8911
|
+
// span (not ours to override via className), so truncation has to
|
|
8912
|
+
// come from this inner block instead: a definite width (`w-full`)
|
|
8913
|
+
// plus the standard ellipsis trio truncates regardless of the
|
|
8914
|
+
// ancestor's `-webkit-box` display.
|
|
8915
|
+
/* @__PURE__ */ jsx(
|
|
8916
|
+
"span",
|
|
8917
|
+
{
|
|
8918
|
+
className: "ds:block ds:w-full ds:truncate",
|
|
8919
|
+
title: showTitle && typeof item.label === "string" ? item.label : void 0,
|
|
8920
|
+
children: item.label
|
|
8921
|
+
}
|
|
8922
|
+
)
|
|
8923
|
+
),
|
|
8924
|
+
href: item.href,
|
|
8925
|
+
active,
|
|
8926
|
+
defaultOpen: active || hasActiveDescendant(item, activeId),
|
|
8927
|
+
children: item.children.map((child) => /* @__PURE__ */ jsx(AppSidebarRow, { item: child, activeId, showTitle, RouterLink }, child.id))
|
|
8928
|
+
}
|
|
8929
|
+
);
|
|
8930
|
+
}
|
|
8931
|
+
function AppSidebarNav({
|
|
8932
|
+
sections,
|
|
8933
|
+
currentPath,
|
|
8934
|
+
sectionClassName,
|
|
8935
|
+
collapsible = false
|
|
8936
|
+
}) {
|
|
8937
|
+
const RouterLink = useLinkComponent() ?? PlainLink;
|
|
8938
|
+
const activeId = React30.useMemo(() => findActiveId(sections, currentPath), [sections, currentPath]);
|
|
8939
|
+
const { state } = useSidebarState();
|
|
8940
|
+
const showTitle = !(collapsible && state === "rail");
|
|
8941
|
+
return /* @__PURE__ */ jsx(Fragment, { children: sections.map((section) => /* @__PURE__ */ jsx(
|
|
8942
|
+
SidebarSection,
|
|
8943
|
+
{
|
|
8944
|
+
label: section.label,
|
|
8945
|
+
headerActions: section.headerActions,
|
|
8946
|
+
className: sectionClassName,
|
|
8947
|
+
children: section.items.map((item) => /* @__PURE__ */ jsx(
|
|
8948
|
+
AppSidebarRow,
|
|
8949
|
+
{
|
|
8950
|
+
item,
|
|
8951
|
+
activeId,
|
|
8952
|
+
showTitle,
|
|
8953
|
+
RouterLink
|
|
8954
|
+
},
|
|
8955
|
+
item.id
|
|
8956
|
+
))
|
|
8957
|
+
},
|
|
8958
|
+
section.id
|
|
8959
|
+
)) });
|
|
8960
|
+
}
|
|
8961
|
+
AppSidebarNav.displayName = "AppSidebarNav";
|
|
8962
|
+
var AppSidebar = React30.forwardRef(function AppSidebar2({
|
|
8963
|
+
sections,
|
|
8964
|
+
currentPath,
|
|
8965
|
+
sectionClassName,
|
|
8966
|
+
brand,
|
|
8967
|
+
footer,
|
|
8968
|
+
user,
|
|
8969
|
+
variant = "flush",
|
|
8970
|
+
collapsible,
|
|
8971
|
+
className,
|
|
8972
|
+
classNames,
|
|
8973
|
+
...props
|
|
8974
|
+
}, ref) {
|
|
8975
|
+
return /* @__PURE__ */ jsxs(
|
|
8976
|
+
Sidebar,
|
|
8977
|
+
{
|
|
8978
|
+
ref,
|
|
8979
|
+
variant,
|
|
8980
|
+
...collapsible !== void 0 && { collapsible },
|
|
8981
|
+
className: cn(classNames?.root, className),
|
|
8982
|
+
...props,
|
|
8983
|
+
children: [
|
|
8984
|
+
brand,
|
|
8985
|
+
/* @__PURE__ */ jsx(
|
|
8986
|
+
AppSidebarNav,
|
|
8987
|
+
{
|
|
8988
|
+
sections,
|
|
8989
|
+
currentPath,
|
|
8990
|
+
sectionClassName: cn(classNames?.section, sectionClassName),
|
|
8991
|
+
collapsible
|
|
8992
|
+
}
|
|
8993
|
+
),
|
|
8994
|
+
(footer != null || user != null) && /* @__PURE__ */ jsxs(SidebarFooter, { className: "ds:mt-auto ds:border-t-0 ds:px-0 ds:pt-2 ds:pb-0", children: [
|
|
8995
|
+
footer,
|
|
8996
|
+
user != null && /* @__PURE__ */ jsx(
|
|
8997
|
+
"div",
|
|
8998
|
+
{
|
|
8999
|
+
className: cn(
|
|
9000
|
+
"ds:flex ds:w-full ds:min-w-0 ds:items-center ds:gap-2.5 ds:border-rule ds:border-t ds:px-2 ds:pt-2.5",
|
|
9001
|
+
// <SidebarUser> already renders a 28px avatar (`size="sm"`)
|
|
9002
|
+
// and a 13px/medium name — both already the body-sm role's
|
|
9003
|
+
// computed size. Only the subtitle moves off its default
|
|
9004
|
+
// fg-4/mono treatment, reached through the part's own
|
|
9005
|
+
// `data-slot` (ADR-008) instead of a second copy of
|
|
9006
|
+
// SidebarUser's markup.
|
|
9007
|
+
"ds:[&_[data-slot=sidebar-user-subtitle]]:font-sans ds:[&_[data-slot=sidebar-user-subtitle]]:text-caption ds:[&_[data-slot=sidebar-user-subtitle]]:text-fg-3",
|
|
9008
|
+
// Rail: the card's border/padding has nothing left to frame
|
|
9009
|
+
// once the name/subtitle collapse to a lone avatar —
|
|
9010
|
+
// <SidebarUser> already carries `data-collapsed` for it.
|
|
9011
|
+
"ds:has-[[data-collapsed]]:border-0 ds:has-[[data-collapsed]]:px-0 ds:has-[[data-collapsed]]:pt-0",
|
|
9012
|
+
classNames?.footer
|
|
9013
|
+
),
|
|
9014
|
+
children: /* @__PURE__ */ jsx(SidebarUser, { ...user })
|
|
9015
|
+
}
|
|
9016
|
+
)
|
|
9017
|
+
] })
|
|
9018
|
+
]
|
|
9019
|
+
}
|
|
9020
|
+
);
|
|
9021
|
+
});
|
|
9022
|
+
AppSidebar.displayName = "AppSidebar";
|
|
8689
9023
|
var AppHeader = forwardRef(function AppHeader2({ className, ...props }, ref) {
|
|
8690
9024
|
return /* @__PURE__ */ jsx(
|
|
8691
9025
|
"header",
|
|
@@ -9305,7 +9639,12 @@ var KanbanColumn = forwardRef(function KanbanColumn2({ title, count, className,
|
|
|
9305
9639
|
KanbanColumn.displayName = "KanbanColumn";
|
|
9306
9640
|
var kanbanCardBase = cn(
|
|
9307
9641
|
"ds:bg-surface ds:border ds:border-rule ds:rounded-card ds:shadow-quiet ds:p-3 ds:space-y-2 ds:cursor-grab",
|
|
9308
|
-
|
|
9642
|
+
// Card `interactive`'s lift (F14): a shadow step, no geometry, so a column
|
|
9643
|
+
// never jitters under the pointer.
|
|
9644
|
+
"ds:transition-[border-color,box-shadow] ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:hover:border-rule-strong ds:hover:shadow-raised ds:motion-reduce:transition-none",
|
|
9645
|
+
"ds:active:cursor-grabbing",
|
|
9646
|
+
// Drag libraries (dnd-kit, @hello-pangea/dnd) make the card focusable.
|
|
9647
|
+
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]"
|
|
9309
9648
|
);
|
|
9310
9649
|
var priorityConfig = {
|
|
9311
9650
|
high: { label: "High", variant: "destructive" },
|
|
@@ -9361,7 +9700,7 @@ var MessageBubble = forwardRef(function MessageBubble2({ avatar, name, timestamp
|
|
|
9361
9700
|
"span",
|
|
9362
9701
|
{
|
|
9363
9702
|
className: cn(
|
|
9364
|
-
"ds:ml-auto ds:opacity-0 ds:transition-opacity ds:motion-reduce:transition-none",
|
|
9703
|
+
"ds:ml-auto ds:opacity-0 ds:transition-opacity ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
9365
9704
|
"ds:group-hover/bubble:opacity-100 ds:group-focus-within/bubble:opacity-100"
|
|
9366
9705
|
),
|
|
9367
9706
|
children: actions
|
|
@@ -9407,7 +9746,9 @@ var MessageBubbleAction = forwardRef(
|
|
|
9407
9746
|
ref,
|
|
9408
9747
|
type,
|
|
9409
9748
|
className: cn(
|
|
9410
|
-
"ds:text-fg-4 ds:text-[10px] ds:
|
|
9749
|
+
"ds:text-fg-4 ds:text-[10px] ds:rounded-badge",
|
|
9750
|
+
"ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
9751
|
+
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
9411
9752
|
destructive ? "ds:hover:text-danger-fg" : "ds:hover:text-fg",
|
|
9412
9753
|
className
|
|
9413
9754
|
),
|
|
@@ -9471,7 +9812,9 @@ var MessageComposer = forwardRef(
|
|
|
9471
9812
|
className: cn(
|
|
9472
9813
|
"ds:relative ds:flex ds:flex-col",
|
|
9473
9814
|
"ds:border-rule ds:bg-input-background ds:rounded-xl ds:border",
|
|
9474
|
-
|
|
9815
|
+
// Border, fill and shadow move together on focus-within; transitioning the
|
|
9816
|
+
// shadow alone let the border and fill snap.
|
|
9817
|
+
"ds:transition-[border-color,background-color,box-shadow] ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
9475
9818
|
"ds:focus-within:border-accent-ring ds:focus-within:bg-surface ds:focus-within:shadow-flat",
|
|
9476
9819
|
isDisabled && "ds:pointer-events-none ds:opacity-60",
|
|
9477
9820
|
className
|
|
@@ -9487,10 +9830,10 @@ var MessageComposer = forwardRef(
|
|
|
9487
9830
|
className: "ds:flex ds:w-full ds:gap-1.5 ds:overflow-x-auto",
|
|
9488
9831
|
style: { maskImage, WebkitMaskImage: maskImage },
|
|
9489
9832
|
children: chipsLoading ? Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx(
|
|
9490
|
-
|
|
9833
|
+
Skeleton,
|
|
9491
9834
|
{
|
|
9492
9835
|
"aria-hidden": "true",
|
|
9493
|
-
className: "ds:
|
|
9836
|
+
className: "ds:h-6 ds:w-20 ds:shrink-0 ds:rounded-full"
|
|
9494
9837
|
},
|
|
9495
9838
|
i
|
|
9496
9839
|
)) : chips.map((chip) => /* @__PURE__ */ jsx(
|
|
@@ -9566,7 +9909,7 @@ var NotificationPanelHeader = forwardRef(
|
|
|
9566
9909
|
{
|
|
9567
9910
|
type: "button",
|
|
9568
9911
|
onClick: onMarkAllRead,
|
|
9569
|
-
className: "ds:text-brand ds:rounded-md ds:px-1.5 ds:py-1 ds:text-sm ds:font-medium ds:hover:bg-[
|
|
9912
|
+
className: "ds:text-brand ds:rounded-md ds:px-1.5 ds:py-1 ds:text-sm ds:font-medium ds:hover:bg-brand-bg ds:active:bg-brand-bg-hover ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none ds:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
9570
9913
|
children: "Mark all read"
|
|
9571
9914
|
}
|
|
9572
9915
|
),
|
|
@@ -9576,7 +9919,7 @@ var NotificationPanelHeader = forwardRef(
|
|
|
9576
9919
|
type: "button",
|
|
9577
9920
|
onClick: onSettings,
|
|
9578
9921
|
"aria-label": "Notification settings",
|
|
9579
|
-
className: "ds:text-fg-3 ds:hover:text-fg ds:hover:bg-surface-hover ds:rounded-md ds:p-1 ds:[&_svg]:size-[15px]",
|
|
9922
|
+
className: "ds:text-fg-3 ds:hover:text-fg ds:hover:bg-surface-hover ds:active:bg-control-active-bg ds:rounded-md ds:p-1 ds:[&_svg]:size-[15px] ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
9580
9923
|
children: /* @__PURE__ */ jsx(SettingsIcon, {})
|
|
9581
9924
|
}
|
|
9582
9925
|
)
|
|
@@ -9610,8 +9953,9 @@ var NotificationFilter = forwardRef(
|
|
|
9610
9953
|
onClick: () => onValueChange(option),
|
|
9611
9954
|
"aria-pressed": selected,
|
|
9612
9955
|
className: cn(
|
|
9613
|
-
"ds:inline-flex ds:items-center ds:gap-1.5 ds:rounded-lg ds:px-2.5 ds:py-1 ds:capitalize
|
|
9614
|
-
"ds:
|
|
9956
|
+
"ds:inline-flex ds:items-center ds:gap-1.5 ds:rounded-lg ds:px-2.5 ds:py-1 ds:capitalize",
|
|
9957
|
+
"ds:transition-[color,background-color,box-shadow] ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
|
|
9958
|
+
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
9615
9959
|
selected ? "ds:bg-surface ds:text-brand ds:ring-1 ds:ring-[color:var(--color-brand-line)]" : "ds:text-fg-3 ds:hover:text-fg"
|
|
9616
9960
|
),
|
|
9617
9961
|
children: [
|
|
@@ -9684,7 +10028,9 @@ var NotificationItem = forwardRef(
|
|
|
9684
10028
|
className: cn(
|
|
9685
10029
|
"ds:flex ds:w-full ds:gap-3 ds:px-4 ds:py-3 ds:text-left ds:outline-none",
|
|
9686
10030
|
"ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
9687
|
-
unread ? "ds:bg-brand-bg ds:hover:bg-brand-bg-hover ds:focus-visible:bg-brand-bg-hover" : "ds:hover:bg-surface-hover/60 ds:focus-visible:bg-
|
|
10031
|
+
unread ? "ds:bg-brand-bg ds:hover:bg-brand-bg-hover ds:focus-visible:bg-brand-bg-hover" : "ds:hover:bg-surface-hover/60 ds:focus-visible:bg-surface-hover/60",
|
|
10032
|
+
// Rows stack edge to edge, so focus is an inset outline (TableRow's).
|
|
10033
|
+
"ds:focus-visible:outline-2 ds:focus-visible:-outline-offset-2 ds:focus-visible:outline-[var(--focus-ring-border)]",
|
|
9688
10034
|
className
|
|
9689
10035
|
),
|
|
9690
10036
|
...props,
|
|
@@ -9738,7 +10084,7 @@ var NotificationPanelFooter = forwardRef(
|
|
|
9738
10084
|
className: cn(
|
|
9739
10085
|
"ds:border-rule ds:text-fg ds:hover:bg-surface-hover ds:w-full ds:border-t ds:px-4 ds:py-3 ds:text-center ds:text-sm ds:font-medium",
|
|
9740
10086
|
"ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
9741
|
-
"ds:focus-visible:
|
|
10087
|
+
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
9742
10088
|
className
|
|
9743
10089
|
),
|
|
9744
10090
|
...props,
|
|
@@ -9797,7 +10143,7 @@ var FilterChip = forwardRef(function FilterChip2({ active = false, size, count,
|
|
|
9797
10143
|
);
|
|
9798
10144
|
});
|
|
9799
10145
|
FilterChip.displayName = "FilterChip";
|
|
9800
|
-
var BulkActionBarContext =
|
|
10146
|
+
var BulkActionBarContext = React30.createContext({ tone: "surface" });
|
|
9801
10147
|
function actionClasses(tone, destructive) {
|
|
9802
10148
|
const base = cn(
|
|
9803
10149
|
"ds:inline-flex ds:h-8 ds:items-center ds:gap-1.5 ds:rounded-btn ds:px-3 ds:text-[13px] ds:font-medium",
|
|
@@ -9810,18 +10156,18 @@ function actionClasses(tone, destructive) {
|
|
|
9810
10156
|
if (tone === "inverse") {
|
|
9811
10157
|
return cn(
|
|
9812
10158
|
base,
|
|
9813
|
-
"ds:data-[state=open]:bg-selection-floating-active-bg",
|
|
10159
|
+
"ds:data-[state=open]:bg-selection-floating-active-bg ds:aria-expanded:bg-selection-floating-active-bg",
|
|
9814
10160
|
destructive ? "ds:bg-danger-fg ds:text-fg-on-danger ds:hover:bg-danger-fg-hover ds:active:bg-danger-fg-active" : "ds:text-selection-floating-muted-fg ds:hover:bg-selection-floating-hover-bg ds:hover:text-selection-floating-fg"
|
|
9815
10161
|
);
|
|
9816
10162
|
}
|
|
9817
10163
|
return cn(
|
|
9818
10164
|
base,
|
|
9819
|
-
"ds:data-[state=open]:bg-control-active-bg",
|
|
10165
|
+
"ds:data-[state=open]:bg-control-active-bg ds:aria-expanded:bg-control-active-bg",
|
|
9820
10166
|
destructive ? "ds:text-control-destructive-fg ds:hover:bg-control-destructive-hover-bg" : "ds:text-control-fg ds:hover:bg-control-hover-bg ds:hover:text-control-hover-fg"
|
|
9821
10167
|
);
|
|
9822
10168
|
}
|
|
9823
|
-
var BulkActionBarAction =
|
|
9824
|
-
const { tone } =
|
|
10169
|
+
var BulkActionBarAction = React30.forwardRef(function BulkActionBarAction2({ asChild = false, destructive, className, type, ...props }, ref) {
|
|
10170
|
+
const { tone } = React30.use(BulkActionBarContext);
|
|
9825
10171
|
const Comp = asChild ? Slot : "button";
|
|
9826
10172
|
return /* @__PURE__ */ jsx(
|
|
9827
10173
|
Comp,
|
|
@@ -9835,7 +10181,7 @@ var BulkActionBarAction = React28.forwardRef(function BulkActionBarAction2({ asC
|
|
|
9835
10181
|
});
|
|
9836
10182
|
BulkActionBarAction.displayName = "BulkActionBarAction";
|
|
9837
10183
|
function BulkActionBarSeparator({ className }) {
|
|
9838
|
-
const { tone } =
|
|
10184
|
+
const { tone } = React30.use(BulkActionBarContext);
|
|
9839
10185
|
return /* @__PURE__ */ jsx(
|
|
9840
10186
|
"span",
|
|
9841
10187
|
{
|
|
@@ -9848,6 +10194,7 @@ function BulkActionBarSeparator({ className }) {
|
|
|
9848
10194
|
}
|
|
9849
10195
|
);
|
|
9850
10196
|
}
|
|
10197
|
+
var BAR_ENTER = "ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:slide-in-from-bottom-2 ds:duration-[var(--motion-duration-overlay)] ds:ease-[var(--motion-ease-enter)]";
|
|
9851
10198
|
function BulkActionBarClear({
|
|
9852
10199
|
variant,
|
|
9853
10200
|
clearLabel,
|
|
@@ -9893,7 +10240,7 @@ function BulkActionBar({
|
|
|
9893
10240
|
const labelText = label ?? `${selectedCount} selected`;
|
|
9894
10241
|
const tone = variant === "page-floating" ? "inverse" : "surface";
|
|
9895
10242
|
const content = /* @__PURE__ */ jsxs(BulkActionBarContext, { value: { tone }, children: [
|
|
9896
|
-
/* @__PURE__ */ jsx("span", { className: "ds:text-sm ds:font-medium ds:tabular-nums", children: labelText }),
|
|
10243
|
+
/* @__PURE__ */ jsx("span", { className: "ds:text-sm ds:font-medium ds:tabular-nums ds:whitespace-nowrap", children: labelText }),
|
|
9897
10244
|
/* @__PURE__ */ jsx(BulkActionBarSeparator, {}),
|
|
9898
10245
|
/* @__PURE__ */ jsx("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-1", children }),
|
|
9899
10246
|
/* @__PURE__ */ jsx("div", { className: "ds:min-w-2 ds:flex-1" }),
|
|
@@ -9917,7 +10264,7 @@ function BulkActionBar({
|
|
|
9917
10264
|
),
|
|
9918
10265
|
...props,
|
|
9919
10266
|
children: [
|
|
9920
|
-
/* @__PURE__ */ jsx("div", { className: "ds:border-rule ds:bg-surface ds:text-fg ds:flex ds:items-center ds:gap-3 ds:rounded-card ds:border ds:px-6 ds:py-3 ds:shadow-card", children: content }),
|
|
10267
|
+
/* @__PURE__ */ jsx("div", { className: cn("ds:border-rule ds:bg-surface ds:text-fg ds:flex ds:items-center ds:gap-3 ds:rounded-card ds:border ds:px-6 ds:py-3 ds:shadow-card", BAR_ENTER), children: content }),
|
|
9921
10268
|
footer
|
|
9922
10269
|
]
|
|
9923
10270
|
}
|
|
@@ -9933,7 +10280,7 @@ function BulkActionBar({
|
|
|
9933
10280
|
),
|
|
9934
10281
|
...props,
|
|
9935
10282
|
children: [
|
|
9936
|
-
/* @__PURE__ */ jsx("div", { className: "ds:bg-selection-floating-bg ds:text-selection-floating-fg ds:flex ds:items-center ds:gap-2 ds:rounded-card ds:px-3.5 ds:py-1.5 ds:shadow-pop", children: content }),
|
|
10283
|
+
/* @__PURE__ */ jsx("div", { className: cn("ds:bg-selection-floating-bg ds:text-selection-floating-fg ds:flex ds:items-center ds:gap-2 ds:rounded-card ds:px-3.5 ds:py-1.5 ds:shadow-pop", BAR_ENTER), children: content }),
|
|
9937
10284
|
footer
|
|
9938
10285
|
]
|
|
9939
10286
|
}
|
|
@@ -9945,7 +10292,7 @@ function BulkActionBar({
|
|
|
9945
10292
|
className: cn("ds:sticky ds:bottom-4 ds:z-[var(--z-sticky)] ds:mt-3 ds:flex ds:justify-center", className),
|
|
9946
10293
|
...props,
|
|
9947
10294
|
children: [
|
|
9948
|
-
/* @__PURE__ */ jsx("div", { className: "ds:border-rule ds:bg-surface ds:flex ds:w-fit ds:max-w-full ds:items-center ds:gap-3 ds:overflow-x-auto ds:rounded-card ds:border ds:px-4 ds:py-2 ds:shadow-card", children: content }),
|
|
10295
|
+
/* @__PURE__ */ jsx("div", { className: cn("ds:border-rule ds:bg-surface ds:flex ds:w-fit ds:max-w-full ds:items-center ds:gap-3 ds:overflow-x-auto ds:rounded-card ds:border ds:px-4 ds:py-2 ds:shadow-card", BAR_ENTER), children: content }),
|
|
9949
10296
|
footer
|
|
9950
10297
|
]
|
|
9951
10298
|
}
|
|
@@ -10297,7 +10644,14 @@ function DisplayMenu({
|
|
|
10297
10644
|
{
|
|
10298
10645
|
ref: flyoutRef,
|
|
10299
10646
|
tabIndex: -1,
|
|
10300
|
-
|
|
10647
|
+
"data-ds-presence": "floating",
|
|
10648
|
+
"data-state": "open",
|
|
10649
|
+
style: {
|
|
10650
|
+
top: flyout.top,
|
|
10651
|
+
width: FLYOUT_WIDTH,
|
|
10652
|
+
maxHeight: flyout.maxHeight,
|
|
10653
|
+
transformOrigin: flyout.side === "left" ? "right top" : "left top"
|
|
10654
|
+
},
|
|
10301
10655
|
className: cn(
|
|
10302
10656
|
// Column + overflow-hidden so the option list (the only flexible
|
|
10303
10657
|
// part) absorbs the height cap, while the search box and Clear
|
|
@@ -10410,35 +10764,35 @@ function DisplayMenu({
|
|
|
10410
10764
|
function EmptyRow({ label = "No matches" }) {
|
|
10411
10765
|
return /* @__PURE__ */ jsx("p", { className: "ds:px-2 ds:py-3 ds:text-center ds:text-[11px] ds:text-fg-3", children: label });
|
|
10412
10766
|
}
|
|
10413
|
-
var StickyStackContext =
|
|
10767
|
+
var StickyStackContext = React30.createContext(null);
|
|
10414
10768
|
function StickyStack({
|
|
10415
10769
|
layers,
|
|
10416
10770
|
top = 0,
|
|
10417
10771
|
layerMode = "fixed",
|
|
10418
10772
|
children
|
|
10419
10773
|
}) {
|
|
10420
|
-
const [layerHeights, setLayerHeights] =
|
|
10421
|
-
const normalizedLayers =
|
|
10774
|
+
const [layerHeights, setLayerHeights] = React30.useState({});
|
|
10775
|
+
const normalizedLayers = React30.useMemo(() => {
|
|
10422
10776
|
const names = [...layers];
|
|
10423
10777
|
if (new Set(names).size !== names.length) {
|
|
10424
10778
|
throw new Error("StickyStack layer names must be unique.");
|
|
10425
10779
|
}
|
|
10426
10780
|
return names;
|
|
10427
10781
|
}, [layers]);
|
|
10428
|
-
const setLayerHeight =
|
|
10782
|
+
const setLayerHeight = React30.useCallback((name, height) => {
|
|
10429
10783
|
setLayerHeights((current) => {
|
|
10430
10784
|
if (current[name] === height) return current;
|
|
10431
10785
|
return { ...current, [name]: height };
|
|
10432
10786
|
});
|
|
10433
10787
|
}, []);
|
|
10434
|
-
const value =
|
|
10788
|
+
const value = React30.useMemo(
|
|
10435
10789
|
() => ({ layers: normalizedLayers, layerHeights, setLayerHeight, top, layerMode }),
|
|
10436
10790
|
[layerHeights, layerMode, normalizedLayers, setLayerHeight, top]
|
|
10437
10791
|
);
|
|
10438
10792
|
return /* @__PURE__ */ jsx(StickyStackContext, { value, children });
|
|
10439
10793
|
}
|
|
10440
10794
|
function useStickyStack(componentName) {
|
|
10441
|
-
const context =
|
|
10795
|
+
const context = React30.use(StickyStackContext);
|
|
10442
10796
|
if (!context) {
|
|
10443
10797
|
throw new Error(`${componentName} must be rendered inside StickyStack.`);
|
|
10444
10798
|
}
|
|
@@ -10461,21 +10815,21 @@ function stackOffset(context, layerName, includeNamedLayer) {
|
|
|
10461
10815
|
const base = cssLength(top);
|
|
10462
10816
|
return measuredOffset === 0 ? base : `calc(${base} + ${measuredOffset}px)`;
|
|
10463
10817
|
}
|
|
10464
|
-
var StickyStackLayer =
|
|
10818
|
+
var StickyStackLayer = React30.forwardRef(
|
|
10465
10819
|
function StickyStackLayer2({ name, hostClassName, layerMode, className, children, style, ...props }, forwardedRef) {
|
|
10466
10820
|
const context = useStickyStack("StickyStackLayer");
|
|
10467
10821
|
const { setLayerHeight } = context;
|
|
10468
10822
|
const mode = layerMode ?? context.layerMode;
|
|
10469
10823
|
const top = stackOffset(context, name, false);
|
|
10470
|
-
const hostRef =
|
|
10471
|
-
const layerRef =
|
|
10472
|
-
const [bounds, setBounds] =
|
|
10824
|
+
const hostRef = React30.useRef(null);
|
|
10825
|
+
const layerRef = React30.useRef(null);
|
|
10826
|
+
const [bounds, setBounds] = React30.useState({
|
|
10473
10827
|
height: 0,
|
|
10474
10828
|
left: 0,
|
|
10475
10829
|
ready: false,
|
|
10476
10830
|
width: 0
|
|
10477
10831
|
});
|
|
10478
|
-
const setLayerRef =
|
|
10832
|
+
const setLayerRef = React30.useCallback(
|
|
10479
10833
|
(node) => {
|
|
10480
10834
|
layerRef.current = node;
|
|
10481
10835
|
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
@@ -10483,7 +10837,7 @@ var StickyStackLayer = React28.forwardRef(
|
|
|
10483
10837
|
},
|
|
10484
10838
|
[forwardedRef]
|
|
10485
10839
|
);
|
|
10486
|
-
const measure =
|
|
10840
|
+
const measure = React30.useCallback(() => {
|
|
10487
10841
|
const host = hostRef.current;
|
|
10488
10842
|
const layer = layerRef.current;
|
|
10489
10843
|
if (!host || !layer) return;
|
|
@@ -10500,7 +10854,7 @@ var StickyStackLayer = React28.forwardRef(
|
|
|
10500
10854
|
);
|
|
10501
10855
|
setLayerHeight(name, next.height);
|
|
10502
10856
|
}, [name, setLayerHeight]);
|
|
10503
|
-
|
|
10857
|
+
React30.useLayoutEffect(() => {
|
|
10504
10858
|
measure();
|
|
10505
10859
|
let frame = 0;
|
|
10506
10860
|
const scheduleMeasure = () => {
|
|
@@ -10553,7 +10907,7 @@ var StickyStackLayer = React28.forwardRef(
|
|
|
10553
10907
|
}
|
|
10554
10908
|
);
|
|
10555
10909
|
StickyStackLayer.displayName = "StickyStackLayer";
|
|
10556
|
-
var StickyStackSticky =
|
|
10910
|
+
var StickyStackSticky = React30.forwardRef(
|
|
10557
10911
|
function StickyStackSticky2({ after, className, style, ...props }, ref) {
|
|
10558
10912
|
const context = useStickyStack("StickyStackSticky");
|
|
10559
10913
|
const top = stackOffset(context, after, true);
|
|
@@ -10574,7 +10928,7 @@ var StickyStackSticky = React28.forwardRef(
|
|
|
10574
10928
|
}
|
|
10575
10929
|
);
|
|
10576
10930
|
StickyStackSticky.displayName = "StickyStackSticky";
|
|
10577
|
-
var StickyStackSectionHeader =
|
|
10931
|
+
var StickyStackSectionHeader = React30.forwardRef(function StickyStackSectionHeader2(props, ref) {
|
|
10578
10932
|
return /* @__PURE__ */ jsx(StickyStackSticky, { ref, "data-sticky-stack-section-header": "", ...props });
|
|
10579
10933
|
});
|
|
10580
10934
|
StickyStackSectionHeader.displayName = "StickyStackSectionHeader";
|
|
@@ -10584,7 +10938,7 @@ function defineStatusMap(map) {
|
|
|
10584
10938
|
if (map === void 0) return (entries) => entries;
|
|
10585
10939
|
return map;
|
|
10586
10940
|
}
|
|
10587
|
-
var ConfirmHostContext =
|
|
10941
|
+
var ConfirmHostContext = React30.createContext(null);
|
|
10588
10942
|
var isServer = typeof window === "undefined";
|
|
10589
10943
|
function missingHost(hook) {
|
|
10590
10944
|
if (process.env.NODE_ENV === "production" || process.env.NODE_ENV === "test") return;
|
|
@@ -10595,8 +10949,8 @@ function missingHost(hook) {
|
|
|
10595
10949
|
);
|
|
10596
10950
|
}
|
|
10597
10951
|
function useConfirm() {
|
|
10598
|
-
const host =
|
|
10599
|
-
return
|
|
10952
|
+
const host = React30.useContext(ConfirmHostContext);
|
|
10953
|
+
return React30.useMemo(() => {
|
|
10600
10954
|
if (host) return host.confirm;
|
|
10601
10955
|
return () => {
|
|
10602
10956
|
missingHost("useConfirm");
|
|
@@ -10605,8 +10959,8 @@ function useConfirm() {
|
|
|
10605
10959
|
}, [host]);
|
|
10606
10960
|
}
|
|
10607
10961
|
function usePrompt() {
|
|
10608
|
-
const host =
|
|
10609
|
-
return
|
|
10962
|
+
const host = React30.useContext(ConfirmHostContext);
|
|
10963
|
+
return React30.useMemo(() => {
|
|
10610
10964
|
if (host) return host.prompt;
|
|
10611
10965
|
return () => {
|
|
10612
10966
|
missingHost("usePrompt");
|
|
@@ -10615,12 +10969,12 @@ function usePrompt() {
|
|
|
10615
10969
|
}, [host]);
|
|
10616
10970
|
}
|
|
10617
10971
|
function ConfirmHost({ children }) {
|
|
10618
|
-
const [queue, setQueue] =
|
|
10619
|
-
const nextId =
|
|
10620
|
-
const enqueue =
|
|
10972
|
+
const [queue, setQueue] = React30.useState([]);
|
|
10973
|
+
const nextId = React30.useRef(0);
|
|
10974
|
+
const enqueue = React30.useCallback((request) => {
|
|
10621
10975
|
setQueue((previous) => [...previous, request]);
|
|
10622
10976
|
}, []);
|
|
10623
|
-
const value =
|
|
10977
|
+
const value = React30.useMemo(
|
|
10624
10978
|
() => ({
|
|
10625
10979
|
confirm: (options) => {
|
|
10626
10980
|
if (isServer) return Promise.resolve(false);
|
|
@@ -10638,7 +10992,7 @@ function ConfirmHost({ children }) {
|
|
|
10638
10992
|
[enqueue]
|
|
10639
10993
|
);
|
|
10640
10994
|
const current = queue[0];
|
|
10641
|
-
const settle =
|
|
10995
|
+
const settle = React30.useCallback(() => {
|
|
10642
10996
|
setQueue((previous) => previous.slice(1));
|
|
10643
10997
|
}, []);
|
|
10644
10998
|
return /* @__PURE__ */ jsxs(ConfirmHostContext, { value, children: [
|
|
@@ -10649,8 +11003,8 @@ function ConfirmHost({ children }) {
|
|
|
10649
11003
|
}
|
|
10650
11004
|
ConfirmHost.displayName = "ConfirmHost";
|
|
10651
11005
|
function useSettleOnce(resolve) {
|
|
10652
|
-
const done =
|
|
10653
|
-
return
|
|
11006
|
+
const done = React30.useRef(false);
|
|
11007
|
+
return React30.useCallback(
|
|
10654
11008
|
(value) => {
|
|
10655
11009
|
if (done.current) return;
|
|
10656
11010
|
done.current = true;
|
|
@@ -10673,7 +11027,7 @@ function HostedConfirm({
|
|
|
10673
11027
|
request,
|
|
10674
11028
|
onSettled
|
|
10675
11029
|
}) {
|
|
10676
|
-
const [open, setOpen] =
|
|
11030
|
+
const [open, setOpen] = React30.useState(true);
|
|
10677
11031
|
const settle = useSettleOnce(request.resolve);
|
|
10678
11032
|
return /* @__PURE__ */ jsx(
|
|
10679
11033
|
ConfirmDialog,
|
|
@@ -10698,8 +11052,8 @@ function HostedPrompt({
|
|
|
10698
11052
|
onSettled
|
|
10699
11053
|
}) {
|
|
10700
11054
|
const { options } = request;
|
|
10701
|
-
const [open, setOpen] =
|
|
10702
|
-
const [value, setValue] =
|
|
11055
|
+
const [open, setOpen] = React30.useState(true);
|
|
11056
|
+
const [value, setValue] = React30.useState(options.defaultValue ?? "");
|
|
10703
11057
|
const settle = useSettleOnce(request.resolve);
|
|
10704
11058
|
const empty = value.trim() === "";
|
|
10705
11059
|
const accessibleName = options.label === void 0 && typeof options.title === "string" ? options.title : void 0;
|
|
@@ -11201,7 +11555,7 @@ function PeoplePicker(props) {
|
|
|
11201
11555
|
...rest
|
|
11202
11556
|
} = props;
|
|
11203
11557
|
const messages = useDsMessages("peoplePicker");
|
|
11204
|
-
const byId =
|
|
11558
|
+
const byId = React30.useMemo(
|
|
11205
11559
|
() => new Map(people.map((person) => [person.id, person])),
|
|
11206
11560
|
[people]
|
|
11207
11561
|
);
|
|
@@ -11278,7 +11632,39 @@ function PeoplePicker(props) {
|
|
|
11278
11632
|
}
|
|
11279
11633
|
);
|
|
11280
11634
|
}
|
|
11635
|
+
function readStorage(key) {
|
|
11636
|
+
if (!key || typeof window === "undefined") return null;
|
|
11637
|
+
try {
|
|
11638
|
+
const stored = window.localStorage.getItem(key);
|
|
11639
|
+
return stored === "comfortable" || stored === "compact" ? stored : null;
|
|
11640
|
+
} catch {
|
|
11641
|
+
return null;
|
|
11642
|
+
}
|
|
11643
|
+
}
|
|
11644
|
+
function writeStorage(key, next) {
|
|
11645
|
+
if (!key || typeof window === "undefined") return;
|
|
11646
|
+
try {
|
|
11647
|
+
window.localStorage.setItem(key, next);
|
|
11648
|
+
} catch {
|
|
11649
|
+
}
|
|
11650
|
+
}
|
|
11651
|
+
function useTableDensity(options) {
|
|
11652
|
+
const { storageKey, defaultDensity = "comfortable" } = options ?? {};
|
|
11653
|
+
const [density, setDensityState] = useState(defaultDensity);
|
|
11654
|
+
useEffect(() => {
|
|
11655
|
+
const stored = readStorage(storageKey);
|
|
11656
|
+
if (stored && stored !== defaultDensity) setDensityState(stored);
|
|
11657
|
+
}, []);
|
|
11658
|
+
const setDensity = useCallback(
|
|
11659
|
+
(next) => {
|
|
11660
|
+
setDensityState(next);
|
|
11661
|
+
writeStorage(storageKey, next);
|
|
11662
|
+
},
|
|
11663
|
+
[storageKey]
|
|
11664
|
+
);
|
|
11665
|
+
return { density, setDensity };
|
|
11666
|
+
}
|
|
11281
11667
|
|
|
11282
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, AreaChart, AspectRatio, AttachmentChip, AvatarGroup, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BulkActionBar, BulkActionBarAction, BulkActionBarSeparator, COUNTRY_CODES, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Code, CommandPalette, ConfirmActionButton, ConfirmDialog, ConfirmHost, Content6 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CountryFlag2 as CountryFlag, CountrySelect, DATE_DISPLAY_PLACEHOLDER, DEFAULT_PHONE_FIELD_MESSAGES, DangerAction, DataItem, DataTablePattern, DatePicker, DateRangePicker, DesignSystemProvider, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DisplayMenu, DonutChart, EmptyState, ErrorState, Eyebrow, Field, FieldControl, FieldDescription, FieldError, Fieldset, FieldsetLegend, FileTypeBadge, FilterChip, FolderTree, FormError, FormSection, FormSuccess, Heading, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, ICON_TILE_TONE_TO_INTENT, IconAction, IconTile, InfoHint, Inline, Kanban, KanbanCard, KanbanColumn, Kbd, KbdHint, KeyboardShortcutsDialog, KpiCard, Label2 as Label, LinkAction, LinkButton, LoadingRows, Main, MasterDetailLayout, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageComposer, MetadataGrid, MultiFilterPill, MultiSelect, MultiSelectField, MutedSpec, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelFooter, NotificationPanelHeader, NumberInput, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, PdfPreview, PeoplePicker, PhoneCountryInput, PhoneField, PhoneInput, PrimaryAction, PriorityIcon, QuestionnairePanel, RadioGroup2 as RadioGroup, RadioGroupItem, RankedBars, ResponsiveDialog, RouteTransition, ScrollArea, ScrollBar, SearchInput, SearchSelect, SecondaryAction, SectionCard, SegmentedControl, SelectableKpiCard, Separator2 as Separator, Shell, SideDrawer,
|
|
11668
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, AppSidebar, AppSidebarNav, AreaChart, AspectRatio, AttachmentChip, AvatarGroup, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BulkActionBar, BulkActionBarAction, BulkActionBarSeparator, COUNTRY_CODES, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Code, CommandPalette, ConfirmActionButton, ConfirmDialog, ConfirmHost, Content6 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CountryFlag2 as CountryFlag, CountrySelect, DATE_DISPLAY_PLACEHOLDER, DEFAULT_PHONE_FIELD_MESSAGES, DangerAction, DataItem, DataTablePattern, DatePicker, DateRangePicker, DesignSystemProvider, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DisplayMenu, DonutChart, EmptyState, ErrorState, Eyebrow, Field, FieldControl, FieldDescription, FieldError, Fieldset, FieldsetLegend, FileTypeBadge, FilterChip, FolderTree, FormError, FormSection, FormSuccess, Heading, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, ICON_TILE_TONE_TO_INTENT, IconAction, IconTile, InfoHint, Inline, Kanban, KanbanCard, KanbanColumn, Kbd, KbdHint, KeyboardShortcutsDialog, KpiCard, Label2 as Label, LinkAction, LinkButton, LoadingRows, Main, MasterDetailLayout, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageComposer, MetadataGrid, MultiFilterPill, MultiSelect, MultiSelectField, MutedSpec, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelFooter, NotificationPanelHeader, NumberInput, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, PdfPreview, PeoplePicker, PhoneCountryInput, PhoneField, PhoneInput, PrimaryAction, PriorityIcon, QuestionnairePanel, RadioGroup2 as RadioGroup, RadioGroupItem, RankedBars, ResponsiveDialog, RouteTransition, ScrollArea, ScrollBar, SearchInput, SearchSelect, SecondaryAction, SectionCard, SegmentedControl, SelectableKpiCard, Separator2 as Separator, Shell, SideDrawer, Slider, SpreadsheetPreview, Stack, StackedBarChart, StarRating, StatusBadge, StatusIcon, Stepper, StickyActionBar, StickyStack, StickyStackLayer, StickyStackSectionHeader, StickyStackSticky, SubmitButton, SuiteProgress, Surface, TableDensityToggle, TableEmpty, TableError, TableLoading, Text, ToastProvider, Toolbar, VisuallyHidden, YEAR_DISPLAY_PLACEHOLDER, alertVariants, applyMask, applyYearMask, attachmentChipVariants, cardVariants, dateToIso, defineStatusMap, displayToIso, fileTypeBadgeVariants, fileTypeFromName, filterChipVariants, getFlagEmoji, resolveIconTileVariants as iconTileVariants, isoToDate, isoToDisplay, isoToYear, labelVariants, parsePhoneForEditing, searchInputVariants, starRatingVariants, suiteProgressFillVariants, useConfirm, usePrompt, useTableDensity, useToast, yearToIso };
|
|
11283
11669
|
//# sourceMappingURL=index.js.map
|
|
11284
11670
|
//# sourceMappingURL=index.js.map
|