@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.
Files changed (33) hide show
  1. package/dist/brand-scope-BOKu4iOc.d.ts +262 -0
  2. package/dist/{chunk-UAPQ7VTS.js → chunk-LUWPEBXZ.js} +283 -178
  3. package/dist/chunk-LUWPEBXZ.js.map +1 -0
  4. package/dist/{chunk-AF3QYJ24.js → chunk-TBDTXAFH.js} +6 -4
  5. package/dist/chunk-TBDTXAFH.js.map +1 -0
  6. package/dist/{chunk-JKNHNNNY.js → chunk-TYXT5C2B.js} +95 -11
  7. package/dist/chunk-TYXT5C2B.js.map +1 -0
  8. package/dist/{chunk-XN7OBLQR.js → chunk-XJKCKBHI.js} +20 -16
  9. package/dist/chunk-XJKCKBHI.js.map +1 -0
  10. package/dist/css/components.css +1 -1
  11. package/dist/css/tokens.css +4 -4
  12. package/dist/{data-table-view-ep8al7P9.d.ts → data-table-view-BWhKeUiw.d.ts} +186 -2
  13. package/dist/{design-system-provider-CfD2g2lY.d.ts → design-system-provider-Coe2S3Lh.d.ts} +1 -1
  14. package/dist/icons/index.d.ts +5 -1
  15. package/dist/icons/index.js +1 -1
  16. package/dist/index.d.ts +290 -455
  17. package/dist/index.js +636 -250
  18. package/dist/index.js.map +1 -1
  19. package/dist/legacy/index.d.ts +11 -4
  20. package/dist/legacy/index.js +3 -3
  21. package/dist/next/index.d.ts +2 -2
  22. package/dist/styles.css +1 -1
  23. package/dist/suite/index.d.ts +14 -3
  24. package/dist/suite/index.js +3 -3
  25. package/dist/{types-Coqw8iaS.d.ts → types-DlqmlVyZ.d.ts} +11 -1
  26. package/docs/components.md +11 -8
  27. package/docs/components.registry.json +89 -22
  28. package/package.json +1 -1
  29. package/dist/brand-scope-BOHId6BY.d.ts +0 -58
  30. package/dist/chunk-AF3QYJ24.js.map +0 -1
  31. package/dist/chunk-JKNHNNNY.js.map +0 -1
  32. package/dist/chunk-UAPQ7VTS.js.map +0 -1
  33. package/dist/chunk-XN7OBLQR.js.map +0 -1
@@ -3,7 +3,7 @@ import { clsx } from 'clsx';
3
3
  import { extendTailwindMerge } from 'tailwind-merge';
4
4
  import { useId, createElement } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
6
- import { CircleAlert, TriangleAlert, Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, ArrowUpRight, AtSign, Ban, ChartNoAxesColumn, Bell, Bold, Brain, Briefcase, Building2, Building, Calculator, Calendar, Camera, MessageSquare, CheckCheck, CircleCheck, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsDownUp, ChevronsLeft, ChevronsRight, ChevronsUpDown, CircleDot, Circle, ClipboardCheck, Clock, X, Command, Copy, CornerDownLeft, CreditCard, FileText, DollarSign, Download, ExternalLink, Eye, EyeOff, FileChartColumn, File, FileUp, Funnel, Flag, Folder, FolderDown, FolderOpen, FolderPlus, FolderUp, Globe, GraduationCap, GripHorizontal, GripVertical, CircleQuestionMark, History, House, Inbox, Info, Italic, Kanban, Key, Landmark, Layers, LayoutDashboard, LayoutGrid, LayoutList, Zap, Link2, Link, ListChecks, List, ListOrdered, LoaderCircle, Lock, LockKeyhole, LockOpen, LogOut, Mail, MapPin, Maximize, Menu, MessageCircle, MessageCircleMore, MessageCircleWarning, Mic, Minimize, Minus, Monitor, Moon, Ellipsis, EllipsisVertical, MousePointer2, Move, Palette, PanelLeftClose, PanelLeft, PanelRightClose, PanelRight, Paperclip, Pause, Signature, PenTool, Pencil, Phone, Play, Plus, Receipt, RefreshCw, Reply, RotateCcw, Save, Search, Send, Settings, Shield, Sigma, Slash, Smartphone, Sparkle, Sparkles, SquarePlay, Star, Square, Strikethrough, Sun, Table, Tag, UserPlus, ThumbsDown, ThumbsUp, Timer, Trash, TrendingDown, TrendingUp, Type, Underline, Upload, CircleUser, User, Users, Video, Volume2, VolumeX, Workflow, ZoomIn, ZoomOut } from 'lucide';
6
+ import { CircleAlert, TriangleAlert, Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, ArrowUpRight, AtSign, Ban, ChartNoAxesColumn, Bell, Bold, Brain, Briefcase, Building2, Building, Calculator, Calendar, Camera, MessageSquare, CheckCheck, CircleCheck, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsDownUp, ChevronsLeft, ChevronsRight, ChevronsUpDown, CircleDot, Circle, ClipboardCheck, Clock, X, Command, Copy, CornerDownLeft, CreditCard, FileText, DollarSign, Download, ExternalLink, Eye, EyeOff, FileChartColumn, File, FileUp, Funnel, Flag, Folder, FolderDown, FolderOpen, FolderPlus, FolderUp, Globe, GraduationCap, GripHorizontal, GripVertical, CircleQuestionMark, History, House, Inbox, Info, Italic, Kanban, Key, Landmark, Layers, LayoutDashboard, LayoutGrid, LayoutList, Zap, Link2, Link, ListChecks, List, ListOrdered, LoaderCircle, Lock, LockKeyhole, LockOpen, LogOut, Mail, MapPin, Maximize, Menu, MessageCircle, MessageCircleMore, MessageCircleWarning, Mic, Minimize, Minus, Monitor, Moon, Ellipsis, EllipsisVertical, MousePointer2, Move, Palette, PanelLeftClose, PanelLeft, PanelRightClose, PanelRight, Paperclip, Pause, Signature, PenTool, Pencil, Phone, Play, Plus, Receipt, RefreshCw, Reply, RotateCcw, Rows4, Rows, Save, Search, Send, Settings, Shield, Sigma, Slash, Smartphone, Sparkle, Sparkles, SquarePlay, Star, Square, Strikethrough, Sun, Table, Tag, UserPlus, ThumbsDown, ThumbsUp, Timer, Trash, TrendingDown, TrendingUp, Type, Underline, Upload, CircleUser, User, Users, Video, Volume2, VolumeX, Workflow, ZoomIn, ZoomOut } from 'lucide';
7
7
 
8
8
  var split = (values) => values.split(" ");
9
9
  var DS_RADIUS = split(
@@ -373,6 +373,8 @@ var ReceiptIcon = /* @__PURE__ */ lucideIcon("ReceiptIcon", Receipt);
373
373
  var RefreshCwIcon = /* @__PURE__ */ lucideIcon("RefreshCwIcon", RefreshCw);
374
374
  var ReplyIcon = /* @__PURE__ */ lucideIcon("ReplyIcon", Reply);
375
375
  var RotateCcwIcon = /* @__PURE__ */ lucideIcon("RotateCcwIcon", RotateCcw);
376
+ var Rows4Icon = /* @__PURE__ */ lucideIcon("Rows4Icon", Rows4);
377
+ var RowsIcon = /* @__PURE__ */ lucideIcon("RowsIcon", Rows);
376
378
  var SaveIcon = /* @__PURE__ */ lucideIcon("SaveIcon", Save);
377
379
  var SearchIcon = /* @__PURE__ */ lucideIcon("SearchIcon", Search);
378
380
  var SendIcon = /* @__PURE__ */ lucideIcon("SendIcon", Send);
@@ -436,6 +438,6 @@ function XCircleSolidIcon({ size = 24, ...props }) {
436
438
  var ZoomInIcon = /* @__PURE__ */ lucideIcon("ZoomInIcon", ZoomIn);
437
439
  var ZoomOutIcon = /* @__PURE__ */ lucideIcon("ZoomOutIcon", ZoomOut);
438
440
 
439
- 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 };
440
- //# sourceMappingURL=chunk-AF3QYJ24.js.map
441
- //# sourceMappingURL=chunk-AF3QYJ24.js.map
441
+ 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 };
442
+ //# sourceMappingURL=chunk-TBDTXAFH.js.map
443
+ //# sourceMappingURL=chunk-TBDTXAFH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/cn.ts","../src/icons/icon-base.tsx","../src/icons/alert-circle-icon.tsx","../src/icons/alert-triangle-icon.tsx","../src/icons/alert-triangle-solid-icon.tsx","../src/icons/archive-icon.tsx","../src/icons/arrow-down-icon.tsx","../src/icons/arrow-left-icon.tsx","../src/icons/arrow-right-icon.tsx","../src/icons/arrow-right-small-icon.tsx","../src/icons/arrow-up-icon.tsx","../src/icons/arrow-up-right-icon.tsx","../src/icons/at-sign-icon.tsx","../src/icons/ban-icon.tsx","../src/icons/bar-chart-icon.tsx","../src/icons/bell-icon.tsx","../src/icons/bold-icon.tsx","../src/icons/brain-icon.tsx","../src/icons/briefcase-icon.tsx","../src/icons/building-2-icon.tsx","../src/icons/building-icon.tsx","../src/icons/calculator-icon.tsx","../src/icons/calendar-icon.tsx","../src/icons/camera-icon.tsx","../src/icons/chat-bubble-icon.tsx","../src/icons/check-check-icon.tsx","../src/icons/check-circle-2-icon.tsx","../src/icons/check-circle-solid-icon.tsx","../src/icons/check-icon.tsx","../src/icons/chevron-down-icon.tsx","../src/icons/chevron-left-icon.tsx","../src/icons/chevron-right-icon.tsx","../src/icons/chevron-up-icon.tsx","../src/icons/chevrons-down-up-icon.tsx","../src/icons/chevrons-left-icon.tsx","../src/icons/chevrons-right-icon.tsx","../src/icons/chevrons-up-down-icon.tsx","../src/icons/circle-dot-icon.tsx","../src/icons/circle-icon.tsx","../src/icons/clipboard-check-icon.tsx","../src/icons/clock-icon.tsx","../src/icons/x-icon.tsx","../src/icons/close-icon.tsx","../src/icons/command-icon.tsx","../src/icons/copy-icon.tsx","../src/icons/corner-down-left-icon.tsx","../src/icons/credit-card-icon.tsx","../src/icons/file-text-icon.tsx","../src/icons/document-icon.tsx","../src/icons/dollar-sign-icon.tsx","../src/icons/download-icon.tsx","../src/icons/external-link-icon.tsx","../src/icons/extract-icon.tsx","../src/icons/eye-icon.tsx","../src/icons/eye-off-icon.tsx","../src/icons/file-chart-column-icon.tsx","../src/icons/file-icon.tsx","../src/icons/file-return-icon.tsx","../src/icons/filter-icon.tsx","../src/icons/flag-icon.tsx","../src/icons/folder-closed-icon.tsx","../src/icons/folder-down-icon.tsx","../src/icons/folder-open-icon.tsx","../src/icons/folder-plus-icon.tsx","../src/icons/folder-up-icon.tsx","../src/icons/globe-icon.tsx","../src/icons/google-brand-icon.tsx","../src/icons/graduation-cap-icon.tsx","../src/icons/grip-horizontal-icon.tsx","../src/icons/grip-vertical-icon.tsx","../src/icons/help-circle-icon.tsx","../src/icons/history-icon.tsx","../src/icons/home-icon.tsx","../src/icons/inbox-icon.tsx","../src/icons/info-circle-solid-icon.tsx","../src/icons/info-icon.tsx","../src/icons/italic-icon.tsx","../src/icons/kanban-icon.tsx","../src/icons/key-icon.tsx","../src/icons/landmark-icon.tsx","../src/icons/layers-icon.tsx","../src/icons/layout-dashboard-icon.tsx","../src/icons/layout-grid-icon.tsx","../src/icons/layout-list-icon.tsx","../src/icons/lightning-icon.tsx","../src/icons/link-2-icon.tsx","../src/icons/link-icon.tsx","../src/icons/list-checks-icon.tsx","../src/icons/list-icon.tsx","../src/icons/list-ordered-icon.tsx","../src/icons/loader-icon.tsx","../src/icons/lock-icon.tsx","../src/icons/lock-keyhole-icon.tsx","../src/icons/lock-open-icon.tsx","../src/icons/log-out-icon.tsx","../src/icons/mail-icon.tsx","../src/icons/map-pin-icon.tsx","../src/icons/maximize-icon.tsx","../src/icons/menu-icon.tsx","../src/icons/message-circle-icon.tsx","../src/icons/message-circle-more-icon.tsx","../src/icons/message-circle-warning-icon.tsx","../src/icons/mic-icon.tsx","../src/icons/microsoft-brand-icon.tsx","../src/icons/minimize-icon.tsx","../src/icons/minus-icon.tsx","../src/icons/monitor-icon.tsx","../src/icons/moon-icon.tsx","../src/icons/more-horizontal-icon.tsx","../src/icons/more-vertical-icon.tsx","../src/icons/mouse-pointer-2-icon.tsx","../src/icons/move-icon.tsx","../src/icons/palette-icon.tsx","../src/icons/panel-left-close-icon.tsx","../src/icons/panel-left-icon.tsx","../src/icons/panel-right-close-icon.tsx","../src/icons/panel-right-icon.tsx","../src/icons/paperclip-icon.tsx","../src/icons/pause-icon.tsx","../src/icons/pen-sign-icon.tsx","../src/icons/pen-tool-icon.tsx","../src/icons/pencil-icon.tsx","../src/icons/phone-icon.tsx","../src/icons/play-icon.tsx","../src/icons/plus-icon.tsx","../src/icons/receipt-icon.tsx","../src/icons/refresh-cw-icon.tsx","../src/icons/reply-icon.tsx","../src/icons/rotate-ccw-icon.tsx","../src/icons/rows-4-icon.tsx","../src/icons/rows-icon.tsx","../src/icons/save-icon.tsx","../src/icons/search-icon.tsx","../src/icons/send-icon.tsx","../src/icons/settings-icon.tsx","../src/icons/shield-icon.tsx","../src/icons/sigma-icon.tsx","../src/icons/slash-icon.tsx","../src/icons/smartphone-icon.tsx","../src/icons/sparkle-icon.tsx","../src/icons/sparkles-icon.tsx","../src/icons/square-play-icon.tsx","../src/icons/star-icon.tsx","../src/icons/stop-icon.tsx","../src/icons/strikethrough-icon.tsx","../src/icons/sun-icon.tsx","../src/icons/table-icon.tsx","../src/icons/tag-icon.tsx","../src/icons/team-icon.tsx","../src/icons/thumbs-down-icon.tsx","../src/icons/thumbs-up-icon.tsx","../src/icons/timer-icon.tsx","../src/icons/trash-icon.tsx","../src/icons/trash-2-icon.tsx","../src/icons/trash-solid-icon.tsx","../src/icons/trending-down-icon.tsx","../src/icons/trending-up-icon.tsx","../src/icons/type-icon.tsx","../src/icons/underline-icon.tsx","../src/icons/upload-icon.tsx","../src/icons/user-circle-icon.tsx","../src/icons/user-icon.tsx","../src/icons/users-icon.tsx","../src/icons/video-icon.tsx","../src/icons/volume-2-icon.tsx","../src/icons/volume-x-icon.tsx","../src/icons/workflow-icon.tsx","../src/icons/x-circle-solid-icon.tsx","../src/icons/zoom-in-icon.tsx","../src/icons/zoom-out-icon.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-TBDTXAFH.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/* ────────────────────────────────────────────────────────────────────────────\n * `cn` = clsx + tailwind-merge, taught the design system's own Tailwind 4\n * `@theme` scales.\n *\n * tailwind-merge ships Tailwind's *default* theme, so out of the box it cannot\n * tell that `rounded-card` is a border-radius or that `shadow-pop` is a\n * box-shadow. Unknown values fall through to the nearest catch-all: an\n * unrecognised radius belongs to no group at all, so both classes survive and\n * the stylesheet order decides; an unrecognised `shadow-*` value is filed as a\n * shadow *colour*, so it never conflicts with `shadow-md`. Registering the DS\n * scales below is what makes `cn()` resolve them.\n *\n * Source of truth: `src/tokens/generated/theme.css` (generated from `tokens/src`,\n * ADR-003). Each list holds only the DS-specific values — Tailwind's own values\n * (`rounded-md`, `shadow-lg`, `ease-out`, `font-mono`, …) are already known.\n * Tokens are additive, so adding a `--radius-*`, `--shadow-*`, `--ease-*`,\n * `--font-*`, `--text-*` or `--animate-*` token means adding its value to the\n * matching list.\n *\n * Deliberately NOT configured:\n *\n * - **A `prefix`.** Wave 1 compiles component CSS with Tailwind's `prefix(ds)`,\n * so DS classes read `ds:rounded-card`. Spike S1 measured that setting\n * tailwind-merge's `prefix` option *breaks* merging (2.6.1: 4 of 12 cases;\n * 3.6.0: stops merging a consumer's own unprefixed classes), while the default\n * configuration passes 12 of 12 because it treats `ds:` as an ordinary unknown\n * variant. ADR-004 decision 4 makes that binding: conflicts between the DS and\n * a consumer's vocabulary are settled by cascade layer, not by merging.\n * See `docs/spikes/s1` F4.\n * - **The `--z-*` scale.** Tailwind 4 has no `z` theme namespace, so the bare\n * `z-modal` form compiles to nothing; the DS reaches the scale through an\n * arbitrary value instead, and the default config already merges those against\n * `z-10`. Registering the bare names would make `cn(\"z-10\", \"z-modal\")` drop\n * the class that works in favour of one that does not.\n * - **`--color-*`.** Every `text-*`, `bg-*`, `border-*` and `ring-*` colour\n * group ends in a catch-all, so `text-fg-3`, `bg-bg-2` and their siblings\n * already resolve against each other and against arbitrary values.\n * - **The `size-*` and spacing scales.** The DS declares no `--spacing-*` token\n * and uses Tailwind's numeric scale, including the fractional steps, which\n * tailwind-merge 3 validates on its own.\n * ──────────────────────────────────────────────────────────────────────────── */\n\n/**\n * The scale lists below are written as one space-separated string rather than an\n * array of literals. That is not only for brevity: a bare `\"icon\"` or `\"pill\"`\n * literal in this module — which every component imports — is interned by the\n * checker before it reaches the components, which moves that member to the front\n * of the union TypeScript prints for `ButtonProps[\"size\"]` and\n * `TabsListProps[\"variant\"]` in `dist/index.d.ts` and `api/root.api.md`. Same\n * types, different member order, a failing `pnpm api:check`, and no public\n * signature touched. One sentence per scale keeps the emitted declarations\n * byte-identical.\n */\nconst split = (values: string) => values.split(\" \");\n\n/**\n * `--radius-*` values that are not Tailwind's. Feeds every `rounded-*` group.\n * `control surface surface-sm badge` are the W2-07 roles (`Surface` is their\n * first consumer); the reference steps stay out because no component may name one.\n */\nconst DS_RADIUS = split(\n \"badges btn buttons card cards general icon input inputs pill control surface surface-sm badge\",\n);\n\n/** `--shadow-*` values that are not Tailwind's, including the W2-08 elevation roles and the VN-5 field halo. */\nconst DS_SHADOW = split(\"card focus focus-ring focus-ring-field pop quiet subtle flat raised floating overlay\");\n\n/** `--ease-*` values that are not Tailwind's. */\nconst DS_EASE = split(\"out-quart\");\n\n/** `--font-*` values that are not Tailwind's. */\nconst DS_FONT = split(\"body display\");\n\n/**\n * `--text-*` values that are not Tailwind's: the twelve typography roles\n * (W2-01), which `Text` and `Heading` render as `text-<role>` (W2-12, W2-13).\n * Without this list tailwind-merge files `text-body` as a text *colour* and\n * drops it against `text-fg-3`.\n */\nconst DS_TEXT = split(\n \"display title-page title-section title-sub body body-sm label helper caption micro overline code\",\n);\n\n/**\n * `--animate-*` values that are not Tailwind's, plus `pulse-soft`, which is a\n * hand-written utility in `src/styles/components/ai-messaging.css` rather than a\n * theme token but belongs to the same class group.\n */\nconst DS_ANIMATE = split(\"accordion-down accordion-up collapsible-down collapsible-up pulse-soft\");\n\n/**\n * Matches a box-shadow written as an arbitrary value that references a\n * `--shadow-*` token — how components reach the shadow steps that are not\n * exposed as a named utility. tailwind-merge cannot tell an arbitrary box-shadow\n * from an arbitrary shadow *colour*, so any value that does not begin with a\n * length is filed under `shadow-color`, where it would never conflict with\n * `shadow-md` or `shadow-card`. Keying on the token prefix is exact for this\n * repo: every arbitrary shadow in `src/` is either a literal shadow (a length\n * list, which Tailwind already recognises) or a `--shadow-*` reference, and a\n * genuine shadow colour would reference a `--color-*` token and keep resolving\n * as a colour. Worked examples live in the test file, because `@source` scans\n * `src/lib` and a literal arbitrary class written here would be compiled into\n * `dist/styles.css`.\n */\nconst isDsShadowVar = (value: string) => /^\\[var\\(--shadow-[a-z0-9-]*\\)\\]$/.test(value);\n\n/**\n * The extension handed to tailwind-merge. Exported for the type and behaviour\n * assertions in `__tests__/cn.test.ts`; it is not part of the public surface —\n * `src/index.ts` exports `cn` only.\n */\nexport const dsMergeConfig = {\n extend: {\n theme: {\n radius: DS_RADIUS,\n shadow: DS_SHADOW,\n ease: DS_EASE,\n font: DS_FONT,\n text: DS_TEXT,\n animate: DS_ANIMATE,\n },\n classGroups: {\n shadow: [{ shadow: [isDsShadowVar] }],\n },\n },\n};\n\n/**\n * Why `extendTailwindMerge` is called through a non-generic alias: its type\n * parameters default to `DefaultClassGroupIds`, a ~400-member string-literal\n * union. Instantiating that generic in this module — which every component\n * imports — interns those literals before the checker reaches the components,\n * and that reorders the string-literal unions TypeScript prints for every `cva`\n * variant prop in `dist/index.d.ts` and `api/root.api.md`: identical types,\n * different member order, and a failing `pnpm api:check` for a change that\n * touches no public signature. The alias keeps the instantiation out of the\n * emitted declarations. `dsMergeConfig` is checked against tailwind-merge's own\n * `ConfigExtension` type in the test file, where emitted types are not at stake,\n * and the 30 conflict tests are the behavioural guard.\n */\nconst extendMerge = extendTailwindMerge as unknown as (\n config: typeof dsMergeConfig,\n) => (...classLists: string[]) => string;\n\nconst twMerge = extendMerge(dsMergeConfig);\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import { createElement } from \"react\";\n\nimport type { ControlSize } from \"../foundation/vocab\";\nimport { cn } from \"../lib/cn\";\nimport { iconSizes } from \"../tokens/reference\";\n\n/**\n * The icon contract (target architecture §37; W3-18, W3-19, W3-20): the props\n * every catalogue icon takes, the `<svg>` root they all render through, and\n * `createIcon()`, which builds an icon from path data or elements.\n *\n * The catalogue itself is one module per icon next to this file\n * (`src/icons/<name>-icon.tsx`); `src/icons/index.ts` and the compat facade\n * `src/primitives/icons.tsx` are generated from those modules by\n * `scripts/icons/generate.mjs`. `Icon` and `iconSizePx` are exported for the\n * catalogue modules only — neither barrel re-exports them.\n */\n\n/**\n * Named icon boxes — the four `--ds-icon-size-*` steps of W2-10 (12 / 14 / 16 /\n * 20 px), spelled with the shared size vocabulary (ADR-007) and derived from the\n * token scale so the type and the tokens cannot disagree.\n */\nexport type IconSize = Extract<ControlSize, keyof typeof iconSizes>;\n\nexport interface IconProps extends React.SVGAttributes<SVGElement> {\n /**\n * The icon box. A size name renders `var(--ds-icon-size-<name>)` — with the\n * legacy `--icon-size-<name>` and then the token's pixel value as fallbacks —\n * so a theme can retune the boxes; a number is a pixel box, as before.\n * Defaults to 24, the grid the glyphs are drawn on.\n */\n size?: IconSize | number;\n /**\n * Stroke width of every stroked element, set once on the root `<svg>` and\n * inherited. Defaults to Lucide's 2 on the 24-unit grid, at every size (the\n * line scales with the box, as Lucide's does). An explicit value always wins.\n */\n strokeWidth?: number | string | undefined;\n /**\n * Accessible name. Icons are decorative (`aria-hidden`); a `title` exposes\n * the svg as `role=\"img\"` with a `<title>` child. (An `aria-label` alone\n * still lands on the hidden svg, as it always has — C-DOM-15 freezes that\n * DOM for Pro; use `title` to name an icon.)\n */\n title?: string;\n}\n\n/** What every catalogue icon and every `createIcon()` product is. */\nexport interface IconComponent {\n (props: IconProps): React.JSX.Element;\n displayName?: string;\n}\n\nconst DEFAULT_VIEW_BOX = \"0 0 24 24\";\n/**\n * Lucide's stroke on the 24-unit grid. The catalogue draws Lucide's glyphs, so\n * `createIcon()` glyphs default to the same weight and sit beside them evenly.\n */\nconst DEFAULT_STROKE_WIDTH = 2;\n\n/** Pixel box of a `size` prop. For the catalogue modules; not package surface. */\nexport function iconSizePx(size: IconSize | number): number {\n return typeof size === \"number\" ? size : Number.parseFloat(iconSizes[size]);\n}\n\nfunction iconSizeVar(size: IconSize): string {\n return `var(--ds-icon-size-${size}, var(--icon-size-${size}, ${iconSizes[size]}))`;\n}\n\n/**\n * The `<svg>` root every catalogue icon renders through. For the catalogue\n * modules (and `createIcon`); not package surface — products use `createIcon`.\n */\nexport function Icon({\n size = 24,\n strokeWidth,\n viewBox = DEFAULT_VIEW_BOX,\n className,\n style,\n title,\n children,\n ...props\n}: IconProps & { children: React.ReactNode }) {\n const px = iconSizePx(size);\n // The pixel attributes are the no-CSS fallback; a named size is a token so\n // that themes and dense layouts can retune every icon at once.\n const box =\n typeof size === \"string\" ? { width: iconSizeVar(size), height: iconSizeVar(size) } : undefined;\n return (\n <svg\n width={px}\n height={px}\n viewBox={viewBox}\n fill=\"none\"\n strokeWidth={strokeWidth ?? DEFAULT_STROKE_WIDTH}\n className={cn(\"ds:shrink-0\", className)}\n style={box || style ? { ...box, ...style } : undefined}\n {...(title !== undefined ? { role: \"img\" } : { \"aria-hidden\": \"true\" })}\n {...props}\n >\n {title !== undefined ? <title>{title}</title> : null}\n {children}\n </svg>\n );\n}\n\nexport interface IconDefinition {\n /** Component name, e.g. `\"ArchiveIcon\"`; becomes the `displayName`. */\n name: string;\n /**\n * What to draw. Path data strings become `currentColor` strokes with round\n * caps and joins, the catalogue's outline style; pass elements for anything\n * else (filled dots, rects, a mark's fixed colours). Elements must not set\n * their own `strokeWidth` — it lives on the root so the prop works.\n */\n paths: string | readonly string[] | React.ReactNode;\n /** Defaults to `\"0 0 24 24\"`. A product icon drawn on another grid sets its own. */\n viewBox?: string;\n /** This glyph's default stroke width when the caller passes none. Defaults to Lucide's 2. */\n strokeWidth?: number | string;\n}\n\nfunction isPathData(paths: IconDefinition[\"paths\"]): paths is string | readonly string[] {\n return (\n typeof paths === \"string\" ||\n (Array.isArray(paths) && paths.every((path) => typeof path === \"string\"))\n );\n}\n\n/**\n * Builds an icon component with the catalogue's props, sizing, stroke and\n * accessibility contract from path data or SVG elements. Products use it for\n * icons that are theirs (vendor logos, annotation shapes) without inlining\n * `<svg>` at call sites; the catalogue uses it for its newer glyphs.\n *\n * @example\n * const ArchiveIcon = createIcon({\n * name: \"ArchiveIcon\",\n * paths: [\"M3 3h18a1 1 0 011 1v3a1 1 0 01-1 1H3a1 1 0 01-1-1V4a1 1 0 011-1z\", \"M4 8v11a2 2 0 002 2h12a2 2 0 002-2V8\", \"M10 12h4\"],\n * });\n */\nexport function createIcon(definition: IconDefinition): IconComponent {\n const { name, paths, viewBox, strokeWidth: defaultStrokeWidth } = definition;\n const children = isPathData(paths)\n ? (typeof paths === \"string\" ? [paths] : paths).map((d, index) => (\n <path\n key={index}\n d={d}\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n ))\n : paths;\n function Component({ strokeWidth = defaultStrokeWidth, ...props }: IconProps) {\n return (\n <Icon strokeWidth={strokeWidth} viewBox={viewBox} {...props}>\n {children}\n </Icon>\n );\n }\n Component.displayName = name;\n return Component;\n}\n\n/** A glyph from the `lucide` package: its plain `[tag, attributes]` node list. */\nexport type LucideIconNode = readonly (readonly [\n tag: string,\n attributes: Readonly<Record<string, string | number | undefined>>,\n])[];\n\n/**\n * Builds a catalogue icon from a Lucide glyph. The node data comes from the\n * framework-free `lucide` package rather than `lucide-react`: its components\n * are `\"use client\"`, which would put a client boundary in front of every\n * icon and break the server-safe `/icons` entry. Rendering the data through\n * `Icon` keeps the catalogue's props and DOM contract. `filled` fills every\n * shape, for the few names whose glyph is a solid mark (`StarIcon`).\n * For the catalogue modules; not package surface.\n */\nexport function lucideIcon(\n name: string,\n node: LucideIconNode,\n { filled = false }: { filled?: boolean } = {},\n): IconComponent {\n return createIcon({\n name,\n paths: node.map(([tag, attributes], index) =>\n createElement(tag, {\n key: index,\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n ...(filled ? { fill: \"currentColor\" } : null),\n ...attributes,\n }),\n ),\n });\n}\n","import { CircleAlert } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const AlertCircleIcon = /* @__PURE__ */ lucideIcon(\"AlertCircleIcon\", CircleAlert);\n","import { TriangleAlert } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const AlertTriangleIcon = /* @__PURE__ */ lucideIcon(\"AlertTriangleIcon\", TriangleAlert);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function AlertTriangleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\"\n />\n </Icon>\n );\n}\n","import { Archive } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArchiveIcon = /* @__PURE__ */ lucideIcon(\"ArchiveIcon\", Archive);\n","import { ArrowDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowDownIcon = /* @__PURE__ */ lucideIcon(\"ArrowDownIcon\", ArrowDown);\n","import { ArrowLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowLeftIcon = /* @__PURE__ */ lucideIcon(\"ArrowLeftIcon\", ArrowLeft);\n","import { ArrowRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowRightIcon = /* @__PURE__ */ lucideIcon(\"ArrowRightIcon\", ArrowRight);\n","import { ArrowRightIcon } from \"./arrow-right-icon\";\n\n/**\n * @deprecated Use `ArrowRightIcon` — it is the same path; \"small\" was never a\n * different drawing. This alias is the identical component and stays through 2.x.\n */\nexport const ArrowRightSmallIcon = ArrowRightIcon;\n","import { ArrowUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowUpIcon = /* @__PURE__ */ lucideIcon(\"ArrowUpIcon\", ArrowUp);\n","import { ArrowUpRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Opens or jumps to the item — an arrow leaving the top-right corner. */\nexport const ArrowUpRightIcon = /* @__PURE__ */ lucideIcon(\"ArrowUpRightIcon\", ArrowUpRight);\n","import { AtSign } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const AtSignIcon = /* @__PURE__ */ lucideIcon(\"AtSignIcon\", AtSign);\n","import { Ban } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Not allowed / blocked / voided. */\nexport const BanIcon = /* @__PURE__ */ lucideIcon(\"BanIcon\", Ban);\n","import { ChartNoAxesColumn } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BarChartIcon = /* @__PURE__ */ lucideIcon(\"BarChartIcon\", ChartNoAxesColumn);\n","import { Bell } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BellIcon = /* @__PURE__ */ lucideIcon(\"BellIcon\", Bell);\n","import { Bold } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BoldIcon = /* @__PURE__ */ lucideIcon(\"BoldIcon\", Bold);\n","import { Brain } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BrainIcon = /* @__PURE__ */ lucideIcon(\"BrainIcon\", Brain);\n","import { Briefcase } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BriefcaseIcon = /* @__PURE__ */ lucideIcon(\"BriefcaseIcon\", Briefcase);\n","import { Building2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const Building2Icon = /* @__PURE__ */ lucideIcon(\"Building2Icon\", Building2);\n","import { Building } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BuildingIcon = /* @__PURE__ */ lucideIcon(\"BuildingIcon\", Building);\n","import { Calculator } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Calculator — a computed amount or a calculation tool. */\nexport const CalculatorIcon = /* @__PURE__ */ lucideIcon(\"CalculatorIcon\", Calculator);\n","import { Calendar } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CalendarIcon = /* @__PURE__ */ lucideIcon(\"CalendarIcon\", Calendar);\n","import { Camera } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Take or attach a photo. */\nexport const CameraIcon = /* @__PURE__ */ lucideIcon(\"CameraIcon\", Camera);\n","import { MessageSquare } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChatBubbleIcon = /* @__PURE__ */ lucideIcon(\"ChatBubbleIcon\", MessageSquare);\n","import { CheckCheck } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Double tick — delivered or read. */\nexport const CheckCheckIcon = /* @__PURE__ */ lucideIcon(\"CheckCheckIcon\", CheckCheck);\n","import { CircleCheck } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CheckCircle2Icon = /* @__PURE__ */ lucideIcon(\"CheckCircle2Icon\", CircleCheck);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function CheckCircleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 0 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\"\n />\n </Icon>\n );\n}\n","import { Check } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CheckIcon = /* @__PURE__ */ lucideIcon(\"CheckIcon\", Check);\n","import { ChevronDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronDownIcon = /* @__PURE__ */ lucideIcon(\"ChevronDownIcon\", ChevronDown);\n","import { ChevronLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronLeftIcon = /* @__PURE__ */ lucideIcon(\"ChevronLeftIcon\", ChevronLeft);\n","import { ChevronRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronRightIcon = /* @__PURE__ */ lucideIcon(\"ChevronRightIcon\", ChevronRight);\n","import { ChevronUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronUpIcon = /* @__PURE__ */ lucideIcon(\"ChevronUpIcon\", ChevronUp);\n","import { ChevronsDownUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Collapse — the pair of `ChevronsUpDownIcon`. */\nexport const ChevronsDownUpIcon = /* @__PURE__ */ lucideIcon(\"ChevronsDownUpIcon\", ChevronsDownUp);\n","import { ChevronsLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Collapse to the left / jump to the start. */\nexport const ChevronsLeftIcon = /* @__PURE__ */ lucideIcon(\"ChevronsLeftIcon\", ChevronsLeft);\n","import { ChevronsRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Expand to the right / jump to the end. */\nexport const ChevronsRightIcon = /* @__PURE__ */ lucideIcon(\"ChevronsRightIcon\", ChevronsRight);\n","import { ChevronsUpDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronsUpDownIcon = /* @__PURE__ */ lucideIcon(\"ChevronsUpDownIcon\", ChevronsUpDown);\n","import { CircleDot } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CircleDotIcon = /* @__PURE__ */ lucideIcon(\"CircleDotIcon\", CircleDot);\n","import { Circle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CircleIcon = /* @__PURE__ */ lucideIcon(\"CircleIcon\", Circle);\n","import { ClipboardCheck } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ClipboardCheckIcon = /* @__PURE__ */ lucideIcon(\"ClipboardCheckIcon\", ClipboardCheck);\n","import { Clock } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ClockIcon = /* @__PURE__ */ lucideIcon(\"ClockIcon\", Clock);\n","import { X } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const XIcon = /* @__PURE__ */ lucideIcon(\"XIcon\", X);\n","import { XIcon } from \"./x-icon\";\n\n/**\n * @deprecated Use `XIcon` — the same glyph under its lucide name (the catalogue\n * drew it twice). This alias is the identical component and stays through 2.x.\n */\nexport const CloseIcon = XIcon;\n","import { Command } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CommandIcon = /* @__PURE__ */ lucideIcon(\"CommandIcon\", Command);\n","import { Copy } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CopyIcon = /* @__PURE__ */ lucideIcon(\"CopyIcon\", Copy);\n","import { CornerDownLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CornerDownLeftIcon = /* @__PURE__ */ lucideIcon(\"CornerDownLeftIcon\", CornerDownLeft);\n","import { CreditCard } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CreditCardIcon = /* @__PURE__ */ lucideIcon(\"CreditCardIcon\", CreditCard);\n","import { FileText } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FileTextIcon = /* @__PURE__ */ lucideIcon(\"FileTextIcon\", FileText);\n","import { FileTextIcon } from \"./file-text-icon\";\n\n/** The same glyph as `FileTextIcon` (Lucide `file-text`), under its older name. */\nexport const DocumentIcon = FileTextIcon;\n","import { DollarSign } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const DollarSignIcon = /* @__PURE__ */ lucideIcon(\"DollarSignIcon\", DollarSign);\n","import { Download } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const DownloadIcon = /* @__PURE__ */ lucideIcon(\"DownloadIcon\", Download);\n","import { ExternalLink } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Pop-out / opens elsewhere — box with an arrow leaving the top-right corner. */\nexport const ExternalLinkIcon = /* @__PURE__ */ lucideIcon(\"ExternalLinkIcon\", ExternalLink);\n","import { useId } from \"react\";\n\nimport { cn } from \"../lib/cn\";\nimport { iconSizePx, type IconProps } from \"./icon-base\";\n\n/**\n * ExtractIcon — gradient (Pro purple → cyan) tri-sparkle used for AI\n * \"Extract\" affordances. Unlike the currentColor catalog, the fill is a\n * fixed brand gradient; `size` scales it while preserving the 16:12 ratio.\n * Gradient/clip ids are per-instance (useId) so multiple icons don't clash.\n */\nexport function ExtractIcon({ size = 16, className, ...props }: IconProps) {\n const uid = useId();\n const gradId = `extract-grad-${uid}`;\n const clipId = `extract-clip-${uid}`;\n const px = iconSizePx(size);\n return (\n <svg\n width={px}\n height={(px * 12) / 16}\n viewBox=\"0 0 16 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn(\"ds:shrink-0\", className)}\n aria-hidden=\"true\"\n {...props}\n >\n <g clipPath={`url(#${clipId})`}>\n <path\n d=\"M6.24553 5.34293C5.91553 5.23294 5.91553 4.76699 6.24553 4.657L8.18254 4.01207C8.60834 3.87011 8.99522 3.63094 9.31252 3.3135C9.62982 2.99607 9.8688 2.6091 10.0105 2.18327L10.6555 0.247473C10.7655 -0.0824911 11.2315 -0.0824912 11.3415 0.247473L11.9866 2.18427C12.1285 2.61002 12.3677 2.99686 12.6852 3.31412C13.0027 3.63139 13.3897 3.87035 13.8156 4.01207L15.7516 4.657C15.8238 4.68071 15.8868 4.72664 15.9314 4.78823C15.976 4.84982 16 4.92392 16 4.99996C16 5.07601 15.976 5.15011 15.9314 5.2117C15.8868 5.27329 15.8238 5.31921 15.7516 5.34293L13.8146 5.98786C13.3889 6.12971 13.0021 6.36874 12.6848 6.68599C12.3675 7.00324 12.1284 7.39001 11.9866 7.81566L11.3415 9.75245C11.3178 9.82471 11.2719 9.88763 11.2103 9.93223C11.1487 9.97684 11.0746 10.0009 10.9985 10.0009C10.9225 10.0009 10.8484 9.97684 10.7868 9.93223C10.7252 9.88763 10.6793 9.82471 10.6555 9.75245L10.0105 7.81566C9.86867 7.39001 9.62962 7.00324 9.31233 6.68599C8.99505 6.36874 8.60823 6.12971 8.18254 5.98786L6.24553 5.34293ZM1.14651 9.20551C1.1032 9.19117 1.06552 9.16355 1.03881 9.12658C1.0121 9.0896 0.99772 9.04515 0.99772 8.99954C0.99772 8.95392 1.0121 8.90947 1.03881 8.87249C1.06552 8.83552 1.1032 8.8079 1.14651 8.79356L2.30851 8.4066C2.82651 8.23362 3.23252 7.82766 3.40552 7.30972L3.79252 6.14784C3.80686 6.10454 3.83448 6.06686 3.87146 6.04015C3.90844 6.01345 3.9529 5.99907 3.99852 5.99907C4.04414 5.99907 4.0886 6.01345 4.12558 6.04015C4.16256 6.06686 4.19018 6.10454 4.20452 6.14784L4.59152 7.30972C4.67664 7.56516 4.82009 7.79728 5.0105 7.98767C5.20091 8.17806 5.43305 8.32149 5.68853 8.4066L6.85053 8.79356C6.89384 8.8079 6.93152 8.83551 6.95823 8.87249C6.98494 8.90947 6.99932 8.95392 6.99932 8.99954C6.99932 9.04515 6.98494 9.0896 6.95823 9.12658C6.93152 9.16355 6.89384 9.19117 6.85053 9.20551L5.68853 9.59247C5.43305 9.67758 5.20091 9.82101 5.0105 10.0114C4.82009 10.2018 4.67664 10.4339 4.59152 10.6894L4.20452 11.8512C4.19018 11.8945 4.16256 11.9322 4.12558 11.9589C4.0886 11.9856 4.04414 12 3.99852 12C3.9529 12 3.90844 11.9856 3.87146 11.9589C3.83448 11.9322 3.80686 11.8945 3.79252 11.8512L3.40552 10.6894C3.3204 10.4339 3.17695 10.2018 2.98654 10.0114C2.79613 9.82101 2.56399 9.67758 2.30851 9.59247L1.14651 9.20551ZM0.097503 2.13727C0.0690292 2.1274 0.0443387 2.1089 0.0268643 2.08435C0.00938996 2.0598 1.317e-09 2.03042 0 2.00029C-1.318e-09 1.97015 0.00938995 1.94077 0.0268643 1.91622C0.0443387 1.89167 0.0690292 1.87317 0.097503 1.8633L0.871506 1.60533C1.21751 1.49034 1.48851 1.21937 1.60351 0.873408L1.86151 0.0994903C1.87138 0.0710193 1.88988 0.0463306 1.91443 0.0288584C1.93899 0.0113861 1.96837 0.00199815 1.99851 0.00199814C2.02865 0.00199814 2.05803 0.0113861 2.08259 0.0288583C2.10714 0.0463306 2.12564 0.0710193 2.13551 0.0994903L2.39351 0.873408C2.45024 1.0439 2.54593 1.19882 2.673 1.32588C2.80006 1.45293 2.955 1.54861 3.12552 1.60533L3.89952 1.8633C3.92799 1.87317 3.95268 1.89167 3.97016 1.91622C3.98763 1.94077 3.99702 1.97015 3.99702 2.00029C3.99702 2.03042 3.98763 2.0598 3.97016 2.08435C3.95268 2.1089 3.92799 2.1274 3.89952 2.13727L3.12552 2.39524C2.955 2.45196 2.80006 2.54764 2.673 2.6747C2.54593 2.80175 2.45024 2.95667 2.39351 3.12717L2.13551 3.90008C2.12564 3.92855 2.10714 3.95324 2.08259 3.97071C2.05804 3.98819 2.02865 3.99757 1.99851 3.99757C1.96837 3.99757 1.93899 3.98819 1.91443 3.97071C1.88988 3.95324 1.87138 3.92855 1.86151 3.90008L1.60351 3.12617C1.48851 2.7802 1.21751 2.50923 0.871506 2.39424L0.097503 2.13727Z\"\n fill={`url(#${gradId})`}\n />\n </g>\n <defs>\n <linearGradient\n id={gradId}\n x1=\"0.265576\"\n y1=\"0.856805\"\n x2=\"13.5\"\n y2=\"12\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#9E32FF\" />\n <stop offset=\"1\" stopColor=\"#1BB6FF\" />\n </linearGradient>\n <clipPath id={clipId}>\n <rect width=\"16\" height=\"12\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n","import { Eye } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const EyeIcon = /* @__PURE__ */ lucideIcon(\"EyeIcon\", Eye);\n","import { EyeOff } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const EyeOffIcon = /* @__PURE__ */ lucideIcon(\"EyeOffIcon\", EyeOff);\n","import { FileChartColumn } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** A report document — a page with a column chart. */\nexport const FileChartColumnIcon = /* @__PURE__ */ lucideIcon(\n \"FileChartColumnIcon\",\n FileChartColumn,\n);\n","import { File } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FileIcon = /* @__PURE__ */ lucideIcon(\"FileIcon\", File);\n","import { FileUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FileReturnIcon = /* @__PURE__ */ lucideIcon(\"FileReturnIcon\", FileUp);\n","import { Funnel } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/**\n * FilterIcon — funnel mark used for filter popover triggers across list\n * pages (clients, workflow, billing, organizers…) — Lucide `funnel`. Pair\n * with a corner notification dot to surface active filter count.\n */\nexport const FilterIcon = /* @__PURE__ */ lucideIcon(\"FilterIcon\", Funnel);\n","import { Flag } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FlagIcon = /* @__PURE__ */ lucideIcon(\"FlagIcon\", Flag);\n","import { Folder } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FolderClosedIcon = /* @__PURE__ */ lucideIcon(\"FolderClosedIcon\", Folder);\n","import { FolderDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Download a folder's contents. */\nexport const FolderDownIcon = /* @__PURE__ */ lucideIcon(\"FolderDownIcon\", FolderDown);\n","import { FolderOpen } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FolderOpenIcon = /* @__PURE__ */ lucideIcon(\"FolderOpenIcon\", FolderOpen);\n","import { FolderPlus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FolderPlusIcon = /* @__PURE__ */ lucideIcon(\"FolderPlusIcon\", FolderPlus);\n","import { FolderUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Folder with an up-arrow — the \"upload documents\" / document-request mark. */\nexport const FolderUpIcon = /* @__PURE__ */ lucideIcon(\"FolderUpIcon\", FolderUp);\n","import { Globe } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const GlobeIcon = /* @__PURE__ */ lucideIcon(\"GlobeIcon\", Globe);\n","import { Icon, type IconProps } from \"./icon-base\";\n\n// Tier E — brand icons (multi-color, brand-locked). These DO NOT respond\n// to `currentColor` or `color-*` token classes — that's by design. Use\n// only inside OAuth buttons, integration chips, and provider-list UIs.\n// All other \"icon\" usages should stay in the semantic catalog above.\n// Suffixed `BrandIcon` to make the different contract obvious at the\n// call site.\n/**\n * GoogleBrandIcon — Google four-color \"G\" mark. Brand-locked colors,\n * does NOT respond to currentColor. Use only in provider-list UIs\n * (OAuth buttons, integration chips). Standard 24-grid.\n */\nexport function GoogleBrandIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fill=\"#4285F4\"\n d=\"M22 12.27c0-.71-.06-1.4-.18-2.07H12v3.93h5.59a4.78 4.78 0 01-2.07 3.14v2.6h3.34c1.95-1.8 3.08-4.45 3.08-7.6z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 22.5c2.81 0 5.16-.93 6.88-2.52l-3.34-2.6c-.93.62-2.11.99-3.54.99-2.72 0-5.03-1.84-5.86-4.31H2.69v2.69A10.5 10.5 0 0012 22.5z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M6.14 14.06A6.3 6.3 0 015.8 12c0-.71.12-1.4.34-2.06V7.25H2.69A10.5 10.5 0 001.5 12c0 1.7.41 3.3 1.19 4.75l3.45-2.69z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.63c1.53 0 2.91.53 4 1.56l3-3C17.16 2.47 14.8 1.5 12 1.5A10.5 10.5 0 002.69 7.25l3.45 2.69C7 7.47 9.28 5.63 12 5.63z\"\n />\n </Icon>\n );\n}\n","import { GraduationCap } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Learning — tours, tutorials and training. */\nexport const GraduationCapIcon = /* @__PURE__ */ lucideIcon(\"GraduationCapIcon\", GraduationCap);\n","import { GripHorizontal } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Six-dot drag handle for horizontally dragged tiles and widgets. */\nexport const GripHorizontalIcon = /* @__PURE__ */ lucideIcon(\"GripHorizontalIcon\", GripHorizontal);\n","import { GripVertical } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Six-dot drag handle for sortable rows and kanban cards. */\nexport const GripVerticalIcon = /* @__PURE__ */ lucideIcon(\"GripVerticalIcon\", GripVertical);\n","import { CircleQuestionMark } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const HelpCircleIcon = /* @__PURE__ */ lucideIcon(\"HelpCircleIcon\", CircleQuestionMark);\n","import { History } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const HistoryIcon = /* @__PURE__ */ lucideIcon(\"HistoryIcon\", History);\n","import { House } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const HomeIcon = /* @__PURE__ */ lucideIcon(\"HomeIcon\", House);\n","import { Inbox } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const InboxIcon = /* @__PURE__ */ lucideIcon(\"InboxIcon\", Inbox);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function InfoCircleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.342l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.341l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\"\n />\n </Icon>\n );\n}\n","import { Info } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const InfoIcon = /* @__PURE__ */ lucideIcon(\"InfoIcon\", Info);\n","import { Italic } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ItalicIcon = /* @__PURE__ */ lucideIcon(\"ItalicIcon\", Italic);\n","import { Kanban } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const KanbanIcon = /* @__PURE__ */ lucideIcon(\"KanbanIcon\", Kanban);\n","import { Key } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const KeyIcon = /* @__PURE__ */ lucideIcon(\"KeyIcon\", Key);\n","import { Landmark } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Landmark / \"bank\" glyph (columns + pediment) — the accounting service mark. */\nexport const LandmarkIcon = /* @__PURE__ */ lucideIcon(\"LandmarkIcon\", Landmark);\n","import { Layers } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayersIcon = /* @__PURE__ */ lucideIcon(\"LayersIcon\", Layers);\n","import { LayoutDashboard } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayoutDashboardIcon = /* @__PURE__ */ lucideIcon(\n \"LayoutDashboardIcon\",\n LayoutDashboard,\n);\n","import { LayoutGrid } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayoutGridIcon = /* @__PURE__ */ lucideIcon(\"LayoutGridIcon\", LayoutGrid);\n","import { LayoutList } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayoutListIcon = /* @__PURE__ */ lucideIcon(\"LayoutListIcon\", LayoutList);\n","import { Zap } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LightningIcon = /* @__PURE__ */ lucideIcon(\"LightningIcon\", Zap);\n","import { Link2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const Link2Icon = /* @__PURE__ */ lucideIcon(\"Link2Icon\", Link2);\n","import { Link } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LinkIcon = /* @__PURE__ */ lucideIcon(\"LinkIcon\", Link);\n","import { ListChecks } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ListChecksIcon = /* @__PURE__ */ lucideIcon(\"ListChecksIcon\", ListChecks);\n","import { List } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ListIcon = /* @__PURE__ */ lucideIcon(\"ListIcon\", List);\n","import { ListOrdered } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ListOrderedIcon = /* @__PURE__ */ lucideIcon(\"ListOrderedIcon\", ListOrdered);\n","import { LoaderCircle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/**\n * LoaderIcon — animated spinner (Lucide `loader-circle`). Render with\n * `className=\"animate-spin\"` (or `motion-safe:animate-spin` if you want to\n * respect `prefers-reduced-motion`; the catalog doesn't gate this itself\n * because the spinner IS the indicator for many flows).\n *\n * Visual contract: a three-quarter arc whose open end reads as the spinner's\n * leading edge when rotated.\n */\nexport const LoaderIcon = /* @__PURE__ */ lucideIcon(\"LoaderIcon\", LoaderCircle);\n","import { Lock } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LockIcon = /* @__PURE__ */ lucideIcon(\"LockIcon\", Lock);\n","import { LockKeyhole } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LockKeyholeIcon = /* @__PURE__ */ lucideIcon(\"LockKeyholeIcon\", LockKeyhole);\n","import { LockOpen } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LockOpenIcon = /* @__PURE__ */ lucideIcon(\"LockOpenIcon\", LockOpen);\n","import { LogOut } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LogOutIcon = /* @__PURE__ */ lucideIcon(\"LogOutIcon\", LogOut);\n","import { Mail } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MailIcon = /* @__PURE__ */ lucideIcon(\"MailIcon\", Mail);\n","import { MapPin } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MapPinIcon = /* @__PURE__ */ lucideIcon(\"MapPinIcon\", MapPin);\n","import { Maximize } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Enter full screen / expand a panel — four outward corners. */\nexport const MaximizeIcon = /* @__PURE__ */ lucideIcon(\"MaximizeIcon\", Maximize);\n","import { Menu } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MenuIcon = /* @__PURE__ */ lucideIcon(\"MenuIcon\", Menu);\n","import { MessageCircle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MessageCircleIcon = /* @__PURE__ */ lucideIcon(\"MessageCircleIcon\", MessageCircle);\n","import { MessageCircleMore } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Chat with an ellipsis — a conversation, or someone typing. */\nexport const MessageCircleMoreIcon = /* @__PURE__ */ lucideIcon(\n \"MessageCircleMoreIcon\",\n MessageCircleMore,\n);\n","import { MessageCircleWarning } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MessageCircleWarningIcon = /* @__PURE__ */ lucideIcon(\n \"MessageCircleWarningIcon\",\n MessageCircleWarning,\n);\n","import { Mic } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MicIcon = /* @__PURE__ */ lucideIcon(\"MicIcon\", Mic);\n","import { Icon, type IconProps } from \"./icon-base\";\n\n/**\n * MicrosoftBrandIcon — Microsoft four-square mark in red / green / blue /\n * yellow. Brand-locked colors, does NOT respond to currentColor. Use\n * inside Microsoft OAuth signin buttons, Outlook / Office integration\n * chips, and similar provider-list UIs. Standard 24-grid (10×10 squares\n * with 2u gaps).\n */\nexport function MicrosoftBrandIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"1\" y=\"1\" width=\"10\" height=\"10\" fill=\"#F25022\" />\n <rect x=\"13\" y=\"1\" width=\"10\" height=\"10\" fill=\"#7FBA00\" />\n <rect x=\"1\" y=\"13\" width=\"10\" height=\"10\" fill=\"#00A4EF\" />\n <rect x=\"13\" y=\"13\" width=\"10\" height=\"10\" fill=\"#FFB900\" />\n </Icon>\n );\n}\n","import { Minimize } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Leave full screen / shrink a panel — four inward corners. */\nexport const MinimizeIcon = /* @__PURE__ */ lucideIcon(\"MinimizeIcon\", Minimize);\n","import { Minus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MinusIcon = /* @__PURE__ */ lucideIcon(\"MinusIcon\", Minus);\n","import { Monitor } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MonitorIcon = /* @__PURE__ */ lucideIcon(\"MonitorIcon\", Monitor);\n","import { Moon } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MoonIcon = /* @__PURE__ */ lucideIcon(\"MoonIcon\", Moon);\n","import { Ellipsis } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MoreHorizontalIcon = /* @__PURE__ */ lucideIcon(\"MoreHorizontalIcon\", Ellipsis);\n","import { EllipsisVertical } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Row or card overflow menu — the vertical pair of `MoreHorizontalIcon`. */\nexport const MoreVerticalIcon = /* @__PURE__ */ lucideIcon(\"MoreVerticalIcon\", EllipsisVertical);\n","import { MousePointer2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Pointer / select tool. */\nexport const MousePointer2Icon = /* @__PURE__ */ lucideIcon(\"MousePointer2Icon\", MousePointer2);\n","import { Move } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MoveIcon = /* @__PURE__ */ lucideIcon(\"MoveIcon\", Move);\n","import { Palette } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PaletteIcon = /* @__PURE__ */ lucideIcon(\"PaletteIcon\", Palette);\n","import { PanelLeftClose } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PanelLeftCloseIcon = /* @__PURE__ */ lucideIcon(\"PanelLeftCloseIcon\", PanelLeftClose);\n","import { PanelLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PanelLeftIcon = /* @__PURE__ */ lucideIcon(\"PanelLeftIcon\", PanelLeft);\n","import { PanelRightClose } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Collapse the right panel — the mirror of `PanelLeftCloseIcon`. */\nexport const PanelRightCloseIcon = /* @__PURE__ */ lucideIcon(\n \"PanelRightCloseIcon\",\n PanelRightClose,\n);\n","import { PanelRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Dock to the right — the mirror of `PanelLeftIcon`. */\nexport const PanelRightIcon = /* @__PURE__ */ lucideIcon(\"PanelRightIcon\", PanelRight);\n","import { Paperclip } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PaperclipIcon = /* @__PURE__ */ lucideIcon(\"PaperclipIcon\", Paperclip);\n","import { Pause } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PauseIcon = /* @__PURE__ */ lucideIcon(\"PauseIcon\", Pause);\n","import { Signature } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PenSignIcon = /* @__PURE__ */ lucideIcon(\"PenSignIcon\", Signature);\n","import { PenTool } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Pen-tool / nibbed signature pen — the e-signature mark. */\nexport const PenToolIcon = /* @__PURE__ */ lucideIcon(\"PenToolIcon\", PenTool);\n","import { Pencil } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PencilIcon = /* @__PURE__ */ lucideIcon(\"PencilIcon\", Pencil);\n","import { Phone } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PhoneIcon = /* @__PURE__ */ lucideIcon(\"PhoneIcon\", Phone);\n","import { Play } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PlayIcon = /* @__PURE__ */ lucideIcon(\"PlayIcon\", Play);\n","import { Plus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PlusIcon = /* @__PURE__ */ lucideIcon(\"PlusIcon\", Plus);\n","import { Receipt } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ReceiptIcon = /* @__PURE__ */ lucideIcon(\"ReceiptIcon\", Receipt);\n","import { RefreshCw } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Two clockwise arrows — refresh / sync. `RotateCcwIcon` is the single-arrow undo. */\nexport const RefreshCwIcon = /* @__PURE__ */ lucideIcon(\"RefreshCwIcon\", RefreshCw);\n","import { Reply } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ReplyIcon = /* @__PURE__ */ lucideIcon(\"ReplyIcon\", Reply);\n","import { RotateCcw } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const RotateCcwIcon = /* @__PURE__ */ lucideIcon(\"RotateCcwIcon\", RotateCcw);\n","import { Rows4 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const Rows4Icon = /* @__PURE__ */ lucideIcon(\"Rows4Icon\", Rows4);\n","import { Rows } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const RowsIcon = /* @__PURE__ */ lucideIcon(\"RowsIcon\", Rows);\n","import { Save } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SaveIcon = /* @__PURE__ */ lucideIcon(\"SaveIcon\", Save);\n","import { Search } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SearchIcon = /* @__PURE__ */ lucideIcon(\"SearchIcon\", Search);\n","import { Send } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SendIcon = /* @__PURE__ */ lucideIcon(\"SendIcon\", Send);\n","import { Settings } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SettingsIcon = /* @__PURE__ */ lucideIcon(\"SettingsIcon\", Settings);\n","import { Shield } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ShieldIcon = /* @__PURE__ */ lucideIcon(\"ShieldIcon\", Shield);\n","import { Sigma } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Formula / sum — the Greek capital sigma. */\nexport const SigmaIcon = /* @__PURE__ */ lucideIcon(\"SigmaIcon\", Sigma);\n","import { Slash } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SlashIcon = /* @__PURE__ */ lucideIcon(\"SlashIcon\", Slash);\n","import { Smartphone } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SmartphoneIcon = /* @__PURE__ */ lucideIcon(\"SmartphoneIcon\", Smartphone);\n","import { Sparkle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SparkleIcon = /* @__PURE__ */ lucideIcon(\"SparkleIcon\", Sparkle);\n","import { Sparkles } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SparklesIcon = /* @__PURE__ */ lucideIcon(\"SparklesIcon\", Sparkles);\n","import { SquarePlay } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** A video item — a play mark in a frame; `PlayIcon` is the playback control. */\nexport const SquarePlayIcon = /* @__PURE__ */ lucideIcon(\"SquarePlayIcon\", SquarePlay);\n","import { Star } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const StarIcon = /* @__PURE__ */ lucideIcon(\"StarIcon\", Star, { filled: true });\n","import { Square } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const StopIcon = /* @__PURE__ */ lucideIcon(\"StopIcon\", Square, { filled: true });\n","import { Strikethrough } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const StrikethroughIcon = /* @__PURE__ */ lucideIcon(\"StrikethroughIcon\", Strikethrough);\n","import { Sun } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SunIcon = /* @__PURE__ */ lucideIcon(\"SunIcon\", Sun);\n","import { Table } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TableIcon = /* @__PURE__ */ lucideIcon(\"TableIcon\", Table);\n","import { Tag } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TagIcon = /* @__PURE__ */ lucideIcon(\"TagIcon\", Tag);\n","import { UserPlus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TeamIcon = /* @__PURE__ */ lucideIcon(\"TeamIcon\", UserPlus);\n","import { ThumbsDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ThumbsDownIcon = /* @__PURE__ */ lucideIcon(\"ThumbsDownIcon\", ThumbsDown);\n","import { ThumbsUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ThumbsUpIcon = /* @__PURE__ */ lucideIcon(\"ThumbsUpIcon\", ThumbsUp);\n","import { Timer } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Stopwatch — elapsed time and timers; `ClockIcon` is wall-clock time. */\nexport const TimerIcon = /* @__PURE__ */ lucideIcon(\"TimerIcon\", Timer);\n","import { Trash } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TrashIcon = /* @__PURE__ */ lucideIcon(\"TrashIcon\", Trash);\n","import { TrashIcon } from \"./trash-icon\";\n\n/** The same glyph as `TrashIcon`: Lucide merged `trash-2` into `trash`. */\nexport const Trash2Icon = TrashIcon;\n","import { createIcon } from \"./icon-base\";\n\n/**\n * Filled trash can for destructive affordances inside small round buttons,\n * where the outline `TrashIcon` reads as thin. Same family as the solid status\n * icons: the slots are knockouts.\n */\nexport const TrashSolidIcon = /* @__PURE__ */ createIcon({\n name: \"TrashSolidIcon\",\n paths: (\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M10 2h4a1 1 0 011 1v1h4a1 1 0 110 2H5a1 1 0 110-2h4V3a1 1 0 011-1zM6 7.5h12l-.87 12.14a2 2 0 01-1.99 1.86H8.86a2 2 0 01-1.99-1.86L6 7.5zm3.75 3v7a.75.75 0 001.5 0v-7a.75.75 0 00-1.5 0zm3 0v7a.75.75 0 001.5 0v-7a.75.75 0 00-1.5 0z\"\n />\n ),\n});\n","import { TrendingDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TrendingDownIcon = /* @__PURE__ */ lucideIcon(\"TrendingDownIcon\", TrendingDown);\n","import { TrendingUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TrendingUpIcon = /* @__PURE__ */ lucideIcon(\"TrendingUpIcon\", TrendingUp);\n","import { Type } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Text / typography — a text block or a text field. */\nexport const TypeIcon = /* @__PURE__ */ lucideIcon(\"TypeIcon\", Type);\n","import { Underline } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UnderlineIcon = /* @__PURE__ */ lucideIcon(\"UnderlineIcon\", Underline);\n","import { Upload } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UploadIcon = /* @__PURE__ */ lucideIcon(\"UploadIcon\", Upload);\n","import { CircleUser } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UserCircleIcon = /* @__PURE__ */ lucideIcon(\"UserCircleIcon\", CircleUser);\n","import { User } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UserIcon = /* @__PURE__ */ lucideIcon(\"UserIcon\", User);\n","import { Users } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UsersIcon = /* @__PURE__ */ lucideIcon(\"UsersIcon\", Users);\n","import { Video } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Video camera; pair with `PlayIcon` for playback. */\nexport const VideoIcon = /* @__PURE__ */ lucideIcon(\"VideoIcon\", Video);\n","import { Volume2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Speaker with two sound waves — audio on. */\nexport const Volume2Icon = /* @__PURE__ */ lucideIcon(\"Volume2Icon\", Volume2);\n","import { VolumeX } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Speaker with a cross — muted. */\nexport const VolumeXIcon = /* @__PURE__ */ lucideIcon(\"VolumeXIcon\", VolumeX);\n","import { Workflow } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const WorkflowIcon = /* @__PURE__ */ lucideIcon(\"WorkflowIcon\", Workflow);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function XCircleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M12 2.25C6.615 2.25 2.25 6.615 2.25 12s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25Zm-1.72 6.97a.75.75 0 0 0-1.06 1.06L10.94 12l-1.72 1.72a.75.75 0 1 0 1.06 1.06L12 13.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L13.06 12l1.72-1.72a.75.75 0 1 0-1.06-1.06L12 10.94l-1.72-1.72Z\"\n />\n </Icon>\n );\n}\n","import { ZoomIn } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ZoomInIcon = /* @__PURE__ */ lucideIcon(\"ZoomInIcon\", ZoomIn);\n","import { ZoomOut } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ZoomOutIcon = /* @__PURE__ */ lucideIcon(\"ZoomOutIcon\", ZoomOut);\n"]}
@@ -1,5 +1,5 @@
1
- import { stateAttributes, slot, chipAnatomy, Pressable, CONTROL_GAP_CLASSES, EN_MESSAGES, microInteractions, listItemClasses, groupHeadingClasses, useDsMessages, withPortalContainer, Backdrop, sheetAnatomy, deprecate, OverlaySurface, DismissButton, DEFAULT_OVERLAY_MESSAGES, DISMISS_GLYPH_CLASSES, OverlayBody, OverlayTitle, OverlayDescription, Input, Textarea, Select, FileUpload, FileChip, Button, Checkbox, Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, sidebarAnatomy, Slot, Avatar, DropdownMenu, DropdownMenuTrigger, sidebarBrandSwitcherAnatomy, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, buttonBase, CONTROL_SIZE_CLASSES, useFieldControl, useId as useId$1, useControllableState, useMergedRefs, Popover, PopoverAnchor, comboboxAnatomy, Spinner, IconButton, PopoverContent, LIST_SEPARATOR, listItemAttributes, optionElementId, FormBridge, useLinkComponent, useImageComponent, OverlayHeader, OverlayFooter, LIST_ITEM_INDICATOR_WELL } from './chunk-XN7OBLQR.js';
2
- import { cn, XIcon, CheckIcon, EyeIcon, DownloadIcon, PhoneIcon, MailIcon, GlobeIcon, HomeIcon, ChevronLeftIcon, ChevronRightIcon, ReceiptIcon, RotateCcwIcon, CreditCardIcon, LockIcon, FileTextIcon, PlayIcon, InfoIcon, ClockIcon, PenSignIcon, TrashIcon, PlusIcon, CheckCircleSolidIcon, HelpCircleIcon, MinusIcon, PanelLeftCloseIcon, PanelLeftIcon, ChevronDownIcon } from './chunk-AF3QYJ24.js';
1
+ import { stateAttributes, slot, chipAnatomy, Pressable, CONTROL_GAP_CLASSES, EN_MESSAGES, microInteractions, listItemClasses, groupHeadingClasses, useDsMessages, withPortalContainer, Backdrop, sheetAnatomy, deprecate, OverlaySurface, DismissButton, DEFAULT_OVERLAY_MESSAGES, DISMISS_GLYPH_CLASSES, OverlayBody, OverlayTitle, OverlayDescription, Input, Textarea, Select, FileUpload, FileChip, Button, Checkbox, Tooltip, TooltipTrigger, TooltipContent, useMergedRefs, TooltipProvider, sidebarAnatomy, Slot, Avatar, DropdownMenu, DropdownMenuTrigger, sidebarBrandSwitcherAnatomy, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, buttonBase, CONTROL_SIZE_CLASSES, useFieldControl, useId as useId$1, useControllableState, Popover, PopoverAnchor, comboboxAnatomy, Spinner, IconButton, PopoverContent, LIST_SEPARATOR, listItemAttributes, optionElementId, FormBridge, useLinkComponent, useImageComponent, OverlayHeader, OverlayFooter, LIST_ITEM_INDICATOR_WELL } from './chunk-XJKCKBHI.js';
2
+ import { cn, XIcon, CheckIcon, EyeIcon, DownloadIcon, PhoneIcon, MailIcon, GlobeIcon, HomeIcon, ChevronLeftIcon, ChevronRightIcon, ReceiptIcon, RotateCcwIcon, CreditCardIcon, LockIcon, FileTextIcon, PlayIcon, InfoIcon, ClockIcon, PenSignIcon, TrashIcon, PlusIcon, CheckCircleSolidIcon, HelpCircleIcon, MinusIcon, PanelLeftCloseIcon, PanelLeftIcon, ChevronDownIcon } from './chunk-TBDTXAFH.js';
3
3
  import { parseHexColor, contrastRatio, WHITE, formatHexColor, darkenUntilContrast } from './chunk-EUHGZA6Q.js';
4
4
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
5
5
  import * as React6 from 'react';
@@ -194,7 +194,7 @@ var Chip = forwardRef(function Chip2({
194
194
  onClick: onRemove,
195
195
  className: cn(
196
196
  "ds:inline-flex ds:size-6 ds:shrink-0 ds:items-center ds:justify-center ds:rounded-full ds:bg-transparent ds:p-0 ds:text-inherit",
197
- "ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:motion-reduce:transition-none",
197
+ "ds:transition-colors ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
198
198
  REMOVE_HOVER[style.intent]
199
199
  ),
200
200
  children: /* @__PURE__ */ jsx(XIcon, { "aria-hidden": "true" })
@@ -890,7 +890,7 @@ function Combobox(props) {
890
890
  ChevronDownIcon,
891
891
  {
892
892
  className: cn(
893
- "ds:transition-transform ds:duration-[var(--motion-duration-feedback)] ds:motion-reduce:transition-none",
893
+ "ds:transition-transform ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
894
894
  open && "ds:rotate-180"
895
895
  )
896
896
  }
@@ -1045,7 +1045,8 @@ function ClientSelect({
1045
1045
  name = "client_id",
1046
1046
  error,
1047
1047
  className,
1048
- placeholder = "Select a client..."
1048
+ placeholder = "Select a client...",
1049
+ size
1049
1050
  }) {
1050
1051
  const options = React6.useMemo(
1051
1052
  () => clients.map((client) => ({
@@ -1067,6 +1068,7 @@ function ClientSelect({
1067
1068
  "aria-label": placeholder,
1068
1069
  placeholder,
1069
1070
  invalid: Boolean(error),
1071
+ size,
1070
1072
  messages: clients.length === 0 ? { empty: "No clients yet" } : void 0,
1071
1073
  renderValue: (option) => option.label,
1072
1074
  renderOption: (option) => {
@@ -1823,6 +1825,8 @@ var ProposalPackageCard = forwardRef(
1823
1825
  "data-selected": selected || void 0,
1824
1826
  className: cn(
1825
1827
  "ds:border-rule ds:bg-surface ds:relative ds:flex ds:flex-col ds:rounded-[14px] ds:border ds:p-4",
1828
+ // Selecting a package eases its accent edge in, as ProposalAddOn does.
1829
+ "ds:transition-[border-color,box-shadow] ds:duration-[var(--motion-duration-feedback)] ds:ease-[var(--motion-ease-enter)] ds:motion-reduce:transition-none",
1826
1830
  "ds:data-[selected]:border-[var(--av-accent,var(--color-accent))] ds:data-[selected]:shadow-[0_0_0_1px_var(--av-accent,var(--color-accent))]",
1827
1831
  className
1828
1832
  ),
@@ -3307,6 +3311,7 @@ var Sidebar = React6.forwardRef(function Sidebar2({
3307
3311
  ...props
3308
3312
  }, ref) {
3309
3313
  const isFloating = variant === "floating";
3314
+ const isFlush = variant === "flush";
3310
3315
  const ctx = React6.useContext(SidebarContext);
3311
3316
  const state = collapsible && ctx ? ctx.state : "expanded";
3312
3317
  const peekLockCount = collapsible && ctx && peekEnabled ? ctx.peekLockCount : 0;
@@ -3324,6 +3329,29 @@ var Sidebar = React6.forwardRef(function Sidebar2({
3324
3329
  }
3325
3330
  }, []);
3326
3331
  React6.useEffect(() => () => clearTimers(), [clearTimers]);
3332
+ const internalRef = React6.useRef(null);
3333
+ const mergedRef = useMergedRefs(ref, internalRef);
3334
+ React6.useEffect(() => {
3335
+ if (!isFlush) return;
3336
+ const el = internalRef.current;
3337
+ if (!el) return;
3338
+ let timer;
3339
+ const onScroll = () => {
3340
+ el.dataset.scrolling = "true";
3341
+ if (el.scrollTop > 0) el.dataset.scrolled = "true";
3342
+ else delete el.dataset.scrolled;
3343
+ window.clearTimeout(timer);
3344
+ timer = window.setTimeout(() => {
3345
+ delete el.dataset.scrolling;
3346
+ }, 800);
3347
+ };
3348
+ if (el.scrollTop > 0) el.dataset.scrolled = "true";
3349
+ el.addEventListener("scroll", onScroll, { passive: true });
3350
+ return () => {
3351
+ el.removeEventListener("scroll", onScroll);
3352
+ window.clearTimeout(timer);
3353
+ };
3354
+ }, [isFlush]);
3327
3355
  React6.useEffect(() => {
3328
3356
  if (state === "expanded") {
3329
3357
  clearTimers();
@@ -3365,7 +3393,7 @@ var Sidebar = React6.forwardRef(function Sidebar2({
3365
3393
  /* @__PURE__ */ jsx(
3366
3394
  "aside",
3367
3395
  {
3368
- ref,
3396
+ ref: mergedRef,
3369
3397
  "data-state": state,
3370
3398
  "data-peek": peek ? "true" : void 0,
3371
3399
  "data-overlay": overlay ? "true" : void 0,
@@ -3400,6 +3428,17 @@ var Sidebar = React6.forwardRef(function Sidebar2({
3400
3428
  // Padding is held constant across states so icons keep their
3401
3429
  // horizontal anchor when the column widens — peek expands the
3402
3430
  // labels rightward rather than shifting the icons leftward.
3431
+ isFlush && // Overlay scrollbar: hidden at rest, revealed while `data-scrolling`
3432
+ // is set by the effect above and faded back out ~800ms after the
3433
+ // last scroll event. `scrollbar-color` is the standard property
3434
+ // modern engines read; the `::-webkit-scrollbar-thumb` rule is the
3435
+ // older-Safari fallback, kept in lockstep with it rather than
3436
+ // relying on either alone.
3437
+ cn(
3438
+ "ds:[scrollbar-color:transparent_transparent] ds:data-[scrolling=true]:[scrollbar-color:var(--color-rule-strong)_transparent]",
3439
+ "ds:[&::-webkit-scrollbar-thumb]:bg-transparent ds:data-[scrolling=true]:[&::-webkit-scrollbar-thumb]:bg-[var(--color-rule-strong)]",
3440
+ "ds:[&::-webkit-scrollbar-thumb]:transition-colors ds:[&::-webkit-scrollbar-thumb]:duration-[var(--duration-normal)] ds:motion-reduce:[&::-webkit-scrollbar-thumb]:transition-none"
3441
+ ),
3403
3442
  className
3404
3443
  ),
3405
3444
  ...props,
@@ -3542,6 +3581,13 @@ var SidebarBrand = React6.forwardRef(
3542
3581
  ...slot(sidebarAnatomy, "brand"),
3543
3582
  className: cn(
3544
3583
  "ds:flex ds:min-w-0 ds:items-center ds:gap-2 ds:px-2.5 ds:pt-1 ds:pb-4",
3584
+ // Flush: pinned to the top of the scrolling column so the nav rows
3585
+ // pass behind it instead of over it. `data-scrolled` is only ever
3586
+ // set while flush (see <Sidebar>), so the hairline needs no variant
3587
+ // check of its own — one derived attribute, one rule.
3588
+ "ds:group-data-[variant=flush]/sidebar:bg-bg-2 ds:group-data-[variant=flush]/sidebar:sticky ds:group-data-[variant=flush]/sidebar:top-0 ds:group-data-[variant=flush]/sidebar:z-[var(--z-sticky)]",
3589
+ "ds:group-data-[variant=flush]/sidebar:border-b ds:group-data-[variant=flush]/sidebar:border-transparent ds:group-data-[variant=flush]/sidebar:transition-colors ds:group-data-[variant=flush]/sidebar:duration-[var(--duration-normal)] ds:group-data-[variant=flush]/sidebar:ease-[var(--ease-out-quart)] ds:group-data-[variant=flush]/sidebar:motion-reduce:transition-none",
3590
+ "ds:group-data-[scrolled=true]/sidebar:border-rule",
3545
3591
  className
3546
3592
  ),
3547
3593
  ...props
@@ -3629,7 +3675,11 @@ var SidebarSection = React6.forwardRef(
3629
3675
  ...slot(sidebarAnatomy, "section-label"),
3630
3676
  className: cn(
3631
3677
  "ds:font-mono ds:text-[11px] ds:tracking-[0.14em] ds:uppercase",
3632
- tone === "muted" ? "ds:text-fg-3" : "ds:text-brand"
3678
+ tone === "muted" ? "ds:text-fg-3" : "ds:text-brand",
3679
+ // Flush: the `overline` type role (size/leading/tracking/
3680
+ // weight together) at a flat fg-4 — grouping reads as
3681
+ // quiet structural chrome, not a tone-coded eyebrow.
3682
+ "ds:group-data-[variant=flush]/sidebar:font-sans ds:group-data-[variant=flush]/sidebar:text-overline ds:group-data-[variant=flush]/sidebar:text-fg-4"
3633
3683
  ),
3634
3684
  children: label
3635
3685
  }
@@ -3679,6 +3729,13 @@ var SidebarLink = React6.forwardRef(
3679
3729
  "ds:hover:bg-bg-3 ds:hover:text-fg",
3680
3730
  "ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
3681
3731
  "ds:data-[active=true]:bg-brand-bg ds:data-[active=true]:text-brand ds:data-[active=true]:font-medium",
3732
+ // Flush: icons read fg-3 at rest and lift to fg on hover/active —
3733
+ // the row's own bg-brand-bg tint (above) and the 2px edge
3734
+ // indicator (below) already carry "active", so the icon doesn't
3735
+ // also need brand-colored ink. Placed before the rail rule below
3736
+ // so a collapsed rail keeps winning on the combined flush+rail
3737
+ // case (equal specificity, source order decides).
3738
+ "ds:group-data-[variant=flush]/sidebar:[&_svg]:text-fg-3 ds:group-data-[variant=flush]/sidebar:hover:[&_svg]:text-fg ds:group-data-[variant=flush]/sidebar:data-[active=true]:[&_svg]:text-fg",
3682
3739
  // In rail, the icon itself carries the active state rather
3683
3740
  // than just the rule bar — color is more legible than a 2px
3684
3741
  // vertical mark at the column's left edge when labels are
@@ -3702,6 +3759,13 @@ var SidebarLink = React6.forwardRef(
3702
3759
  // a full pill highlight for active instead of the left rail bar.
3703
3760
  "ds:group-data-[variant=floating]/sidebar:gap-3 ds:group-data-[variant=floating]/sidebar:rounded-lg ds:group-data-[variant=floating]/sidebar:py-2",
3704
3761
  "ds:group-data-[variant=floating]/sidebar:data-[active=true]:before:hidden",
3762
+ // Flush row anatomy: 32px rows on the control radius (this already
3763
+ // matches the base py-1.5 at the body-sm role's leading — only the
3764
+ // radius and icon geometry actually move), 16px icons at full
3765
+ // opacity (the fg-3→fg color lift above already carries the
3766
+ // dimming, so the base opacity-85 would double it up), and labels
3767
+ // on the body-sm role instead of a hardcoded pixel size.
3768
+ "ds:group-data-[variant=flush]/sidebar:rounded-control ds:group-data-[variant=flush]/sidebar:[&_svg]:size-4 ds:group-data-[variant=flush]/sidebar:[&_svg]:opacity-100 ds:group-data-[variant=flush]/sidebar:text-body-sm",
3705
3769
  className
3706
3770
  ),
3707
3771
  ...props,
@@ -3869,6 +3933,8 @@ var SidebarLinkGroup = React6.forwardRef(
3869
3933
  "ds:hover:bg-bg-3 ds:hover:text-fg",
3870
3934
  "ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
3871
3935
  "ds:data-[active=true]:bg-brand-bg ds:data-[active=true]:text-brand ds:data-[active=true]:font-medium",
3936
+ // Flush — match SidebarLink: icon fg-3 lifting to fg on hover/active.
3937
+ "ds:group-data-[variant=flush]/sidebar:[&_svg]:text-fg-3 ds:group-data-[variant=flush]/sidebar:hover:[&_svg]:text-fg ds:group-data-[variant=flush]/sidebar:data-[active=true]:[&_svg]:text-fg",
3872
3938
  // In rail, color carries active state since the chevron is hidden.
3873
3939
  "ds:group-data-[labels=hide]/sidebar:data-[active=true]:[&_svg]:text-brand ds:group-data-[labels=hide]/sidebar:data-[active=true]:[&_svg]:opacity-100",
3874
3940
  // Active rail mark — anchored to body row's left edge.
@@ -3880,6 +3946,9 @@ var SidebarLinkGroup = React6.forwardRef(
3880
3946
  // Floating variant — match SidebarLink: taller hit area, pill active.
3881
3947
  "ds:group-data-[variant=floating]/sidebar:gap-3 ds:group-data-[variant=floating]/sidebar:rounded-lg ds:group-data-[variant=floating]/sidebar:py-2",
3882
3948
  "ds:group-data-[variant=floating]/sidebar:data-[active=true]:before:hidden",
3949
+ // Flush — match SidebarLink: 32px row on the control radius, 16px
3950
+ // full-opacity icons, body-sm label instead of a hardcoded pixel size.
3951
+ "ds:group-data-[variant=flush]/sidebar:rounded-control ds:group-data-[variant=flush]/sidebar:[&_svg]:size-4 ds:group-data-[variant=flush]/sidebar:[&_svg]:opacity-100 ds:group-data-[variant=flush]/sidebar:text-body-sm",
3883
3952
  classNames?.link
3884
3953
  );
3885
3954
  const labelSpan = /* @__PURE__ */ jsx(
@@ -4105,7 +4174,17 @@ var SidebarBrandSwitcher = React6.forwardRef(
4105
4174
  {
4106
4175
  ref,
4107
4176
  ...slot(sidebarBrandSwitcherAnatomy, "root"),
4108
- className: cn("ds:flex ds:min-w-0 ds:items-center ds:gap-2 ds:px-2.5 ds:pt-1 ds:pb-4", className),
4177
+ className: cn(
4178
+ "ds:flex ds:min-w-0 ds:items-center ds:gap-2 ds:px-2.5 ds:pt-1 ds:pb-4",
4179
+ // Flush — mirrors <SidebarBrand>: pinned to the top of the
4180
+ // scrolling column, with a hairline that appears once the list
4181
+ // has scrolled. `data-scrolled` is only ever set while flush, so
4182
+ // the hairline rule needs no variant check of its own.
4183
+ "ds:group-data-[variant=flush]/sidebar:bg-bg-2 ds:group-data-[variant=flush]/sidebar:sticky ds:group-data-[variant=flush]/sidebar:top-0 ds:group-data-[variant=flush]/sidebar:z-[var(--z-sticky)]",
4184
+ "ds:group-data-[variant=flush]/sidebar:border-b ds:group-data-[variant=flush]/sidebar:border-transparent ds:group-data-[variant=flush]/sidebar:transition-colors ds:group-data-[variant=flush]/sidebar:duration-[var(--duration-normal)] ds:group-data-[variant=flush]/sidebar:ease-[var(--ease-out-quart)] ds:group-data-[variant=flush]/sidebar:motion-reduce:transition-none",
4185
+ "ds:group-data-[scrolled=true]/sidebar:border-rule",
4186
+ className
4187
+ ),
4109
4188
  children: [
4110
4189
  /* @__PURE__ */ jsxs(DropdownMenu, { open, onOpenChange: setOpen, children: [
4111
4190
  /* @__PURE__ */ jsxs(
@@ -4120,7 +4199,11 @@ var SidebarBrandSwitcher = React6.forwardRef(
4120
4199
  // children — same hover affordance, no glyph drift.
4121
4200
  "ds:group/brand-trigger ds:-ml-2 ds:flex ds:min-w-0 ds:flex-1 ds:items-center ds:gap-2 ds:rounded-md ds:py-1.5 ds:pr-1.5 ds:pl-2",
4122
4201
  "ds:text-fg ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
4123
- "ds:hover:bg-bg-3 ds:data-[state=open]:bg-bg-3",
4202
+ // `aria-expanded` twin: a TooltipTrigger asChild ancestor can
4203
+ // clobber this trigger's own `data-state` with the tooltip's
4204
+ // (see toggle-group.tsx's note on the same bug), but never
4205
+ // sets `aria-expanded`.
4206
+ "ds:hover:bg-bg-3 ds:data-[state=open]:bg-bg-3 ds:aria-expanded:bg-bg-3",
4124
4207
  "ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
4125
4208
  triggerClassName
4126
4209
  ),
@@ -4135,6 +4218,7 @@ var SidebarBrandSwitcher = React6.forwardRef(
4135
4218
  "ds:ml-auto ds:size-3.5 ds:shrink-0 ds:text-fg-4",
4136
4219
  "ds:transition-transform ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
4137
4220
  "ds:group-data-[state=open]/brand-trigger:rotate-180",
4221
+ "ds:group-aria-expanded/brand-trigger:rotate-180",
4138
4222
  "ds:group-data-[labels=hide]/sidebar:hidden",
4139
4223
  iconClassName
4140
4224
  )
@@ -4337,5 +4421,5 @@ var BrandScope = forwardRef(function BrandScope2({ product, children, ...props }
4337
4421
  BrandScope.displayName = "BrandScope";
4338
4422
 
4339
4423
  export { AgreementPaneHeading, AgreementViewer, AssureAuditBrandIcon, AssureBooksBrandIcon, AssureProBrandIcon, AssureTaxBrandIcon, BRAND_PRODUCTS, BrandScope, BrandScopeProvider, Chip, ClientSelect, CmdkCompatContext, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComingSoon, DEFAULT_COMBOBOX_MESSAGES, Grid, Logo, PlainLink, ProposalAddOn, ProposalBillingTerms, ProposalConsentGate, ProposalCustomPage, ProposalNote, ProposalPackageCard, ProposalPaymentCapture, ProposalPricingSummary, ProposalServiceRow, ProposalSignatureBlock, ProposalSignerList, QUESTION_TYPES, QUESTION_TYPE_CONTRACT_VERSION, Questions, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarBrand, SidebarBrandSwitcher, SidebarBrandSwitcherTile, SidebarBrandText, SidebarDrawer, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, assetPath, brandLabel, brandScope, chipVariants, getAssetBasePath, resolveChipStyle, setAssetBasePath, sidebarLinkBadgeVariants, useBrandScope, useSidebarPeekLock, useSidebarState };
4340
- //# sourceMappingURL=chunk-JKNHNNNY.js.map
4341
- //# sourceMappingURL=chunk-JKNHNNNY.js.map
4424
+ //# sourceMappingURL=chunk-TYXT5C2B.js.map
4425
+ //# sourceMappingURL=chunk-TYXT5C2B.js.map