tembro 3.1.5 → 3.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +241 -91
  3. package/dist/components/ui/dialog/index.d.ts +3 -1
  4. package/dist/components/ui/select/index.d.ts +6 -3
  5. package/dist/showcase/package-meta.d.ts +3 -3
  6. package/dist/showcase/premium/wizard/index.cjs +1 -0
  7. package/dist/showcase/premium/wizard/index.d.ts +2 -0
  8. package/dist/showcase/premium/wizard/index.js +1 -0
  9. package/dist/showcase/premium/wizard/mock.cjs +1 -0
  10. package/dist/showcase/premium/wizard/mock.d.ts +2 -0
  11. package/dist/showcase/premium/wizard/mock.js +1 -0
  12. package/dist/showcase/premium/wizard/showcase.cjs +1 -0
  13. package/dist/showcase/premium/wizard/showcase.d.ts +2 -0
  14. package/dist/showcase/premium/wizard/showcase.js +1 -0
  15. package/dist/showcase/search-utils.d.ts +1 -1
  16. package/dist/showcase/site-data.d.ts +6 -6
  17. package/dist/src/components/layout/app-sidebar.cjs +1 -1
  18. package/dist/src/components/layout/app-sidebar.js +49 -36
  19. package/dist/src/components/theme-provider.cjs +1 -1
  20. package/dist/src/components/theme-provider.js +1 -1
  21. package/dist/src/components/ui/dialog/index.cjs +1 -1
  22. package/dist/src/components/ui/dialog/index.js +14 -7
  23. package/dist/src/components/ui/select/index.cjs +1 -1
  24. package/dist/src/components/ui/select/index.js +44 -43
  25. package/dist/src/index.cjs +1 -1
  26. package/dist/src/index.js +101 -101
  27. package/dist/src/showcase/component-api-schema.cjs +1 -1
  28. package/dist/src/showcase/component-api-schema.js +868 -9
  29. package/dist/src/showcase/demo-snippets/forms/index.cjs +1 -1
  30. package/dist/src/showcase/demo-snippets/forms/index.js +1 -1
  31. package/dist/src/showcase/fallback.cjs +4 -4
  32. package/dist/src/showcase/fallback.js +354 -181
  33. package/dist/src/showcase/index.cjs +1 -1
  34. package/dist/src/showcase/index.js +2 -2
  35. package/dist/src/showcase/package-meta.cjs +1 -1
  36. package/dist/src/showcase/package-meta.js +1 -1
  37. package/dist/src/showcase/premium/app-sidebar/mock.cjs +3 -2
  38. package/dist/src/showcase/premium/app-sidebar/mock.js +1 -1
  39. package/dist/src/showcase/premium/app-sidebar/showcase.cjs +1 -1
  40. package/dist/src/showcase/premium/app-sidebar/showcase.js +1 -1
  41. package/dist/src/showcase/premium/async-select/showcase.cjs +1 -1
  42. package/dist/src/showcase/premium/async-select/showcase.js +118 -74
  43. package/dist/src/showcase/premium/avatar/showcase.cjs +1 -1
  44. package/dist/src/showcase/premium/avatar/showcase.js +5 -5
  45. package/dist/src/showcase/premium/dialog/mock.cjs +6 -1
  46. package/dist/src/showcase/premium/dialog/mock.js +1 -1
  47. package/dist/src/showcase/premium/dialog/showcase.cjs +1 -1
  48. package/dist/src/showcase/premium/dialog/showcase.js +101 -39
  49. package/dist/src/showcase/premium/form-wrapper/mock.cjs +2 -2
  50. package/dist/src/showcase/premium/form-wrapper/mock.js +2 -2
  51. package/dist/src/showcase/premium/form-wrapper/showcase.cjs +1 -1
  52. package/dist/src/showcase/premium/form-wrapper/showcase.js +1 -1
  53. package/dist/src/showcase/premium/index.cjs +1 -1
  54. package/dist/src/showcase/premium/index.js +9 -3
  55. package/dist/src/showcase/premium/input/showcase.cjs +1 -1
  56. package/dist/src/showcase/premium/input/showcase.js +1 -1
  57. package/dist/src/showcase/premium/json-input/showcase.cjs +1 -1
  58. package/dist/src/showcase/premium/json-input/showcase.js +1 -1
  59. package/dist/src/showcase/premium/select/showcase.cjs +1 -1
  60. package/dist/src/showcase/premium/select/showcase.js +53 -0
  61. package/dist/src/showcase/premium/table/mock.cjs +1 -1
  62. package/dist/src/showcase/premium/table/mock.js +1 -1
  63. package/dist/src/showcase/premium/types.cjs +1 -1
  64. package/dist/src/showcase/premium/types.js +1 -1
  65. package/dist/src/showcase/premium/wizard/index.cjs +1 -0
  66. package/dist/src/showcase/premium/wizard/index.js +3 -0
  67. package/dist/src/showcase/premium/wizard/mock.cjs +25 -0
  68. package/dist/src/showcase/premium/wizard/mock.js +32 -0
  69. package/dist/src/showcase/premium/wizard/showcase.cjs +1 -0
  70. package/dist/src/showcase/premium/wizard/showcase.js +130 -0
  71. package/dist/src/showcase/preview-registry.cjs +1 -1
  72. package/dist/src/showcase/preview-registry.js +6 -6
  73. package/dist/src/showcase/registry-quality.cjs +1 -1
  74. package/dist/src/showcase/registry-quality.js +5 -0
  75. package/dist/src/showcase/registry-specific.cjs +1 -1
  76. package/dist/src/showcase/registry-specific.js +2 -2
  77. package/dist/src/showcase/render-registry-preview.cjs +1 -1
  78. package/dist/src/showcase/render-registry-preview.js +2 -2
  79. package/dist/src/showcase/site-data.cjs +1 -1
  80. package/dist/src/showcase/site-data.js +198 -44
  81. package/dist/src/showcase/tembro-registry.json.cjs +1 -1
  82. package/dist/src/showcase/tembro-registry.json.js +1 -1
  83. package/dist/src/showcase/types.cjs +1 -1
  84. package/dist/src/showcase/types.js +1 -1
  85. package/package.json +13 -9
  86. package/packages/cli/dist/index.cjs +127 -127
  87. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +31 -6
  88. package/packages/cli/vendor/src/components/theme-provider.tsx +1 -1
  89. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +15 -3
  90. package/packages/cli/vendor/src/components/ui/select/index.tsx +17 -10
  91. package/packages/cli/vendor/src/showcase/component-api-schema.ts +269 -39
  92. package/packages/cli/vendor/src/showcase/demo-snippets/forms/index.ts +1 -1
  93. package/packages/cli/vendor/src/showcase/fallback.tsx +202 -39
  94. package/packages/cli/vendor/src/showcase/index.ts +6 -6
  95. package/packages/cli/vendor/src/showcase/package-meta.ts +3 -3
  96. package/packages/cli/vendor/src/showcase/premium/app-sidebar/mock.ts +3 -2
  97. package/packages/cli/vendor/src/showcase/premium/app-sidebar/showcase.tsx +1 -1
  98. package/packages/cli/vendor/src/showcase/premium/async-select/showcase.tsx +50 -4
  99. package/packages/cli/vendor/src/showcase/premium/avatar/showcase.tsx +5 -5
  100. package/packages/cli/vendor/src/showcase/premium/dialog/mock.ts +6 -1
  101. package/packages/cli/vendor/src/showcase/premium/dialog/showcase.tsx +53 -1
  102. package/packages/cli/vendor/src/showcase/premium/form-wrapper/mock.ts +2 -2
  103. package/packages/cli/vendor/src/showcase/premium/form-wrapper/showcase.tsx +1 -1
  104. package/packages/cli/vendor/src/showcase/premium/index.ts +5 -3
  105. package/packages/cli/vendor/src/showcase/premium/input/showcase.tsx +1 -1
  106. package/packages/cli/vendor/src/showcase/premium/json-input/showcase.tsx +1 -1
  107. package/packages/cli/vendor/src/showcase/premium/select/showcase.tsx +38 -0
  108. package/packages/cli/vendor/src/showcase/premium/table/mock.ts +1 -1
  109. package/packages/cli/vendor/src/showcase/premium/types.ts +1 -1
  110. package/packages/cli/vendor/src/showcase/premium/wizard/index.ts +2 -0
  111. package/packages/cli/vendor/src/showcase/premium/wizard/mock.ts +41 -0
  112. package/packages/cli/vendor/src/showcase/premium/wizard/showcase.tsx +88 -0
  113. package/packages/cli/vendor/src/showcase/preview-registry.tsx +6 -6
  114. package/packages/cli/vendor/src/showcase/registry-quality.ts +5 -0
  115. package/packages/cli/vendor/src/showcase/registry-specific.tsx +2 -2
  116. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +2 -2
  117. package/packages/cli/vendor/src/showcase/site-data.tsx +89 -32
  118. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  119. package/packages/cli/vendor/src/showcase/types.ts +1 -1
  120. package/registry.json +1 -1
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./lib/utils.cjs"),t=require("./components/ui/button/index.cjs"),n=require("./components/ui/dropdown-menu/index.cjs"),r=require("./components/actions/action-menu.cjs"),ee=require("./components/actions/button-group.cjs"),te=require("./components/actions/copy-button.cjs"),ne=require("./components/ui/textarea/index.cjs"),i=require("./components/ui/input/group.cjs"),re=require("./components/ui/input/index.cjs"),ie=require("./components/ui/checkbox/index.cjs"),ae=require("./components/ui/switch/index.cjs"),a=require("./components/ui/card/index.cjs"),o=require("./components/ui/badge/index.cjs"),s=require("./components/ui/tabs/index.cjs"),c=require("./components/ui/dialog/index.cjs"),l=require("./components/ui/popover/index.cjs"),u=require("./components/ui/select/index.cjs"),d=require("./components/ui/table/index.cjs"),f=require("./components/ui/collapse/index.cjs"),p=require("./components/ui/accordion/index.cjs"),m=require("./components/ui/skeleton/index.cjs"),h=require("./components/ui/divider/index.cjs"),g=require("./components/ui/segmented-control/index.cjs"),_=require("./components/ui/spinner/index.cjs"),v=require("./components/ui/tooltip/index.cjs"),oe=require("./components/ui/kbd/index.cjs"),se=require("./components/ui/radio-group/index.cjs"),ce=require("./components/ui/scroll-box/index.cjs"),le=require("./components/ui/right-click-menu/index.cjs"),ue=require("./components/actions/quick-action-grid.cjs"),y=require("./hooks/use-is-mobile.cjs"),de=require("./components/layout/app-sidebar.cjs"),fe=require("./components/layout/breadcrumbs.cjs"),b=require("./components/layout/section.cjs"),x=require("./components/navigation/pagination.cjs"),pe=require("./components/filters/filter-bar.cjs"),me=require("./components/filters/saved-filter-select.cjs"),he=require("./components/overlay/alert-dialog.cjs"),ge=require("./components/overlay/confirm-dialog.cjs"),S=require("./components/overlay/drawer.cjs"),C=require("./components/inputs/async-select.cjs"),_e=require("./components/inputs/otp-input.cjs"),ve=require("./components/inputs/rating.cjs"),w=require("./components/inputs/slider.cjs"),ye=require("./components/inputs/tag-input.cjs"),be=require("./components/inputs/inline-editable.cjs"),xe=require("./components/inputs/json-input.cjs"),T=require("./components/inputs/time-picker.cjs"),E=require("./components/inputs/color-picker.cjs"),D=require("./components/inputs/signature-pad.cjs"),O=require("./components/form/form-field-shell.cjs"),k=require("./components/form/form-input.cjs"),A=require("./components/form/form-select.cjs"),j=require("./components/form/form-switch.cjs"),M=require("./components/form/form-textarea.cjs"),N=require("./components/calendar/date-utils.cjs"),Se=require("./components/calendar/calendar.cjs"),Ce=require("./components/calendar/date-picker.cjs"),we=require("./components/form/form-date-picker.cjs"),Te=require("./components/calendar/date-range-picker.cjs"),Ee=require("./components/form/form-date-range-picker.cjs"),De=require("./components/form/form-date-range-input.cjs"),Oe=require("./components/feedback/alert.cjs"),ke=require("./components/feedback/loading-state.cjs"),P=require("./components/feedback/page-state.cjs"),Ae=require("./components/display/description-list.cjs"),je=require("./components/display/activity-feed.cjs"),F=require("./components/display/avatar.cjs"),Me=require("./components/display/kanban.cjs"),Ne=require("./components/display/code-block.cjs"),Pe=require("./components/display/data-state.cjs"),I=require("./components/display/list.cjs"),L=require("./components/display/progress.cjs"),R=require("./components/display/statistic.cjs"),Fe=require("./components/display/status-dot.cjs"),Ie=require("./components/display/status-legend.cjs"),Le=require("./components/display/timeline.cjs"),Re=require("./components/display/tree-view.cjs"),ze=require("./components/display/info-card.cjs"),Be=require("./components/display/virtual-list.cjs"),z=require("./components/display/qr-code.cjs"),B=require("./components/display/carousel.cjs"),V=require("./components/display/tag.cjs"),H=require("./components/display/typography.cjs"),Ve=require("./components/modern/calendar-scheduler.cjs"),He=require("./components/modern/dual-list-picker.cjs"),U=require("./components/modern/resizable-panel.cjs"),W=require("./components/modern/rich-text-editor.cjs"),G=require("./components/modern/image-cropper.cjs"),Ue=require("./components/data-table/data-table.cjs"),K=require("./components/notifications/toast.cjs"),We=require("./components/notifications/notification-center.cjs"),q=require("./components/command/command-palette.cjs"),Ge=require("./components/upload/file-upload.cjs"),Ke=require("./components/upload/image-upload.cjs"),J=require("./components/charts/charts.cjs"),qe=require("./components/charts/progress-circle.cjs"),Y=require("./components/patterns/form-builder.cjs"),X=require("./components/patterns/resource-page.cjs"),Je=require("./components/patterns/resource-detail-page.cjs"),Z=require("./components/patterns/empty-state.cjs"),Ye=require("./components/patterns/page-toolbar.cjs"),Xe=require("./components/patterns/bulk-action-bar.cjs"),Ze=require("./components/patterns/detail-layout.cjs"),Qe=require("./components/patterns/settings-page.cjs"),Q=require("./components/patterns/data-view.cjs"),$e=require("./components/wizard/stepper.cjs"),et=require("./components/wizard/wizard.cjs"),tt=require("./components/dnd/sortable-list.cjs"),nt=require("./hooks/use-session-storage-state.cjs"),rt=require("./hooks/use-before-unload-when-dirty.cjs"),it=require("./hooks/use-disclosure.cjs"),$=require("./hooks/use-debounce.cjs"),at=require("./hooks/use-data-table-view-state.cjs");exports.Accordion=p.Accordion,exports.AccordionContent=p.AccordionContent,exports.AccordionRoot=p.AccordionRoot,exports.AccordionTrigger=p.AccordionTrigger,exports.ActionMenu=r.ActionMenu,exports.ActivityFeed=je.ActivityFeed,exports.Alert=Oe.Alert,exports.AlertDialog=he.AlertDialog,exports.AreaChart=J.AreaChart,exports.AsyncMultiSelect=C.AsyncMultiSelect,exports.AsyncSelect=C.AsyncSelect,exports.Avatar=F.Avatar,exports.AvatarGroup=F.AvatarGroup,exports.Badge=o.Badge,exports.BarChart=J.BarChart,exports.Blockquote=H.Blockquote,exports.Breadcrumbs=fe.Breadcrumbs,exports.BulkActionBar=Xe.BulkActionBar,exports.Button=t.Button,exports.ButtonGroup=ee.ButtonGroup,exports.Calendar=Se.Calendar,exports.CalendarScheduler=Ve.CalendarScheduler,exports.Card=a.Card,exports.CardAction=a.CardAction,exports.CardContent=a.CardContent,exports.CardDescription=a.CardDescription,exports.CardFooter=a.CardFooter,exports.CardHeader=a.CardHeader,exports.CardTitle=a.CardTitle,exports.Carousel=B.Carousel,exports.CarouselItem=B.CarouselItem,exports.ChartFrame=J.ChartFrame,exports.ChartLegend=J.ChartLegend,exports.Checkbox=ie.Checkbox,exports.Chip=V.Chip,exports.CodeBlock=Ne.CodeBlock,exports.Collapse=f.Collapse,exports.CollapseContent=f.CollapseContent,exports.CollapseGroup=f.CollapseGroup,exports.CollapseTrigger=f.CollapseTrigger,exports.ColorPicker=E.ColorPicker,exports.CommandPalette=q.CommandPalette,exports.ConfirmDialog=ge.ConfirmDialog,exports.CopyButton=te.CopyButton,exports.DEFAULT_MOBILE_BREAKPOINT=y.DEFAULT_MOBILE_BREAKPOINT,exports.DataState=Pe.DataState,exports.DataTable=Ue.DataTable,exports.DataView=Q.DataView,exports.DatePicker=Ce.DatePicker,exports.DateRangePicker=Te.DateRangePicker,exports.DateTimePicker=T.DateTimePicker,exports.DescriptionList=Ae.DescriptionList,exports.DetailLayout=Ze.DetailLayout,exports.Dialog=c.Dialog,exports.DialogClose=c.DialogClose,exports.DialogContent=c.DialogContent,exports.DialogDescription=c.DialogDescription,exports.DialogFooter=c.DialogFooter,exports.DialogHeader=c.DialogHeader,exports.DialogOverlay=c.DialogOverlay,exports.DialogPortal=c.DialogPortal,exports.DialogTitle=c.DialogTitle,exports.DialogTrigger=c.DialogTrigger,exports.Divider=h.Divider,exports.DonutChart=J.DonutChart,exports.Drawer=S.Drawer,exports.DrawerCloseButton=S.DrawerCloseButton,exports.DropdownMenu=n.DropdownMenu,exports.DropdownMenuCheckboxItem=n.DropdownMenuCheckboxItem,exports.DropdownMenuContent=n.DropdownMenuContent,exports.DropdownMenuGroup=n.DropdownMenuGroup,exports.DropdownMenuItem=n.DropdownMenuItem,exports.DropdownMenuItemDescription=n.DropdownMenuItemDescription,exports.DropdownMenuLabel=n.DropdownMenuLabel,exports.DropdownMenuPortal=n.DropdownMenuPortal,exports.DropdownMenuRadioGroup=n.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=n.DropdownMenuRadioItem,exports.DropdownMenuSeparator=n.DropdownMenuSeparator,exports.DropdownMenuShortcut=n.DropdownMenuShortcut,exports.DropdownMenuSub=n.DropdownMenuSub,exports.DropdownMenuSubContent=n.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=n.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=n.DropdownMenuTrigger,exports.DualListPicker=He.DualListPicker,exports.EditorToolbar=W.EditorToolbar,exports.EmptyState=Z.EmptyState,exports.ErrorState=Z.ErrorState,exports.FileUpload=Ge.FileUpload,exports.FilterBar=pe.FilterBar,exports.FormBuilder=Y.FormBuilder,exports.FormDatePicker=we.FormDatePicker,exports.FormDateRangeInput=De.FormDateRangeInput,exports.FormDateRangePicker=Ee.FormDateRangePicker,exports.FormFieldShell=O.FormFieldShell,exports.FormInput=k.FormInput,exports.FormSelect=A.FormSelect,exports.FormSwitch=j.FormSwitch,exports.FormTextarea=M.FormTextarea,exports.Heading=H.Heading,exports.ImageCropper=G.ImageCropper,exports.ImageUpload=Ke.ImageUpload,exports.InfoCard=ze.InfoCard,exports.InlineEditable=be.InlineEditable,exports.InlineState=P.InlineState,exports.Input=re.Input,exports.InputGroup=i.InputGroup,exports.InputGroupAddon=i.InputGroupAddon,exports.InputGroupButton=i.InputGroupButton,exports.InputGroupInput=i.InputGroupInput,exports.InputGroupText=i.InputGroupText,exports.InputGroupTextarea=i.InputGroupTextarea,exports.JsonInput=xe.JsonInput,exports.KanbanBoard=Me.KanbanBoard,exports.Kbd=oe.Kbd,exports.LineChart=J.LineChart,exports.List=I.List,exports.ListRow=I.ListRow,exports.LoadingOverlay=_.LoadingOverlay,exports.LoadingState=ke.LoadingState,exports.Mark=H.Mark,exports.MetricTrend=J.MetricTrend,exports.NotificationCenter=We.NotificationCenter,exports.OtpInput=_e.OtpInput,exports.PageState=P.PageState,exports.PageToolbar=Ye.PageToolbar,exports.Pagination=x.Pagination,exports.Popover=l.Popover,exports.PopoverContent=l.PopoverContent,exports.PopoverDescription=l.PopoverDescription,exports.PopoverHeader=l.PopoverHeader,exports.PopoverTitle=l.PopoverTitle,exports.PopoverTrigger=l.PopoverTrigger,exports.Progress=L.Progress,exports.ProgressCard=L.ProgressCard,exports.ProgressCircle=qe.ProgressCircle,exports.QRCode=z.QRCode,exports.QRCodeSvg=z.QRCodeSvg,exports.QuickActionGrid=ue.QuickActionGrid,exports.RadioGroup=se.RadioGroup,exports.RangeSlider=w.RangeSlider,exports.Rating=ve.Rating,exports.ResizableHandle=U.ResizableHandle,exports.ResizablePanel=U.ResizablePanel,exports.ResizablePanelGroup=U.ResizablePanelGroup,exports.ResourceDetailPage=Je.ResourceDetailPage,exports.ResourcePage=X.ResourcePage,exports.ResourcePageSection=X.ResourcePageSection,exports.RichTextEditor=W.RichTextEditor,exports.RightClickMenu=le.RightClickMenu,exports.SavedFilterSelect=me.SavedFilterSelect,exports.ScrollBox=ce.ScrollBox,exports.Section=b.Section,exports.SegmentedControl=g.SegmentedControl,exports.Select=u.Select,exports.SelectContent=u.SelectContent,exports.SelectGroup=u.SelectGroup,exports.SelectItem=u.SelectItem,exports.SelectLabel=u.SelectLabel,exports.SelectScrollDownButton=u.SelectScrollDownButton,exports.SelectScrollUpButton=u.SelectScrollUpButton,exports.SelectSeparator=u.SelectSeparator,exports.SelectTrigger=u.SelectTrigger,exports.SelectValue=u.SelectValue,exports.SettingsPage=Qe.SettingsPage,exports.Sidebar=de.Sidebar,exports.SignaturePad=D.SignaturePad,exports.Skeleton=m.Skeleton,exports.SkeletonCard=m.SkeletonCard,exports.SkeletonText=m.SkeletonText,exports.Slider=w.Slider,exports.SortableList=tt.SortableList,exports.Sparkline=J.Sparkline,exports.Spinner=_.Spinner,exports.SplitLayout=b.SplitLayout,exports.Spoiler=H.Spoiler,exports.SpoilerSummary=H.SpoilerSummary,exports.Statistic=R.Statistic,exports.StatisticCard=R.StatisticCard,exports.StatisticGrid=R.StatisticGrid,exports.StatusDot=Fe.StatusDot,exports.StatusLegend=Ie.StatusLegend,exports.Stepper=$e.Stepper,exports.Switch=ae.Switch,exports.Table=d.Table,exports.TableBody=d.TableBody,exports.TableCaption=d.TableCaption,exports.TableCell=d.TableCell,exports.TableFooter=d.TableFooter,exports.TableHead=d.TableHead,exports.TableHeader=d.TableHeader,exports.TableRow=d.TableRow,exports.Tabs=s.Tabs,exports.TabsContent=s.TabsContent,exports.TabsList=s.TabsList,exports.TabsTrigger=s.TabsTrigger,exports.Tag=V.Tag,exports.TagGroup=V.TagGroup,exports.TagInput=ye.TagInput,exports.Text=H.Text,exports.Textarea=ne.Textarea,exports.TimePicker=T.TimePicker,exports.TimeRangePicker=T.TimeRangePicker,exports.Timeline=Le.Timeline,exports.ToastProvider=K.ToastProvider,exports.Toolbar=b.Toolbar,exports.Tooltip=v.Tooltip,exports.TreeView=Re.TreeView,exports.VirtualList=Be.VirtualList,exports.Wizard=et.Wizard,exports.addMonths=N.addMonths,exports.asyncSelectField=Y.asyncSelectField,exports.badgeVariants=o.badgeVariants,exports.buttonVariants=t.buttonVariants,exports.cardVariants=a.cardVariants,exports.cn=e.cn,exports.createCroppedImageBlob=G.createCroppedImageBlob,exports.customField=Y.customField,exports.dateField=Y.dateField,exports.dateRangeField=Y.dateRangeField,exports.drawSignature=D.drawSignature,exports.formSection=Y.formSection,exports.getAlphaPercent=E.getAlphaPercent,exports.getMonthDays=N.getMonthDays,exports.getMonthLabel=N.getMonthLabel,exports.getPaginationItems=x.getPaginationItems,exports.getProgressPercent=L.getProgressPercent,exports.getWeekdayLabels=N.getWeekdayLabels,exports.inputField=Y.inputField,exports.isAfterDate=N.isAfterDate,exports.isBeforeDate=N.isBeforeDate,exports.isSameMonth=N.isSameMonth,exports.isWithinRange=N.isWithinRange,exports.normalizeHexColor=E.normalizeHexColor,exports.numberField=Y.numberField,exports.parseDateKey=N.parseDateKey,exports.phoneField=Y.phoneField,exports.renderFormBuilderField=Y.renderFormBuilderField,exports.resolveFormFieldIds=O.resolveFormFieldIds,exports.selectField=Y.selectField,exports.startOfMonth=N.startOfMonth,exports.stopInteractivePropagation=e.stopInteractivePropagation,exports.switchField=Y.switchField,exports.textareaField=Y.textareaField,exports.toDateKey=N.toDateKey,exports.useBeforeUnloadWhenDirty=rt.useBeforeUnloadWhenDirty,exports.useCommandPaletteShortcut=q.useCommandPaletteShortcut,exports.useDataTableViewState=at.useDataTableViewState,exports.useDebouncedCallback=$.useDebouncedCallback,exports.useDebouncedValue=$.useDebouncedValue,exports.useDisclosure=it.useDisclosure,exports.useIsMobile=y.useIsMobile,exports.useSessionStorageState=nt.useSessionStorageState,exports.useToast=K.useToast,exports.withAlpha=E.withAlpha;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./lib/utils.cjs"),t=require("./components/ui/button/index.cjs"),n=require("./components/ui/dropdown-menu/index.cjs"),r=require("./components/actions/action-menu.cjs"),ee=require("./components/actions/button-group.cjs"),te=require("./components/actions/copy-button.cjs"),ne=require("./components/ui/textarea/index.cjs"),i=require("./components/ui/input/group.cjs"),re=require("./components/ui/input/index.cjs"),ie=require("./components/ui/checkbox/index.cjs"),ae=require("./components/ui/switch/index.cjs"),a=require("./components/ui/card/index.cjs"),o=require("./components/ui/badge/index.cjs"),s=require("./components/ui/tabs/index.cjs"),c=require("./components/ui/dialog/index.cjs"),l=require("./components/ui/popover/index.cjs"),u=require("./components/ui/select/index.cjs"),d=require("./components/ui/table/index.cjs"),f=require("./components/ui/collapse/index.cjs"),p=require("./components/ui/accordion/index.cjs"),m=require("./components/ui/skeleton/index.cjs"),h=require("./components/ui/divider/index.cjs"),g=require("./components/ui/segmented-control/index.cjs"),_=require("./components/ui/spinner/index.cjs"),v=require("./components/ui/tooltip/index.cjs"),oe=require("./components/ui/kbd/index.cjs"),se=require("./components/ui/radio-group/index.cjs"),ce=require("./components/ui/scroll-box/index.cjs"),le=require("./components/ui/right-click-menu/index.cjs"),ue=require("./components/actions/quick-action-grid.cjs"),y=require("./hooks/use-is-mobile.cjs"),de=require("./components/layout/app-sidebar.cjs"),fe=require("./components/layout/breadcrumbs.cjs"),b=require("./components/layout/section.cjs"),x=require("./components/navigation/pagination.cjs"),pe=require("./components/filters/filter-bar.cjs"),me=require("./components/filters/saved-filter-select.cjs"),he=require("./components/overlay/alert-dialog.cjs"),ge=require("./components/overlay/confirm-dialog.cjs"),S=require("./components/overlay/drawer.cjs"),C=require("./components/inputs/async-select.cjs"),_e=require("./components/inputs/otp-input.cjs"),ve=require("./components/inputs/rating.cjs"),w=require("./components/inputs/slider.cjs"),ye=require("./components/inputs/tag-input.cjs"),be=require("./components/inputs/inline-editable.cjs"),xe=require("./components/inputs/json-input.cjs"),T=require("./components/inputs/time-picker.cjs"),E=require("./components/inputs/color-picker.cjs"),D=require("./components/inputs/signature-pad.cjs"),O=require("./components/form/form-field-shell.cjs"),k=require("./components/form/form-input.cjs"),A=require("./components/form/form-select.cjs"),j=require("./components/form/form-switch.cjs"),M=require("./components/form/form-textarea.cjs"),N=require("./components/calendar/date-utils.cjs"),Se=require("./components/calendar/calendar.cjs"),Ce=require("./components/calendar/date-picker.cjs"),we=require("./components/form/form-date-picker.cjs"),Te=require("./components/calendar/date-range-picker.cjs"),Ee=require("./components/form/form-date-range-picker.cjs"),De=require("./components/form/form-date-range-input.cjs"),Oe=require("./components/feedback/alert.cjs"),ke=require("./components/feedback/loading-state.cjs"),P=require("./components/feedback/page-state.cjs"),Ae=require("./components/display/description-list.cjs"),je=require("./components/display/activity-feed.cjs"),F=require("./components/display/avatar.cjs"),Me=require("./components/display/kanban.cjs"),Ne=require("./components/display/code-block.cjs"),Pe=require("./components/display/data-state.cjs"),I=require("./components/display/list.cjs"),L=require("./components/display/progress.cjs"),R=require("./components/display/statistic.cjs"),Fe=require("./components/display/status-dot.cjs"),Ie=require("./components/display/status-legend.cjs"),Le=require("./components/display/timeline.cjs"),Re=require("./components/display/tree-view.cjs"),ze=require("./components/display/info-card.cjs"),Be=require("./components/display/virtual-list.cjs"),z=require("./components/display/qr-code.cjs"),B=require("./components/display/carousel.cjs"),V=require("./components/display/tag.cjs"),H=require("./components/display/typography.cjs"),Ve=require("./components/modern/calendar-scheduler.cjs"),He=require("./components/modern/dual-list-picker.cjs"),U=require("./components/modern/resizable-panel.cjs"),W=require("./components/modern/rich-text-editor.cjs"),G=require("./components/modern/image-cropper.cjs"),Ue=require("./components/data-table/data-table.cjs"),K=require("./components/notifications/toast.cjs"),We=require("./components/notifications/notification-center.cjs"),q=require("./components/command/command-palette.cjs"),Ge=require("./components/upload/file-upload.cjs"),Ke=require("./components/upload/image-upload.cjs"),J=require("./components/charts/charts.cjs"),qe=require("./components/charts/progress-circle.cjs"),Y=require("./components/patterns/form-builder.cjs"),X=require("./components/patterns/resource-page.cjs"),Je=require("./components/patterns/resource-detail-page.cjs"),Z=require("./components/patterns/empty-state.cjs"),Ye=require("./components/patterns/page-toolbar.cjs"),Xe=require("./components/patterns/bulk-action-bar.cjs"),Ze=require("./components/patterns/detail-layout.cjs"),Qe=require("./components/patterns/settings-page.cjs"),Q=require("./components/patterns/data-view.cjs"),$e=require("./components/wizard/stepper.cjs"),et=require("./components/wizard/wizard.cjs"),tt=require("./components/dnd/sortable-list.cjs"),nt=require("./hooks/use-session-storage-state.cjs"),rt=require("./hooks/use-before-unload-when-dirty.cjs"),it=require("./hooks/use-disclosure.cjs"),$=require("./hooks/use-debounce.cjs"),at=require("./hooks/use-data-table-view-state.cjs");exports.Accordion=p.Accordion,exports.AccordionContent=p.AccordionContent,exports.AccordionRoot=p.AccordionRoot,exports.AccordionTrigger=p.AccordionTrigger,exports.ActionMenu=r.ActionMenu,exports.ActivityFeed=je.ActivityFeed,exports.Alert=Oe.Alert,exports.AlertDialog=he.AlertDialog,exports.AreaChart=J.AreaChart,exports.AsyncMultiSelect=C.AsyncMultiSelect,exports.AsyncSelect=C.AsyncSelect,exports.Avatar=F.Avatar,exports.AvatarGroup=F.AvatarGroup,exports.Badge=o.Badge,exports.BarChart=J.BarChart,exports.Blockquote=H.Blockquote,exports.Breadcrumbs=fe.Breadcrumbs,exports.BulkActionBar=Xe.BulkActionBar,exports.Button=t.Button,exports.ButtonGroup=ee.ButtonGroup,exports.Calendar=Se.Calendar,exports.CalendarScheduler=Ve.CalendarScheduler,exports.Card=a.Card,exports.CardAction=a.CardAction,exports.CardContent=a.CardContent,exports.CardDescription=a.CardDescription,exports.CardFooter=a.CardFooter,exports.CardHeader=a.CardHeader,exports.CardTitle=a.CardTitle,exports.Carousel=B.Carousel,exports.CarouselItem=B.CarouselItem,exports.ChartFrame=J.ChartFrame,exports.ChartLegend=J.ChartLegend,exports.Checkbox=ie.Checkbox,exports.Chip=V.Chip,exports.CodeBlock=Ne.CodeBlock,exports.Collapse=f.Collapse,exports.CollapseContent=f.CollapseContent,exports.CollapseGroup=f.CollapseGroup,exports.CollapseTrigger=f.CollapseTrigger,exports.ColorPicker=E.ColorPicker,exports.CommandPalette=q.CommandPalette,exports.ConfirmDialog=ge.ConfirmDialog,exports.CopyButton=te.CopyButton,exports.DEFAULT_MOBILE_BREAKPOINT=y.DEFAULT_MOBILE_BREAKPOINT,exports.DataState=Pe.DataState,exports.DataTable=Ue.DataTable,exports.DataView=Q.DataView,exports.DatePicker=Ce.DatePicker,exports.DateRangePicker=Te.DateRangePicker,exports.DateTimePicker=T.DateTimePicker,exports.DescriptionList=Ae.DescriptionList,exports.DetailLayout=Ze.DetailLayout,exports.Dialog=c.Dialog,exports.DialogBody=c.DialogBody,exports.DialogClose=c.DialogClose,exports.DialogContent=c.DialogContent,exports.DialogDescription=c.DialogDescription,exports.DialogFooter=c.DialogFooter,exports.DialogHeader=c.DialogHeader,exports.DialogOverlay=c.DialogOverlay,exports.DialogPortal=c.DialogPortal,exports.DialogTitle=c.DialogTitle,exports.DialogTrigger=c.DialogTrigger,exports.Divider=h.Divider,exports.DonutChart=J.DonutChart,exports.Drawer=S.Drawer,exports.DrawerCloseButton=S.DrawerCloseButton,exports.DropdownMenu=n.DropdownMenu,exports.DropdownMenuCheckboxItem=n.DropdownMenuCheckboxItem,exports.DropdownMenuContent=n.DropdownMenuContent,exports.DropdownMenuGroup=n.DropdownMenuGroup,exports.DropdownMenuItem=n.DropdownMenuItem,exports.DropdownMenuItemDescription=n.DropdownMenuItemDescription,exports.DropdownMenuLabel=n.DropdownMenuLabel,exports.DropdownMenuPortal=n.DropdownMenuPortal,exports.DropdownMenuRadioGroup=n.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=n.DropdownMenuRadioItem,exports.DropdownMenuSeparator=n.DropdownMenuSeparator,exports.DropdownMenuShortcut=n.DropdownMenuShortcut,exports.DropdownMenuSub=n.DropdownMenuSub,exports.DropdownMenuSubContent=n.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=n.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=n.DropdownMenuTrigger,exports.DualListPicker=He.DualListPicker,exports.EditorToolbar=W.EditorToolbar,exports.EmptyState=Z.EmptyState,exports.ErrorState=Z.ErrorState,exports.FileUpload=Ge.FileUpload,exports.FilterBar=pe.FilterBar,exports.FormBuilder=Y.FormBuilder,exports.FormDatePicker=we.FormDatePicker,exports.FormDateRangeInput=De.FormDateRangeInput,exports.FormDateRangePicker=Ee.FormDateRangePicker,exports.FormFieldShell=O.FormFieldShell,exports.FormInput=k.FormInput,exports.FormSelect=A.FormSelect,exports.FormSwitch=j.FormSwitch,exports.FormTextarea=M.FormTextarea,exports.Heading=H.Heading,exports.ImageCropper=G.ImageCropper,exports.ImageUpload=Ke.ImageUpload,exports.InfoCard=ze.InfoCard,exports.InlineEditable=be.InlineEditable,exports.InlineState=P.InlineState,exports.Input=re.Input,exports.InputGroup=i.InputGroup,exports.InputGroupAddon=i.InputGroupAddon,exports.InputGroupButton=i.InputGroupButton,exports.InputGroupInput=i.InputGroupInput,exports.InputGroupText=i.InputGroupText,exports.InputGroupTextarea=i.InputGroupTextarea,exports.JsonInput=xe.JsonInput,exports.KanbanBoard=Me.KanbanBoard,exports.Kbd=oe.Kbd,exports.LineChart=J.LineChart,exports.List=I.List,exports.ListRow=I.ListRow,exports.LoadingOverlay=_.LoadingOverlay,exports.LoadingState=ke.LoadingState,exports.Mark=H.Mark,exports.MetricTrend=J.MetricTrend,exports.NotificationCenter=We.NotificationCenter,exports.OtpInput=_e.OtpInput,exports.PageState=P.PageState,exports.PageToolbar=Ye.PageToolbar,exports.Pagination=x.Pagination,exports.Popover=l.Popover,exports.PopoverContent=l.PopoverContent,exports.PopoverDescription=l.PopoverDescription,exports.PopoverHeader=l.PopoverHeader,exports.PopoverTitle=l.PopoverTitle,exports.PopoverTrigger=l.PopoverTrigger,exports.Progress=L.Progress,exports.ProgressCard=L.ProgressCard,exports.ProgressCircle=qe.ProgressCircle,exports.QRCode=z.QRCode,exports.QRCodeSvg=z.QRCodeSvg,exports.QuickActionGrid=ue.QuickActionGrid,exports.RadioGroup=se.RadioGroup,exports.RangeSlider=w.RangeSlider,exports.Rating=ve.Rating,exports.ResizableHandle=U.ResizableHandle,exports.ResizablePanel=U.ResizablePanel,exports.ResizablePanelGroup=U.ResizablePanelGroup,exports.ResourceDetailPage=Je.ResourceDetailPage,exports.ResourcePage=X.ResourcePage,exports.ResourcePageSection=X.ResourcePageSection,exports.RichTextEditor=W.RichTextEditor,exports.RightClickMenu=le.RightClickMenu,exports.SavedFilterSelect=me.SavedFilterSelect,exports.ScrollBox=ce.ScrollBox,exports.Section=b.Section,exports.SegmentedControl=g.SegmentedControl,exports.Select=u.Select,exports.SelectContent=u.SelectContent,exports.SelectGroup=u.SelectGroup,exports.SelectItem=u.SelectItem,exports.SelectLabel=u.SelectLabel,exports.SelectScrollDownButton=u.SelectScrollDownButton,exports.SelectScrollUpButton=u.SelectScrollUpButton,exports.SelectSeparator=u.SelectSeparator,exports.SelectTrigger=u.SelectTrigger,exports.SelectValue=u.SelectValue,exports.SettingsPage=Qe.SettingsPage,exports.Sidebar=de.Sidebar,exports.SignaturePad=D.SignaturePad,exports.Skeleton=m.Skeleton,exports.SkeletonCard=m.SkeletonCard,exports.SkeletonText=m.SkeletonText,exports.Slider=w.Slider,exports.SortableList=tt.SortableList,exports.Sparkline=J.Sparkline,exports.Spinner=_.Spinner,exports.SplitLayout=b.SplitLayout,exports.Spoiler=H.Spoiler,exports.SpoilerSummary=H.SpoilerSummary,exports.Statistic=R.Statistic,exports.StatisticCard=R.StatisticCard,exports.StatisticGrid=R.StatisticGrid,exports.StatusDot=Fe.StatusDot,exports.StatusLegend=Ie.StatusLegend,exports.Stepper=$e.Stepper,exports.Switch=ae.Switch,exports.Table=d.Table,exports.TableBody=d.TableBody,exports.TableCaption=d.TableCaption,exports.TableCell=d.TableCell,exports.TableFooter=d.TableFooter,exports.TableHead=d.TableHead,exports.TableHeader=d.TableHeader,exports.TableRow=d.TableRow,exports.Tabs=s.Tabs,exports.TabsContent=s.TabsContent,exports.TabsList=s.TabsList,exports.TabsTrigger=s.TabsTrigger,exports.Tag=V.Tag,exports.TagGroup=V.TagGroup,exports.TagInput=ye.TagInput,exports.Text=H.Text,exports.Textarea=ne.Textarea,exports.TimePicker=T.TimePicker,exports.TimeRangePicker=T.TimeRangePicker,exports.Timeline=Le.Timeline,exports.ToastProvider=K.ToastProvider,exports.Toolbar=b.Toolbar,exports.Tooltip=v.Tooltip,exports.TreeView=Re.TreeView,exports.VirtualList=Be.VirtualList,exports.Wizard=et.Wizard,exports.addMonths=N.addMonths,exports.asyncSelectField=Y.asyncSelectField,exports.badgeVariants=o.badgeVariants,exports.buttonVariants=t.buttonVariants,exports.cardVariants=a.cardVariants,exports.cn=e.cn,exports.createCroppedImageBlob=G.createCroppedImageBlob,exports.customField=Y.customField,exports.dateField=Y.dateField,exports.dateRangeField=Y.dateRangeField,exports.drawSignature=D.drawSignature,exports.formSection=Y.formSection,exports.getAlphaPercent=E.getAlphaPercent,exports.getMonthDays=N.getMonthDays,exports.getMonthLabel=N.getMonthLabel,exports.getPaginationItems=x.getPaginationItems,exports.getProgressPercent=L.getProgressPercent,exports.getWeekdayLabels=N.getWeekdayLabels,exports.inputField=Y.inputField,exports.isAfterDate=N.isAfterDate,exports.isBeforeDate=N.isBeforeDate,exports.isSameMonth=N.isSameMonth,exports.isWithinRange=N.isWithinRange,exports.normalizeHexColor=E.normalizeHexColor,exports.numberField=Y.numberField,exports.parseDateKey=N.parseDateKey,exports.phoneField=Y.phoneField,exports.renderFormBuilderField=Y.renderFormBuilderField,exports.resolveFormFieldIds=O.resolveFormFieldIds,exports.selectField=Y.selectField,exports.startOfMonth=N.startOfMonth,exports.stopInteractivePropagation=e.stopInteractivePropagation,exports.switchField=Y.switchField,exports.textareaField=Y.textareaField,exports.toDateKey=N.toDateKey,exports.useBeforeUnloadWhenDirty=rt.useBeforeUnloadWhenDirty,exports.useCommandPaletteShortcut=q.useCommandPaletteShortcut,exports.useDataTableViewState=at.useDataTableViewState,exports.useDebouncedCallback=$.useDebouncedCallback,exports.useDebouncedValue=$.useDebouncedValue,exports.useDisclosure=it.useDisclosure,exports.useIsMobile=y.useIsMobile,exports.useSessionStorageState=nt.useSessionStorageState,exports.useToast=K.useToast,exports.withAlpha=E.withAlpha;
package/dist/src/index.js CHANGED
@@ -12,104 +12,104 @@ import { Switch as M } from "./components/ui/switch/index.js";
12
12
  import { Card as N, CardAction as P, CardContent as F, CardDescription as I, CardFooter as L, CardHeader as R, CardTitle as z, cardVariants as B } from "./components/ui/card/index.js";
13
13
  import { Badge as V, badgeVariants as H } from "./components/ui/badge/index.js";
14
14
  import { Tabs as U, TabsContent as W, TabsList as G, TabsTrigger as K } from "./components/ui/tabs/index.js";
15
- import { Dialog as q, DialogClose as J, DialogContent as Y, DialogDescription as X, DialogFooter as Z, DialogHeader as Q, DialogOverlay as $, DialogPortal as ee, DialogTitle as te, DialogTrigger as ne } from "./components/ui/dialog/index.js";
16
- import { Popover as re, PopoverContent as ie, PopoverDescription as ae, PopoverHeader as oe, PopoverTitle as se, PopoverTrigger as ce } from "./components/ui/popover/index.js";
17
- import { Select as le, SelectContent as ue, SelectGroup as de, SelectItem as fe, SelectLabel as pe, SelectScrollDownButton as me, SelectScrollUpButton as he, SelectSeparator as ge, SelectTrigger as _e, SelectValue as ve } from "./components/ui/select/index.js";
18
- import { Table as ye, TableBody as be, TableCaption as xe, TableCell as Se, TableFooter as Ce, TableHead as we, TableHeader as Te, TableRow as Ee } from "./components/ui/table/index.js";
19
- import { Collapse as De, CollapseContent as Oe, CollapseGroup as ke, CollapseTrigger as Ae } from "./components/ui/collapse/index.js";
20
- import { Accordion as je, AccordionContent as Me, AccordionRoot as Ne, AccordionTrigger as Pe } from "./components/ui/accordion/index.js";
21
- import { Skeleton as Fe, SkeletonCard as Ie, SkeletonText as Le } from "./components/ui/skeleton/index.js";
22
- import { Divider as Re } from "./components/ui/divider/index.js";
23
- import { SegmentedControl as ze } from "./components/ui/segmented-control/index.js";
24
- import { LoadingOverlay as Be, Spinner as Ve } from "./components/ui/spinner/index.js";
25
- import { Tooltip as He } from "./components/ui/tooltip/index.js";
26
- import { Kbd as Ue } from "./components/ui/kbd/index.js";
27
- import { RadioGroup as We } from "./components/ui/radio-group/index.js";
28
- import { ScrollBox as Ge } from "./components/ui/scroll-box/index.js";
29
- import { RightClickMenu as Ke } from "./components/ui/right-click-menu/index.js";
30
- import { QuickActionGrid as qe } from "./components/actions/quick-action-grid.js";
31
- import { DEFAULT_MOBILE_BREAKPOINT as Je, useIsMobile as Ye } from "./hooks/use-is-mobile.js";
32
- import { Sidebar as Xe } from "./components/layout/app-sidebar.js";
33
- import { Breadcrumbs as Ze } from "./components/layout/breadcrumbs.js";
34
- import { Section as Qe, SplitLayout as $e, Toolbar as et } from "./components/layout/section.js";
35
- import { Pagination as tt, getPaginationItems as nt } from "./components/navigation/pagination.js";
36
- import { FilterBar as rt } from "./components/filters/filter-bar.js";
37
- import { SavedFilterSelect as it } from "./components/filters/saved-filter-select.js";
38
- import { AlertDialog as at } from "./components/overlay/alert-dialog.js";
39
- import { ConfirmDialog as ot } from "./components/overlay/confirm-dialog.js";
40
- import { Drawer as st, DrawerCloseButton as ct } from "./components/overlay/drawer.js";
41
- import { AsyncMultiSelect as lt, AsyncSelect as ut } from "./components/inputs/async-select.js";
42
- import { OtpInput as dt } from "./components/inputs/otp-input.js";
43
- import { Rating as ft } from "./components/inputs/rating.js";
44
- import { RangeSlider as pt, Slider as mt } from "./components/inputs/slider.js";
45
- import { TagInput as ht } from "./components/inputs/tag-input.js";
46
- import { InlineEditable as gt } from "./components/inputs/inline-editable.js";
47
- import { JsonInput as _t } from "./components/inputs/json-input.js";
48
- import { DateTimePicker as vt, TimePicker as yt, TimeRangePicker as bt } from "./components/inputs/time-picker.js";
49
- import { ColorPicker as xt, getAlphaPercent as St, normalizeHexColor as Ct, withAlpha as wt } from "./components/inputs/color-picker.js";
50
- import { SignaturePad as Tt, drawSignature as Et } from "./components/inputs/signature-pad.js";
51
- import { FormFieldShell as Dt, resolveFormFieldIds as Ot } from "./components/form/form-field-shell.js";
52
- import { FormInput as kt } from "./components/form/form-input.js";
53
- import { FormSelect as At } from "./components/form/form-select.js";
54
- import { FormSwitch as jt } from "./components/form/form-switch.js";
55
- import { FormTextarea as Mt } from "./components/form/form-textarea.js";
56
- import { addMonths as Nt, getMonthDays as Pt, getMonthLabel as Ft, getWeekdayLabels as It, isAfterDate as Lt, isBeforeDate as Rt, isSameMonth as zt, isWithinRange as Bt, parseDateKey as Vt, startOfMonth as Ht, toDateKey as Ut } from "./components/calendar/date-utils.js";
57
- import { Calendar as Wt } from "./components/calendar/calendar.js";
58
- import { DatePicker as Gt } from "./components/calendar/date-picker.js";
59
- import { FormDatePicker as Kt } from "./components/form/form-date-picker.js";
60
- import { DateRangePicker as qt } from "./components/calendar/date-range-picker.js";
61
- import { FormDateRangePicker as Jt } from "./components/form/form-date-range-picker.js";
62
- import { FormDateRangeInput as Yt } from "./components/form/form-date-range-input.js";
63
- import { Alert as Xt } from "./components/feedback/alert.js";
64
- import { LoadingState as Zt } from "./components/feedback/loading-state.js";
65
- import { InlineState as Qt, PageState as $t } from "./components/feedback/page-state.js";
66
- import { DescriptionList as en } from "./components/display/description-list.js";
67
- import { ActivityFeed as tn } from "./components/display/activity-feed.js";
68
- import { Avatar as nn, AvatarGroup as rn } from "./components/display/avatar.js";
69
- import { KanbanBoard as an } from "./components/display/kanban.js";
70
- import { CodeBlock as on } from "./components/display/code-block.js";
71
- import { DataState as sn } from "./components/display/data-state.js";
72
- import { List as cn, ListRow as ln } from "./components/display/list.js";
73
- import { Progress as un, ProgressCard as dn, getProgressPercent as fn } from "./components/display/progress.js";
74
- import { Statistic as pn, StatisticCard as mn, StatisticGrid as hn } from "./components/display/statistic.js";
75
- import { StatusDot as gn } from "./components/display/status-dot.js";
76
- import { StatusLegend as _n } from "./components/display/status-legend.js";
77
- import { Timeline as vn } from "./components/display/timeline.js";
78
- import { TreeView as yn } from "./components/display/tree-view.js";
79
- import { InfoCard as bn } from "./components/display/info-card.js";
80
- import { VirtualList as xn } from "./components/display/virtual-list.js";
81
- import { QRCode as Sn, QRCodeSvg as Cn } from "./components/display/qr-code.js";
82
- import { Carousel as wn, CarouselItem as Tn } from "./components/display/carousel.js";
83
- import { Chip as En, Tag as Dn, TagGroup as On } from "./components/display/tag.js";
84
- import { Blockquote as kn, Heading as An, Mark as jn, Spoiler as Mn, SpoilerSummary as Nn, Text as Pn } from "./components/display/typography.js";
85
- import { CalendarScheduler as Fn } from "./components/modern/calendar-scheduler.js";
86
- import { DualListPicker as In } from "./components/modern/dual-list-picker.js";
87
- import { ResizableHandle as Ln, ResizablePanel as Rn, ResizablePanelGroup as zn } from "./components/modern/resizable-panel.js";
88
- import { EditorToolbar as Bn, RichTextEditor as Vn } from "./components/modern/rich-text-editor.js";
89
- import { ImageCropper as Hn, createCroppedImageBlob as Un } from "./components/modern/image-cropper.js";
90
- import { DataTable as Wn } from "./components/data-table/data-table.js";
91
- import { ToastProvider as Gn, useToast as Kn } from "./components/notifications/toast.js";
92
- import { NotificationCenter as qn } from "./components/notifications/notification-center.js";
93
- import { CommandPalette as Jn, useCommandPaletteShortcut as Yn } from "./components/command/command-palette.js";
94
- import { FileUpload as Xn } from "./components/upload/file-upload.js";
95
- import { ImageUpload as Zn } from "./components/upload/image-upload.js";
96
- import { AreaChart as Qn, BarChart as $n, ChartFrame as er, ChartLegend as tr, DonutChart as nr, LineChart as rr, MetricTrend as ir, Sparkline as ar } from "./components/charts/charts.js";
97
- import { ProgressCircle as or } from "./components/charts/progress-circle.js";
98
- import { FormBuilder as sr, asyncSelectField as cr, customField as lr, dateField as ur, dateRangeField as dr, formSection as fr, inputField as pr, numberField as mr, phoneField as hr, renderFormBuilderField as gr, selectField as _r, switchField as vr, textareaField as yr } from "./components/patterns/form-builder.js";
99
- import { ResourcePage as br, ResourcePageSection as xr } from "./components/patterns/resource-page.js";
100
- import { ResourceDetailPage as Sr } from "./components/patterns/resource-detail-page.js";
101
- import { EmptyState as Cr, ErrorState as wr } from "./components/patterns/empty-state.js";
102
- import { PageToolbar as Tr } from "./components/patterns/page-toolbar.js";
103
- import { BulkActionBar as Er } from "./components/patterns/bulk-action-bar.js";
104
- import { DetailLayout as Dr } from "./components/patterns/detail-layout.js";
105
- import { SettingsPage as Or } from "./components/patterns/settings-page.js";
106
- import { DataView as kr } from "./components/patterns/data-view.js";
107
- import { Stepper as Ar } from "./components/wizard/stepper.js";
108
- import { Wizard as jr } from "./components/wizard/wizard.js";
109
- import { SortableList as Mr } from "./components/dnd/sortable-list.js";
110
- import { useSessionStorageState as Nr } from "./hooks/use-session-storage-state.js";
111
- import { useBeforeUnloadWhenDirty as Pr } from "./hooks/use-before-unload-when-dirty.js";
112
- import { useDisclosure as Fr } from "./hooks/use-disclosure.js";
113
- import { useDebouncedCallback as Ir, useDebouncedValue as Lr } from "./hooks/use-debounce.js";
114
- import { useDataTableViewState as Rr } from "./hooks/use-data-table-view-state.js";
115
- export { je as Accordion, Me as AccordionContent, Ne as AccordionRoot, Pe as AccordionTrigger, b as ActionMenu, tn as ActivityFeed, Xt as Alert, at as AlertDialog, Qn as AreaChart, lt as AsyncMultiSelect, ut as AsyncSelect, nn as Avatar, rn as AvatarGroup, V as Badge, $n as BarChart, kn as Blockquote, Ze as Breadcrumbs, Er as BulkActionBar, n as Button, x as ButtonGroup, Wt as Calendar, Fn as CalendarScheduler, N as Card, P as CardAction, F as CardContent, I as CardDescription, L as CardFooter, R as CardHeader, z as CardTitle, wn as Carousel, Tn as CarouselItem, er as ChartFrame, tr as ChartLegend, j as Checkbox, En as Chip, on as CodeBlock, De as Collapse, Oe as CollapseContent, ke as CollapseGroup, Ae as CollapseTrigger, xt as ColorPicker, Jn as CommandPalette, ot as ConfirmDialog, S as CopyButton, Je as DEFAULT_MOBILE_BREAKPOINT, sn as DataState, Wn as DataTable, kr as DataView, Gt as DatePicker, qt as DateRangePicker, vt as DateTimePicker, en as DescriptionList, Dr as DetailLayout, q as Dialog, J as DialogClose, Y as DialogContent, X as DialogDescription, Z as DialogFooter, Q as DialogHeader, $ as DialogOverlay, ee as DialogPortal, te as DialogTitle, ne as DialogTrigger, Re as Divider, nr as DonutChart, st as Drawer, ct as DrawerCloseButton, i as DropdownMenu, a as DropdownMenuCheckboxItem, o as DropdownMenuContent, s as DropdownMenuGroup, c as DropdownMenuItem, l as DropdownMenuItemDescription, u as DropdownMenuLabel, d as DropdownMenuPortal, f as DropdownMenuRadioGroup, p as DropdownMenuRadioItem, m as DropdownMenuSeparator, h as DropdownMenuShortcut, g as DropdownMenuSub, _ as DropdownMenuSubContent, v as DropdownMenuSubTrigger, y as DropdownMenuTrigger, In as DualListPicker, Bn as EditorToolbar, Cr as EmptyState, wr as ErrorState, Xn as FileUpload, rt as FilterBar, sr as FormBuilder, Kt as FormDatePicker, Yt as FormDateRangeInput, Jt as FormDateRangePicker, Dt as FormFieldShell, kt as FormInput, At as FormSelect, jt as FormSwitch, Mt as FormTextarea, An as Heading, Hn as ImageCropper, Zn as ImageUpload, bn as InfoCard, gt as InlineEditable, Qt as InlineState, A as Input, w as InputGroup, T as InputGroupAddon, E as InputGroupButton, D as InputGroupInput, O as InputGroupText, k as InputGroupTextarea, _t as JsonInput, an as KanbanBoard, Ue as Kbd, rr as LineChart, cn as List, ln as ListRow, Be as LoadingOverlay, Zt as LoadingState, jn as Mark, ir as MetricTrend, qn as NotificationCenter, dt as OtpInput, $t as PageState, Tr as PageToolbar, tt as Pagination, re as Popover, ie as PopoverContent, ae as PopoverDescription, oe as PopoverHeader, se as PopoverTitle, ce as PopoverTrigger, un as Progress, dn as ProgressCard, or as ProgressCircle, Sn as QRCode, Cn as QRCodeSvg, qe as QuickActionGrid, We as RadioGroup, pt as RangeSlider, ft as Rating, Ln as ResizableHandle, Rn as ResizablePanel, zn as ResizablePanelGroup, Sr as ResourceDetailPage, br as ResourcePage, xr as ResourcePageSection, Vn as RichTextEditor, Ke as RightClickMenu, it as SavedFilterSelect, Ge as ScrollBox, Qe as Section, ze as SegmentedControl, le as Select, ue as SelectContent, de as SelectGroup, fe as SelectItem, pe as SelectLabel, me as SelectScrollDownButton, he as SelectScrollUpButton, ge as SelectSeparator, _e as SelectTrigger, ve as SelectValue, Or as SettingsPage, Xe as Sidebar, Tt as SignaturePad, Fe as Skeleton, Ie as SkeletonCard, Le as SkeletonText, mt as Slider, Mr as SortableList, ar as Sparkline, Ve as Spinner, $e as SplitLayout, Mn as Spoiler, Nn as SpoilerSummary, pn as Statistic, mn as StatisticCard, hn as StatisticGrid, gn as StatusDot, _n as StatusLegend, Ar as Stepper, M as Switch, ye as Table, be as TableBody, xe as TableCaption, Se as TableCell, Ce as TableFooter, we as TableHead, Te as TableHeader, Ee as TableRow, U as Tabs, W as TabsContent, G as TabsList, K as TabsTrigger, Dn as Tag, On as TagGroup, ht as TagInput, Pn as Text, C as Textarea, yt as TimePicker, bt as TimeRangePicker, vn as Timeline, Gn as ToastProvider, et as Toolbar, He as Tooltip, yn as TreeView, xn as VirtualList, jr as Wizard, Nt as addMonths, cr as asyncSelectField, H as badgeVariants, r as buttonVariants, B as cardVariants, e as cn, Un as createCroppedImageBlob, lr as customField, ur as dateField, dr as dateRangeField, Et as drawSignature, fr as formSection, St as getAlphaPercent, Pt as getMonthDays, Ft as getMonthLabel, nt as getPaginationItems, fn as getProgressPercent, It as getWeekdayLabels, pr as inputField, Lt as isAfterDate, Rt as isBeforeDate, zt as isSameMonth, Bt as isWithinRange, Ct as normalizeHexColor, mr as numberField, Vt as parseDateKey, hr as phoneField, gr as renderFormBuilderField, Ot as resolveFormFieldIds, _r as selectField, Ht as startOfMonth, t as stopInteractivePropagation, vr as switchField, yr as textareaField, Ut as toDateKey, Pr as useBeforeUnloadWhenDirty, Yn as useCommandPaletteShortcut, Rr as useDataTableViewState, Ir as useDebouncedCallback, Lr as useDebouncedValue, Fr as useDisclosure, Ye as useIsMobile, Nr as useSessionStorageState, Kn as useToast, wt as withAlpha };
15
+ import { Dialog as q, DialogBody as J, DialogClose as Y, DialogContent as X, DialogDescription as Z, DialogFooter as Q, DialogHeader as $, DialogOverlay as ee, DialogPortal as te, DialogTitle as ne, DialogTrigger as re } from "./components/ui/dialog/index.js";
16
+ import { Popover as ie, PopoverContent as ae, PopoverDescription as oe, PopoverHeader as se, PopoverTitle as ce, PopoverTrigger as le } from "./components/ui/popover/index.js";
17
+ import { Select as ue, SelectContent as de, SelectGroup as fe, SelectItem as pe, SelectLabel as me, SelectScrollDownButton as he, SelectScrollUpButton as ge, SelectSeparator as _e, SelectTrigger as ve, SelectValue as ye } from "./components/ui/select/index.js";
18
+ import { Table as be, TableBody as xe, TableCaption as Se, TableCell as Ce, TableFooter as we, TableHead as Te, TableHeader as Ee, TableRow as De } from "./components/ui/table/index.js";
19
+ import { Collapse as Oe, CollapseContent as ke, CollapseGroup as Ae, CollapseTrigger as je } from "./components/ui/collapse/index.js";
20
+ import { Accordion as Me, AccordionContent as Ne, AccordionRoot as Pe, AccordionTrigger as Fe } from "./components/ui/accordion/index.js";
21
+ import { Skeleton as Ie, SkeletonCard as Le, SkeletonText as Re } from "./components/ui/skeleton/index.js";
22
+ import { Divider as ze } from "./components/ui/divider/index.js";
23
+ import { SegmentedControl as Be } from "./components/ui/segmented-control/index.js";
24
+ import { LoadingOverlay as Ve, Spinner as He } from "./components/ui/spinner/index.js";
25
+ import { Tooltip as Ue } from "./components/ui/tooltip/index.js";
26
+ import { Kbd as We } from "./components/ui/kbd/index.js";
27
+ import { RadioGroup as Ge } from "./components/ui/radio-group/index.js";
28
+ import { ScrollBox as Ke } from "./components/ui/scroll-box/index.js";
29
+ import { RightClickMenu as qe } from "./components/ui/right-click-menu/index.js";
30
+ import { QuickActionGrid as Je } from "./components/actions/quick-action-grid.js";
31
+ import { DEFAULT_MOBILE_BREAKPOINT as Ye, useIsMobile as Xe } from "./hooks/use-is-mobile.js";
32
+ import { Sidebar as Ze } from "./components/layout/app-sidebar.js";
33
+ import { Breadcrumbs as Qe } from "./components/layout/breadcrumbs.js";
34
+ import { Section as $e, SplitLayout as et, Toolbar as tt } from "./components/layout/section.js";
35
+ import { Pagination as nt, getPaginationItems as rt } from "./components/navigation/pagination.js";
36
+ import { FilterBar as it } from "./components/filters/filter-bar.js";
37
+ import { SavedFilterSelect as at } from "./components/filters/saved-filter-select.js";
38
+ import { AlertDialog as ot } from "./components/overlay/alert-dialog.js";
39
+ import { ConfirmDialog as st } from "./components/overlay/confirm-dialog.js";
40
+ import { Drawer as ct, DrawerCloseButton as lt } from "./components/overlay/drawer.js";
41
+ import { AsyncMultiSelect as ut, AsyncSelect as dt } from "./components/inputs/async-select.js";
42
+ import { OtpInput as ft } from "./components/inputs/otp-input.js";
43
+ import { Rating as pt } from "./components/inputs/rating.js";
44
+ import { RangeSlider as mt, Slider as ht } from "./components/inputs/slider.js";
45
+ import { TagInput as gt } from "./components/inputs/tag-input.js";
46
+ import { InlineEditable as _t } from "./components/inputs/inline-editable.js";
47
+ import { JsonInput as vt } from "./components/inputs/json-input.js";
48
+ import { DateTimePicker as yt, TimePicker as bt, TimeRangePicker as xt } from "./components/inputs/time-picker.js";
49
+ import { ColorPicker as St, getAlphaPercent as Ct, normalizeHexColor as wt, withAlpha as Tt } from "./components/inputs/color-picker.js";
50
+ import { SignaturePad as Et, drawSignature as Dt } from "./components/inputs/signature-pad.js";
51
+ import { FormFieldShell as Ot, resolveFormFieldIds as kt } from "./components/form/form-field-shell.js";
52
+ import { FormInput as At } from "./components/form/form-input.js";
53
+ import { FormSelect as jt } from "./components/form/form-select.js";
54
+ import { FormSwitch as Mt } from "./components/form/form-switch.js";
55
+ import { FormTextarea as Nt } from "./components/form/form-textarea.js";
56
+ import { addMonths as Pt, getMonthDays as Ft, getMonthLabel as It, getWeekdayLabels as Lt, isAfterDate as Rt, isBeforeDate as zt, isSameMonth as Bt, isWithinRange as Vt, parseDateKey as Ht, startOfMonth as Ut, toDateKey as Wt } from "./components/calendar/date-utils.js";
57
+ import { Calendar as Gt } from "./components/calendar/calendar.js";
58
+ import { DatePicker as Kt } from "./components/calendar/date-picker.js";
59
+ import { FormDatePicker as qt } from "./components/form/form-date-picker.js";
60
+ import { DateRangePicker as Jt } from "./components/calendar/date-range-picker.js";
61
+ import { FormDateRangePicker as Yt } from "./components/form/form-date-range-picker.js";
62
+ import { FormDateRangeInput as Xt } from "./components/form/form-date-range-input.js";
63
+ import { Alert as Zt } from "./components/feedback/alert.js";
64
+ import { LoadingState as Qt } from "./components/feedback/loading-state.js";
65
+ import { InlineState as $t, PageState as en } from "./components/feedback/page-state.js";
66
+ import { DescriptionList as tn } from "./components/display/description-list.js";
67
+ import { ActivityFeed as nn } from "./components/display/activity-feed.js";
68
+ import { Avatar as rn, AvatarGroup as an } from "./components/display/avatar.js";
69
+ import { KanbanBoard as on } from "./components/display/kanban.js";
70
+ import { CodeBlock as sn } from "./components/display/code-block.js";
71
+ import { DataState as cn } from "./components/display/data-state.js";
72
+ import { List as ln, ListRow as un } from "./components/display/list.js";
73
+ import { Progress as dn, ProgressCard as fn, getProgressPercent as pn } from "./components/display/progress.js";
74
+ import { Statistic as mn, StatisticCard as hn, StatisticGrid as gn } from "./components/display/statistic.js";
75
+ import { StatusDot as _n } from "./components/display/status-dot.js";
76
+ import { StatusLegend as vn } from "./components/display/status-legend.js";
77
+ import { Timeline as yn } from "./components/display/timeline.js";
78
+ import { TreeView as bn } from "./components/display/tree-view.js";
79
+ import { InfoCard as xn } from "./components/display/info-card.js";
80
+ import { VirtualList as Sn } from "./components/display/virtual-list.js";
81
+ import { QRCode as Cn, QRCodeSvg as wn } from "./components/display/qr-code.js";
82
+ import { Carousel as Tn, CarouselItem as En } from "./components/display/carousel.js";
83
+ import { Chip as Dn, Tag as On, TagGroup as kn } from "./components/display/tag.js";
84
+ import { Blockquote as An, Heading as jn, Mark as Mn, Spoiler as Nn, SpoilerSummary as Pn, Text as Fn } from "./components/display/typography.js";
85
+ import { CalendarScheduler as In } from "./components/modern/calendar-scheduler.js";
86
+ import { DualListPicker as Ln } from "./components/modern/dual-list-picker.js";
87
+ import { ResizableHandle as Rn, ResizablePanel as zn, ResizablePanelGroup as Bn } from "./components/modern/resizable-panel.js";
88
+ import { EditorToolbar as Vn, RichTextEditor as Hn } from "./components/modern/rich-text-editor.js";
89
+ import { ImageCropper as Un, createCroppedImageBlob as Wn } from "./components/modern/image-cropper.js";
90
+ import { DataTable as Gn } from "./components/data-table/data-table.js";
91
+ import { ToastProvider as Kn, useToast as qn } from "./components/notifications/toast.js";
92
+ import { NotificationCenter as Jn } from "./components/notifications/notification-center.js";
93
+ import { CommandPalette as Yn, useCommandPaletteShortcut as Xn } from "./components/command/command-palette.js";
94
+ import { FileUpload as Zn } from "./components/upload/file-upload.js";
95
+ import { ImageUpload as Qn } from "./components/upload/image-upload.js";
96
+ import { AreaChart as $n, BarChart as er, ChartFrame as tr, ChartLegend as nr, DonutChart as rr, LineChart as ir, MetricTrend as ar, Sparkline as or } from "./components/charts/charts.js";
97
+ import { ProgressCircle as sr } from "./components/charts/progress-circle.js";
98
+ import { FormBuilder as cr, asyncSelectField as lr, customField as ur, dateField as dr, dateRangeField as fr, formSection as pr, inputField as mr, numberField as hr, phoneField as gr, renderFormBuilderField as _r, selectField as vr, switchField as yr, textareaField as br } from "./components/patterns/form-builder.js";
99
+ import { ResourcePage as xr, ResourcePageSection as Sr } from "./components/patterns/resource-page.js";
100
+ import { ResourceDetailPage as Cr } from "./components/patterns/resource-detail-page.js";
101
+ import { EmptyState as wr, ErrorState as Tr } from "./components/patterns/empty-state.js";
102
+ import { PageToolbar as Er } from "./components/patterns/page-toolbar.js";
103
+ import { BulkActionBar as Dr } from "./components/patterns/bulk-action-bar.js";
104
+ import { DetailLayout as Or } from "./components/patterns/detail-layout.js";
105
+ import { SettingsPage as kr } from "./components/patterns/settings-page.js";
106
+ import { DataView as Ar } from "./components/patterns/data-view.js";
107
+ import { Stepper as jr } from "./components/wizard/stepper.js";
108
+ import { Wizard as Mr } from "./components/wizard/wizard.js";
109
+ import { SortableList as Nr } from "./components/dnd/sortable-list.js";
110
+ import { useSessionStorageState as Pr } from "./hooks/use-session-storage-state.js";
111
+ import { useBeforeUnloadWhenDirty as Fr } from "./hooks/use-before-unload-when-dirty.js";
112
+ import { useDisclosure as Ir } from "./hooks/use-disclosure.js";
113
+ import { useDebouncedCallback as Lr, useDebouncedValue as Rr } from "./hooks/use-debounce.js";
114
+ import { useDataTableViewState as zr } from "./hooks/use-data-table-view-state.js";
115
+ export { Me as Accordion, Ne as AccordionContent, Pe as AccordionRoot, Fe as AccordionTrigger, b as ActionMenu, nn as ActivityFeed, Zt as Alert, ot as AlertDialog, $n as AreaChart, ut as AsyncMultiSelect, dt as AsyncSelect, rn as Avatar, an as AvatarGroup, V as Badge, er as BarChart, An as Blockquote, Qe as Breadcrumbs, Dr as BulkActionBar, n as Button, x as ButtonGroup, Gt as Calendar, In as CalendarScheduler, N as Card, P as CardAction, F as CardContent, I as CardDescription, L as CardFooter, R as CardHeader, z as CardTitle, Tn as Carousel, En as CarouselItem, tr as ChartFrame, nr as ChartLegend, j as Checkbox, Dn as Chip, sn as CodeBlock, Oe as Collapse, ke as CollapseContent, Ae as CollapseGroup, je as CollapseTrigger, St as ColorPicker, Yn as CommandPalette, st as ConfirmDialog, S as CopyButton, Ye as DEFAULT_MOBILE_BREAKPOINT, cn as DataState, Gn as DataTable, Ar as DataView, Kt as DatePicker, Jt as DateRangePicker, yt as DateTimePicker, tn as DescriptionList, Or as DetailLayout, q as Dialog, J as DialogBody, Y as DialogClose, X as DialogContent, Z as DialogDescription, Q as DialogFooter, $ as DialogHeader, ee as DialogOverlay, te as DialogPortal, ne as DialogTitle, re as DialogTrigger, ze as Divider, rr as DonutChart, ct as Drawer, lt as DrawerCloseButton, i as DropdownMenu, a as DropdownMenuCheckboxItem, o as DropdownMenuContent, s as DropdownMenuGroup, c as DropdownMenuItem, l as DropdownMenuItemDescription, u as DropdownMenuLabel, d as DropdownMenuPortal, f as DropdownMenuRadioGroup, p as DropdownMenuRadioItem, m as DropdownMenuSeparator, h as DropdownMenuShortcut, g as DropdownMenuSub, _ as DropdownMenuSubContent, v as DropdownMenuSubTrigger, y as DropdownMenuTrigger, Ln as DualListPicker, Vn as EditorToolbar, wr as EmptyState, Tr as ErrorState, Zn as FileUpload, it as FilterBar, cr as FormBuilder, qt as FormDatePicker, Xt as FormDateRangeInput, Yt as FormDateRangePicker, Ot as FormFieldShell, At as FormInput, jt as FormSelect, Mt as FormSwitch, Nt as FormTextarea, jn as Heading, Un as ImageCropper, Qn as ImageUpload, xn as InfoCard, _t as InlineEditable, $t as InlineState, A as Input, w as InputGroup, T as InputGroupAddon, E as InputGroupButton, D as InputGroupInput, O as InputGroupText, k as InputGroupTextarea, vt as JsonInput, on as KanbanBoard, We as Kbd, ir as LineChart, ln as List, un as ListRow, Ve as LoadingOverlay, Qt as LoadingState, Mn as Mark, ar as MetricTrend, Jn as NotificationCenter, ft as OtpInput, en as PageState, Er as PageToolbar, nt as Pagination, ie as Popover, ae as PopoverContent, oe as PopoverDescription, se as PopoverHeader, ce as PopoverTitle, le as PopoverTrigger, dn as Progress, fn as ProgressCard, sr as ProgressCircle, Cn as QRCode, wn as QRCodeSvg, Je as QuickActionGrid, Ge as RadioGroup, mt as RangeSlider, pt as Rating, Rn as ResizableHandle, zn as ResizablePanel, Bn as ResizablePanelGroup, Cr as ResourceDetailPage, xr as ResourcePage, Sr as ResourcePageSection, Hn as RichTextEditor, qe as RightClickMenu, at as SavedFilterSelect, Ke as ScrollBox, $e as Section, Be as SegmentedControl, ue as Select, de as SelectContent, fe as SelectGroup, pe as SelectItem, me as SelectLabel, he as SelectScrollDownButton, ge as SelectScrollUpButton, _e as SelectSeparator, ve as SelectTrigger, ye as SelectValue, kr as SettingsPage, Ze as Sidebar, Et as SignaturePad, Ie as Skeleton, Le as SkeletonCard, Re as SkeletonText, ht as Slider, Nr as SortableList, or as Sparkline, He as Spinner, et as SplitLayout, Nn as Spoiler, Pn as SpoilerSummary, mn as Statistic, hn as StatisticCard, gn as StatisticGrid, _n as StatusDot, vn as StatusLegend, jr as Stepper, M as Switch, be as Table, xe as TableBody, Se as TableCaption, Ce as TableCell, we as TableFooter, Te as TableHead, Ee as TableHeader, De as TableRow, U as Tabs, W as TabsContent, G as TabsList, K as TabsTrigger, On as Tag, kn as TagGroup, gt as TagInput, Fn as Text, C as Textarea, bt as TimePicker, xt as TimeRangePicker, yn as Timeline, Kn as ToastProvider, tt as Toolbar, Ue as Tooltip, bn as TreeView, Sn as VirtualList, Mr as Wizard, Pt as addMonths, lr as asyncSelectField, H as badgeVariants, r as buttonVariants, B as cardVariants, e as cn, Wn as createCroppedImageBlob, ur as customField, dr as dateField, fr as dateRangeField, Dt as drawSignature, pr as formSection, Ct as getAlphaPercent, Ft as getMonthDays, It as getMonthLabel, rt as getPaginationItems, pn as getProgressPercent, Lt as getWeekdayLabels, mr as inputField, Rt as isAfterDate, zt as isBeforeDate, Bt as isSameMonth, Vt as isWithinRange, wt as normalizeHexColor, hr as numberField, Ht as parseDateKey, gr as phoneField, _r as renderFormBuilderField, kt as resolveFormFieldIds, vr as selectField, Ut as startOfMonth, t as stopInteractivePropagation, yr as switchField, br as textareaField, Wt as toDateKey, Fr as useBeforeUnloadWhenDirty, Xn as useCommandPaletteShortcut, zr as useDataTableViewState, Lr as useDebouncedCallback, Rr as useDebouncedValue, Ir as useDisclosure, Xe as useIsMobile, Pr as useSessionStorageState, qn as useToast, Tt as withAlpha };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={button:{slug:`button`,source:`metadata`,summary:`Action component for submit, secondary, destructive, warning, loading, icon and navigation-like flows. Verify every state in light and dark mode before shipping.`,props:[{name:`variant`,type:`'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'warning' | 'link'`,defaultValue:`'default'`,description:`Controls visual hierarchy and action tone.`,example:`variant="destructive"`},{name:`size`,type:`'xs' | 'sm' | 'default' | 'md' | 'lg' | 'xl' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg'`,defaultValue:`'default'`,description:`Controls height, spacing and icon-only sizing.`,example:`size="icon-sm"`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Shows the spinner, disables interaction and communicates pending state.`,example:`loading={isSaving}`},{name:`loadingLabel`,type:`string`,defaultValue:`'Loading'`,description:`Accessible label displayed while the button is loading.`,example:`loadingLabel="Saving"`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the action and removes it from normal interaction.`,example:`disabled={!canSubmit}`},{name:`leftIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered before the label. Use for primary verbs and scan-friendly actions.`},{name:`rightIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered after the label. Use for forward navigation or external transitions.`},{name:`iconOnly`,type:`boolean`,defaultValue:`false`,description:`Switches default sizing to the icon button size while keeping Button semantics.`,example:`iconOnly aria-label="Download"`},{name:`fullWidth`,type:`boolean`,defaultValue:`false`,description:`Expands the button to fill its parent width.`,example:`fullWidth`},{name:`pressed`,type:`boolean`,defaultValue:`false`,description:`Marks toggle-like button state with aria-pressed and selected styling.`,example:`pressed={active}`},{name:`className`,type:`string`,defaultValue:`-`,description:`Optional class override for spacing or layout composition.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Button label or icon content. Icon-only buttons must still provide an accessible name.`},{name:`aria-label`,type:`string`,defaultValue:`-`,description:`Required for icon-only buttons so the action is announced correctly.`,notes:`Use when children are only icons.`}],examples:[{title:`Primary action`,code:`<Button>Save changes</Button>`},{title:`Loading action`,code:`<Button loading loadingLabel="Saving">Save changes</Button>`},{title:`Destructive action`,code:`<Button variant="destructive">Delete</Button>`},{title:`Icon-only action`,code:`<Button size="icon-sm" aria-label="Open actions">...</Button>`}],accessibility:[`Keep visible focus states.`,`Use aria-label for icon-only buttons.`,`Loading buttons should keep a readable label.`,`Do not use disabled buttons for navigation links.`]},input:{slug:`input`,source:`metadata`,summary:`Primary typed-value surface. Start with Input and move into presets only when behavior requires it.`,props:[{name:`value`,type:`string | number`,defaultValue:`-`,description:`Controlled input value.`,example:`value={name}`},{name:`defaultValue`,type:`string | number`,defaultValue:`-`,description:`Uncontrolled initial value.`},{name:`kind`,type:`'text' | 'search' | 'password' | 'number' | 'phone' | 'money' | 'quantity' | 'masked' | 'date' | 'date-range'`,defaultValue:`'text'`,description:`Routes Input into a supported preset without teaching a new public component name first.`,example:`kind="search"`},{name:`onChange`,type:`ChangeEventHandler<HTMLInputElement>`,defaultValue:`-`,description:`Native change handler for value updates.`,example:`onChange={(event) => setValue(event.target.value)}`},{name:`onValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Direct text callback for controlled string flows.`,example:`onValueChange={setQuery}`},{name:`type`,type:`HTMLInputTypeAttribute`,defaultValue:`'text'`,description:`Native input type. Prefer presets only when formatting or masking is required.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Short hint for empty input state.`},{name:`leading`,type:`ReactNode`,defaultValue:`-`,description:`Non-interactive leading slot for icons, prefixes, or labels.`},{name:`trailing`,type:`ReactNode`,defaultValue:`-`,description:`Passive trailing slot for units, counts, or status copy.`},{name:`clearable`,type:`boolean`,defaultValue:`false`,description:`Shows the built-in clear action when a value exists.`,example:`clearable`},{name:`onClear`,type:`() => void`,defaultValue:`-`,description:`Called after the built-in clear action resets the field.`},{name:`trailingAction`,type:`ReactNode`,defaultValue:`-`,description:`Interactive trailing slot for counters, shortcuts, or toggle actions.`,example:`trailingAction={<span>12 results</span>}`},{name:`replaceTrailingWhenClear`,type:`boolean`,defaultValue:`true`,description:`Controls whether clear replaces trailing content or sits beside it.`},{name:`clearOnEscape`,type:`boolean`,defaultValue:`false`,description:`Clears the value on Escape when clearable mode is active.`},{name:`helperText`,type:`ReactNode`,defaultValue:`-`,description:`Support copy rendered below the field.`},{name:`errorText`,type:`ReactNode`,defaultValue:`-`,description:`Validation copy rendered below the field and connected to danger styling.`},{name:`showCharacterCount`,type:`boolean`,defaultValue:`false`,description:`Shows current length and maxLength when available.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables editing and interaction.`},{name:`required`,type:`boolean`,defaultValue:`false`,description:`Marks the input as required for native validation.`},{name:`name`,type:`string`,defaultValue:`-`,description:`Form field name used during submission.`},{name:`id`,type:`string`,defaultValue:`-`,description:`Connects input to label and help text.`},{name:`aria-invalid`,type:`boolean`,defaultValue:`false`,description:`Communicates validation state to assistive technology.`}],examples:[{title:`Controlled text`,code:`<Input value={value} onValueChange={setValue} />`},{title:`Clearable primary field`,code:`<Input value={query} onValueChange={setQuery} clearable trailingAction={<span>12 results</span>} />`},{title:`Search preset direction`,code:`// Prefer Input first; use SearchInput only when shortcut/result behavior is required.`}],accessibility:[`Always pair form inputs with labels.`,`Use aria-describedby for helper/error text.`,`Keep disabled and read-only states visually distinct.`]},select:{slug:`select`,source:`metadata`,summary:`Primary single-selection surface. Start with Select for finite option sets, then use AsyncSelect with isMulti only when remote loading or multi-value behavior is required.`,props:[{name:`value`,type:`string | null`,defaultValue:`-`,description:`Controlled selected value.`},{name:`defaultValue`,type:`string | null`,defaultValue:`-`,description:`Uncontrolled initial selected value.`},{name:`onValueChange`,type:`(value: string | undefined) => void`,defaultValue:`-`,description:`Called when the selected value changes.`,example:`onValueChange={setStatus}`},{name:`options`,type:`Array<{ label: string; value: string; disabled?: boolean }>`,defaultValue:`[]`,required:!0,description:`Selectable option list.`},{name:`groups`,type:`Array<{ label?: ReactNode; options: SelectOption[] }>`,defaultValue:`-`,description:`Grouped selectable options for longer finite lists.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown when no value is selected.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the control and option selection.`},{name:`searchable`,type:`boolean`,defaultValue:`false`,description:`Enables local filtering on the main Select surface.`},{name:`clearable`,type:`boolean`,defaultValue:`false`,description:`Shows a clear action when a value is selected.`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Disables selection and renders a loading state.`},{name:`emptyLabel`,type:`ReactNode`,defaultValue:`'No options found'`,description:`Empty state content for local filtering.`},{name:`emptyMessage`,type:`ReactNode`,defaultValue:`-`,description:`Alias for empty state content used by newer docs.`},{name:`renderOption`,type:`(option, state) => ReactNode`,defaultValue:`-`,description:`Custom option renderer for richer rows.`}],examples:[{title:`Primary select`,code:`<Select value={status} onValueChange={setStatus} options={statusOptions} />`},{title:`Searchable primary select`,code:`<Select value={owner} onValueChange={setOwner} searchable options={ownerOptions} />`},{title:`Grouped select`,code:`<Select value={region} onValueChange={setRegion} groups={regionGroups} searchable />`},{title:`Async member direction`,code:`// Prefer Select first; use AsyncSelect only when remote loading is required.`}],accessibility:[`Use clear option labels.`,`Keep disabled options visible but not selectable.`,`Do not replace long forms with hidden select menus.`]},textarea:{slug:`textarea`,source:`metadata`,summary:`Multi-line text entry surface with helper, error, read-only, disabled and character-count support.`,props:[{name:`value`,type:`string`,defaultValue:`-`,description:`Controlled textarea value.`},{name:`defaultValue`,type:`string`,defaultValue:`-`,description:`Uncontrolled initial value.`},{name:`onChange`,type:`ChangeEventHandler<HTMLTextAreaElement>`,defaultValue:`-`,description:`Native change handler.`},{name:`onValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Direct text callback for controlled flows.`},{name:`rows`,type:`number`,defaultValue:`-`,description:`Initial visible row count.`},{name:`maxLength`,type:`number`,defaultValue:`-`,description:`Native maximum character length.`},{name:`helperText`,type:`ReactNode`,defaultValue:`-`,description:`Support copy rendered below the field.`},{name:`errorText`,type:`ReactNode`,defaultValue:`-`,description:`Validation copy rendered below the field and danger styling.`},{name:`showCharacterCount`,type:`boolean`,defaultValue:`false`,description:`Shows current length and maxLength when available.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables editing.`},{name:`readOnly`,type:`boolean`,defaultValue:`false`,description:`Keeps content copyable while preventing edits.`}],examples:[{title:`Controlled note`,code:`<Textarea value={note} onValueChange={setNote} helperText="Internal note" />`},{title:`Limited feedback`,code:`<Textarea maxLength={240} showCharacterCount />`},{title:`Error state`,code:`<Textarea errorText="Please add at least 10 characters." />`}],accessibility:[`Pair textareas with visible labels.`,`Use helper and error copy instead of placeholder-only instructions.`,`Keep read-only distinct from disabled.`]},"data-table":{slug:`data-table`,source:`metadata`,summary:"Operational grid for dense product data. Keep `columns`, `data`, `getRowId`, toolbar wiring, and pagination explicit so search, selection, row actions, loading, and server-mode behavior stay predictable.",props:[{name:`columns`,type:`ColumnDef<RowData>[]`,defaultValue:`-`,required:!0,description:`Column definitions for visible table structure.`,example:`columns={invoiceColumns}`},{name:`data`,type:`RowData[]`,defaultValue:`[]`,required:!0,description:`Rows for the current client or server page.`,example:`data={rows}`},{name:`getRowId`,type:`(row: RowData, index: number) => string`,defaultValue:`-`,description:`Stable row id for selection, row actions, and refresh updates.`,example:`getRowId={(row) => row.id}`},{name:`title`,type:`ReactNode`,defaultValue:`-`,description:`Toolbar title when you want the table to explain itself without extra wrapper markup.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Short supporting line for operators using the table.`},{name:`search`,type:`DataTableSearchConfig`,defaultValue:`-`,description:`Controlled search input config for the built-in toolbar.`,example:`search={{ value, onValueChange: setValue, placeholder: "Search invoices..." }}`},{name:`toolbarProps`,type:`DataTableToolbarProps | (table) => DataTableToolbarProps`,defaultValue:`-`,description:`Inject search, filters, actions, and selection affordances into the default toolbar.`,notes:`Use this when you want one canonical toolbar instead of composing a separate header card.`},{name:`toolbar`,type:`ReactNode | (table) => ReactNode`,defaultValue:`-`,description:`Replace the default toolbar entirely when the route needs a custom control layout.`},{name:`features`,type:`DataTableFeatureConfig`,defaultValue:`-`,description:`Turn default search, column visibility, row actions, bulk actions, refresh, or export behavior on and off.`},{name:`toolbarActions`,type:`ReactNode | (context) => ReactNode`,defaultValue:`-`,description:`Extra action cluster rendered beside visibility / refresh / export controls.`},{name:`bulkActions`,type:`DataTableBulkAction<RowData>[]`,defaultValue:`-`,description:`Bulk actions shown when selected rows exist.`},{name:`rowActions`,type:`(row, original) => DataTableRowAction<RowData>[]`,defaultValue:`-`,description:`Declarative row menu items appended as an actions column.`},{name:`sorting`,type:`SortingState`,defaultValue:`[]`,description:`Controlled sorting state.`,example:`sorting={sorting}`},{name:`onSortingChange`,type:`OnChangeFn<SortingState>`,defaultValue:`-`,description:`Called when sorting changes.`,example:`onSortingChange={setSorting}`},{name:`columnVisibility`,type:`VisibilityState`,defaultValue:`{}`,description:`Controlled column visibility map.`},{name:`onColumnVisibilityChange`,type:`OnChangeFn<VisibilityState>`,defaultValue:`-`,description:`Called when visible columns change.`},{name:`rowSelection`,type:`RowSelectionState`,defaultValue:`{}`,description:`Controlled row selection state.`},{name:`onRowSelectionChange`,type:`OnChangeFn<RowSelectionState>`,defaultValue:`-`,description:`Called when row selection changes.`},{name:`enableRowSelection`,type:`boolean | ((row) => boolean)`,defaultValue:`false`,description:`Enables checkbox or row selection behavior per row or for the whole grid.`},{name:`pagination`,type:`DataTablePaginationConfig | false`,defaultValue:`-`,description:`Page index, page size, totals, labels, and pagination handlers.`,notes:"Pass `manual: true` when server data already arrives sliced by page."},{name:`renderMobileCard`,type:`(row) => ReactNode`,defaultValue:`-`,description:`Optional mobile card renderer when the table must collapse into stacked records.`},{name:`onRowClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional single-click row activation handler.`},{name:`onRowDoubleClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional double-click activation handler for denser operator workflows.`},{name:`getRowDisabled`,type:`(row) => boolean`,defaultValue:`-`,description:`Disable specific rows without removing them from the result set.`},{name:`density`,type:`'compact' | 'default' | 'comfortable'`,defaultValue:`'default'`,description:`Controls header and cell spacing.`,example:`density="comfortable"`},{name:`striped`,type:`boolean`,defaultValue:`false`,description:`Adds zebra striping for long operational lists.`},{name:`bordered`,type:`boolean`,defaultValue:`false`,description:`Adds stronger cell and table borders.`},{name:`stickyHeader`,type:`boolean`,defaultValue:`false`,description:`Keeps headers pinned while the table scrolls.`},{name:`isLoading`,type:`boolean`,defaultValue:`false`,description:`Shows loading state.`},{name:`loadingVariant`,type:`'skeleton' | 'state'`,defaultValue:`'skeleton'`,description:`Choose between skeleton rows or a dedicated loading state block.`},{name:`loadingState`,type:`LoadingStateProps`,defaultValue:`-`,description:'Customizes the loading state when `loadingVariant="state"`.'},{name:`isError`,type:`boolean`,defaultValue:`false`,description:`Switches the grid into an error fallback state.`},{name:`emptyState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when there are no rows.`},{name:`errorState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when the data request fails.`},{name:`skeletonRows`,type:`number`,defaultValue:`6`,description:`How many skeleton rows to render during loading.`},{name:`cellFallback`,type:`ReactNode`,defaultValue:`"-"`,description:`Value rendered when a cell returns empty content.`}],accessibility:[`Keep column headers readable and sortable targets large enough for pointer and keyboard use.`,`Provide clear labels for row action menus, visibility controls, and bulk actions.`,`When mobile cards replace the table, preserve the same row meaning and action availability.`]},dialog:{slug:`dialog`,source:`metadata`,summary:`Focused overlay for short decisions, confirmations and contained edit flows.`,props:[{name:`open`,type:`boolean`,defaultValue:`-`,description:`Controlled open state.`},{name:`defaultOpen`,type:`boolean`,defaultValue:`false`,description:`Initial uncontrolled open state.`},{name:`onOpenChange`,type:`(open: boolean) => void`,defaultValue:`-`,description:`Called when the dialog opens or closes.`},{name:`title`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Accessible dialog title.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Supporting description for context.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,description:`Dialog body content.`},{name:`footer`,type:`ReactNode`,defaultValue:`-`,description:`Action row for confirm/cancel buttons.`}],accessibility:[`Every dialog needs a title.`,`Return focus to the trigger after close.`,`Do not put long multi-step workflows in a small dialog.`]},"date-picker":{slug:`date-picker`,source:`metadata`,summary:`Date and range selection surface for reporting, scheduling and form flows.`,props:[{name:`value`,type:`Date | string | null`,defaultValue:`null`,description:`Controlled selected date.`},{name:`onValueChange`,type:`(value: Date | string | null) => void`,defaultValue:`-`,description:`Called when the selected date changes.`},{name:`mode`,type:`'single' | 'range'`,defaultValue:`'single'`,description:`Selection mode.`},{name:`minDate`,type:`Date | string`,defaultValue:`-`,description:`Earliest selectable date.`},{name:`maxDate`,type:`Date | string`,defaultValue:`-`,description:`Latest selectable date.`},{name:`disabledDates`,type:`Date[] | ((date: Date) => boolean)`,defaultValue:`-`,description:`Dates that cannot be selected.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown before selection.`}],accessibility:[`Clarify date format near text inputs.`,`Disable unavailable dates rather than hiding them.`,`Define timezone assumptions before submitting values.`]},"form-input":{slug:`form-input`,source:`metadata`,summary:`React Hook Form wrapper for Input with label, helper text, validation and error display.`,props:[{name:`control`,type:`Control<TFieldValues>`,defaultValue:`-`,required:!0,description:`RHF control instance from useForm().`},{name:`name`,type:`FieldPath<TFieldValues>`,defaultValue:`-`,required:!0,description:`Field path used for registration and value lookup.`},{name:`label`,type:`ReactNode`,defaultValue:`-`,description:`Visible field label.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Helper text shown under the field.`},{name:`rules`,type:`UseControllerProps['rules']`,defaultValue:`-`,description:`Validation rules passed to RHF controller.`},{name:`required`,type:`boolean | '*'`,defaultValue:`false`,description:`Marks the field as required in the UI.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the field and prevents editing.`},{name:`error`,type:`string | FieldError | null`,defaultValue:`-`,description:`Optional error override.`}],accessibility:[`Label must remain visible.`,`Error text should be connected to the field.`,`Required state should be visual and semantic.`]}};function t(t){return e[t]}exports.componentApiSchemas=e,exports.getComponentApiSchema=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={button:{slug:`button`,source:`metadata`,summary:`Action component for submit, secondary, destructive, warning, loading, icon and navigation-like flows. Verify every state in light and dark mode before shipping.`,props:[{name:`variant`,type:`'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'warning' | 'link'`,defaultValue:`'default'`,description:`Controls visual hierarchy and action tone.`,example:`variant="destructive"`},{name:`size`,type:`'xs' | 'sm' | 'default' | 'md' | 'lg' | 'xl' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg'`,defaultValue:`'default'`,description:`Controls height, spacing and icon-only sizing.`,example:`size="icon-sm"`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Shows the spinner, disables interaction and communicates pending state.`,example:`loading={isSaving}`},{name:`loadingLabel`,type:`string`,defaultValue:`'Loading'`,description:`Accessible label displayed while the button is loading.`,example:`loadingLabel="Saving"`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the action and removes it from normal interaction.`,example:`disabled={!canSubmit}`},{name:`leftIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered before the label. Use for primary verbs and scan-friendly actions.`},{name:`rightIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered after the label. Use for forward navigation or external transitions.`},{name:`iconOnly`,type:`boolean`,defaultValue:`false`,description:`Switches default sizing to the icon button size while keeping Button semantics.`,example:`iconOnly aria-label="Download"`},{name:`fullWidth`,type:`boolean`,defaultValue:`false`,description:`Expands the button to fill its parent width.`,example:`fullWidth`},{name:`pressed`,type:`boolean`,defaultValue:`false`,description:`Marks toggle-like button state with aria-pressed and selected styling.`,example:`pressed={active}`},{name:`className`,type:`string`,defaultValue:`-`,description:`Optional class override for spacing or layout composition.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Button label or icon content. Icon-only buttons must still provide an accessible name.`},{name:`aria-label`,type:`string`,defaultValue:`-`,description:`Required for icon-only buttons so the action is announced correctly.`,notes:`Use when children are only icons.`}],examples:[{title:`Primary action`,code:`<Button>Save changes</Button>`},{title:`Loading action`,code:`<Button loading loadingLabel="Saving">Save changes</Button>`},{title:`Destructive action`,code:`<Button variant="destructive">Delete</Button>`},{title:`Icon-only action`,code:`<Button size="icon-sm" aria-label="Open actions">...</Button>`}],accessibility:[`Keep visible focus states.`,`Use aria-label for icon-only buttons.`,`Loading buttons should keep a readable label.`,`Do not use disabled buttons for navigation links.`]},input:{slug:`input`,source:`metadata`,summary:`Primary typed-value surface. Start with Input and move into presets only when behavior requires it.`,props:[{name:`value`,type:`string | number`,defaultValue:`-`,description:`Controlled input value.`,example:`value={name}`},{name:`defaultValue`,type:`string | number`,defaultValue:`-`,description:`Uncontrolled initial value.`},{name:`kind`,type:`'text' | 'search' | 'password' | 'number' | 'phone' | 'money' | 'quantity' | 'masked' | 'date' | 'date-range'`,defaultValue:`'text'`,description:`Routes Input into a supported preset without teaching a new public component name first.`,example:`kind="search"`},{name:`onChange`,type:`ChangeEventHandler<HTMLInputElement>`,defaultValue:`-`,description:`Native change handler for value updates.`,example:`onChange={(event) => setValue(event.target.value)}`},{name:`onValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Direct text callback for controlled string flows.`,example:`onValueChange={setQuery}`},{name:`onDebouncedValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Delayed callback for search-heavy inputs.`},{name:`type`,type:`HTMLInputTypeAttribute`,defaultValue:`'text'`,description:`Native input type. Prefer presets only when formatting or masking is required.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Short hint for empty input state.`},{name:`leading`,type:`ReactNode`,defaultValue:`-`,description:`Non-interactive leading slot for icons, prefixes, or labels.`},{name:`trailing`,type:`ReactNode`,defaultValue:`-`,description:`Passive trailing slot for units, counts, or status copy.`},{name:`clearable`,type:`boolean`,defaultValue:`false`,description:`Shows the built-in clear action when a value exists.`,example:`clearable`},{name:`onClear`,type:`() => void`,defaultValue:`-`,description:`Called after the built-in clear action resets the field.`},{name:`clearLabel`,type:`string`,defaultValue:`'Clear'`,description:`Accessible label for the clear action.`},{name:`trailingAction`,type:`ReactNode`,defaultValue:`-`,description:`Interactive trailing slot for counters, shortcuts, or toggle actions.`,example:`trailingAction={<span>12 results</span>}`},{name:`replaceTrailingWhenClear`,type:`boolean`,defaultValue:`true`,description:`Controls whether clear replaces trailing content or sits beside it.`},{name:`clearOnEscape`,type:`boolean`,defaultValue:`false`,description:`Clears the value on Escape when clearable mode is active.`},{name:`helperText`,type:`ReactNode`,defaultValue:`-`,description:`Support copy rendered below the field.`},{name:`errorText`,type:`ReactNode`,defaultValue:`-`,description:`Validation copy rendered below the field and connected to danger styling.`},{name:`showCharacterCount`,type:`boolean`,defaultValue:`false`,description:`Shows current length and maxLength when available.`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Shows pending feedback in search-oriented input states.`},{name:`resultCount`,type:`number`,defaultValue:`-`,description:`Optional search result count displayed in the input meta area.`},{name:`shortcut`,type:`ReactNode`,defaultValue:`-`,description:`Keyboard hint or shortcut chip rendered inside search-oriented inputs.`},{name:`debounceMs`,type:`number`,defaultValue:`-`,description:"Delay before `onDebouncedValueChange` fires."},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables editing and interaction.`},{name:`required`,type:`boolean`,defaultValue:`false`,description:`Marks the input as required for native validation.`},{name:`name`,type:`string`,defaultValue:`-`,description:`Form field name used during submission.`},{name:`id`,type:`string`,defaultValue:`-`,description:`Connects input to label and help text.`},{name:`aria-invalid`,type:`boolean`,defaultValue:`false`,description:`Communicates validation state to assistive technology.`}],examples:[{title:`Controlled text`,code:`<Input value={value} onValueChange={setValue} />`},{title:`Clearable primary field`,code:`<Input value={query} onValueChange={setQuery} clearable trailingAction={<span>12 results</span>} />`},{title:`Search preset direction`,code:`// Prefer Input first; use SearchInput only when shortcut/result behavior is required.`}],accessibility:[`Always pair form inputs with labels.`,`Use aria-describedby for helper/error text.`,`Keep disabled and read-only states visually distinct.`]},select:{slug:`select`,source:`metadata`,summary:`Primary single-selection surface. Start with Select for finite option sets, then use AsyncSelect with isMulti only when remote loading or multi-value behavior is required.`,props:[{name:`value`,type:`string | null`,defaultValue:`-`,description:`Controlled selected value.`},{name:`defaultValue`,type:`string | null`,defaultValue:`-`,description:`Uncontrolled initial selected value.`},{name:`onValueChange`,type:`(value: string | undefined) => void`,defaultValue:`-`,description:`Called when the selected value changes.`,example:`onValueChange={setStatus}`},{name:`options`,type:`Array<{ label: string; value: string; disabled?: boolean }>`,defaultValue:`[]`,required:!0,description:`Selectable option list.`},{name:`groups`,type:`Array<{ label?: ReactNode; options: SelectOption[] }>`,defaultValue:`-`,description:`Grouped selectable options for longer finite lists.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown when no value is selected.`},{name:`searchPlaceholder`,type:`string`,defaultValue:`'Search options...'`,description:`Placeholder used by the optional search input inside the popup.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the control and option selection.`},{name:`searchable`,type:`boolean`,defaultValue:`false`,description:`Enables local filtering on the main Select surface.`},{name:`clearable`,type:`boolean`,defaultValue:`false`,description:`Shows a clear action when a value is selected.`},{name:`clearLabel`,type:`string`,defaultValue:`'Clear selection'`,description:`Accessible label for the clear action.`},{name:`size`,type:`'sm' | 'default' | 'lg'`,defaultValue:`'default'`,description:`Controls trigger height and density.`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Disables selection and renders a loading state.`},{name:`loadingLabel`,type:`ReactNode`,defaultValue:`'Loading options...'`,description:`Content shown while options are loading.`},{name:`emptyLabel`,type:`ReactNode`,defaultValue:`'No options found'`,description:`Empty state content for local filtering.`},{name:`emptyMessage`,type:`ReactNode`,defaultValue:`-`,description:`Alias for empty state content used by newer docs.`},{name:`showSelectedDescription`,type:`boolean`,defaultValue:`true`,description:`Shows the selected option description inside the trigger when available.`},{name:`showSelectedIndicator`,type:`boolean`,defaultValue:`true`,description:"Shows the built-in check indicator inside option rows. Set false when `renderOption` draws its own selected state."},{name:`renderOption`,type:`(option, state) => ReactNode`,defaultValue:`-`,description:`Custom option renderer for richer rows.`},{name:`invalid`,type:`boolean`,defaultValue:`false`,description:"Marks the trigger invalid and sets `aria-invalid`."},{name:`onSearchChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Called as the local search value changes.`}],examples:[{title:`Primary select`,code:`<Select value={status} onValueChange={setStatus} options={statusOptions} />`},{title:`Searchable primary select`,code:`<Select value={owner} onValueChange={setOwner} searchable options={ownerOptions} />`},{title:`Grouped select`,code:`<Select value={region} onValueChange={setRegion} groups={regionGroups} searchable />`},{title:`Custom option selected state`,code:`<Select options={options} renderOption={(option, state) => <CustomOption selected={state.selected} />} showSelectedIndicator={false} />`},{title:`Async member direction`,code:`// Prefer Select first; use AsyncSelect only when remote loading is required.`}],accessibility:[`Use clear option labels.`,`Keep disabled options visible but not selectable.`,`Do not replace long forms with hidden select menus.`]},textarea:{slug:`textarea`,source:`metadata`,summary:`Multi-line text entry surface with helper, error, read-only, disabled and character-count support.`,props:[{name:`value`,type:`string`,defaultValue:`-`,description:`Controlled textarea value.`},{name:`defaultValue`,type:`string`,defaultValue:`-`,description:`Uncontrolled initial value.`},{name:`onChange`,type:`ChangeEventHandler<HTMLTextAreaElement>`,defaultValue:`-`,description:`Native change handler.`},{name:`onValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Direct text callback for controlled flows.`},{name:`rows`,type:`number`,defaultValue:`-`,description:`Initial visible row count.`},{name:`maxLength`,type:`number`,defaultValue:`-`,description:`Native maximum character length.`},{name:`helperText`,type:`ReactNode`,defaultValue:`-`,description:`Support copy rendered below the field.`},{name:`errorText`,type:`ReactNode`,defaultValue:`-`,description:`Validation copy rendered below the field and danger styling.`},{name:`showCharacterCount`,type:`boolean`,defaultValue:`false`,description:`Shows current length and maxLength when available.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables editing.`},{name:`readOnly`,type:`boolean`,defaultValue:`false`,description:`Keeps content copyable while preventing edits.`}],examples:[{title:`Controlled note`,code:`<Textarea value={note} onValueChange={setNote} helperText="Internal note" />`},{title:`Limited feedback`,code:`<Textarea maxLength={240} showCharacterCount />`},{title:`Error state`,code:`<Textarea errorText="Please add at least 10 characters." />`}],accessibility:[`Pair textareas with visible labels.`,`Use helper and error copy instead of placeholder-only instructions.`,`Keep read-only distinct from disabled.`]},"data-table":{slug:`data-table`,source:`metadata`,summary:"Operational grid for dense product data. Keep `columns`, `data`, `getRowId`, toolbar wiring, and pagination explicit so search, selection, row actions, loading, and server-mode behavior stay predictable.",props:[{name:`columns`,type:`ColumnDef<RowData>[]`,defaultValue:`-`,required:!0,description:`Column definitions for visible table structure.`,example:`columns={invoiceColumns}`},{name:`data`,type:`RowData[]`,defaultValue:`[]`,required:!0,description:`Rows for the current client or server page.`,example:`data={rows}`},{name:`getRowId`,type:`(row: RowData, index: number) => string`,defaultValue:`-`,description:`Stable row id for selection, row actions, and refresh updates.`,example:`getRowId={(row) => row.id}`},{name:`title`,type:`ReactNode`,defaultValue:`-`,description:`Toolbar title when you want the table to explain itself without extra wrapper markup.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Short supporting line for operators using the table.`},{name:`search`,type:`DataTableSearchConfig`,defaultValue:`-`,description:`Controlled search input config for the built-in toolbar.`,example:`search={{ value, onValueChange: setValue, placeholder: "Search invoices..." }}`},{name:`filters`,type:`ReactNode | (context) => ReactNode`,defaultValue:`-`,description:`Filter controls rendered in the default toolbar.`},{name:`summary`,type:`ReactNode | (context) => ReactNode`,defaultValue:`-`,description:`Compact summary content rendered in the default toolbar.`},{name:`toolbarProps`,type:`DataTableToolbarProps | (table) => DataTableToolbarProps`,defaultValue:`-`,description:`Inject search, filters, actions, and selection affordances into the default toolbar.`,notes:`Use this when you want one canonical toolbar instead of composing a separate header card.`},{name:`toolbar`,type:`ReactNode | (table) => ReactNode`,defaultValue:`-`,description:`Replace the default toolbar entirely when the route needs a custom control layout.`},{name:`features`,type:`DataTableFeatureConfig`,defaultValue:`-`,description:`Turn default search, column visibility, row actions, bulk actions, refresh, or export behavior on and off.`},{name:`toolbarActions`,type:`ReactNode | (context) => ReactNode`,defaultValue:`-`,description:`Extra action cluster rendered beside visibility / refresh / export controls.`},{name:`bulkActions`,type:`DataTableBulkAction<RowData>[]`,defaultValue:`-`,description:`Bulk actions shown when selected rows exist.`},{name:`rowActions`,type:`(row, original) => DataTableRowAction<RowData>[]`,defaultValue:`-`,description:`Declarative row menu items appended as an actions column.`},{name:`onRefresh`,type:`(context) => void`,defaultValue:`-`,description:`Callback used by the built-in refresh action.`},{name:`onExport`,type:`(context) => void`,defaultValue:`-`,description:`Callback used by the built-in export action.`},{name:`sorting`,type:`SortingState`,defaultValue:`[]`,description:`Controlled sorting state.`,example:`sorting={sorting}`},{name:`onSortingChange`,type:`OnChangeFn<SortingState>`,defaultValue:`-`,description:`Called when sorting changes.`,example:`onSortingChange={setSorting}`},{name:`columnVisibility`,type:`VisibilityState`,defaultValue:`{}`,description:`Controlled column visibility map.`},{name:`onColumnVisibilityChange`,type:`OnChangeFn<VisibilityState>`,defaultValue:`-`,description:`Called when visible columns change.`},{name:`rowSelection`,type:`RowSelectionState`,defaultValue:`{}`,description:`Controlled row selection state.`},{name:`onRowSelectionChange`,type:`OnChangeFn<RowSelectionState>`,defaultValue:`-`,description:`Called when row selection changes.`},{name:`enableRowSelection`,type:`boolean | ((row) => boolean)`,defaultValue:`false`,description:`Enables checkbox or row selection behavior per row or for the whole grid.`},{name:`pagination`,type:`DataTablePaginationConfig | false`,defaultValue:`-`,description:`Page index, page size, totals, labels, and pagination handlers.`,notes:"Pass `manual: true` when server data already arrives sliced by page."},{name:`renderMobileCard`,type:`(row) => ReactNode`,defaultValue:`-`,description:`Optional mobile card renderer when the table must collapse into stacked records.`},{name:`onRowClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional single-click row activation handler.`},{name:`onRowDoubleClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional double-click activation handler for denser operator workflows.`},{name:`getRowDisabled`,type:`(row) => boolean`,defaultValue:`-`,description:`Disable specific rows without removing them from the result set.`},{name:`density`,type:`'compact' | 'default' | 'comfortable'`,defaultValue:`'default'`,description:`Controls header and cell spacing.`,example:`density="comfortable"`},{name:`striped`,type:`boolean`,defaultValue:`false`,description:`Adds zebra striping for long operational lists.`},{name:`bordered`,type:`boolean`,defaultValue:`false`,description:`Adds stronger cell and table borders.`},{name:`stickyHeader`,type:`boolean`,defaultValue:`false`,description:`Keeps headers pinned while the table scrolls.`},{name:`renderExpandedRow`,type:`(row) => ReactNode`,defaultValue:`-`,description:`Renders an expanded row panel beneath a parent row.`},{name:`columnPinning`,type:`ColumnPinningState`,defaultValue:`-`,description:`Controlled TanStack column pinning state.`},{name:`virtualization`,type:`DataTableVirtualizationConfig | false`,defaultValue:`-`,description:`Enables virtualized row rendering for large datasets.`},{name:`isLoading`,type:`boolean`,defaultValue:`false`,description:`Shows loading state.`},{name:`loadingVariant`,type:`'skeleton' | 'state'`,defaultValue:`'skeleton'`,description:`Choose between skeleton rows or a dedicated loading state block.`},{name:`loadingState`,type:`LoadingStateProps`,defaultValue:`-`,description:'Customizes the loading state when `loadingVariant="state"`.'},{name:`isError`,type:`boolean`,defaultValue:`false`,description:`Switches the grid into an error fallback state.`},{name:`emptyState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when there are no rows.`},{name:`errorState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when the data request fails.`},{name:`skeletonRows`,type:`number`,defaultValue:`6`,description:`How many skeleton rows to render during loading.`},{name:`cellFallback`,type:`ReactNode`,defaultValue:`"-"`,description:`Value rendered when a cell returns empty content.`}],accessibility:[`Keep column headers readable and sortable targets large enough for pointer and keyboard use.`,`Provide clear labels for row action menus, visibility controls, and bulk actions.`,`When mobile cards replace the table, preserve the same row meaning and action availability.`]},"async-select":{slug:`async-select`,source:`metadata`,summary:`Remote option picker for large, changing or server-filtered datasets. Prefer Select for small finite lists; use AsyncSelect when loading, hydration, create-option, min-search, cache, error and multi-select behavior are required.`,props:[{name:`value`,type:`string | string[]`,defaultValue:`-`,description:"Controlled selected value. Use an array when `isMulti` is true."},{name:`isMulti`,type:`boolean`,defaultValue:`false`,description:`Switches the component into multi-value mode with tag rendering and optional select-all behavior.`,example:`isMulti`},{name:`onValueChange`,type:`(value, optionOrOptions) => void`,defaultValue:`-`,description:`Called with the next selected value and resolved option object(s).`},{name:`loadOptions`,type:`(search: string, signal?: AbortSignal) => Promise<Option[] | Group[]>`,defaultValue:`-`,required:!0,description:`Async option loader. Respect the AbortSignal when forwarding to fetch.`},{name:`loadSelectedOption`,type:`(value: string, signal?: AbortSignal) => Promise<Option | null>`,defaultValue:`-`,description:`Hydrates a single selected value when only an ID is stored.`},{name:`loadSelectedOptions`,type:`(values: string[], signal?: AbortSignal) => Promise<Option[]>`,defaultValue:`-`,description:`Hydrates multiple selected values when only IDs are stored.`},{name:`defaultOptions`,type:`Option[] | Group[]`,defaultValue:`-`,description:`Initial options shown before a search request resolves.`},{name:`cacheOptions`,type:`boolean`,defaultValue:`true`,description:`Caches query results by normalized search text.`},{name:`cacheTtl`,type:`number`,defaultValue:`Infinity`,description:`Maximum age for cached option results.`},{name:`debounceMs`,type:`number`,defaultValue:`250`,description:`Delay before search requests are sent.`},{name:`minSearchLength`,type:`number`,defaultValue:`0`,description:`Minimum typed characters before loading remote options.`},{name:`clearable`,type:`boolean`,defaultValue:`true`,description:`Shows clear actions for selected value or tags.`},{name:`closeOnSelect`,type:`boolean`,defaultValue:`false`,description:`Multi-select only. Closes the popup after selecting an option.`},{name:`maxSelected`,type:`number`,defaultValue:`-`,description:`Multi-select only. Limits selected option count.`},{name:`maxVisibleTags`,type:`number`,defaultValue:`-`,description:`Multi-select only. Collapses extra selected tags into an overflow label.`},{name:`showSelectAll`,type:`boolean`,defaultValue:`false`,description:`Multi-select only. Adds a select-all-visible action.`},{name:`onCreateOption`,type:`(search: string) => Promise<Option> | Option`,defaultValue:`-`,description:`Creates a selectable option from the current search query.`},{name:`showCreateOption`,type:`(search: string, options: Option[]) => boolean`,defaultValue:`-`,description:`Controls when the create-option row should appear.`},{name:`createOptionLabel`,type:`(search: string) => ReactNode`,defaultValue:`-`,description:`Custom label for the create-option action.`},{name:`labels`,type:`AsyncSelectLabels`,defaultValue:`-`,description:`Centralized copy for placeholder, loading, error, empty, select-all and selected-count states.`},{name:`renderOption`,type:`(option, state) => ReactNode`,defaultValue:`-`,description:`Custom option row renderer.`},{name:`renderValue`,type:`(option) => ReactNode`,defaultValue:`-`,description:`Custom selected value renderer.`},{name:`renderTag`,type:`(option, state) => ReactNode`,defaultValue:`-`,description:`Multi-select only. Custom selected tag renderer.`},{name:`renderLoading`,type:`(state) => ReactNode`,defaultValue:`-`,description:`Custom loading state renderer.`},{name:`renderEmpty`,type:`(state) => ReactNode`,defaultValue:`-`,description:`Custom empty state renderer.`},{name:`renderError`,type:`(state) => ReactNode`,defaultValue:`-`,description:`Custom error state renderer.`},{name:`renderMinSearch`,type:`(state) => ReactNode`,defaultValue:`-`,description:`Custom minimum-search state renderer.`},{name:`renderMaxSelected`,type:`(state) => ReactNode`,defaultValue:`-`,description:`Custom max-selected state renderer.`},{name:`showSelectedDescription`,type:`boolean`,defaultValue:`true`,description:`Shows option descriptions in selected value and tag surfaces.`},{name:`invalid`,type:`boolean`,defaultValue:`false`,description:"Marks the trigger invalid and sets `aria-invalid`."}],examples:[{title:`Remote single select`,code:`<AsyncSelect value={value} onValueChange={setValue} loadOptions={loadOptions} minSearchLength={2} />`},{title:`Hydrated edit state`,code:`<AsyncSelect value={ownerId} loadOptions={searchOwners} loadSelectedOption={loadOwnerById} />`},{title:`Multi select with limit`,code:`<AsyncSelect isMulti value={ids} onValueChange={setIds} loadOptions={loadTeams} maxSelected={3} showSelectAll />`},{title:`Create missing option`,code:"<AsyncSelect loadOptions={loadOptions} onCreateOption={createOption} createOptionLabel={(search) => `Create ${search}`} />"}],accessibility:[`Keep async loading and error labels readable.`,`Use min-search copy so users know why no request has been sent.`,`Preserve keyboard access for clear, tag remove and select-all actions.`,`Hydrate selected labels so edit forms do not expose raw IDs.`]},"async-multi-select":{slug:`async-multi-select`,source:`metadata`,summary:"Deprecated public alias for multi-value async selection. Prefer `AsyncSelect` with `isMulti` so single and multi remote selection share one mental model.",props:[{name:`isMulti`,type:`true`,defaultValue:`true`,required:!0,description:"Prefer passing this to `AsyncSelect` instead of importing the deprecated alias."},{name:`value`,type:`string[]`,defaultValue:`[]`,description:`Controlled selected values.`},{name:`onValueChange`,type:`(values: string[], options: Option[]) => void`,defaultValue:`-`,description:`Called when selected values change.`},{name:`loadOptions`,type:`(search: string, signal?: AbortSignal) => Promise<Option[] | Group[]>`,defaultValue:`-`,required:!0,description:`Async option loader.`},{name:`loadSelectedOptions`,type:`(values: string[], signal?: AbortSignal) => Promise<Option[]>`,defaultValue:`-`,description:`Hydrates selected values from stored IDs.`},{name:`maxSelected`,type:`number`,defaultValue:`-`,description:`Limits selected option count.`},{name:`showSelectAll`,type:`boolean`,defaultValue:`false`,description:`Adds a select-all-visible action.`},{name:`maxVisibleTags`,type:`number`,defaultValue:`-`,description:`Collapses extra selected tags.`}],examples:[{title:`Preferred API`,code:`<AsyncSelect isMulti value={teamIds} onValueChange={setTeamIds} loadOptions={loadTeams} />`}],accessibility:[`Make tag remove controls keyboard reachable.`,`Announce selected count when selections are constrained.`,`Keep deprecated alias docs pointed to the preferred API.`]},"app-sidebar":{slug:`app-sidebar`,source:`metadata`,summary:"Reusable dashboard navigation shell for admin products. Keep route state in one items array, render framework links through `renderLink`, and use the built-in active indicators, collapsed rail, mobile drawer and footer account slots instead of rebuilding sidebar chrome per app.",props:[{name:`items`,type:`SidebarItem[]`,defaultValue:`[]`,required:!0,description:`Primary navigation tree with labels, hrefs, badges, active state, disabled state and nested children.`},{name:`header`,type:`ReactNode`,defaultValue:`-`,description:`Workspace, product or tenant identity area.`},{name:`footer`,type:`ReactNode`,defaultValue:`-`,description:`Custom footer content rendered under account and secondary actions.`},{name:`footerAccount`,type:`{ label; description?; avatar?; href?; onSelect? }`,defaultValue:`-`,description:`Account/workspace switcher surface rendered in the footer.`},{name:`secondaryActions`,type:`SidebarItem[]`,defaultValue:`[]`,description:`Support, billing, help or logout-like actions below primary navigation.`},{name:`railItems`,type:`SidebarItem[]`,defaultValue:`[]`,description:`Compact rail actions shown when the sidebar is collapsed.`},{name:`collapsed`,type:`boolean`,defaultValue:`false`,description:`Switches desktop sidebar into icon rail mode.`},{name:`width`,type:`CSSProperties['width']`,defaultValue:`'18rem'`,description:`Expanded desktop sidebar width.`},{name:`collapsedWidth`,type:`CSSProperties['width']`,defaultValue:`'4.75rem'`,description:`Collapsed desktop rail width.`},{name:`itemSize`,type:`'sm' | 'md' | 'lg'`,defaultValue:`'md'`,description:`Controls item density for compact admin apps or comfortable product shells.`},{name:`activeIndicator`,type:`'none' | 'bar' | 'pill'`,defaultValue:`'bar'`,description:`Controls how the active route is emphasized.`},{name:`showSectionLabels`,type:`boolean`,defaultValue:`true`,description:`Shows top-level section labels from item.sectionLabel.`},{name:`tooltipOnCollapsed`,type:`boolean`,defaultValue:`true`,description:`Shows item labels in tooltips while collapsed.`},{name:`navigationLabel`,type:`string`,defaultValue:`'Primary navigation'`,description:`Accessible label for the navigation landmark.`},{name:`responsive`,type:`boolean`,defaultValue:`true`,description:`Enables mobile drawer behavior at the configured breakpoint.`},{name:`mobileBreakpoint`,type:`number`,defaultValue:`1024`,description:`Viewport width where the sidebar becomes a mobile drawer.`},{name:`mobileOpen`,type:`boolean`,defaultValue:`-`,description:`Controlled mobile drawer open state.`},{name:`defaultMobileOpen`,type:`boolean`,defaultValue:`false`,description:`Initial uncontrolled mobile drawer open state.`},{name:`onMobileOpenChange`,type:`(open: boolean) => void`,defaultValue:`-`,description:`Called when the mobile drawer opens or closes.`},{name:`mobileTitle`,type:`ReactNode`,defaultValue:`-`,description:`Title rendered in the mobile drawer header.`},{name:`mobileDescription`,type:`ReactNode`,defaultValue:`-`,description:`Short helper copy rendered in the mobile drawer header.`},{name:`showMobileToggle`,type:`boolean`,defaultValue:`true`,description:`Controls whether the built-in mobile trigger renders.`},{name:`closeOnSelect`,type:`boolean`,defaultValue:`true`,description:`Closes the mobile drawer after a navigation item is selected.`},{name:`renderMobileToggle`,type:`({ open, setOpen }) => ReactNode`,defaultValue:`-`,description:`Replaces the built-in mobile trigger.`},{name:`onItemSelect`,type:`(item: SidebarItem) => void`,defaultValue:`-`,description:`Global callback fired after any sidebar item is selected.`},{name:`renderItem`,type:`(item, state) => ReactNode`,defaultValue:`-`,description:`Fully custom item renderer for advanced product shells.`},{name:`renderLink`,type:`(props) => ReactNode`,defaultValue:`-`,description:`Adapter for React Router Link, Next Link, Remix Link or any framework router.`,example:`renderLink={({ href, ...props }) => <Link {...props} to={href} />}`}],examples:[{title:`React Router links`,code:`<Sidebar items={items} renderLink={({ href = '/', ...props }) => <Link {...props} to={href} />} />`},{title:`Collapsed rail`,code:`<Sidebar collapsed items={items} railItems={railItems} footerAccount={account} />`},{title:`Mobile drawer`,code:`<Sidebar responsive mobileTitle="Workspace" mobileDescription="Navigate admin sections" items={items} />`},{title:`Admin density`,code:`<Sidebar itemSize="sm" activeIndicator="bar" showSectionLabels={false} items={items} />`}],accessibility:["Use `navigationLabel` that matches the product language.","Keep active route state explicit through `item.active` or child active state.","Use `renderLink` for client routing instead of raw anchors in React Router or Next apps.",`Collapsed sidebars need icons or tooltips that still identify each route.`,`Mobile drawer should close on selection unless the route opens another nested group.`]},dialog:{slug:`dialog`,source:`metadata`,summary:`Focused overlay for short decisions, confirmations and contained edit flows. Use DialogBody for scrollable content so footer actions stay aligned and visible.`,props:[{name:`open`,type:`boolean`,defaultValue:`-`,description:`Controlled open state.`},{name:`defaultOpen`,type:`boolean`,defaultValue:`false`,description:`Initial uncontrolled open state.`},{name:`onOpenChange`,type:`(open: boolean) => void`,defaultValue:`-`,description:`Called when the dialog opens or closes.`},{name:`size`,type:`'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full'`,defaultValue:`'md'`,description:`Controls DialogContent width and full-screen-like layout.`},{name:`surface`,type:`'default' | 'plain'`,defaultValue:`'default'`,description:`Controls whether the content uses the default dialog surface or a plain custom wrapper.`},{name:`showCloseButton`,type:`boolean`,defaultValue:`true`,description:`Controls the top-right close button on DialogContent or footer close action on DialogFooter.`},{name:`title`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Accessible dialog title.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Supporting description for context.`},{name:`DialogBody`,type:`Component`,defaultValue:`-`,description:`Scrollable body area for long content, forms, details and preview blocks.`},{name:`DialogFooter`,type:`Component`,defaultValue:`-`,description:`Sticky-safe action row. Buttons stay inline-flex and wrap instead of stacking icons above text.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,description:`Dialog composition: header, body and footer.`}],examples:[{title:`Confirm dialog`,code:`<Dialog><DialogTrigger render={<Button />}>Publish</DialogTrigger><DialogContent><DialogHeader><DialogTitle>Publish update</DialogTitle></DialogHeader><DialogFooter><Button>Publish</Button></DialogFooter></DialogContent></Dialog>`},{title:`Form dialog`,code:`<DialogContent size="lg"><DialogHeader /><DialogBody>...</DialogBody><DialogFooter>...</DialogFooter></DialogContent>`},{title:`Destructive dialog`,code:`<DialogContent size="sm"><DialogHeader /><DialogBody /><DialogFooter><Button variant="destructive">Deactivate</Button></DialogFooter></DialogContent>`}],accessibility:[`Every dialog needs a title.`,`Return focus to the trigger after close.`,`Use DialogBody for long content instead of scrolling the whole modal.`,`Keep footer actions outcome-specific and keyboard reachable.`,`Do not put long multi-step workflows in a small dialog.`]},"date-picker":{slug:`date-picker`,source:`metadata`,summary:`Date and range selection surface for reporting, scheduling and form flows.`,props:[{name:`value`,type:`Date | string | null`,defaultValue:`null`,description:`Controlled selected date.`},{name:`onValueChange`,type:`(value: Date | string | null) => void`,defaultValue:`-`,description:`Called when the selected date changes.`},{name:`mode`,type:`'single' | 'range'`,defaultValue:`'single'`,description:`Selection mode.`},{name:`minDate`,type:`Date | string`,defaultValue:`-`,description:`Earliest selectable date.`},{name:`maxDate`,type:`Date | string`,defaultValue:`-`,description:`Latest selectable date.`},{name:`disabledDates`,type:`Date[] | ((date: Date) => boolean)`,defaultValue:`-`,description:`Dates that cannot be selected.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown before selection.`}],accessibility:[`Clarify date format near text inputs.`,`Disable unavailable dates rather than hiding them.`,`Define timezone assumptions before submitting values.`]},"form-input":{slug:`form-input`,source:`metadata`,summary:`React Hook Form wrapper for Input with label, helper text, validation and error display.`,props:[{name:`control`,type:`Control<TFieldValues>`,defaultValue:`-`,required:!0,description:`RHF control instance from useForm().`},{name:`name`,type:`FieldPath<TFieldValues>`,defaultValue:`-`,required:!0,description:`Field path used for registration and value lookup.`},{name:`label`,type:`ReactNode`,defaultValue:`-`,description:`Visible field label.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Helper text shown under the field.`},{name:`rules`,type:`UseControllerProps['rules']`,defaultValue:`-`,description:`Validation rules passed to RHF controller.`},{name:`required`,type:`boolean | '*'`,defaultValue:`false`,description:`Marks the field as required in the UI.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the field and prevents editing.`},{name:`error`,type:`string | FieldError | null`,defaultValue:`-`,description:`Optional error override.`}],accessibility:[`Label must remain visible.`,`Error text should be connected to the field.`,`Required state should be visual and semantic.`]},wizard:{slug:`wizard`,source:`metadata`,summary:`Controlled multi-step workflow surface for onboarding, setup and review flows. Keep the current step in state so validation, route sync and final submit behavior stay predictable.`,props:[{name:`steps`,type:`Array<{ id: string; title: ReactNode; description?: ReactNode; disabled?: boolean; completed?: boolean }>`,defaultValue:`[]`,required:!0,description:`Ordered steps shown in the stepper and used by navigation controls.`},{name:`currentStep`,type:`string`,defaultValue:`-`,required:!0,description:`Controlled active step id.`,example:`currentStep={step}`},{name:`onStepChange`,type:`(stepId: string) => void`,defaultValue:`-`,description:`Called when a clickable step is selected.`,example:`onStepChange={setStep}`},{name:`onNext`,type:`() => void`,defaultValue:`-`,description:`Called by the primary next action before the final step.`},{name:`onPrevious`,type:`() => void`,defaultValue:`-`,description:`Called by the previous action when the user can go back.`},{name:`onFinish`,type:`() => void`,defaultValue:`-`,description:`Called by the final submit action on the last step.`},{name:`nextLabel`,type:`ReactNode`,defaultValue:`'Next'`,description:`Label for the forward action.`},{name:`previousLabel`,type:`ReactNode`,defaultValue:`'Back'`,description:`Label for the backward action.`},{name:`finishLabel`,type:`ReactNode`,defaultValue:`'Finish'`,description:`Label for the final action.`},{name:`footer`,type:`ReactNode`,defaultValue:`-`,description:`Optional custom footer when the default Back/Next/Finish row is not enough.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,description:`Current step content rendered between the stepper and footer.`},{name:`className`,type:`string`,defaultValue:`-`,description:`Optional class override for local spacing and layout composition.`}],examples:[{title:`Controlled wizard`,code:`<Wizard steps={steps} currentStep={step} onStepChange={setStep} onNext={goNext} onPrevious={goBack} onFinish={submit}>...</Wizard>`},{title:`Validation-gated step`,code:`<Wizard steps={steps.map((item) => ({ ...item, disabled: item.id === 'finish' && !isValid }))} currentStep={step} />`},{title:`Custom action labels`,code:`<Wizard nextLabel="Continue setup" previousLabel="Edit previous" finishLabel="Publish" />`}],accessibility:[`Keep step titles short and descriptive.`,`Disable future steps when validation has not passed.`,`Move focus to the new step content after step changes in long forms.`,`Keep final submit copy specific to the workflow.`]},stepper:{slug:`stepper`,source:`metadata`,summary:`Progress navigation for multi-step forms and setup flows. Use it when the workflow needs visible step context without taking over the page content.`,props:[{name:`steps`,type:`Array<{ id: string; title: ReactNode; description?: ReactNode; disabled?: boolean; completed?: boolean }>`,defaultValue:`[]`,required:!0,description:`Ordered step list rendered as the progress navigation.`},{name:`currentStep`,type:`string`,defaultValue:`-`,required:!0,description:`Controlled active step id.`},{name:`onStepChange`,type:`(stepId: string) => void`,defaultValue:`-`,description:`Called when an enabled step is selected.`},{name:`orientation`,type:`'horizontal' | 'vertical'`,defaultValue:`'horizontal'`,description:`Controls whether steps render in a row or stacked column.`},{name:`size`,type:`'sm' | 'default' | 'lg'`,defaultValue:`'default'`,description:`Controls indicator and label density.`},{name:`showDescriptions`,type:`boolean`,defaultValue:`true`,description:`Shows or hides supporting step descriptions.`},{name:`className`,type:`string`,defaultValue:`-`,description:`Optional class override for local layout composition.`}],examples:[{title:`Horizontal setup stepper`,code:`<Stepper steps={steps} currentStep={step} onStepChange={setStep} />`},{title:`Vertical review stepper`,code:`<Stepper orientation="vertical" steps={steps} currentStep={step} />`},{title:`Compact labels`,code:`<Stepper size="sm" showDescriptions={false} steps={steps} currentStep={step} />`}],accessibility:[`Use disabled steps when users cannot jump ahead.`,`Keep active and completed states visually distinct.`,`Do not rely on color alone to communicate progress.`]}};function t(e){return e.split(`-`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function n(e){let n=t(e);return{slug:e,source:`manual-fallback`,summary:`${n} is documented as a source-copy surface. Start with the default example, keep the public props small, then customize the local source only where the product needs it.`,props:[{name:`className`,type:`string`,defaultValue:`-`,description:`Optional class override for layout, spacing or local product styling.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,description:`Optional composed content, label or slot content when the component supports composition.`},{name:`aria-label`,type:`string`,defaultValue:`-`,description:`Accessible label for icon-only, compact or non-text usage.`,notes:`Use when visible text does not fully describe the action or content.`}],examples:[{title:`${n} default`,code:`<${n.replaceAll(` `,``)} className="w-full" />`}],accessibility:[`Keep visible focus states when the surface is interactive.`,`Provide readable labels for icon-only or compact controls.`,`Preserve semantic structure when customizing copied source.`]}}function r(t){return e[t]??n(t)}exports.componentApiSchemas=e,exports.getComponentApiSchema=r;