@assure-one/design-system 1.42.0 → 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-B7w3-y9E.d.ts → brand-scope-BOKu4iOc.d.ts} +1 -1
- package/dist/{chunk-YMRSFVW7.js → chunk-LUWPEBXZ.js} +283 -180
- 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-H53VF62B.js → chunk-TYXT5C2B.js} +92 -10
- package/dist/chunk-TYXT5C2B.js.map +1 -0
- package/dist/{chunk-M2HMZ2RW.js → chunk-XJKCKBHI.js} +11 -11
- package/dist/chunk-XJKCKBHI.js.map +1 -0
- package/dist/css/components.css +1 -1
- package/dist/{data-table-view-BN3GgNdp.d.ts → data-table-view-BWhKeUiw.d.ts} +2 -2
- package/dist/{design-system-provider-CrBRFQjR.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 +232 -50
- package/dist/index.js +516 -227
- package/dist/index.js.map +1 -1
- package/dist/legacy/index.d.ts +3 -3
- 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 +3 -3
- package/dist/suite/index.js +3 -3
- package/dist/{types-aBQCboFH.d.ts → types-DlqmlVyZ.d.ts} +11 -1
- package/docs/components.md +6 -3
- package/docs/components.registry.json +84 -17
- package/package.json +1 -1
- package/dist/chunk-AF3QYJ24.js.map +0 -1
- package/dist/chunk-H53VF62B.js.map +0 -1
- package/dist/chunk-M2HMZ2RW.js.map +0 -1
- package/dist/chunk-YMRSFVW7.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-
|
|
441
|
-
//# sourceMappingURL=chunk-
|
|
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":";;;;;;;AAwDA,IAAM,KAAA,GAAQ,CAAC,MAAA,KAAmB,MAAA,CAAO,MAAM,GAAG,CAAA;AAOlD,IAAM,SAAA,GAAY,KAAA;AAAA,EAChB;AACF,CAAA;AAGA,IAAM,SAAA,GAAY,MAAM,sFAAsF,CAAA;AAG9G,IAAM,OAAA,GAAU,MAAM,WAAW,CAAA;AAGjC,IAAM,OAAA,GAAU,MAAM,cAAc,CAAA;AAQpC,IAAM,OAAA,GAAU,KAAA;AAAA,EACd;AACF,CAAA;AAOA,IAAM,UAAA,GAAa,MAAM,wEAAwE,CAAA;AAgBjG,IAAM,aAAA,GAAgB,CAAC,KAAA,KAAkB,kCAAA,CAAmC,KAAK,KAAK,CAAA;AAO/E,IAAM,aAAA,GAAgB;AAAA,EAC3B,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ,SAAA;AAAA,MACR,MAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,WAAA,EAAa;AAAA,MACX,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG;AAAA;AACtC;AAEJ,CAAA;AAeA,IAAM,WAAA,GAAc,mBAAA;AAIpB,IAAM,OAAA,GAAU,YAAY,aAAa,CAAA;AAElC,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACjGA,IAAM,gBAAA,GAAmB,WAAA;AAKzB,IAAM,oBAAA,GAAuB,CAAA;AAGtB,SAAS,WAAW,IAAA,EAAiC;AAC1D,EAAA,OAAO,OAAO,SAAS,QAAA,GAAW,IAAA,GAAO,OAAO,UAAA,CAAW,SAAA,CAAU,IAAI,CAAC,CAAA;AAC5E;AAEA,SAAS,YAAY,IAAA,EAAwB;AAC3C,EAAA,OAAO,sBAAsB,IAAI,CAAA,kBAAA,EAAqB,IAAI,CAAA,EAAA,EAAK,SAAA,CAAU,IAAI,CAAC,CAAA,EAAA,CAAA;AAChF;AAMO,SAAS,IAAA,CAAK;AAAA,EACnB,IAAA,GAAO,EAAA;AAAA,EACP,WAAA;AAAA,EACA,OAAA,GAAU,gBAAA;AAAA,EACV,SAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8C;AAC5C,EAAA,MAAM,EAAA,GAAK,WAAW,IAAI,CAAA;AAG1B,EAAA,MAAM,GAAA,GACJ,OAAO,IAAA,KAAS,QAAA,GAAW,EAAE,KAAA,EAAO,WAAA,CAAY,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAA,CAAY,IAAI,GAAE,GAAI,MAAA;AACvF,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAA;AAAA,MACP,MAAA,EAAQ,EAAA;AAAA,MACR,OAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,aAAa,WAAA,IAAe,oBAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA;AAAA,MACtC,KAAA,EAAO,OAAO,KAAA,GAAQ,EAAE,GAAG,GAAA,EAAK,GAAG,OAAM,GAAI,MAAA;AAAA,MAC5C,GAAI,UAAU,MAAA,GAAY,EAAE,MAAM,KAAA,EAAM,GAAI,EAAE,aAAA,EAAe,MAAA,EAAO;AAAA,MACpE,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,KAAA,KAAU,MAAA,mBAAY,GAAA,CAAC,OAAA,EAAA,EAAO,QAAA,EAAA,KAAA,EAAM,CAAA,GAAW,IAAA;AAAA,QAC/C;AAAA;AAAA;AAAA,GACH;AAEJ;AAkBA,SAAS,WAAW,KAAA,EAAqE;AACvF,EAAA,OACE,OAAO,KAAA,KAAU,QAAA,IAChB,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,KAAA,CAAM,CAAC,IAAA,KAAS,OAAO,SAAS,QAAQ,CAAA;AAE3E;AAcO,SAAS,WAAW,UAAA,EAA2C;AACpE,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,WAAA,EAAa,oBAAmB,GAAI,UAAA;AAClE,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,KAAK,CAAA,GAAA,CAC5B,OAAO,KAAA,KAAU,QAAA,GAAW,CAAC,KAAK,CAAA,GAAI,KAAA,EAAO,GAAA,CAAI,CAAC,GAAG,KAAA,qBACpD,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MAEC,CAAA;AAAA,MACA,MAAA,EAAO,cAAA;AAAA,MACP,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe;AAAA,KAAA;AAAA,IAJV;AAAA,GAMR,CAAA,GACD,KAAA;AACJ,EAAA,SAAS,UAAU,EAAE,WAAA,GAAc,kBAAA,EAAoB,GAAG,OAAM,EAAc;AAC5E,IAAA,2BACG,IAAA,EAAA,EAAK,WAAA,EAA0B,OAAA,EAAmB,GAAG,OACnD,QAAA,EACH,CAAA;AAAA,EAEJ;AACA,EAAA,SAAA,CAAU,WAAA,GAAc,IAAA;AACxB,EAAA,OAAO,SAAA;AACT;AAiBO,SAAS,UAAA,CACd,MACA,IAAA,EACA,EAAE,SAAS,KAAA,EAAM,GAA0B,EAAC,EAC7B;AACf,EAAA,OAAO,UAAA,CAAW;AAAA,IAChB,IAAA;AAAA,IACA,OAAO,IAAA,CAAK,GAAA;AAAA,MAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,EAAG,KAAA,KAClC,cAAc,GAAA,EAAK;AAAA,QACjB,GAAA,EAAK,KAAA;AAAA,QACL,MAAA,EAAQ,cAAA;AAAA,QACR,aAAA,EAAe,OAAA;AAAA,QACf,cAAA,EAAgB,OAAA;AAAA,QAChB,GAAI,MAAA,GAAS,EAAE,IAAA,EAAM,gBAAe,GAAI,IAAA;AAAA,QACxC,GAAG;AAAA,OACJ;AAAA;AACH,GACD,CAAA;AACH;ACnMO,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACFvF,SAAS,uBAAuB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACzE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;;;ACE9E,IAAM,mBAAA,GAAsB;ACF5B,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACCrE,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACDpF,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACDzD,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,iBAAiB;ACAjF,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACDlE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,aAAa;ACCjF,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,WAAW;ACFnF,SAAS,qBAAqB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACvE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACApF,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACC3E,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACApF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACDvF,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,KAAA,mBAAwB,UAAA,CAAW,OAAA,EAAS,CAAC;;;ACEnD,IAAM,SAAA,GAAY;ACFlB,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;;;ACDxE,IAAM,YAAA,GAAe;ACCrB,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACMpF,SAAS,YAAY,EAAE,IAAA,GAAO,IAAI,SAAA,EAAW,GAAG,OAAM,EAAc;AACzE,EAAA,MAAM,MAAM,KAAA,EAAM;AAClB,EAAA,MAAM,MAAA,GAAS,gBAAgB,GAAG,CAAA,CAAA;AAClC,EAAA,MAAM,MAAA,GAAS,gBAAgB,GAAG,CAAA,CAAA;AAClC,EAAA,MAAM,EAAA,GAAK,WAAW,IAAI,CAAA;AAC1B,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAA;AAAA,MACP,MAAA,EAAS,KAAK,EAAA,GAAM,EAAA;AAAA,MACpB,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAM,4BAAA;AAAA,MACN,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA;AAAA,MACtC,aAAA,EAAY,MAAA;AAAA,MACX,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,IAAC,GAAA,EAAA,EAAE,QAAA,EAAU,CAAA,KAAA,EAAQ,MAAM,KACzB,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,CAAA,EAAE,s3GAAA;AAAA,YACF,IAAA,EAAM,QAAQ,MAAM,CAAA,CAAA;AAAA;AAAA,SACtB,EACF,CAAA;AAAA,wBACAC,KAAC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAA,IAAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,MAAA;AAAA,cACJ,EAAA,EAAG,UAAA;AAAA,cACH,EAAA,EAAG,UAAA;AAAA,cACH,EAAA,EAAG,MAAA;AAAA,cACH,EAAA,EAAG,IAAA;AAAA,cACH,aAAA,EAAc,gBAAA;AAAA,cAEd,QAAA,EAAA;AAAA,gCAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,gCAC1BA,GAAAA,CAAC,MAAA,EAAA,EAAK,MAAA,EAAO,GAAA,EAAI,WAAU,SAAA,EAAU;AAAA;AAAA;AAAA,WACvC;AAAA,0BACAA,GAAAA,CAAC,UAAA,EAAA,EAAS,EAAA,EAAI,QACZ,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAQ,CAAA,EAC5C;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;AC/CO,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACAzD,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,mBAAA,mBAAsC,UAAA;AAAA,EACjD,qBAAA;AAAA,EACA;AACF;ACJO,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,MAAM;ACK1E,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACLlE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,MAAM;ACC9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACC9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACS/D,SAAS,gBAAgB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AAClE,EAAA,uBACEC,IAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,KAAA,EACpB,QAAA,EAAA;AAAA,oBAAAD,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA,KACJ;AAAA,oBACAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA,KACJ;AAAA,oBACAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA,KACJ;AAAA,oBACAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA;AACJ,GAAA,EACF,CAAA;AAEJ;AC7BO,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACAvF,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACDpF,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,kBAAkB;ACAtF,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,KAAK;ACA7D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACF/D,SAAS,oBAAoB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACtE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACCzD,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,mBAAA,mBAAsC,UAAA;AAAA,EACjD,qBAAA;AAAA,EACA;AACF;ACHO,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,GAAG;ACArE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACSjF,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,YAAY;ACTxE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACAxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACCvF,IAAM,qBAAA,mBAAwC,UAAA;AAAA,EACnD,uBAAA;AAAA,EACA;AACF;ACJO,IAAM,wBAAA,mBAA2C,UAAA;AAAA,EACtD,0BAAA;AAAA,EACA;AACF;ACHO,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACKzD,SAAS,mBAAmB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACrE,EAAA,uBACEC,IAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,KAAA,EACpB,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,oBACxDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,oBACzDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,oBACzDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU;AAAA,GAAA,EAC5D,CAAA;AAEJ;ACbO,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,QAAQ;ACCpF,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,gBAAgB;ACAxF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACDvF,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACC3E,IAAM,mBAAA,mBAAsC,UAAA;AAAA,EACjD,qBAAA;AAAA,EACA;AACF;ACHO,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,SAAS;ACCvE,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACDrE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACCrE,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACD3E,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACAxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACD/D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,2BAA2B,UAAA,CAAW,UAAA,EAAY,MAAM,EAAE,MAAA,EAAQ,MAAM;ACA9E,IAAM,2BAA2B,UAAA,CAAW,UAAA,EAAY,QAAQ,EAAE,MAAA,EAAQ,MAAM;ACAhF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACAvF,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACAzD,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACAzD,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,QAAQ;ACAhE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACD/D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;;;ACD/D,IAAM,UAAA,GAAa;ACInB,IAAM,iCAAiC,UAAA,CAAW;AAAA,EACvD,IAAA,EAAM,gBAAA;AAAA,EACN,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA;AAGR,CAAC;ACbM,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACApF,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACC9E,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACD5D,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACC/D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACDrE,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACFxE,SAAS,iBAAiB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACnE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO","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,
|
|
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-
|
|
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
|
}
|
|
@@ -1825,6 +1825,8 @@ var ProposalPackageCard = forwardRef(
|
|
|
1825
1825
|
"data-selected": selected || void 0,
|
|
1826
1826
|
className: cn(
|
|
1827
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",
|
|
1828
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))]",
|
|
1829
1831
|
className
|
|
1830
1832
|
),
|
|
@@ -3309,6 +3311,7 @@ var Sidebar = React6.forwardRef(function Sidebar2({
|
|
|
3309
3311
|
...props
|
|
3310
3312
|
}, ref) {
|
|
3311
3313
|
const isFloating = variant === "floating";
|
|
3314
|
+
const isFlush = variant === "flush";
|
|
3312
3315
|
const ctx = React6.useContext(SidebarContext);
|
|
3313
3316
|
const state = collapsible && ctx ? ctx.state : "expanded";
|
|
3314
3317
|
const peekLockCount = collapsible && ctx && peekEnabled ? ctx.peekLockCount : 0;
|
|
@@ -3326,6 +3329,29 @@ var Sidebar = React6.forwardRef(function Sidebar2({
|
|
|
3326
3329
|
}
|
|
3327
3330
|
}, []);
|
|
3328
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]);
|
|
3329
3355
|
React6.useEffect(() => {
|
|
3330
3356
|
if (state === "expanded") {
|
|
3331
3357
|
clearTimers();
|
|
@@ -3367,7 +3393,7 @@ var Sidebar = React6.forwardRef(function Sidebar2({
|
|
|
3367
3393
|
/* @__PURE__ */ jsx(
|
|
3368
3394
|
"aside",
|
|
3369
3395
|
{
|
|
3370
|
-
ref,
|
|
3396
|
+
ref: mergedRef,
|
|
3371
3397
|
"data-state": state,
|
|
3372
3398
|
"data-peek": peek ? "true" : void 0,
|
|
3373
3399
|
"data-overlay": overlay ? "true" : void 0,
|
|
@@ -3402,6 +3428,17 @@ var Sidebar = React6.forwardRef(function Sidebar2({
|
|
|
3402
3428
|
// Padding is held constant across states so icons keep their
|
|
3403
3429
|
// horizontal anchor when the column widens — peek expands the
|
|
3404
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
|
+
),
|
|
3405
3442
|
className
|
|
3406
3443
|
),
|
|
3407
3444
|
...props,
|
|
@@ -3544,6 +3581,13 @@ var SidebarBrand = React6.forwardRef(
|
|
|
3544
3581
|
...slot(sidebarAnatomy, "brand"),
|
|
3545
3582
|
className: cn(
|
|
3546
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",
|
|
3547
3591
|
className
|
|
3548
3592
|
),
|
|
3549
3593
|
...props
|
|
@@ -3631,7 +3675,11 @@ var SidebarSection = React6.forwardRef(
|
|
|
3631
3675
|
...slot(sidebarAnatomy, "section-label"),
|
|
3632
3676
|
className: cn(
|
|
3633
3677
|
"ds:font-mono ds:text-[11px] ds:tracking-[0.14em] ds:uppercase",
|
|
3634
|
-
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"
|
|
3635
3683
|
),
|
|
3636
3684
|
children: label
|
|
3637
3685
|
}
|
|
@@ -3681,6 +3729,13 @@ var SidebarLink = React6.forwardRef(
|
|
|
3681
3729
|
"ds:hover:bg-bg-3 ds:hover:text-fg",
|
|
3682
3730
|
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
|
|
3683
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",
|
|
3684
3739
|
// In rail, the icon itself carries the active state rather
|
|
3685
3740
|
// than just the rule bar — color is more legible than a 2px
|
|
3686
3741
|
// vertical mark at the column's left edge when labels are
|
|
@@ -3704,6 +3759,13 @@ var SidebarLink = React6.forwardRef(
|
|
|
3704
3759
|
// a full pill highlight for active instead of the left rail bar.
|
|
3705
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",
|
|
3706
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",
|
|
3707
3769
|
className
|
|
3708
3770
|
),
|
|
3709
3771
|
...props,
|
|
@@ -3871,6 +3933,8 @@ var SidebarLinkGroup = React6.forwardRef(
|
|
|
3871
3933
|
"ds:hover:bg-bg-3 ds:hover:text-fg",
|
|
3872
3934
|
"ds:focus-visible:[box-shadow:var(--shadow-focus-ring)] ds:focus-visible:outline-none",
|
|
3873
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",
|
|
3874
3938
|
// In rail, color carries active state since the chevron is hidden.
|
|
3875
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",
|
|
3876
3940
|
// Active rail mark — anchored to body row's left edge.
|
|
@@ -3882,6 +3946,9 @@ var SidebarLinkGroup = React6.forwardRef(
|
|
|
3882
3946
|
// Floating variant — match SidebarLink: taller hit area, pill active.
|
|
3883
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",
|
|
3884
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",
|
|
3885
3952
|
classNames?.link
|
|
3886
3953
|
);
|
|
3887
3954
|
const labelSpan = /* @__PURE__ */ jsx(
|
|
@@ -4107,7 +4174,17 @@ var SidebarBrandSwitcher = React6.forwardRef(
|
|
|
4107
4174
|
{
|
|
4108
4175
|
ref,
|
|
4109
4176
|
...slot(sidebarBrandSwitcherAnatomy, "root"),
|
|
4110
|
-
className: cn(
|
|
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
|
+
),
|
|
4111
4188
|
children: [
|
|
4112
4189
|
/* @__PURE__ */ jsxs(DropdownMenu, { open, onOpenChange: setOpen, children: [
|
|
4113
4190
|
/* @__PURE__ */ jsxs(
|
|
@@ -4122,7 +4199,11 @@ var SidebarBrandSwitcher = React6.forwardRef(
|
|
|
4122
4199
|
// children — same hover affordance, no glyph drift.
|
|
4123
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",
|
|
4124
4201
|
"ds:text-fg ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
4125
|
-
|
|
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",
|
|
4126
4207
|
"ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
|
|
4127
4208
|
triggerClassName
|
|
4128
4209
|
),
|
|
@@ -4137,6 +4218,7 @@ var SidebarBrandSwitcher = React6.forwardRef(
|
|
|
4137
4218
|
"ds:ml-auto ds:size-3.5 ds:shrink-0 ds:text-fg-4",
|
|
4138
4219
|
"ds:transition-transform ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
|
|
4139
4220
|
"ds:group-data-[state=open]/brand-trigger:rotate-180",
|
|
4221
|
+
"ds:group-aria-expanded/brand-trigger:rotate-180",
|
|
4140
4222
|
"ds:group-data-[labels=hide]/sidebar:hidden",
|
|
4141
4223
|
iconClassName
|
|
4142
4224
|
)
|
|
@@ -4339,5 +4421,5 @@ var BrandScope = forwardRef(function BrandScope2({ product, children, ...props }
|
|
|
4339
4421
|
BrandScope.displayName = "BrandScope";
|
|
4340
4422
|
|
|
4341
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 };
|
|
4342
|
-
//# sourceMappingURL=chunk-
|
|
4343
|
-
//# sourceMappingURL=chunk-
|
|
4424
|
+
//# sourceMappingURL=chunk-TYXT5C2B.js.map
|
|
4425
|
+
//# sourceMappingURL=chunk-TYXT5C2B.js.map
|