@dowel-ui/react 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +1 -1
  2. package/dist/blocks/admin-dashboard/meta.js +31 -0
  3. package/dist/blocks/admin-dashboard/meta.js.map +1 -0
  4. package/dist/blocks/agent-console/meta.js +27 -0
  5. package/dist/blocks/agent-console/meta.js.map +1 -0
  6. package/dist/blocks/ai-dashboard/meta.js +25 -0
  7. package/dist/blocks/ai-dashboard/meta.js.map +1 -0
  8. package/dist/blocks/ai-workspace/meta.js +33 -0
  9. package/dist/blocks/ai-workspace/meta.js.map +1 -0
  10. package/dist/blocks/analytics/meta.js +24 -0
  11. package/dist/blocks/analytics/meta.js.map +1 -0
  12. package/dist/blocks/billing/meta.js +25 -0
  13. package/dist/blocks/billing/meta.js.map +1 -0
  14. package/dist/blocks/command-center/meta.js +28 -0
  15. package/dist/blocks/command-center/meta.js.map +1 -0
  16. package/dist/blocks/crm/meta.js +32 -0
  17. package/dist/blocks/crm/meta.js.map +1 -0
  18. package/dist/blocks/onboarding/meta.js +23 -0
  19. package/dist/blocks/onboarding/meta.js.map +1 -0
  20. package/dist/components/accordion/accordion.js +1 -1
  21. package/dist/components/accordion/accordion.js.map +1 -1
  22. package/dist/components/activity-feed/activity-feed.js +1 -1
  23. package/dist/components/activity-feed/activity-feed.js.map +1 -1
  24. package/dist/components/ai-agent-plan/ai-agent-plan.js +1 -1
  25. package/dist/components/ai-agent-plan/ai-agent-plan.js.map +1 -1
  26. package/dist/components/ai-extraction-review/ai-extraction-review.js +1 -1
  27. package/dist/components/ai-extraction-review/ai-extraction-review.js.map +1 -1
  28. package/dist/components/ai-prompt-input/ai-prompt-input.js +1 -1
  29. package/dist/components/ai-prompt-input/ai-prompt-input.js.map +1 -1
  30. package/dist/components/ai-reasoning/ai-reasoning.js +1 -1
  31. package/dist/components/ai-reasoning/ai-reasoning.js.map +1 -1
  32. package/dist/components/ai-response/ai-response.js +2 -2
  33. package/dist/components/ai-response/ai-response.js.map +1 -1
  34. package/dist/components/ai-tool/ai-tool.js +2 -2
  35. package/dist/components/ai-tool/ai-tool.js.map +1 -1
  36. package/dist/components/alert/alert.d.ts +1 -1
  37. package/dist/components/avatar/avatar.d.ts +1 -1
  38. package/dist/components/badge/badge.d.ts +1 -1
  39. package/dist/components/breadcrumb/breadcrumb.d.ts +52 -0
  40. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  41. package/dist/components/breadcrumb/breadcrumb.js +141 -0
  42. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  43. package/dist/components/breadcrumb/index.d.ts +2 -0
  44. package/dist/components/breadcrumb/index.js +2 -0
  45. package/dist/components/breadcrumb/meta.js +17 -0
  46. package/dist/components/breadcrumb/meta.js.map +1 -0
  47. package/dist/components/button/button.d.ts +1 -1
  48. package/dist/components/calendar/calendar.js +2 -2
  49. package/dist/components/calendar/calendar.js.map +1 -1
  50. package/dist/components/code-block/code-block.js +1 -1
  51. package/dist/components/code-block/code-block.js.map +1 -1
  52. package/dist/components/collapsible/collapsible.d.ts +30 -0
  53. package/dist/components/collapsible/collapsible.d.ts.map +1 -0
  54. package/dist/components/collapsible/collapsible.js +38 -0
  55. package/dist/components/collapsible/collapsible.js.map +1 -0
  56. package/dist/components/collapsible/index.d.ts +2 -0
  57. package/dist/components/collapsible/index.js +2 -0
  58. package/dist/components/collapsible/meta.js +17 -0
  59. package/dist/components/collapsible/meta.js.map +1 -0
  60. package/dist/components/combobox/combobox.js +2 -2
  61. package/dist/components/combobox/combobox.js.map +1 -1
  62. package/dist/components/command/command.js +1 -1
  63. package/dist/components/command/command.js.map +1 -1
  64. package/dist/components/data-table/data-table.d.ts.map +1 -1
  65. package/dist/components/data-table/data-table.js +4 -1
  66. package/dist/components/data-table/data-table.js.map +1 -1
  67. package/dist/components/dialog/dialog.js +2 -2
  68. package/dist/components/dialog/dialog.js.map +1 -1
  69. package/dist/components/diff-viewer/diff-viewer.js +4 -4
  70. package/dist/components/diff-viewer/diff-viewer.js.map +1 -1
  71. package/dist/components/direction/direction.d.ts +35 -0
  72. package/dist/components/direction/direction.d.ts.map +1 -0
  73. package/dist/components/direction/direction.js +14 -0
  74. package/dist/components/direction/direction.js.map +1 -0
  75. package/dist/components/direction/index.d.ts +2 -0
  76. package/dist/components/direction/index.js +2 -0
  77. package/dist/components/direction/meta.js +17 -0
  78. package/dist/components/direction/meta.js.map +1 -0
  79. package/dist/components/drawer/drawer.js +1 -1
  80. package/dist/components/drawer/drawer.js.map +1 -1
  81. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  82. package/dist/components/dropdown-menu/dropdown-menu.js +9 -8
  83. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  84. package/dist/components/input/input.js +1 -1
  85. package/dist/components/input/input.js.map +1 -1
  86. package/dist/components/log-viewer/log-viewer.js +2 -2
  87. package/dist/components/log-viewer/log-viewer.js.map +1 -1
  88. package/dist/components/meter/meter.js +1 -1
  89. package/dist/components/meter/meter.js.map +1 -1
  90. package/dist/components/pagination/pagination.d.ts.map +1 -1
  91. package/dist/components/pagination/pagination.js +3 -2
  92. package/dist/components/pagination/pagination.js.map +1 -1
  93. package/dist/components/permission-matrix/permission-matrix.js +3 -3
  94. package/dist/components/permission-matrix/permission-matrix.js.map +1 -1
  95. package/dist/components/progress/progress.d.ts +1 -1
  96. package/dist/components/record-diff/record-diff.js +4 -4
  97. package/dist/components/record-diff/record-diff.js.map +1 -1
  98. package/dist/components/select/select.js +2 -2
  99. package/dist/components/select/select.js.map +1 -1
  100. package/dist/components/sheet/sheet.d.ts.map +1 -1
  101. package/dist/components/sheet/sheet.js +2 -2
  102. package/dist/components/sheet/sheet.js.map +1 -1
  103. package/dist/components/sidebar/index.d.ts +2 -0
  104. package/dist/components/sidebar/index.js +2 -0
  105. package/dist/components/sidebar/meta.js +17 -0
  106. package/dist/components/sidebar/meta.js.map +1 -0
  107. package/dist/components/sidebar/sidebar.d.ts +69 -0
  108. package/dist/components/sidebar/sidebar.d.ts.map +1 -0
  109. package/dist/components/sidebar/sidebar.js +256 -0
  110. package/dist/components/sidebar/sidebar.js.map +1 -0
  111. package/dist/components/spinner/spinner.d.ts +1 -1
  112. package/dist/components/table/table.js +2 -2
  113. package/dist/components/table/table.js.map +1 -1
  114. package/dist/components/tags-input/tags-input.js +1 -1
  115. package/dist/components/tags-input/tags-input.js.map +1 -1
  116. package/dist/components/textarea/index.d.ts +2 -0
  117. package/dist/components/textarea/index.js +2 -0
  118. package/dist/components/textarea/meta.js +17 -0
  119. package/dist/components/textarea/meta.js.map +1 -0
  120. package/dist/components/textarea/textarea.d.ts +43 -0
  121. package/dist/components/textarea/textarea.d.ts.map +1 -0
  122. package/dist/components/textarea/textarea.js +119 -0
  123. package/dist/components/textarea/textarea.js.map +1 -0
  124. package/dist/components/time-range-picker/time-range-picker.js +3 -3
  125. package/dist/components/time-range-picker/time-range-picker.js.map +1 -1
  126. package/dist/components/toast/toast.d.ts +1 -1
  127. package/dist/components/toast/toast.d.ts.map +1 -1
  128. package/dist/components/toast/toast.js +2 -2
  129. package/dist/components/toast/toast.js.map +1 -1
  130. package/dist/index.d.ts +12 -2
  131. package/dist/index.js +7 -2
  132. package/dist/lib/styles.d.ts +16 -1
  133. package/dist/lib/styles.d.ts.map +1 -1
  134. package/dist/lib/styles.js +16 -1
  135. package/dist/lib/styles.js.map +1 -1
  136. package/dist/registry/blocks.d.ts.map +1 -1
  137. package/dist/registry/blocks.js +27 -9
  138. package/dist/registry/blocks.js.map +1 -1
  139. package/dist/registry/components.d.ts.map +1 -1
  140. package/dist/registry/components.js +60 -50
  141. package/dist/registry/components.js.map +1 -1
  142. package/dist/registry/schema.d.ts +8 -0
  143. package/dist/registry/schema.d.ts.map +1 -1
  144. package/dist/registry/schema.js.map +1 -1
  145. package/package.json +5 -4
  146. package/src/components/accordion/accordion.tsx +1 -1
  147. package/src/components/activity-feed/activity-feed.tsx +1 -1
  148. package/src/components/ai-agent-plan/ai-agent-plan.tsx +0 -0
  149. package/src/components/ai-extraction-review/ai-extraction-review.tsx +1 -1
  150. package/src/components/ai-prompt-input/ai-prompt-input.tsx +1 -1
  151. package/src/components/ai-reasoning/ai-reasoning.tsx +1 -1
  152. package/src/components/ai-response/ai-response.tsx +2 -2
  153. package/src/components/ai-tool/ai-tool.tsx +2 -2
  154. package/src/components/breadcrumb/breadcrumb.tsx +157 -0
  155. package/src/components/breadcrumb/index.ts +10 -0
  156. package/src/components/breadcrumb/meta.ts +19 -0
  157. package/src/components/calendar/calendar.tsx +2 -2
  158. package/src/components/code-block/code-block.tsx +1 -1
  159. package/src/components/collapsible/collapsible.tsx +63 -0
  160. package/src/components/collapsible/index.ts +6 -0
  161. package/src/components/collapsible/meta.ts +16 -0
  162. package/src/components/combobox/combobox.tsx +2 -2
  163. package/src/components/command/command.tsx +1 -1
  164. package/src/components/data-table/data-table.tsx +14 -3
  165. package/src/components/dialog/dialog.tsx +2 -2
  166. package/src/components/diff-viewer/diff-viewer.tsx +4 -4
  167. package/src/components/direction/direction.tsx +38 -0
  168. package/src/components/direction/index.ts +1 -0
  169. package/src/components/direction/meta.ts +19 -0
  170. package/src/components/drawer/drawer.tsx +1 -1
  171. package/src/components/dropdown-menu/dropdown-menu.tsx +14 -8
  172. package/src/components/input/input.tsx +1 -1
  173. package/src/components/log-viewer/log-viewer.tsx +2 -2
  174. package/src/components/meter/meter.tsx +1 -1
  175. package/src/components/pagination/pagination.tsx +13 -2
  176. package/src/components/permission-matrix/permission-matrix.tsx +4 -4
  177. package/src/components/record-diff/record-diff.tsx +4 -4
  178. package/src/components/select/select.tsx +2 -2
  179. package/src/components/sheet/sheet.tsx +8 -4
  180. package/src/components/sidebar/index.ts +19 -0
  181. package/src/components/sidebar/meta.ts +25 -0
  182. package/src/components/sidebar/sidebar.tsx +374 -0
  183. package/src/components/table/table.tsx +3 -3
  184. package/src/components/tags-input/tags-input.tsx +1 -1
  185. package/src/components/textarea/index.ts +1 -0
  186. package/src/components/textarea/meta.ts +21 -0
  187. package/src/components/textarea/textarea.tsx +210 -0
  188. package/src/components/time-range-picker/time-range-picker.tsx +3 -3
  189. package/src/components/toast/toast.tsx +14 -6
  190. package/src/index.ts +5 -0
  191. package/src/lib/styles.ts +16 -0
  192. package/src/registry/blocks.ts +18 -0
  193. package/src/registry/components.ts +10 -0
  194. package/src/registry/schema.ts +8 -0
  195. package/src/blocks/admin-users/admin-users.tsx +0 -251
  196. package/src/blocks/admin-users/index.ts +0 -1
  197. package/src/blocks/admin-users/meta.ts +0 -27
  198. package/src/blocks/ai-chat/ai-chat.tsx +0 -280
  199. package/src/blocks/ai-chat/index.ts +0 -7
  200. package/src/blocks/ai-chat/meta.ts +0 -32
  201. package/src/blocks/dashboard/dashboard.tsx +0 -192
  202. package/src/blocks/dashboard/index.ts +0 -6
  203. package/src/blocks/dashboard/meta.ts +0 -18
  204. package/src/blocks/forgot-password/forgot-password.tsx +0 -158
  205. package/src/blocks/forgot-password/index.ts +0 -1
  206. package/src/blocks/forgot-password/meta.ts +0 -18
  207. package/src/blocks/login/index.ts +0 -1
  208. package/src/blocks/login/login.tsx +0 -178
  209. package/src/blocks/login/meta.ts +0 -18
  210. package/src/blocks/pricing/index.ts +0 -1
  211. package/src/blocks/pricing/meta.ts +0 -18
  212. package/src/blocks/pricing/pricing.tsx +0 -176
  213. package/src/blocks/settings/index.ts +0 -6
  214. package/src/blocks/settings/meta.ts +0 -29
  215. package/src/blocks/settings/settings.tsx +0 -317
  216. package/src/blocks/signup/index.ts +0 -1
  217. package/src/blocks/signup/meta.ts +0 -18
  218. package/src/blocks/signup/signup.tsx +0 -240
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { disabledStyles, focusRing, focusRingInset, iconSlot, invalidStyles } from "./lib/styles.js";
1
+ import { disabledStyles, focusRing, focusRingInset, iconSlot, invalidStyles, mirrorForDirection } from "./lib/styles.js";
2
2
  import { cn } from "./lib/utils.js";
3
3
  import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./components/accordion/accordion.js";
4
4
  import { ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator, ActivityItem, ActivityTime, ActivityTitle } from "./components/activity-feed/activity-feed.js";
@@ -26,12 +26,14 @@ import { Tool, ToolContent, ToolHeader, ToolPayload, ToolSection, toolVariants }
26
26
  import { Alert, AlertDescription, AlertTitle, alertVariants } from "./components/alert/alert.js";
27
27
  import { Avatar, AvatarFallback, AvatarImage, avatarVariants } from "./components/avatar/avatar.js";
28
28
  import { Badge, badgeVariants } from "./components/badge/badge.js";
29
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/breadcrumb/breadcrumb.js";
29
30
  import { Spinner, spinnerVariants } from "./components/spinner/spinner.js";
30
31
  import { Button, buttonVariants } from "./components/button/button.js";
31
32
  import { Calendar } from "./components/calendar/calendar.js";
32
33
  import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./components/card/card.js";
33
34
  import { Checkbox } from "./components/checkbox/checkbox.js";
34
35
  import { CodeBlock, CopyButton } from "./components/code-block/code-block.js";
36
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./components/collapsible/collapsible.js";
35
37
  import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, defaultComboboxFilter } from "./components/combobox/combobox.js";
36
38
  import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./components/dialog/dialog.js";
37
39
  import { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, defaultCommandFilter } from "./components/command/command.js";
@@ -43,6 +45,7 @@ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMe
43
45
  import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./components/table/table.js";
44
46
  import { DataTable, DataTableColumnHeader, DataTablePagination, DataTableViewOptions } from "./components/data-table/data-table.js";
45
47
  import { DatePicker, DateRangePicker } from "./components/date-picker/date-picker.js";
48
+ import { DirectionProvider } from "./components/direction/direction.js";
46
49
  import { buildDiff, countChanges, groupIntoHunks, toSplitRows } from "./components/diff-viewer/diff-model.js";
47
50
  import { DiffViewer, DiffViewerToolbar } from "./components/diff-viewer/diff-viewer.js";
48
51
  import { DnsRecord, dnsHostForms } from "./components/dns-record/dns-record.js";
@@ -66,6 +69,7 @@ import { SecretField, maskSecret } from "./components/secret-field/secret-field.
66
69
  import { Separator } from "./components/separator/separator.js";
67
70
  import { SessionExpiry, describeCountdown, formatCountdown, secondsLeft, sessionPhase } from "./components/session-expiry/session-expiry.js";
68
71
  import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, sheetVariants } from "./components/sheet/sheet.js";
72
+ import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuLabel, SidebarProvider, SidebarTrigger } from "./components/sidebar/sidebar.js";
69
73
  import { RESERVED_KEYS, describeShortcut, detectPlatform, formatShortcut, needsModifier, parseShortcut, serializeShortcut, shortcutFromKey, shortcutParts, shortcutsEqual } from "./components/shortcut-recorder/shortcut-model.js";
70
74
  import { ShortcutRecorder } from "./components/shortcut-recorder/shortcut-recorder.js";
71
75
  import { Skeleton } from "./components/skeleton/skeleton.js";
@@ -76,8 +80,9 @@ import { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTrigger
76
80
  import { TagsInput } from "./components/tags-input/tags-input.js";
77
81
  import { DEFAULT_PRESETS, TimeExpressionError, absoluteExpression, describeTimeRange, formatResolvedRange, isValidTimeRange, resolveExpression, resolveTimeRange } from "./components/time-range-picker/time-expression.js";
78
82
  import { TimeRange, TimeRangeCalendar, TimeRangeContent, TimeRangeExpression, TimeRangePresets, TimeRangeTrigger } from "./components/time-range-picker/time-range-picker.js";
83
+ import { Textarea, textareaVariants } from "./components/textarea/textarea.js";
79
84
  import { DEFAULT_TOAST_DURATION, TOAST_LIMIT, toast, useToasts } from "./components/toast/toast-store.js";
80
85
  import { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, toastVariants } from "./components/toast/toast.js";
81
86
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./components/tooltip/tooltip.js";
82
87
  import { COMPONENT_CATEGORIES, COMPONENT_STATUSES, defineMeta } from "./registry/schema.js";
83
- export { AIDisclosure, AIDisclosureProvenance, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionLedger, ActionLedgerEntry, ActionLedgerList, ActionLedgerPayload, ActionLedgerSelectionSummary, ActionLedgerToolbar, ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator, ActivityItem, ActivityTime, ActivityTitle, AgentPlan, AgentPlanStep, AgentPlanSteps, AgentPlanSummary, AgentStatus, Alert, AlertDescription, AlertTitle, ApprovalRequest, Avatar, AvatarFallback, AvatarImage, Badge, Button, COMPONENT_CATEGORIES, COMPONENT_STATUSES, CRON_SHORTCUTS, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmTyped, Conversation, ConversationMessages, ConversationScrollButton, ConversationStatus, CopyButton, Cron, CronBuilder, CronExpression, CronExpressionError, CronNextRuns, DEFAULT_PRESETS, DEFAULT_TOAST_DURATION, DataTable, DataTableColumnHeader, DataTablePagination, DataTableViewOptions, DatePicker, DateRangePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffViewer, DiffViewerToolbar, DnsRecord, Drawer, DrawerBody, DrawerCancel, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, ExtractionReview, FileUpload, FileUploadItem, FileUploadList, FileUploadStatus, Form, FormControl, FormDescription, FormField, FormLabel, FormMessage, InlineCitation, InlineCompletion, Input, LOG_LEVELS, Label, LogViewer, LogViewerRow, LogViewerToolbar, Message, MessageActions, MessageAvatar, MessageBody, MessageFooter, Meter, MeterLegend, MeterValue, MetricDelta, ModelSelector, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PermissionMatrix, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverTrigger, Progress, PromptInput, PromptInputCounter, PromptInputSubmit, PromptInputTextarea, PromptInputToolbar, RESERVED_KEYS, RadioGroup, RadioGroupItem, Reasoning, ReasoningContent, ReasoningTrigger, RecordDiff, RecordDiffSummary, RecordDiffTable, Response, ResponseCaret, SecretField, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, SessionExpiry, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, ShortcutRecorder, Skeleton, Slider, Source, Sources, SourcesContent, SourcesTrigger, Spinner, StructuredConfidence, StructuredField, StructuredFieldError, StructuredOutput, SuggestedValue, Switch, SyncStatus, TOAST_LIMIT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, ThinkingIndicator, TimeExpressionError, TimeRange, TimeRangeCalendar, TimeRangeContent, TimeRangeExpression, TimeRangePresets, TimeRangeTrigger, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, TokenCount, TokenUsage, Tool, ToolContent, ToolHeader, ToolPayload, ToolSection, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, absoluteExpression, agentStatusVariants, alertVariants, avatarVariants, badgeVariants, buildDiff, buttonVariants, cellState, clampSpan, cn, compileQuery, countChanges, countGranted, defaultComboboxFilter, defaultCommandFilter, defineMeta, deltaVariants, describeCountdown, describeCron, describeShortcut, describeSyncState, describeTimeRange, detectPlatform, diffRecords, disabledStyles, disclosureVariants, dnsHostForms, emptyStateVariants, evidenceOf, findMatches, focusRing, focusRingInset, formatBytes, formatCountdown, formatResolvedRange, formatShortcut, groupIntoHunks, groupPermissions, groupState, iconSlot, inheritedFrom, inputVariants, invalidStyles, isSourced, isValidCron, isValidTimeRange, ledgerEntryVariants, maskSecret, matchesAccept, messageBodyVariants, messageVariants, needsModifier, nextRuns, parseCron, parseShortcut, progressVariants, resolveExpression, resolveTimeRange, secondsLeft, segment, segmentSource, selectTriggerVariants, serializeShortcut, sessionPhase, sheetVariants, shortcutFromKey, shortcutParts, shortcutsEqual, spinnerVariants, summarizeReview, syncState, tabsListVariants, tabsTriggerVariants, toSplitRows, toast, toastVariants, toolVariants, useLogStream, useOnlineStatus, useToasts, useUploadQueue, xhrUpload, zonedTimeToInstant };
88
+ export { AIDisclosure, AIDisclosureProvenance, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionLedger, ActionLedgerEntry, ActionLedgerList, ActionLedgerPayload, ActionLedgerSelectionSummary, ActionLedgerToolbar, ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator, ActivityItem, ActivityTime, ActivityTitle, AgentPlan, AgentPlanStep, AgentPlanSteps, AgentPlanSummary, AgentStatus, Alert, AlertDescription, AlertTitle, ApprovalRequest, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, COMPONENT_CATEGORIES, COMPONENT_STATUSES, CRON_SHORTCUTS, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmTyped, Conversation, ConversationMessages, ConversationScrollButton, ConversationStatus, CopyButton, Cron, CronBuilder, CronExpression, CronExpressionError, CronNextRuns, DEFAULT_PRESETS, DEFAULT_TOAST_DURATION, DataTable, DataTableColumnHeader, DataTablePagination, DataTableViewOptions, DatePicker, DateRangePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffViewer, DiffViewerToolbar, DirectionProvider, DnsRecord, Drawer, DrawerBody, DrawerCancel, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, ExtractionReview, FileUpload, FileUploadItem, FileUploadList, FileUploadStatus, Form, FormControl, FormDescription, FormField, FormLabel, FormMessage, InlineCitation, InlineCompletion, Input, LOG_LEVELS, Label, LogViewer, LogViewerRow, LogViewerToolbar, Message, MessageActions, MessageAvatar, MessageBody, MessageFooter, Meter, MeterLegend, MeterValue, MetricDelta, ModelSelector, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PermissionMatrix, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverTrigger, Progress, PromptInput, PromptInputCounter, PromptInputSubmit, PromptInputTextarea, PromptInputToolbar, RESERVED_KEYS, RadioGroup, RadioGroupItem, Reasoning, ReasoningContent, ReasoningTrigger, RecordDiff, RecordDiffSummary, RecordDiffTable, Response, ResponseCaret, SecretField, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, SessionExpiry, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, ShortcutRecorder, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuLabel, SidebarProvider, SidebarTrigger, Skeleton, Slider, Source, Sources, SourcesContent, SourcesTrigger, Spinner, StructuredConfidence, StructuredField, StructuredFieldError, StructuredOutput, SuggestedValue, Switch, SyncStatus, TOAST_LIMIT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, Textarea, ThinkingIndicator, TimeExpressionError, TimeRange, TimeRangeCalendar, TimeRangeContent, TimeRangeExpression, TimeRangePresets, TimeRangeTrigger, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, TokenCount, TokenUsage, Tool, ToolContent, ToolHeader, ToolPayload, ToolSection, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, absoluteExpression, agentStatusVariants, alertVariants, avatarVariants, badgeVariants, buildDiff, buttonVariants, cellState, clampSpan, cn, compileQuery, countChanges, countGranted, defaultComboboxFilter, defaultCommandFilter, defineMeta, deltaVariants, describeCountdown, describeCron, describeShortcut, describeSyncState, describeTimeRange, detectPlatform, diffRecords, disabledStyles, disclosureVariants, dnsHostForms, emptyStateVariants, evidenceOf, findMatches, focusRing, focusRingInset, formatBytes, formatCountdown, formatResolvedRange, formatShortcut, groupIntoHunks, groupPermissions, groupState, iconSlot, inheritedFrom, inputVariants, invalidStyles, isSourced, isValidCron, isValidTimeRange, ledgerEntryVariants, maskSecret, matchesAccept, messageBodyVariants, messageVariants, mirrorForDirection, needsModifier, nextRuns, parseCron, parseShortcut, progressVariants, resolveExpression, resolveTimeRange, secondsLeft, segment, segmentSource, selectTriggerVariants, serializeShortcut, sessionPhase, sheetVariants, shortcutFromKey, shortcutParts, shortcutsEqual, spinnerVariants, summarizeReview, syncState, tabsListVariants, tabsTriggerVariants, textareaVariants, toSplitRows, toast, toastVariants, toolVariants, useLogStream, useOnlineStatus, useToasts, useUploadQueue, xhrUpload, zonedTimeToInstant };
@@ -16,6 +16,21 @@ declare const disabledStyles = "disabled:pointer-events-none disabled:opacity-55
16
16
  declare const invalidStyles = "aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/40";
17
17
  /** Sizes any icon rendered as a direct child of a control. */
18
18
  declare const iconSlot = "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
19
+ /**
20
+ * Mirrors an icon that points along the reading direction.
21
+ *
22
+ * A chevron meaning "forward" points right in English and left in Arabic.
23
+ * Logical CSS does not help here: the glyph is drawn, not laid out, so the
24
+ * class list mirrors the box while the arrow inside it goes on pointing the
25
+ * wrong way. The result is a fully mirrored page whose "next" button points
26
+ * back the way you came.
27
+ *
28
+ * Only for icons whose meaning is directional. A chevron pointing *down* to
29
+ * open a select means down in every language, and flipping it horizontally
30
+ * would be flipping a thing that was never sided. Nor is a tick, a cross or a
31
+ * spinner.
32
+ */
33
+ declare const mirrorForDirection = "rtl:-scale-x-100";
19
34
  //#endregion
20
- export { disabledStyles, focusRing, focusRingInset, iconSlot, invalidStyles };
35
+ export { disabledStyles, focusRing, focusRingInset, iconSlot, invalidStyles, mirrorForDirection };
21
36
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","names":[],"sources":["../../src/lib/styles.ts"],"mappings":";;;;;;;;;cASa;;cAIA;;cAGA;;cAIA;;cAIA"}
1
+ {"version":3,"file":"styles.d.ts","names":[],"sources":["../../src/lib/styles.ts"],"mappings":";;;;;;;;;cASa;;cAIA;;cAGA;;cAIA;;cAIA;;;;;;;;;;;;;;;cAiBA"}
@@ -16,7 +16,22 @@ const disabledStyles = "disabled:pointer-events-none disabled:opacity-55 aria-di
16
16
  const invalidStyles = "aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/40";
17
17
  /** Sizes any icon rendered as a direct child of a control. */
18
18
  const iconSlot = "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
19
+ /**
20
+ * Mirrors an icon that points along the reading direction.
21
+ *
22
+ * A chevron meaning "forward" points right in English and left in Arabic.
23
+ * Logical CSS does not help here: the glyph is drawn, not laid out, so the
24
+ * class list mirrors the box while the arrow inside it goes on pointing the
25
+ * wrong way. The result is a fully mirrored page whose "next" button points
26
+ * back the way you came.
27
+ *
28
+ * Only for icons whose meaning is directional. A chevron pointing *down* to
29
+ * open a select means down in every language, and flipping it horizontally
30
+ * would be flipping a thing that was never sided. Nor is a tick, a cross or a
31
+ * spinner.
32
+ */
33
+ const mirrorForDirection = "rtl:-scale-x-100";
19
34
  //#endregion
20
- export { disabledStyles, focusRing, focusRingInset, iconSlot, invalidStyles };
35
+ export { disabledStyles, focusRing, focusRingInset, iconSlot, invalidStyles, mirrorForDirection };
21
36
 
22
37
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":[],"sources":["../../src/lib/styles.ts"],"sourcesContent":["/**\n * Style fragments shared across components.\n *\n * These exist so interaction states are defined once. If focus rings or\n * disabled treatment need to change, they change here and every component\n * follows — which is what keeps the system visually coherent (design spec §12).\n */\n\n/** Keyboard focus ring. Deliberately not applied on pointer focus. */\nexport const focusRing =\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring/55 focus-visible:ring-offset-2 focus-visible:ring-offset-background\";\n\n/** Focus ring for controls that sit flush inside a bordered container. */\nexport const focusRingInset = \"outline-none focus-visible:ring-2 focus-visible:ring-ring/55\";\n\n/** Applied to natively disabled elements and `aria-disabled` ones alike. */\nexport const disabledStyles =\n \"disabled:pointer-events-none disabled:opacity-55 aria-disabled:pointer-events-none aria-disabled:opacity-55\";\n\n/** Invalid-state treatment driven by `aria-invalid`, never by a bespoke prop. */\nexport const invalidStyles =\n \"aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/40\";\n\n/** Sizes any icon rendered as a direct child of a control. */\nexport const iconSlot =\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\";\n"],"mappings":";;;;;;;;;AASA,MAAa,YACX;;AAGF,MAAa,iBAAiB;;AAG9B,MAAa,iBACX;;AAGF,MAAa,gBACX;;AAGF,MAAa,WACX"}
1
+ {"version":3,"file":"styles.js","names":[],"sources":["../../src/lib/styles.ts"],"sourcesContent":["/**\n * Style fragments shared across components.\n *\n * These exist so interaction states are defined once. If focus rings or\n * disabled treatment need to change, they change here and every component\n * follows — which is what keeps the system visually coherent (design spec §12).\n */\n\n/** Keyboard focus ring. Deliberately not applied on pointer focus. */\nexport const focusRing =\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring/55 focus-visible:ring-offset-2 focus-visible:ring-offset-background\";\n\n/** Focus ring for controls that sit flush inside a bordered container. */\nexport const focusRingInset = \"outline-none focus-visible:ring-2 focus-visible:ring-ring/55\";\n\n/** Applied to natively disabled elements and `aria-disabled` ones alike. */\nexport const disabledStyles =\n \"disabled:pointer-events-none disabled:opacity-55 aria-disabled:pointer-events-none aria-disabled:opacity-55\";\n\n/** Invalid-state treatment driven by `aria-invalid`, never by a bespoke prop. */\nexport const invalidStyles =\n \"aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/40\";\n\n/** Sizes any icon rendered as a direct child of a control. */\nexport const iconSlot =\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\";\n\n/**\n * Mirrors an icon that points along the reading direction.\n *\n * A chevron meaning \"forward\" points right in English and left in Arabic.\n * Logical CSS does not help here: the glyph is drawn, not laid out, so the\n * class list mirrors the box while the arrow inside it goes on pointing the\n * wrong way. The result is a fully mirrored page whose \"next\" button points\n * back the way you came.\n *\n * Only for icons whose meaning is directional. A chevron pointing *down* to\n * open a select means down in every language, and flipping it horizontally\n * would be flipping a thing that was never sided. Nor is a tick, a cross or a\n * spinner.\n */\nexport const mirrorForDirection = \"rtl:-scale-x-100\";\n"],"mappings":";;;;;;;;;AASA,MAAa,YACX;;AAGF,MAAa,iBAAiB;;AAG9B,MAAa,iBACX;;AAGF,MAAa,gBACX;;AAGF,MAAa,WACX;;;;;;;;;;;;;;;AAgBF,MAAa,qBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","names":[],"sources":["../../src/registry/blocks.ts"],"mappings":";;;;;;;;;;;cAoBa,YAAY"}
1
+ {"version":3,"file":"blocks.d.ts","names":[],"sources":["../../src/registry/blocks.ts"],"mappings":";;;;;;;;;;;cA6Ba,YAAY"}
@@ -1,11 +1,20 @@
1
- import { meta } from "../blocks/admin-users/meta.js";
2
- import { meta as meta$1 } from "../blocks/ai-chat/meta.js";
3
- import { meta as meta$2 } from "../blocks/dashboard/meta.js";
4
- import { meta as meta$3 } from "../blocks/forgot-password/meta.js";
5
- import { meta as meta$4 } from "../blocks/login/meta.js";
6
- import { meta as meta$5 } from "../blocks/pricing/meta.js";
7
- import { meta as meta$6 } from "../blocks/settings/meta.js";
8
- import { meta as meta$7 } from "../blocks/signup/meta.js";
1
+ import { meta } from "../blocks/admin-dashboard/meta.js";
2
+ import { meta as meta$1 } from "../blocks/admin-users/meta.js";
3
+ import { meta as meta$2 } from "../blocks/agent-console/meta.js";
4
+ import { meta as meta$3 } from "../blocks/ai-chat/meta.js";
5
+ import { meta as meta$4 } from "../blocks/ai-dashboard/meta.js";
6
+ import { meta as meta$5 } from "../blocks/ai-workspace/meta.js";
7
+ import { meta as meta$6 } from "../blocks/analytics/meta.js";
8
+ import { meta as meta$7 } from "../blocks/billing/meta.js";
9
+ import { meta as meta$8 } from "../blocks/command-center/meta.js";
10
+ import { meta as meta$9 } from "../blocks/crm/meta.js";
11
+ import { meta as meta$10 } from "../blocks/dashboard/meta.js";
12
+ import { meta as meta$11 } from "../blocks/forgot-password/meta.js";
13
+ import { meta as meta$12 } from "../blocks/login/meta.js";
14
+ import { meta as meta$13 } from "../blocks/onboarding/meta.js";
15
+ import { meta as meta$14 } from "../blocks/pricing/meta.js";
16
+ import { meta as meta$15 } from "../blocks/settings/meta.js";
17
+ import { meta as meta$16 } from "../blocks/signup/meta.js";
9
18
  //#region src/registry/blocks.ts
10
19
  /**
11
20
  * Every block in the registry.
@@ -24,7 +33,16 @@ const blockMetas = [
24
33
  meta$4,
25
34
  meta$5,
26
35
  meta$6,
27
- meta$7
36
+ meta$7,
37
+ meta$8,
38
+ meta$9,
39
+ meta$10,
40
+ meta$11,
41
+ meta$12,
42
+ meta$13,
43
+ meta$14,
44
+ meta$15,
45
+ meta$16
28
46
  ];
29
47
  //#endregion
30
48
  export { blockMetas };
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","names":["adminUsersMeta","aiChatMeta","dashboardMeta","forgotPasswordMeta","loginMeta","pricingMeta","settingsMeta","signupMeta"],"sources":["../../src/registry/blocks.ts"],"sourcesContent":["import type { ComponentMeta } from \"./schema\";\n\nimport { meta as adminUsersMeta } from \"@/blocks/admin-users/meta\";\nimport { meta as aiChatMeta } from \"@/blocks/ai-chat/meta\";\nimport { meta as dashboardMeta } from \"@/blocks/dashboard/meta\";\nimport { meta as forgotPasswordMeta } from \"@/blocks/forgot-password/meta\";\nimport { meta as loginMeta } from \"@/blocks/login/meta\";\nimport { meta as pricingMeta } from \"@/blocks/pricing/meta\";\nimport { meta as settingsMeta } from \"@/blocks/settings/meta\";\nimport { meta as signupMeta } from \"@/blocks/signup/meta\";\n\n/**\n * Every block in the registry.\n *\n * Kept separate from `componentMetas` for the same reason blocks install into a\n * different directory: they are whole page sections, browsed and used\n * differently from the components they are assembled out of.\n *\n * `meta.test.ts` fails if a block directory exists that is missing from here.\n */\nexport const blockMetas: ComponentMeta[] = [\n adminUsersMeta,\n aiChatMeta,\n dashboardMeta,\n forgotPasswordMeta,\n loginMeta,\n pricingMeta,\n settingsMeta,\n signupMeta,\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAoBA,MAAa,aAA8B;CACzCA;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACF"}
1
+ {"version":3,"file":"blocks.js","names":["adminDashboardMeta","adminUsersMeta","agentConsoleMeta","aiChatMeta","aiDashboardMeta","aiWorkspaceMeta","analyticsMeta","billingMeta","commandCenterMeta","crmMeta","dashboardMeta","forgotPasswordMeta","loginMeta","onboardingMeta","pricingMeta","settingsMeta","signupMeta"],"sources":["../../src/registry/blocks.ts"],"sourcesContent":["import type { ComponentMeta } from \"./schema\";\n\nimport { meta as adminDashboardMeta } from \"@/blocks/admin-dashboard/meta\";\nimport { meta as adminUsersMeta } from \"@/blocks/admin-users/meta\";\nimport { meta as agentConsoleMeta } from \"@/blocks/agent-console/meta\";\nimport { meta as aiChatMeta } from \"@/blocks/ai-chat/meta\";\nimport { meta as aiDashboardMeta } from \"@/blocks/ai-dashboard/meta\";\nimport { meta as aiWorkspaceMeta } from \"@/blocks/ai-workspace/meta\";\nimport { meta as analyticsMeta } from \"@/blocks/analytics/meta\";\nimport { meta as billingMeta } from \"@/blocks/billing/meta\";\nimport { meta as commandCenterMeta } from \"@/blocks/command-center/meta\";\nimport { meta as crmMeta } from \"@/blocks/crm/meta\";\nimport { meta as dashboardMeta } from \"@/blocks/dashboard/meta\";\nimport { meta as forgotPasswordMeta } from \"@/blocks/forgot-password/meta\";\nimport { meta as loginMeta } from \"@/blocks/login/meta\";\nimport { meta as onboardingMeta } from \"@/blocks/onboarding/meta\";\nimport { meta as pricingMeta } from \"@/blocks/pricing/meta\";\nimport { meta as settingsMeta } from \"@/blocks/settings/meta\";\nimport { meta as signupMeta } from \"@/blocks/signup/meta\";\n\n/**\n * Every block in the registry.\n *\n * Kept separate from `componentMetas` for the same reason blocks install into a\n * different directory: they are whole page sections, browsed and used\n * differently from the components they are assembled out of.\n *\n * `meta.test.ts` fails if a block directory exists that is missing from here.\n */\nexport const blockMetas: ComponentMeta[] = [\n adminDashboardMeta,\n adminUsersMeta,\n agentConsoleMeta,\n aiChatMeta,\n aiDashboardMeta,\n aiWorkspaceMeta,\n analyticsMeta,\n billingMeta,\n commandCenterMeta,\n crmMeta,\n dashboardMeta,\n forgotPasswordMeta,\n loginMeta,\n onboardingMeta,\n pricingMeta,\n settingsMeta,\n signupMeta,\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAa,aAA8B;CACzCA;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","names":[],"sources":["../../src/registry/components.ts"],"mappings":";;;;;;;;;;;;;;cAoFa,gBAAgB"}
1
+ {"version":3,"file":"components.d.ts","names":[],"sources":["../../src/registry/components.ts"],"mappings":";;;;;;;;;;;;;;cAyFa,gBAAgB"}
@@ -22,53 +22,58 @@ import { meta as meta$19 } from "../components/ai-tool/meta.js";
22
22
  import { meta as meta$20 } from "../components/alert/meta.js";
23
23
  import { meta as meta$21 } from "../components/avatar/meta.js";
24
24
  import { meta as meta$22 } from "../components/badge/meta.js";
25
- import { meta as meta$23 } from "../components/button/meta.js";
26
- import { meta as meta$24 } from "../components/calendar/meta.js";
27
- import { meta as meta$25 } from "../components/card/meta.js";
28
- import { meta as meta$26 } from "../components/checkbox/meta.js";
29
- import { meta as meta$27 } from "../components/code-block/meta.js";
30
- import { meta as meta$28 } from "../components/combobox/meta.js";
31
- import { meta as meta$29 } from "../components/command/meta.js";
32
- import { meta as meta$30 } from "../components/confirm-typed/meta.js";
33
- import { meta as meta$31 } from "../components/cron-editor/meta.js";
34
- import { meta as meta$32 } from "../components/data-table/meta.js";
35
- import { meta as meta$33 } from "../components/date-picker/meta.js";
36
- import { meta as meta$34 } from "../components/dialog/meta.js";
37
- import { meta as meta$35 } from "../components/diff-viewer/meta.js";
38
- import { meta as meta$36 } from "../components/dns-record/meta.js";
39
- import { meta as meta$37 } from "../components/drawer/meta.js";
40
- import { meta as meta$38 } from "../components/dropdown-menu/meta.js";
41
- import { meta as meta$39 } from "../components/empty-state/meta.js";
42
- import { meta as meta$40 } from "../components/file-upload/meta.js";
43
- import { meta as meta$41 } from "../components/form/meta.js";
44
- import { meta as meta$42 } from "../components/input/meta.js";
45
- import { meta as meta$43 } from "../components/label/meta.js";
46
- import { meta as meta$44 } from "../components/log-viewer/meta.js";
47
- import { meta as meta$45 } from "../components/meter/meta.js";
48
- import { meta as meta$46 } from "../components/metric-delta/meta.js";
49
- import { meta as meta$47 } from "../components/pagination/meta.js";
50
- import { meta as meta$48 } from "../components/permission-matrix/meta.js";
51
- import { meta as meta$49 } from "../components/popover/meta.js";
52
- import { meta as meta$50 } from "../components/progress/meta.js";
53
- import { meta as meta$51 } from "../components/radio-group/meta.js";
54
- import { meta as meta$52 } from "../components/record-diff/meta.js";
55
- import { meta as meta$53 } from "../components/secret-field/meta.js";
56
- import { meta as meta$54 } from "../components/select/meta.js";
57
- import { meta as meta$55 } from "../components/separator/meta.js";
58
- import { meta as meta$56 } from "../components/session-expiry/meta.js";
59
- import { meta as meta$57 } from "../components/sheet/meta.js";
60
- import { meta as meta$58 } from "../components/shortcut-recorder/meta.js";
61
- import { meta as meta$59 } from "../components/skeleton/meta.js";
62
- import { meta as meta$60 } from "../components/slider/meta.js";
63
- import { meta as meta$61 } from "../components/spinner/meta.js";
64
- import { meta as meta$62 } from "../components/switch/meta.js";
65
- import { meta as meta$63 } from "../components/sync-status/meta.js";
66
- import { meta as meta$64 } from "../components/table/meta.js";
67
- import { meta as meta$65 } from "../components/tabs/meta.js";
68
- import { meta as meta$66 } from "../components/tags-input/meta.js";
69
- import { meta as meta$67 } from "../components/time-range-picker/meta.js";
70
- import { meta as meta$68 } from "../components/toast/meta.js";
71
- import { meta as meta$69 } from "../components/tooltip/meta.js";
25
+ import { meta as meta$23 } from "../components/breadcrumb/meta.js";
26
+ import { meta as meta$24 } from "../components/button/meta.js";
27
+ import { meta as meta$25 } from "../components/calendar/meta.js";
28
+ import { meta as meta$26 } from "../components/card/meta.js";
29
+ import { meta as meta$27 } from "../components/checkbox/meta.js";
30
+ import { meta as meta$28 } from "../components/code-block/meta.js";
31
+ import { meta as meta$29 } from "../components/collapsible/meta.js";
32
+ import { meta as meta$30 } from "../components/combobox/meta.js";
33
+ import { meta as meta$31 } from "../components/command/meta.js";
34
+ import { meta as meta$32 } from "../components/confirm-typed/meta.js";
35
+ import { meta as meta$33 } from "../components/cron-editor/meta.js";
36
+ import { meta as meta$34 } from "../components/data-table/meta.js";
37
+ import { meta as meta$35 } from "../components/date-picker/meta.js";
38
+ import { meta as meta$36 } from "../components/direction/meta.js";
39
+ import { meta as meta$37 } from "../components/dialog/meta.js";
40
+ import { meta as meta$38 } from "../components/diff-viewer/meta.js";
41
+ import { meta as meta$39 } from "../components/dns-record/meta.js";
42
+ import { meta as meta$40 } from "../components/drawer/meta.js";
43
+ import { meta as meta$41 } from "../components/dropdown-menu/meta.js";
44
+ import { meta as meta$42 } from "../components/empty-state/meta.js";
45
+ import { meta as meta$43 } from "../components/file-upload/meta.js";
46
+ import { meta as meta$44 } from "../components/form/meta.js";
47
+ import { meta as meta$45 } from "../components/input/meta.js";
48
+ import { meta as meta$46 } from "../components/label/meta.js";
49
+ import { meta as meta$47 } from "../components/log-viewer/meta.js";
50
+ import { meta as meta$48 } from "../components/meter/meta.js";
51
+ import { meta as meta$49 } from "../components/metric-delta/meta.js";
52
+ import { meta as meta$50 } from "../components/pagination/meta.js";
53
+ import { meta as meta$51 } from "../components/permission-matrix/meta.js";
54
+ import { meta as meta$52 } from "../components/popover/meta.js";
55
+ import { meta as meta$53 } from "../components/progress/meta.js";
56
+ import { meta as meta$54 } from "../components/radio-group/meta.js";
57
+ import { meta as meta$55 } from "../components/record-diff/meta.js";
58
+ import { meta as meta$56 } from "../components/secret-field/meta.js";
59
+ import { meta as meta$57 } from "../components/select/meta.js";
60
+ import { meta as meta$58 } from "../components/separator/meta.js";
61
+ import { meta as meta$59 } from "../components/session-expiry/meta.js";
62
+ import { meta as meta$60 } from "../components/sidebar/meta.js";
63
+ import { meta as meta$61 } from "../components/sheet/meta.js";
64
+ import { meta as meta$62 } from "../components/shortcut-recorder/meta.js";
65
+ import { meta as meta$63 } from "../components/skeleton/meta.js";
66
+ import { meta as meta$64 } from "../components/slider/meta.js";
67
+ import { meta as meta$65 } from "../components/spinner/meta.js";
68
+ import { meta as meta$66 } from "../components/switch/meta.js";
69
+ import { meta as meta$67 } from "../components/sync-status/meta.js";
70
+ import { meta as meta$68 } from "../components/table/meta.js";
71
+ import { meta as meta$69 } from "../components/tabs/meta.js";
72
+ import { meta as meta$70 } from "../components/tags-input/meta.js";
73
+ import { meta as meta$71 } from "../components/time-range-picker/meta.js";
74
+ import { meta as meta$72 } from "../components/textarea/meta.js";
75
+ import { meta as meta$73 } from "../components/toast/meta.js";
76
+ import { meta as meta$74 } from "../components/tooltip/meta.js";
72
77
  import { blockMetas } from "./blocks.js";
73
78
  //#region src/registry/components.ts
74
79
  /**
@@ -119,8 +124,8 @@ const componentMetas = [
119
124
  meta$33,
120
125
  meta$34,
121
126
  meta$35,
122
- meta$36,
123
127
  meta$37,
128
+ meta$36,
124
129
  meta$38,
125
130
  meta$39,
126
131
  meta$40,
@@ -143,8 +148,8 @@ const componentMetas = [
143
148
  meta$57,
144
149
  meta$58,
145
150
  meta$59,
146
- meta$60,
147
151
  meta$61,
152
+ meta$60,
148
153
  meta$62,
149
154
  meta$63,
150
155
  meta$64,
@@ -152,7 +157,12 @@ const componentMetas = [
152
157
  meta$66,
153
158
  meta$67,
154
159
  meta$68,
155
- meta$69
160
+ meta$69,
161
+ meta$70,
162
+ meta$71,
163
+ meta$72,
164
+ meta$73,
165
+ meta$74
156
166
  ];
157
167
  //#endregion
158
168
  export { COMPONENT_CATEGORIES, COMPONENT_STATUSES, blockMetas, componentMetas };
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","names":["accordionMeta","activityFeedMeta","aiActionLedgerMeta","aiAgentPlanMeta","aiAgentStatusMeta","aiApprovalRequestMeta","aiConversationMeta","aiDisclosureMeta","aiExtractionReviewMeta","aiInlineCompletionMeta","aiMessageMeta","aiModelSelectorMeta","aiPromptInputMeta","aiReasoningMeta","aiResponseMeta","aiSourcesMeta","aiStructuredOutputMeta","aiSuggestedValueMeta","aiTokenUsageMeta","aiToolMeta","alertMeta","avatarMeta","badgeMeta","buttonMeta","calendarMeta","cardMeta","checkboxMeta","codeBlockMeta","comboboxMeta","commandMeta","confirmTypedMeta","cronEditorMeta","dataTableMeta","datePickerMeta","dialogMeta","diffViewerMeta","dnsRecordMeta","drawerMeta","dropdownMenuMeta","emptyStateMeta","fileUploadMeta","formMeta","inputMeta","labelMeta","logViewerMeta","meterMeta","metricDeltaMeta","paginationMeta","permissionMatrixMeta","popoverMeta","progressMeta","radioGroupMeta","recordDiffMeta","secretFieldMeta","selectMeta","separatorMeta","sessionExpiryMeta","sheetMeta","shortcutRecorderMeta","skeletonMeta","sliderMeta","spinnerMeta","switchMeta","syncStatusMeta","tableMeta","tabsMeta","tagsInputMeta","timeRangePickerMeta","toastMeta","tooltipMeta"],"sources":["../../src/registry/components.ts"],"sourcesContent":["import type { ComponentMeta } from \"./schema\";\n\nimport { meta as accordionMeta } from \"@/components/accordion/meta\";\nimport { meta as activityFeedMeta } from \"@/components/activity-feed/meta\";\nimport { meta as aiActionLedgerMeta } from \"@/components/ai-action-ledger/meta\";\nimport { meta as aiAgentPlanMeta } from \"@/components/ai-agent-plan/meta\";\nimport { meta as aiAgentStatusMeta } from \"@/components/ai-agent-status/meta\";\nimport { meta as aiApprovalRequestMeta } from \"@/components/ai-approval-request/meta\";\nimport { meta as aiConversationMeta } from \"@/components/ai-conversation/meta\";\nimport { meta as aiDisclosureMeta } from \"@/components/ai-disclosure/meta\";\nimport { meta as aiExtractionReviewMeta } from \"@/components/ai-extraction-review/meta\";\nimport { meta as aiInlineCompletionMeta } from \"@/components/ai-inline-completion/meta\";\nimport { meta as aiMessageMeta } from \"@/components/ai-message/meta\";\nimport { meta as aiModelSelectorMeta } from \"@/components/ai-model-selector/meta\";\nimport { meta as aiPromptInputMeta } from \"@/components/ai-prompt-input/meta\";\nimport { meta as aiReasoningMeta } from \"@/components/ai-reasoning/meta\";\nimport { meta as aiResponseMeta } from \"@/components/ai-response/meta\";\nimport { meta as aiSourcesMeta } from \"@/components/ai-sources/meta\";\nimport { meta as aiStructuredOutputMeta } from \"@/components/ai-structured-output/meta\";\nimport { meta as aiSuggestedValueMeta } from \"@/components/ai-suggested-value/meta\";\nimport { meta as aiTokenUsageMeta } from \"@/components/ai-token-usage/meta\";\nimport { meta as aiToolMeta } from \"@/components/ai-tool/meta\";\nimport { meta as alertMeta } from \"@/components/alert/meta\";\nimport { meta as avatarMeta } from \"@/components/avatar/meta\";\nimport { meta as badgeMeta } from \"@/components/badge/meta\";\nimport { meta as buttonMeta } from \"@/components/button/meta\";\nimport { meta as calendarMeta } from \"@/components/calendar/meta\";\nimport { meta as cardMeta } from \"@/components/card/meta\";\nimport { meta as checkboxMeta } from \"@/components/checkbox/meta\";\nimport { meta as codeBlockMeta } from \"@/components/code-block/meta\";\nimport { meta as comboboxMeta } from \"@/components/combobox/meta\";\nimport { meta as commandMeta } from \"@/components/command/meta\";\nimport { meta as confirmTypedMeta } from \"@/components/confirm-typed/meta\";\nimport { meta as cronEditorMeta } from \"@/components/cron-editor/meta\";\nimport { meta as dataTableMeta } from \"@/components/data-table/meta\";\nimport { meta as datePickerMeta } from \"@/components/date-picker/meta\";\nimport { meta as dialogMeta } from \"@/components/dialog/meta\";\nimport { meta as diffViewerMeta } from \"@/components/diff-viewer/meta\";\nimport { meta as dnsRecordMeta } from \"@/components/dns-record/meta\";\nimport { meta as drawerMeta } from \"@/components/drawer/meta\";\nimport { meta as dropdownMenuMeta } from \"@/components/dropdown-menu/meta\";\nimport { meta as emptyStateMeta } from \"@/components/empty-state/meta\";\nimport { meta as fileUploadMeta } from \"@/components/file-upload/meta\";\nimport { meta as formMeta } from \"@/components/form/meta\";\nimport { meta as inputMeta } from \"@/components/input/meta\";\nimport { meta as labelMeta } from \"@/components/label/meta\";\nimport { meta as logViewerMeta } from \"@/components/log-viewer/meta\";\nimport { meta as meterMeta } from \"@/components/meter/meta\";\nimport { meta as metricDeltaMeta } from \"@/components/metric-delta/meta\";\nimport { meta as paginationMeta } from \"@/components/pagination/meta\";\nimport { meta as permissionMatrixMeta } from \"@/components/permission-matrix/meta\";\nimport { meta as popoverMeta } from \"@/components/popover/meta\";\nimport { meta as progressMeta } from \"@/components/progress/meta\";\nimport { meta as radioGroupMeta } from \"@/components/radio-group/meta\";\nimport { meta as recordDiffMeta } from \"@/components/record-diff/meta\";\nimport { meta as secretFieldMeta } from \"@/components/secret-field/meta\";\nimport { meta as selectMeta } from \"@/components/select/meta\";\nimport { meta as separatorMeta } from \"@/components/separator/meta\";\nimport { meta as sessionExpiryMeta } from \"@/components/session-expiry/meta\";\nimport { meta as sheetMeta } from \"@/components/sheet/meta\";\nimport { meta as shortcutRecorderMeta } from \"@/components/shortcut-recorder/meta\";\nimport { meta as skeletonMeta } from \"@/components/skeleton/meta\";\nimport { meta as sliderMeta } from \"@/components/slider/meta\";\nimport { meta as spinnerMeta } from \"@/components/spinner/meta\";\nimport { meta as switchMeta } from \"@/components/switch/meta\";\nimport { meta as syncStatusMeta } from \"@/components/sync-status/meta\";\nimport { meta as tableMeta } from \"@/components/table/meta\";\nimport { meta as tabsMeta } from \"@/components/tabs/meta\";\nimport { meta as tagsInputMeta } from \"@/components/tags-input/meta\";\nimport { meta as timeRangePickerMeta } from \"@/components/time-range-picker/meta\";\nimport { meta as toastMeta } from \"@/components/toast/meta\";\nimport { meta as tooltipMeta } from \"@/components/tooltip/meta\";\n\n/**\n * Every component in the registry.\n *\n * An explicit list rather than a glob: the registry build runs in plain Node,\n * where bundler-only globbing is unavailable, and a static list is also what\n * lets the bundle tree-shake. `meta.test.ts` fails if a component directory\n * exists that is missing from here, so it cannot silently fall out of date.\n *\n * Identifiers carry a `Meta` suffix because component names include reserved\n * words — `switch` cannot be a binding name.\n */\nexport const componentMetas: ComponentMeta[] = [\n accordionMeta,\n activityFeedMeta,\n aiActionLedgerMeta,\n aiAgentPlanMeta,\n aiAgentStatusMeta,\n aiApprovalRequestMeta,\n aiConversationMeta,\n aiDisclosureMeta,\n aiExtractionReviewMeta,\n aiInlineCompletionMeta,\n aiMessageMeta,\n aiModelSelectorMeta,\n aiPromptInputMeta,\n aiReasoningMeta,\n aiResponseMeta,\n aiSourcesMeta,\n aiStructuredOutputMeta,\n aiSuggestedValueMeta,\n aiTokenUsageMeta,\n aiToolMeta,\n alertMeta,\n avatarMeta,\n badgeMeta,\n buttonMeta,\n calendarMeta,\n cardMeta,\n checkboxMeta,\n codeBlockMeta,\n comboboxMeta,\n commandMeta,\n confirmTypedMeta,\n cronEditorMeta,\n dataTableMeta,\n datePickerMeta,\n dialogMeta,\n diffViewerMeta,\n dnsRecordMeta,\n drawerMeta,\n dropdownMenuMeta,\n emptyStateMeta,\n fileUploadMeta,\n formMeta,\n inputMeta,\n labelMeta,\n logViewerMeta,\n meterMeta,\n metricDeltaMeta,\n paginationMeta,\n permissionMatrixMeta,\n popoverMeta,\n progressMeta,\n radioGroupMeta,\n recordDiffMeta,\n secretFieldMeta,\n selectMeta,\n separatorMeta,\n sessionExpiryMeta,\n sheetMeta,\n shortcutRecorderMeta,\n skeletonMeta,\n sliderMeta,\n spinnerMeta,\n switchMeta,\n syncStatusMeta,\n tableMeta,\n tabsMeta,\n tagsInputMeta,\n timeRangePickerMeta,\n toastMeta,\n tooltipMeta,\n];\n\n// This file is the `@dowel-ui/react/registry` entry point, so the block barrel is\n// re-exported here — the registry build reads both through one import.\nexport { blockMetas } from \"./blocks\";\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES } from \"./schema\";\nexport type { ComponentCategory, ComponentMeta, ComponentStatus } from \"./schema\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,MAAa,iBAAkC;CAC7CA;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACF"}
1
+ {"version":3,"file":"components.js","names":["accordionMeta","activityFeedMeta","aiActionLedgerMeta","aiAgentPlanMeta","aiAgentStatusMeta","aiApprovalRequestMeta","aiConversationMeta","aiDisclosureMeta","aiExtractionReviewMeta","aiInlineCompletionMeta","aiMessageMeta","aiModelSelectorMeta","aiPromptInputMeta","aiReasoningMeta","aiResponseMeta","aiSourcesMeta","aiStructuredOutputMeta","aiSuggestedValueMeta","aiTokenUsageMeta","aiToolMeta","alertMeta","avatarMeta","badgeMeta","breadcrumbMeta","buttonMeta","calendarMeta","cardMeta","checkboxMeta","codeBlockMeta","collapsibleMeta","comboboxMeta","commandMeta","confirmTypedMeta","cronEditorMeta","dataTableMeta","datePickerMeta","dialogMeta","directionMeta","diffViewerMeta","dnsRecordMeta","drawerMeta","dropdownMenuMeta","emptyStateMeta","fileUploadMeta","formMeta","inputMeta","labelMeta","logViewerMeta","meterMeta","metricDeltaMeta","paginationMeta","permissionMatrixMeta","popoverMeta","progressMeta","radioGroupMeta","recordDiffMeta","secretFieldMeta","selectMeta","separatorMeta","sessionExpiryMeta","sheetMeta","sidebarMeta","shortcutRecorderMeta","skeletonMeta","sliderMeta","spinnerMeta","switchMeta","syncStatusMeta","tableMeta","tabsMeta","tagsInputMeta","timeRangePickerMeta","textareaMeta","toastMeta","tooltipMeta"],"sources":["../../src/registry/components.ts"],"sourcesContent":["import type { ComponentMeta } from \"./schema\";\n\nimport { meta as accordionMeta } from \"@/components/accordion/meta\";\nimport { meta as activityFeedMeta } from \"@/components/activity-feed/meta\";\nimport { meta as aiActionLedgerMeta } from \"@/components/ai-action-ledger/meta\";\nimport { meta as aiAgentPlanMeta } from \"@/components/ai-agent-plan/meta\";\nimport { meta as aiAgentStatusMeta } from \"@/components/ai-agent-status/meta\";\nimport { meta as aiApprovalRequestMeta } from \"@/components/ai-approval-request/meta\";\nimport { meta as aiConversationMeta } from \"@/components/ai-conversation/meta\";\nimport { meta as aiDisclosureMeta } from \"@/components/ai-disclosure/meta\";\nimport { meta as aiExtractionReviewMeta } from \"@/components/ai-extraction-review/meta\";\nimport { meta as aiInlineCompletionMeta } from \"@/components/ai-inline-completion/meta\";\nimport { meta as aiMessageMeta } from \"@/components/ai-message/meta\";\nimport { meta as aiModelSelectorMeta } from \"@/components/ai-model-selector/meta\";\nimport { meta as aiPromptInputMeta } from \"@/components/ai-prompt-input/meta\";\nimport { meta as aiReasoningMeta } from \"@/components/ai-reasoning/meta\";\nimport { meta as aiResponseMeta } from \"@/components/ai-response/meta\";\nimport { meta as aiSourcesMeta } from \"@/components/ai-sources/meta\";\nimport { meta as aiStructuredOutputMeta } from \"@/components/ai-structured-output/meta\";\nimport { meta as aiSuggestedValueMeta } from \"@/components/ai-suggested-value/meta\";\nimport { meta as aiTokenUsageMeta } from \"@/components/ai-token-usage/meta\";\nimport { meta as aiToolMeta } from \"@/components/ai-tool/meta\";\nimport { meta as alertMeta } from \"@/components/alert/meta\";\nimport { meta as avatarMeta } from \"@/components/avatar/meta\";\nimport { meta as badgeMeta } from \"@/components/badge/meta\";\nimport { meta as breadcrumbMeta } from \"@/components/breadcrumb/meta\";\nimport { meta as buttonMeta } from \"@/components/button/meta\";\nimport { meta as calendarMeta } from \"@/components/calendar/meta\";\nimport { meta as cardMeta } from \"@/components/card/meta\";\nimport { meta as checkboxMeta } from \"@/components/checkbox/meta\";\nimport { meta as codeBlockMeta } from \"@/components/code-block/meta\";\nimport { meta as collapsibleMeta } from \"@/components/collapsible/meta\";\nimport { meta as comboboxMeta } from \"@/components/combobox/meta\";\nimport { meta as commandMeta } from \"@/components/command/meta\";\nimport { meta as confirmTypedMeta } from \"@/components/confirm-typed/meta\";\nimport { meta as cronEditorMeta } from \"@/components/cron-editor/meta\";\nimport { meta as dataTableMeta } from \"@/components/data-table/meta\";\nimport { meta as datePickerMeta } from \"@/components/date-picker/meta\";\nimport { meta as directionMeta } from \"@/components/direction/meta\";\nimport { meta as dialogMeta } from \"@/components/dialog/meta\";\nimport { meta as diffViewerMeta } from \"@/components/diff-viewer/meta\";\nimport { meta as dnsRecordMeta } from \"@/components/dns-record/meta\";\nimport { meta as drawerMeta } from \"@/components/drawer/meta\";\nimport { meta as dropdownMenuMeta } from \"@/components/dropdown-menu/meta\";\nimport { meta as emptyStateMeta } from \"@/components/empty-state/meta\";\nimport { meta as fileUploadMeta } from \"@/components/file-upload/meta\";\nimport { meta as formMeta } from \"@/components/form/meta\";\nimport { meta as inputMeta } from \"@/components/input/meta\";\nimport { meta as labelMeta } from \"@/components/label/meta\";\nimport { meta as logViewerMeta } from \"@/components/log-viewer/meta\";\nimport { meta as meterMeta } from \"@/components/meter/meta\";\nimport { meta as metricDeltaMeta } from \"@/components/metric-delta/meta\";\nimport { meta as paginationMeta } from \"@/components/pagination/meta\";\nimport { meta as permissionMatrixMeta } from \"@/components/permission-matrix/meta\";\nimport { meta as popoverMeta } from \"@/components/popover/meta\";\nimport { meta as progressMeta } from \"@/components/progress/meta\";\nimport { meta as radioGroupMeta } from \"@/components/radio-group/meta\";\nimport { meta as recordDiffMeta } from \"@/components/record-diff/meta\";\nimport { meta as secretFieldMeta } from \"@/components/secret-field/meta\";\nimport { meta as selectMeta } from \"@/components/select/meta\";\nimport { meta as separatorMeta } from \"@/components/separator/meta\";\nimport { meta as sessionExpiryMeta } from \"@/components/session-expiry/meta\";\nimport { meta as sidebarMeta } from \"@/components/sidebar/meta\";\nimport { meta as sheetMeta } from \"@/components/sheet/meta\";\nimport { meta as shortcutRecorderMeta } from \"@/components/shortcut-recorder/meta\";\nimport { meta as skeletonMeta } from \"@/components/skeleton/meta\";\nimport { meta as sliderMeta } from \"@/components/slider/meta\";\nimport { meta as spinnerMeta } from \"@/components/spinner/meta\";\nimport { meta as switchMeta } from \"@/components/switch/meta\";\nimport { meta as syncStatusMeta } from \"@/components/sync-status/meta\";\nimport { meta as tableMeta } from \"@/components/table/meta\";\nimport { meta as tabsMeta } from \"@/components/tabs/meta\";\nimport { meta as tagsInputMeta } from \"@/components/tags-input/meta\";\nimport { meta as timeRangePickerMeta } from \"@/components/time-range-picker/meta\";\nimport { meta as textareaMeta } from \"@/components/textarea/meta\";\nimport { meta as toastMeta } from \"@/components/toast/meta\";\nimport { meta as tooltipMeta } from \"@/components/tooltip/meta\";\n\n/**\n * Every component in the registry.\n *\n * An explicit list rather than a glob: the registry build runs in plain Node,\n * where bundler-only globbing is unavailable, and a static list is also what\n * lets the bundle tree-shake. `meta.test.ts` fails if a component directory\n * exists that is missing from here, so it cannot silently fall out of date.\n *\n * Identifiers carry a `Meta` suffix because component names include reserved\n * words — `switch` cannot be a binding name.\n */\nexport const componentMetas: ComponentMeta[] = [\n accordionMeta,\n activityFeedMeta,\n aiActionLedgerMeta,\n aiAgentPlanMeta,\n aiAgentStatusMeta,\n aiApprovalRequestMeta,\n aiConversationMeta,\n aiDisclosureMeta,\n aiExtractionReviewMeta,\n aiInlineCompletionMeta,\n aiMessageMeta,\n aiModelSelectorMeta,\n aiPromptInputMeta,\n aiReasoningMeta,\n aiResponseMeta,\n aiSourcesMeta,\n aiStructuredOutputMeta,\n aiSuggestedValueMeta,\n aiTokenUsageMeta,\n aiToolMeta,\n alertMeta,\n avatarMeta,\n badgeMeta,\n breadcrumbMeta,\n buttonMeta,\n calendarMeta,\n cardMeta,\n checkboxMeta,\n codeBlockMeta,\n collapsibleMeta,\n comboboxMeta,\n commandMeta,\n confirmTypedMeta,\n cronEditorMeta,\n dataTableMeta,\n datePickerMeta,\n dialogMeta,\n directionMeta,\n diffViewerMeta,\n dnsRecordMeta,\n drawerMeta,\n dropdownMenuMeta,\n emptyStateMeta,\n fileUploadMeta,\n formMeta,\n inputMeta,\n labelMeta,\n logViewerMeta,\n meterMeta,\n metricDeltaMeta,\n paginationMeta,\n permissionMatrixMeta,\n popoverMeta,\n progressMeta,\n radioGroupMeta,\n recordDiffMeta,\n secretFieldMeta,\n selectMeta,\n separatorMeta,\n sessionExpiryMeta,\n sheetMeta,\n sidebarMeta,\n shortcutRecorderMeta,\n skeletonMeta,\n sliderMeta,\n spinnerMeta,\n switchMeta,\n syncStatusMeta,\n tableMeta,\n tabsMeta,\n tagsInputMeta,\n timeRangePickerMeta,\n textareaMeta,\n toastMeta,\n tooltipMeta,\n];\n\n// This file is the `@dowel-ui/react/registry` entry point, so the block barrel is\n// re-exported here — the registry build reads both through one import.\nexport { blockMetas } from \"./blocks\";\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES } from \"./schema\";\nexport type { ComponentCategory, ComponentMeta, ComponentStatus } from \"./schema\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyFA,MAAa,iBAAkC;CAC7CA;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACF"}
@@ -36,6 +36,14 @@ interface ComponentMeta {
36
36
  files: string[];
37
37
  /** Accessibility notes surfaced on the docs page. */
38
38
  a11y?: string;
39
+ /**
40
+ * Whether the source is public.
41
+ *
42
+ * Omitted means `free`, and free is a promise: an item that has shipped
43
+ * installable without a licence stays that way. Marking an existing component
44
+ * `pro` breaks every project that already installs it.
45
+ */
46
+ access?: "free" | "pro";
39
47
  }
40
48
  /** Identity helper that gives editors autocomplete inside `meta.ts`. */
41
49
  declare function defineMeta<const T extends ComponentMeta>(meta: T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","names":[],"sources":["../../src/registry/schema.ts"],"mappings":";;;;;;;;;cASa;KAYD,4BAA4B;cAE3B;KAED,0BAA0B;UAErB;;EAEf;;;;;;;;EAQA;;EAEA;;EAEA;EACA,UAAU;EACV,QAAQ;;EAER;;EAEA;;EAEA;;EAEA;;;iBAIc,iBAAiB,UAAU,eAAe,MAAM,IAAI"}
1
+ {"version":3,"file":"schema.d.ts","names":[],"sources":["../../src/registry/schema.ts"],"mappings":";;;;;;;;;cASa;KAYD,4BAA4B;cAE3B;KAED,0BAA0B;UAErB;;EAEf;;;;;;;;EAQA;;EAEA;;EAEA;EACA,UAAU;EACV,QAAQ;;EAER;;EAEA;;EAEA;;EAEA;;;;;;;;EAQA;;;iBAIc,iBAAiB,UAAU,eAAe,MAAM,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../src/registry/schema.ts"],"sourcesContent":["/**\n * Registry metadata contract.\n *\n * Every component ships a `meta.ts` describing what the CLI must install\n * alongside it. This file defines the *type* only; `meta.test.ts` validates\n * every declaration against the source's real imports, so metadata cannot drift\n * from the code it describes. See docs/architecture/0003-registry-metadata.md.\n */\n\nexport const COMPONENT_CATEGORIES = [\n \"foundation\",\n \"display\",\n \"navigation\",\n \"overlay\",\n \"layout\",\n \"form\",\n \"feedback\",\n \"data\",\n \"ai\",\n] as const;\n\nexport type ComponentCategory = (typeof COMPONENT_CATEGORIES)[number];\n\nexport const COMPONENT_STATUSES = [\"stable\", \"beta\", \"experimental\"] as const;\n\nexport type ComponentStatus = (typeof COMPONENT_STATUSES)[number];\n\nexport interface ComponentMeta {\n /** Registry id. Must match the directory name and the CLI argument. */\n name: string;\n /**\n * What kind of registry entry this is.\n *\n * Components are the building blocks; blocks are whole sections assembled\n * from them. They install into different places and are browsed differently,\n * so the distinction is explicit rather than inferred from the category.\n */\n kind?: \"component\" | \"block\";\n /** Display name for docs and Storybook. */\n title: string;\n /** One sentence, used on listing pages and by `<cli> list`. */\n description: string;\n category: ComponentCategory;\n status: ComponentStatus;\n /** npm packages the source imports. Peer deps (react) are excluded. */\n dependencies: string[];\n /** Other registry components this one imports. */\n registryDependencies: string[];\n /** Files the CLI copies, relative to the component directory. */\n files: string[];\n /** Accessibility notes surfaced on the docs page. */\n a11y?: string;\n}\n\n/** Identity helper that gives editors autocomplete inside `meta.ts`. */\nexport function defineMeta<const T extends ComponentMeta>(meta: T): T {\n return meta;\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,MAAa,qBAAqB;CAAC;CAAU;CAAQ;AAAc;;AAgCnE,SAAgB,WAA0C,MAAY;CACpE,OAAO;AACT"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../src/registry/schema.ts"],"sourcesContent":["/**\n * Registry metadata contract.\n *\n * Every component ships a `meta.ts` describing what the CLI must install\n * alongside it. This file defines the *type* only; `meta.test.ts` validates\n * every declaration against the source's real imports, so metadata cannot drift\n * from the code it describes. See docs/architecture/0003-registry-metadata.md.\n */\n\nexport const COMPONENT_CATEGORIES = [\n \"foundation\",\n \"display\",\n \"navigation\",\n \"overlay\",\n \"layout\",\n \"form\",\n \"feedback\",\n \"data\",\n \"ai\",\n] as const;\n\nexport type ComponentCategory = (typeof COMPONENT_CATEGORIES)[number];\n\nexport const COMPONENT_STATUSES = [\"stable\", \"beta\", \"experimental\"] as const;\n\nexport type ComponentStatus = (typeof COMPONENT_STATUSES)[number];\n\nexport interface ComponentMeta {\n /** Registry id. Must match the directory name and the CLI argument. */\n name: string;\n /**\n * What kind of registry entry this is.\n *\n * Components are the building blocks; blocks are whole sections assembled\n * from them. They install into different places and are browsed differently,\n * so the distinction is explicit rather than inferred from the category.\n */\n kind?: \"component\" | \"block\";\n /** Display name for docs and Storybook. */\n title: string;\n /** One sentence, used on listing pages and by `<cli> list`. */\n description: string;\n category: ComponentCategory;\n status: ComponentStatus;\n /** npm packages the source imports. Peer deps (react) are excluded. */\n dependencies: string[];\n /** Other registry components this one imports. */\n registryDependencies: string[];\n /** Files the CLI copies, relative to the component directory. */\n files: string[];\n /** Accessibility notes surfaced on the docs page. */\n a11y?: string;\n /**\n * Whether the source is public.\n *\n * Omitted means `free`, and free is a promise: an item that has shipped\n * installable without a licence stays that way. Marking an existing component\n * `pro` breaks every project that already installs it.\n */\n access?: \"free\" | \"pro\";\n}\n\n/** Identity helper that gives editors autocomplete inside `meta.ts`. */\nexport function defineMeta<const T extends ComponentMeta>(meta: T): T {\n return meta;\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,MAAa,qBAAqB;CAAC;CAAU;CAAQ;AAAc;;AAwCnE,SAAgB,WAA0C,MAAY;CACpE,OAAO;AACT"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@dowel-ui/react",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
- "description": "Source-first React components for SaaS and AI products — 70 accessible components you install as code you own, not as a dependency.",
5
+ "description": "Source-first React components for SaaS and AI products — 75 accessible components you install as code you own, not as a dependency.",
6
6
  "keywords": [
7
7
  "react",
8
8
  "ui",
@@ -39,6 +39,7 @@
39
39
  "files": [
40
40
  "dist",
41
41
  "src",
42
+ "!src/blocks",
42
43
  "!src/**/*.test.ts",
43
44
  "!src/**/*.test.tsx",
44
45
  "!src/**/*.stories.tsx"
@@ -95,8 +96,8 @@
95
96
  "vite": "8.2.2",
96
97
  "vitest": "4.1.10",
97
98
  "zod": "4.5.4",
98
- "@dowel-ui/config": "0.5.0",
99
- "@dowel-ui/themes": "0.5.0"
99
+ "@dowel-ui/themes": "0.7.0",
100
+ "@dowel-ui/config": "0.7.0"
100
101
  },
101
102
  "scripts": {
102
103
  "build": "tsdown",
@@ -37,7 +37,7 @@ export function AccordionTrigger({ className, children, ...props }: AccordionTri
37
37
  <AccordionPrimitive.Trigger
38
38
  data-slot="accordion-trigger"
39
39
  className={cn(
40
- "flex flex-1 items-start justify-between gap-4 py-4 text-left text-sm font-medium",
40
+ "flex flex-1 items-start justify-between gap-4 py-4 text-start text-sm font-medium",
41
41
  "transition-colors duration-[var(--duration-fast)] hover:text-primary",
42
42
  "disabled:pointer-events-none disabled:opacity-55",
43
43
  "[&[data-state=open]>svg]:rotate-180",
@@ -29,7 +29,7 @@ export function ActivityItem({ className, last, ...props }: ActivityItemProps) {
29
29
  "relative flex gap-3 pb-6 last:pb-0",
30
30
  // The rail is a pseudo-element on the item, so it is decorative by
31
31
  // construction rather than by remembering an aria-hidden.
32
- "before:absolute before:top-7 before:bottom-1 before:left-[0.6875rem] before:w-px before:bg-border",
32
+ "before:absolute before:start-[0.6875rem] before:top-7 before:bottom-1 before:w-px before:bg-border",
33
33
  "last:before:hidden data-[last]:before:hidden",
34
34
  className,
35
35
  )}
@@ -456,7 +456,7 @@ function ReviewField({
456
456
  {sourced ? (
457
457
  <FieldButton
458
458
  aria-label={`Show in source — ${field.label}`}
459
- className="ml-auto"
459
+ className="ms-auto"
460
460
  onClick={onActivate}
461
461
  >
462
462
  Show in source
@@ -222,7 +222,7 @@ export function PromptInputSubmit({
222
222
  disabled={disabled}
223
223
  onClick={busy ? onStop : undefined}
224
224
  className={cn(
225
- "ml-auto grid size-8 shrink-0 place-items-center rounded-lg",
225
+ "ms-auto grid size-8 shrink-0 place-items-center rounded-lg",
226
226
  "bg-primary text-primary-foreground transition-colors duration-[var(--duration-fast)]",
227
227
  "hover:bg-primary-hover disabled:pointer-events-none disabled:opacity-55",
228
228
  focusRing,
@@ -98,7 +98,7 @@ export function ReasoningContent({
98
98
  )}
99
99
  {...props}
100
100
  >
101
- <div className="mt-2 border-l-2 border-border pl-3 text-sm whitespace-pre-wrap text-muted-foreground">
101
+ <div className="mt-2 border-s-2 border-border ps-3 text-sm whitespace-pre-wrap text-muted-foreground">
102
102
  {children}
103
103
  </div>
104
104
  </CollapsiblePrimitive.Content>
@@ -31,7 +31,7 @@ export function Response({ className, streaming, children, ...props }: ResponseP
31
31
  // Minimal prose styling for consumers who pass rendered Markdown.
32
32
  "[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-4",
33
33
  "[&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.9em]",
34
- "[&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-5 [&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-5",
34
+ "[&_ol]:my-2 [&_ol]:list-decimal [&_ol]:ps-5 [&_ul]:my-2 [&_ul]:list-disc [&_ul]:ps-5",
35
35
  "[&_p+p]:mt-3",
36
36
  className,
37
37
  )}
@@ -52,7 +52,7 @@ export function ResponseCaret({ className, ...props }: ComponentPropsWithRef<"sp
52
52
  aria-hidden="true"
53
53
  data-motion="indicator"
54
54
  className={cn(
55
- "ml-0.5 inline-block h-[1em] w-[2px] translate-y-[0.15em] animate-caret bg-current align-baseline",
55
+ "ms-0.5 inline-block h-[1em] w-[2px] translate-y-[0.15em] animate-caret bg-current align-baseline",
56
56
  className,
57
57
  )}
58
58
  {...props}
@@ -82,7 +82,7 @@ export function ToolHeader({
82
82
  <CollapsiblePrimitive.Trigger
83
83
  data-slot="tool-header"
84
84
  className={cn(
85
- "flex w-full items-center gap-2 px-3 py-2 text-left",
85
+ "flex w-full items-center gap-2 px-3 py-2 text-start",
86
86
  "transition-colors duration-[var(--duration-fast)] hover:bg-accent/50",
87
87
  "[&[data-state=open]>svg:last-child]:rotate-180",
88
88
  focusRing,
@@ -97,7 +97,7 @@ export function ToolHeader({
97
97
  <span
98
98
  data-slot="tool-status"
99
99
  className={cn(
100
- "ml-auto text-xs",
100
+ "ms-auto text-xs",
101
101
  status === "error" ? "text-destructive" : "text-muted-foreground",
102
102
  )}
103
103
  >