@softize/opus 12.10.0 → 13.0.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 (154) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/bin/lib/check.mjs +1098 -310
  3. package/bin/lib/copy.mjs +12 -5
  4. package/docs/adr/0003-dictionary-presentation-is-declared.md +3 -0
  5. package/docs/adr/0004-page-content-state-is-composed.md +65 -0
  6. package/docs/adr/0005-structural-surfaces-share-an-explicit-anatomy.md +180 -0
  7. package/docs/adr/0006-semantic-context-precedes-visual-variant.md +182 -0
  8. package/docs/adr/0007-toast-actions-form-an-ordered-collection.md +63 -0
  9. package/docs/adr/0008-hierarchical-navigation-is-composed-at-the-consumer-boundary.md +71 -0
  10. package/docs/radius-scale.md +1 -1
  11. package/package.json +1 -1
  12. package/registry/instructions/opus.md +5 -0
  13. package/registry/skills/build-opus-ui/SKILL.md +27 -16
  14. package/registry/skills/build-opus-ui/references/evaluations.md +16 -5
  15. package/registry/skills/build-opus-ui/references/ui-patterns.md +38 -15
  16. package/registry/skills/maintain-opus-docs/SKILL.md +83 -0
  17. package/registry/skills/maintain-opus-docs/agents/openai.yaml +4 -0
  18. package/registry/skills/maintain-opus-docs/references/editorial-standard.md +85 -0
  19. package/registry/skills/maintain-opus-docs/references/evaluations.md +34 -0
  20. package/registry/skills/maintain-opus-docs/scripts/audit-docs.mjs +81 -0
  21. package/registry/skills/model-opus-dictionary/SKILL.md +4 -2
  22. package/registry/skills/model-opus-dictionary/references/evaluations.md +4 -3
  23. package/registry/templates/app/src/App.tsx +1 -1
  24. package/src/core/dictionary.ts +52 -14
  25. package/src/core/index.ts +10 -0
  26. package/src/core/ui-context.ts +29 -0
  27. package/src/schema/drivers/zod.ts +17 -8
  28. package/src/ui/components/patterns/action-form-card.tsx +18 -12
  29. package/src/ui/components/patterns/confirm.tsx +163 -40
  30. package/src/ui/components/patterns/content-header.tsx +335 -61
  31. package/src/ui/components/patterns/data-state.tsx +23 -10
  32. package/src/ui/components/patterns/list.tsx +1097 -783
  33. package/src/ui/components/patterns/page-state.tsx +115 -0
  34. package/src/ui/components/patterns/page.tsx +231 -41
  35. package/src/ui/components/patterns/sidebar.tsx +357 -83
  36. package/src/ui/components/patterns/trigger.tsx +37 -30
  37. package/src/ui/components/patterns/view.tsx +7 -11
  38. package/src/ui/components/primitives/alert.tsx +298 -110
  39. package/src/ui/components/primitives/ask.tsx +2 -1
  40. package/src/ui/components/primitives/badge.tsx +91 -30
  41. package/src/ui/components/primitives/button.tsx +99 -60
  42. package/src/ui/components/primitives/calendar.tsx +39 -39
  43. package/src/ui/components/primitives/card.tsx +96 -23
  44. package/src/ui/components/primitives/detail.tsx +2 -2
  45. package/src/ui/components/primitives/dialog.tsx +196 -39
  46. package/src/ui/components/primitives/dictionary-value.tsx +9 -14
  47. package/src/ui/components/primitives/dot.tsx +74 -21
  48. package/src/ui/components/primitives/drawer.tsx +40 -24
  49. package/src/ui/components/primitives/empty.tsx +3 -3
  50. package/src/ui/components/primitives/item.tsx +135 -79
  51. package/src/ui/components/primitives/menu.tsx +11 -3
  52. package/src/ui/components/primitives/metric-card.tsx +133 -0
  53. package/src/ui/components/primitives/sonner.tsx +187 -8
  54. package/src/ui/components/primitives/table.tsx +2 -2
  55. package/src/ui/docs/DocBrowser.tsx +104 -25
  56. package/src/ui/docs/changelog.tsx +1 -1
  57. package/src/ui/docs/content/accordion.md +22 -16
  58. package/src/ui/docs/content/action-form-card.md +8 -8
  59. package/src/ui/docs/content/action-form-dialog.md +9 -9
  60. package/src/ui/docs/content/action-form.md +28 -34
  61. package/src/ui/docs/content/action-list-dialog.md +11 -6
  62. package/src/ui/docs/content/action-list.md +64 -39
  63. package/src/ui/docs/content/action-trigger.md +21 -14
  64. package/src/ui/docs/content/action-view.md +8 -8
  65. package/src/ui/docs/content/actions.md +9 -9
  66. package/src/ui/docs/content/ai.md +3 -3
  67. package/src/ui/docs/content/alert.md +54 -28
  68. package/src/ui/docs/content/aspect-ratio.md +4 -4
  69. package/src/ui/docs/content/audit.md +2 -2
  70. package/src/ui/docs/content/auth.md +3 -3
  71. package/src/ui/docs/content/avatar.md +34 -14
  72. package/src/ui/docs/content/badge.md +21 -22
  73. package/src/ui/docs/content/breadcrumb.md +13 -8
  74. package/src/ui/docs/content/button.md +93 -15
  75. package/src/ui/docs/content/calendar.md +5 -5
  76. package/src/ui/docs/content/card.md +6 -6
  77. package/src/ui/docs/content/carousel.md +16 -11
  78. package/src/ui/docs/content/chat.md +3 -3
  79. package/src/ui/docs/content/checkbox.md +7 -7
  80. package/src/ui/docs/content/cli.md +5 -5
  81. package/src/ui/docs/content/collapsible.md +8 -8
  82. package/src/ui/docs/content/command.md +16 -8
  83. package/src/ui/docs/content/composer.md +2 -2
  84. package/src/ui/docs/content/content.md +44 -0
  85. package/src/ui/docs/content/copyable.md +4 -3
  86. package/src/ui/docs/content/customization.md +7 -7
  87. package/src/ui/docs/content/cycle.md +3 -3
  88. package/src/ui/docs/content/data-state.md +11 -12
  89. package/src/ui/docs/content/data.md +26 -33
  90. package/src/ui/docs/content/detail.md +8 -5
  91. package/src/ui/docs/content/dialog.md +339 -31
  92. package/src/ui/docs/content/dictionary-value.md +19 -18
  93. package/src/ui/docs/content/dock.md +3 -3
  94. package/src/ui/docs/content/dot.md +7 -7
  95. package/src/ui/docs/content/drawer.md +32 -16
  96. package/src/ui/docs/content/empty-value.md +2 -2
  97. package/src/ui/docs/content/empty.md +19 -12
  98. package/src/ui/docs/content/events.md +4 -4
  99. package/src/ui/docs/content/field.md +34 -12
  100. package/src/ui/docs/content/getting-started.md +1 -1
  101. package/src/ui/docs/content/icon-picker.md +8 -4
  102. package/src/ui/docs/content/input-otp.md +20 -12
  103. package/src/ui/docs/content/input.md +121 -9
  104. package/src/ui/docs/content/item.md +64 -24
  105. package/src/ui/docs/content/kbd.md +19 -11
  106. package/src/ui/docs/content/label.md +5 -3
  107. package/src/ui/docs/content/log.md +4 -4
  108. package/src/ui/docs/content/markdown.md +7 -6
  109. package/src/ui/docs/content/mcp.md +13 -15
  110. package/src/ui/docs/content/menu.md +36 -17
  111. package/src/ui/docs/content/metric-card.md +41 -0
  112. package/src/ui/docs/content/observability.md +2 -2
  113. package/src/ui/docs/content/page.md +93 -10
  114. package/src/ui/docs/content/pagination.md +22 -17
  115. package/src/ui/docs/content/popover.md +16 -8
  116. package/src/ui/docs/content/progress.md +7 -5
  117. package/src/ui/docs/content/queue.md +5 -5
  118. package/src/ui/docs/content/radio-group.md +20 -12
  119. package/src/ui/docs/content/router.md +11 -6
  120. package/src/ui/docs/content/scheduler.md +4 -5
  121. package/src/ui/docs/content/scroll-area.md +12 -7
  122. package/src/ui/docs/content/select.md +42 -29
  123. package/src/ui/docs/content/semantic-context.md +63 -0
  124. package/src/ui/docs/content/separator.md +5 -5
  125. package/src/ui/docs/content/sidebar.md +325 -56
  126. package/src/ui/docs/content/skeleton.md +5 -4
  127. package/src/ui/docs/content/slider.md +8 -7
  128. package/src/ui/docs/content/spinner.md +8 -8
  129. package/src/ui/docs/content/split.md +8 -5
  130. package/src/ui/docs/content/storage.md +6 -8
  131. package/src/ui/docs/content/switch.md +8 -7
  132. package/src/ui/docs/content/table.md +16 -6
  133. package/src/ui/docs/content/tabs.md +28 -14
  134. package/src/ui/docs/content/testing.md +9 -11
  135. package/src/ui/docs/content/textarea.md +5 -4
  136. package/src/ui/docs/content/toast.md +47 -13
  137. package/src/ui/docs/content/toggle.md +75 -7
  138. package/src/ui/docs/content/tokens.md +31 -3
  139. package/src/ui/docs/content/tooltip.md +19 -11
  140. package/src/ui/docs/content/truncate.md +7 -8
  141. package/src/ui/docs/content/ui.md +10 -9
  142. package/src/ui/docs/content/upgrading.md +7 -8
  143. package/src/ui/docs/doc-client.tsx +2 -2
  144. package/src/ui/docs/registry.tsx +580 -229
  145. package/src/ui/lib/semantic-context.ts +30 -0
  146. package/src/ui/meta.ts +278 -286
  147. package/src/ui/react.tsx +377 -111
  148. package/src/ui/theme.css +116 -0
  149. package/src/ui/components/primitives/alert-dialog.tsx +0 -190
  150. package/src/ui/docs/content/alert-dialog.md +0 -73
  151. package/src/ui/docs/content/button-group.md +0 -71
  152. package/src/ui/docs/content/confirm.md +0 -120
  153. package/src/ui/docs/content/input-group.md +0 -78
  154. package/src/ui/docs/content/toggle-group.md +0 -81
package/src/ui/react.tsx CHANGED
@@ -5,28 +5,41 @@
5
5
  * `meta` de cada componente NÃO é re-exportado aqui de propósito — é metadado de
6
6
  * build-time (lido pelo manifesto/MCP da fonte), fora do bundle de runtime.
7
7
  */
8
- export * from './drivers/react.tsx'
8
+ export * from "./drivers/react.tsx";
9
9
 
10
10
  // Utilitário
11
- export { cn } from './lib/cn.ts'
11
+ export { cn } from "./lib/cn.ts";
12
12
 
13
13
  // Primitivos
14
- export { Button, buttonVariants } from './components/primitives/button.tsx'
15
- export type { ButtonProps } from './components/primitives/button.tsx'
16
- export type { ControlShape } from './components/primitives/control.ts'
14
+ export { Button, buttonVariants } from "./components/primitives/button.tsx";
15
+ export type {
16
+ ButtonProps,
17
+ ButtonContext,
18
+ ButtonVariant,
19
+ ButtonSize,
20
+ } from "./components/primitives/button.tsx";
21
+ export type { ControlShape } from "./components/primitives/control.ts";
17
22
 
18
- export { Input } from './components/primitives/input.tsx'
23
+ export { Input } from "./components/primitives/input.tsx";
19
24
 
20
- export { Chat } from './components/primitives/chat.tsx'
21
- export type { ChatProps, ChatMessage, ChatArtifact, ChatTranscriptItem } from './components/primitives/chat.tsx'
22
- export { Ask } from './components/primitives/ask.tsx'
23
- export type { AskProps } from './components/primitives/ask.tsx'
24
- export { Composer } from './components/primitives/composer.tsx'
25
- export type { ComposerProps } from './components/primitives/composer.tsx'
26
- export { Copyable } from './components/primitives/copyable.tsx'
27
- export type { CopyableProps } from './components/primitives/copyable.tsx'
28
- export { IconPicker, iconPickerIcons } from './components/primitives/icon-picker.tsx'
29
- export type { IconPickerProps } from './components/primitives/icon-picker.tsx'
25
+ export { Chat } from "./components/primitives/chat.tsx";
26
+ export type {
27
+ ChatProps,
28
+ ChatMessage,
29
+ ChatArtifact,
30
+ ChatTranscriptItem,
31
+ } from "./components/primitives/chat.tsx";
32
+ export { Ask } from "./components/primitives/ask.tsx";
33
+ export type { AskProps } from "./components/primitives/ask.tsx";
34
+ export { Composer } from "./components/primitives/composer.tsx";
35
+ export type { ComposerProps } from "./components/primitives/composer.tsx";
36
+ export { Copyable } from "./components/primitives/copyable.tsx";
37
+ export type { CopyableProps } from "./components/primitives/copyable.tsx";
38
+ export {
39
+ IconPicker,
40
+ iconPickerIcons,
41
+ } from "./components/primitives/icon-picker.tsx";
42
+ export type { IconPickerProps } from "./components/primitives/icon-picker.tsx";
30
43
 
31
44
  export {
32
45
  Command,
@@ -38,28 +51,38 @@ export {
38
51
  CommandItem,
39
52
  CommandSeparator,
40
53
  CommandShortcut,
41
- } from './components/primitives/command.tsx'
54
+ } from "./components/primitives/command.tsx";
42
55
 
43
- export { Textarea } from './components/primitives/textarea.tsx'
56
+ export { Textarea } from "./components/primitives/textarea.tsx";
44
57
 
45
- export { Label } from './components/primitives/label.tsx'
58
+ export { Label } from "./components/primitives/label.tsx";
46
59
 
47
- export { Badge, badgeVariants } from './components/primitives/badge.tsx'
48
- export type { BadgeProps } from './components/primitives/badge.tsx'
60
+ export { Badge, badgeVariants } from "./components/primitives/badge.tsx";
61
+ export type {
62
+ BadgeProps,
63
+ BadgeContext,
64
+ BadgeVariant,
65
+ } from "./components/primitives/badge.tsx";
49
66
 
50
- export { DictionaryValue } from './components/primitives/dictionary-value.tsx'
51
- export { EmptyValue, isAbsentValue } from './components/primitives/empty-value.tsx'
52
- export type { EmptyValueProps } from './components/primitives/empty-value.tsx'
53
- export type { DictionaryValueProps, DictionaryValueSource } from './components/primitives/dictionary-value.tsx'
67
+ export { DictionaryValue } from "./components/primitives/dictionary-value.tsx";
68
+ export {
69
+ EmptyValue,
70
+ isAbsentValue,
71
+ } from "./components/primitives/empty-value.tsx";
72
+ export type { EmptyValueProps } from "./components/primitives/empty-value.tsx";
73
+ export type {
74
+ DictionaryValueProps,
75
+ DictionaryValueSource,
76
+ } from "./components/primitives/dictionary-value.tsx";
54
77
 
55
- export { DetailField, DetailGroup } from './components/primitives/detail.tsx'
78
+ export { DetailField, DetailGroup } from "./components/primitives/detail.tsx";
56
79
  export type {
57
80
  DetailFieldProps,
58
81
  DetailGroupColumns,
59
82
  DetailGroupOrientation,
60
83
  DetailGroupProps,
61
84
  DetailGroupVariant,
62
- } from './components/primitives/detail.tsx'
85
+ } from "./components/primitives/detail.tsx";
63
86
 
64
87
  export {
65
88
  Card,
@@ -67,12 +90,32 @@ export {
67
90
  CardTitle,
68
91
  CardDescription,
69
92
  CardAction,
93
+ CardBody,
70
94
  CardContent,
71
95
  CardFooter,
72
- } from './components/primitives/card.tsx'
96
+ } from "./components/primitives/card.tsx";
73
97
 
74
- export { Alert, AlertTitle, AlertDescription, alertVariants } from './components/primitives/alert.tsx'
75
- export type { AlertProps } from './components/primitives/alert.tsx'
98
+ export { MetricCard } from "./components/primitives/metric-card.tsx";
99
+ export type {
100
+ MetricCardProps,
101
+ MetricCardContext,
102
+ MetricCardTone,
103
+ } from "./components/primitives/metric-card.tsx";
104
+
105
+ export {
106
+ Alert,
107
+ AlertActions,
108
+ AlertTitle,
109
+ AlertDescription,
110
+ AlertHeader,
111
+ AlertMedia,
112
+ alertVariants,
113
+ } from "./components/primitives/alert.tsx";
114
+ export type {
115
+ AlertProps,
116
+ AlertContext,
117
+ AlertVariant,
118
+ } from "./components/primitives/alert.tsx";
76
119
 
77
120
  export {
78
121
  Dialog,
@@ -82,11 +125,17 @@ export {
82
125
  DialogOverlay,
83
126
  DialogContent,
84
127
  DialogHeader,
128
+ DialogMedia,
85
129
  DialogBody,
86
130
  DialogFooter,
87
131
  DialogTitle,
88
132
  DialogDescription,
89
- } from './components/primitives/dialog.tsx'
133
+ } from "./components/primitives/dialog.tsx";
134
+ export type {
135
+ DialogProps,
136
+ DialogCloseProps,
137
+ DialogMode,
138
+ } from "./components/primitives/dialog.tsx";
90
139
 
91
140
  export {
92
141
  Menu,
@@ -104,7 +153,7 @@ export {
104
153
  MenuLabel,
105
154
  MenuSeparator,
106
155
  MenuShortcut,
107
- } from './components/primitives/menu.tsx'
156
+ } from "./components/primitives/menu.tsx";
108
157
 
109
158
  export {
110
159
  Popover,
@@ -114,30 +163,30 @@ export {
114
163
  PopoverHeader,
115
164
  PopoverTitle,
116
165
  PopoverDescription,
117
- } from './components/primitives/popover.tsx'
166
+ } from "./components/primitives/popover.tsx";
118
167
 
119
168
  export {
120
169
  TooltipProvider,
121
170
  Tooltip,
122
171
  TooltipTrigger,
123
172
  TooltipContent,
124
- } from './components/primitives/tooltip.tsx'
173
+ } from "./components/primitives/tooltip.tsx";
125
174
 
126
- export { Checkbox } from './components/primitives/checkbox.tsx'
175
+ export { Checkbox } from "./components/primitives/checkbox.tsx";
127
176
 
128
- export { Separator } from './components/primitives/separator.tsx'
177
+ export { Separator } from "./components/primitives/separator.tsx";
129
178
 
130
179
  export {
131
180
  Tabs,
132
181
  TabsList,
133
182
  TabsTrigger,
134
183
  TabsContent,
135
- } from './components/primitives/tabs.tsx'
184
+ } from "./components/primitives/tabs.tsx";
136
185
 
137
- export { Skeleton } from './components/primitives/skeleton.tsx'
186
+ export { Skeleton } from "./components/primitives/skeleton.tsx";
138
187
 
139
- export { Spinner } from './components/primitives/spinner.tsx'
140
- export type { SpinnerProps } from './components/primitives/spinner.tsx'
188
+ export { Spinner } from "./components/primitives/spinner.tsx";
189
+ export type { SpinnerProps } from "./components/primitives/spinner.tsx";
141
190
 
142
191
  export {
143
192
  Table,
@@ -148,110 +197,327 @@ export {
148
197
  TableHead,
149
198
  TableCell,
150
199
  TableCaption,
151
- } from './components/primitives/table.tsx'
152
- export type { TableProps } from './components/primitives/table.tsx'
200
+ } from "./components/primitives/table.tsx";
201
+ export type { TableProps } from "./components/primitives/table.tsx";
153
202
 
154
203
  // UM seletor: `native` (menu do SO), `searchable` (busca), `multiple` (chips) e
155
204
  // `variant="ghost"` (barra de composer) são PROPS, não componentes. Ver select.tsx.
156
- export { Select } from './components/primitives/select.tsx'
157
- export type { SelectProps, SelectOption } from './components/primitives/select.tsx'
205
+ export { Select } from "./components/primitives/select.tsx";
206
+ export type {
207
+ SelectProps,
208
+ SelectOption,
209
+ } from "./components/primitives/select.tsx";
158
210
 
159
- export { Toaster, toast } from './components/primitives/sonner.tsx'
160
- export { Markdown } from './components/primitives/markdown.tsx'
211
+ export { Toaster, toast } from "./components/primitives/sonner.tsx";
212
+ export type {
213
+ ToastAction,
214
+ ToastOptions,
215
+ } from "./components/primitives/sonner.tsx";
216
+ export { Markdown } from "./components/primitives/markdown.tsx";
161
217
 
162
218
  // shadcn (lote inicial — byte-fiéis via registry JSON, locked no registry.lock.json)
163
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './components/primitives/accordion.tsx'
164
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './components/primitives/alert-dialog.tsx'
165
- export { AspectRatio } from './components/primitives/aspect-ratio.tsx'
166
- export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from './components/primitives/avatar.tsx'
167
- export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from './components/primitives/breadcrumb.tsx'
168
- export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants } from './components/primitives/button-group.tsx'
169
- export { Calendar, CalendarDayButton } from './components/primitives/calendar.tsx'
170
- export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from './components/primitives/carousel.tsx'
171
- export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './components/primitives/collapsible.tsx'
172
- export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger } from './components/primitives/drawer.tsx'
173
- export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from './components/primitives/empty.tsx'
174
- export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle } from './components/primitives/field.tsx'
175
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from './components/primitives/input-group.tsx'
176
- export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from './components/primitives/input-otp.tsx'
177
- export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle } from './components/primitives/item.tsx'
178
- export { Kbd, KbdGroup } from './components/primitives/kbd.tsx'
179
- export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from './components/primitives/pagination.tsx'
180
- export type { PaginationLinkProps, PaginationControlProps } from './components/primitives/pagination.tsx'
181
- export { Progress } from './components/primitives/progress.tsx'
182
- export { RadioGroup, RadioGroupItem } from './components/primitives/radio-group.tsx'
183
- export { ScrollArea, ScrollBar } from './components/primitives/scroll-area.tsx'
184
- export { Slider } from './components/primitives/slider.tsx'
185
- export { Switch } from './components/primitives/switch.tsx'
186
- export { Toggle, toggleVariants } from './components/primitives/toggle.tsx'
187
- export { ToggleGroup, ToggleGroupItem } from './components/primitives/toggle-group.tsx'
188
- export { Truncate } from './components/primitives/truncate.tsx'
189
- export type { TruncateProps } from './components/primitives/truncate.tsx'
219
+ export {
220
+ Accordion,
221
+ AccordionContent,
222
+ AccordionItem,
223
+ AccordionTrigger,
224
+ } from "./components/primitives/accordion.tsx";
225
+ export { AspectRatio } from "./components/primitives/aspect-ratio.tsx";
226
+ export {
227
+ Avatar,
228
+ AvatarBadge,
229
+ AvatarFallback,
230
+ AvatarGroup,
231
+ AvatarGroupCount,
232
+ AvatarImage,
233
+ } from "./components/primitives/avatar.tsx";
234
+ export {
235
+ Breadcrumb,
236
+ BreadcrumbEllipsis,
237
+ BreadcrumbItem,
238
+ BreadcrumbLink,
239
+ BreadcrumbList,
240
+ BreadcrumbPage,
241
+ BreadcrumbSeparator,
242
+ } from "./components/primitives/breadcrumb.tsx";
243
+ export {
244
+ ButtonGroup,
245
+ ButtonGroupSeparator,
246
+ ButtonGroupText,
247
+ buttonGroupVariants,
248
+ } from "./components/primitives/button-group.tsx";
249
+ export {
250
+ Calendar,
251
+ CalendarDayButton,
252
+ } from "./components/primitives/calendar.tsx";
253
+ export {
254
+ Carousel,
255
+ CarouselContent,
256
+ CarouselItem,
257
+ CarouselNext,
258
+ CarouselPrevious,
259
+ } from "./components/primitives/carousel.tsx";
260
+ export {
261
+ Collapsible,
262
+ CollapsibleContent,
263
+ CollapsibleTrigger,
264
+ } from "./components/primitives/collapsible.tsx";
265
+ export {
266
+ Drawer,
267
+ DrawerClose,
268
+ DrawerContent,
269
+ DrawerDescription,
270
+ DrawerFooter,
271
+ DrawerHeader,
272
+ DrawerBody,
273
+ DrawerTitle,
274
+ DrawerTrigger,
275
+ } from "./components/primitives/drawer.tsx";
276
+ export {
277
+ Empty,
278
+ EmptyActions,
279
+ EmptyDescription,
280
+ EmptyHeader,
281
+ EmptyMedia,
282
+ EmptyTitle,
283
+ } from "./components/primitives/empty.tsx";
284
+ export {
285
+ Field,
286
+ FieldContent,
287
+ FieldDescription,
288
+ FieldError,
289
+ FieldGroup,
290
+ FieldLabel,
291
+ FieldLegend,
292
+ FieldSeparator,
293
+ FieldSet,
294
+ FieldTitle,
295
+ } from "./components/primitives/field.tsx";
296
+ export {
297
+ InputGroup,
298
+ InputGroupAddon,
299
+ InputGroupButton,
300
+ InputGroupInput,
301
+ InputGroupText,
302
+ InputGroupTextarea,
303
+ } from "./components/primitives/input-group.tsx";
304
+ export {
305
+ InputOTP,
306
+ InputOTPGroup,
307
+ InputOTPSeparator,
308
+ InputOTPSlot,
309
+ } from "./components/primitives/input-otp.tsx";
310
+ export {
311
+ Item,
312
+ ItemActions,
313
+ ItemBody,
314
+ ItemContent,
315
+ ItemDescription,
316
+ ItemFooter,
317
+ ItemGroup,
318
+ ItemHeader,
319
+ ItemMedia,
320
+ ItemSeparator,
321
+ ItemTitle,
322
+ } from "./components/primitives/item.tsx";
323
+ export { Kbd, KbdGroup } from "./components/primitives/kbd.tsx";
324
+ export {
325
+ Pagination,
326
+ PaginationContent,
327
+ PaginationEllipsis,
328
+ PaginationItem,
329
+ PaginationLink,
330
+ PaginationNext,
331
+ PaginationPrevious,
332
+ } from "./components/primitives/pagination.tsx";
333
+ export type {
334
+ PaginationLinkProps,
335
+ PaginationControlProps,
336
+ } from "./components/primitives/pagination.tsx";
337
+ export { Progress } from "./components/primitives/progress.tsx";
338
+ export {
339
+ RadioGroup,
340
+ RadioGroupItem,
341
+ } from "./components/primitives/radio-group.tsx";
342
+ export { ScrollArea, ScrollBar } from "./components/primitives/scroll-area.tsx";
343
+ export { Slider } from "./components/primitives/slider.tsx";
344
+ export { Switch } from "./components/primitives/switch.tsx";
345
+ export { Toggle, toggleVariants } from "./components/primitives/toggle.tsx";
346
+ export {
347
+ ToggleGroup,
348
+ ToggleGroupItem,
349
+ } from "./components/primitives/toggle-group.tsx";
350
+ export { Truncate } from "./components/primitives/truncate.tsx";
351
+ export type { TruncateProps } from "./components/primitives/truncate.tsx";
190
352
 
191
353
  // A medição de transbordo por trás do Truncate, exposta para composições que precisam
192
354
  // do sinal de corte sem o tooltip — por exemplo, esmaecer um rótulo com `truncate-fade`.
193
- export { useOverflowing } from './lib/overflow.ts'
355
+ export { useOverflowing } from "./lib/overflow.ts";
194
356
 
195
357
  // Patterns (renderizam actions a partir do spec)
196
- export { ActionForm, ActionFormField, useActionFormContext } from './components/patterns/form.tsx'
197
- export type { ActionFormProps, ActionFormFieldProps, ActionFormContextValue } from './components/patterns/form.tsx'
198
-
199
- export { ActionFormDialog } from './components/patterns/form-dialog.tsx'
200
- export type { ActionFormDialogProps } from './components/patterns/form-dialog.tsx'
201
-
202
- export { ActionFormCard } from './components/patterns/action-form-card.tsx'
203
- export type { ActionFormCardProps } from './components/patterns/action-form-card.tsx'
358
+ export {
359
+ ActionForm,
360
+ ActionFormField,
361
+ useActionFormContext,
362
+ } from "./components/patterns/form.tsx";
363
+ export type {
364
+ ActionFormProps,
365
+ ActionFormFieldProps,
366
+ ActionFormContextValue,
367
+ } from "./components/patterns/form.tsx";
204
368
 
205
- export { ActionFilterBar, ActionList, emptyListState, presetRange, listParamsToState, listStateToParams } from './components/patterns/list.tsx'
206
- export type { ActionFilterBarProps, ActionFilterState, ActionListProps, ActionListColumn, ActionListState, ActionListView, ActionListBatchAction, ListActionLike } from './components/patterns/list.tsx'
369
+ export { ActionFormDialog } from "./components/patterns/form-dialog.tsx";
370
+ export type { ActionFormDialogProps } from "./components/patterns/form-dialog.tsx";
207
371
 
208
- export { ActionView } from './components/patterns/view.tsx'
209
- export type { ActionViewProps } from './components/patterns/view.tsx'
372
+ export { ActionFormCard } from "./components/patterns/action-form-card.tsx";
373
+ export type { ActionFormCardProps } from "./components/patterns/action-form-card.tsx";
210
374
 
211
- export { ActionTrigger } from './components/patterns/trigger.tsx'
212
- export { dialog, DialogHost, confirm, ConfirmHost } from './components/patterns/confirm.tsx'
213
- export type { AlertOptions, ConfirmOptions, PromptOptions } from './components/patterns/confirm.tsx'
214
- export type { ActionTriggerProps } from './components/patterns/trigger.tsx'
375
+ export {
376
+ ActionFilterBar,
377
+ ActionList,
378
+ emptyListState,
379
+ presetRange,
380
+ listParamsToState,
381
+ listStateToParams,
382
+ } from "./components/patterns/list.tsx";
383
+ export type {
384
+ ActionFilterBarProps,
385
+ ActionFilterState,
386
+ ActionListProps,
387
+ ActionListColumn,
388
+ ActionListState,
389
+ ActionListView,
390
+ ActionListBatchAction,
391
+ ListActionLike,
392
+ } from "./components/patterns/list.tsx";
393
+
394
+ export { ActionView } from "./components/patterns/view.tsx";
395
+ export type { ActionViewProps } from "./components/patterns/view.tsx";
396
+
397
+ export { ActionTrigger } from "./components/patterns/trigger.tsx";
398
+ export {
399
+ dialog,
400
+ DialogHost,
401
+ confirm,
402
+ ConfirmHost,
403
+ } from "./components/patterns/confirm.tsx";
404
+ export type {
405
+ AlertOptions,
406
+ ChooseOptions,
407
+ ConfirmOptions,
408
+ DialogChoice,
409
+ PromptOptions,
410
+ } from "./components/patterns/confirm.tsx";
411
+ export type { ActionTriggerProps } from "./components/patterns/trigger.tsx";
215
412
 
216
413
  // Listagem em modal: ListAction query-backed + chrome (toolbar/estados derivados).
217
- export { ActionListDialog } from './components/patterns/action-list-dialog.tsx'
218
- export type { ActionListDialogProps } from './components/patterns/action-list-dialog.tsx'
414
+ export { ActionListDialog } from "./components/patterns/action-list-dialog.tsx";
415
+ export type { ActionListDialogProps } from "./components/patterns/action-list-dialog.tsx";
219
416
 
220
417
  // Estado de carga (carregando/vazio/erro → conteúdo) — o "antes" do conteúdo.
221
- export { DataState } from './components/patterns/data-state.tsx'
222
- export type { DataStateProps } from './components/patterns/data-state.tsx'
418
+ export { DataState } from "./components/patterns/data-state.tsx";
419
+ export type { DataStateProps } from "./components/patterns/data-state.tsx";
223
420
 
224
421
  // Esqueleto de página do back-office (main + container + header título/descrição/ação).
225
- export { Page } from './components/patterns/page.tsx'
226
- export type { PageProps } from './components/patterns/page.tsx'
422
+ export {
423
+ Page,
424
+ PageHeader,
425
+ PageTitle,
426
+ PageDescription,
427
+ PageMeta,
428
+ PageActions,
429
+ PageBody,
430
+ } from "./components/patterns/page.tsx";
431
+ export type { PageProps } from "./components/patterns/page.tsx";
432
+
433
+ // Estado integral do conteúdo de Page (loading/error/empty/ready), sem acoplar Page a dados.
434
+ export { PageState } from "./components/patterns/page-state.tsx";
435
+ export type {
436
+ PageStateProps,
437
+ PageStateStatus,
438
+ } from "./components/patterns/page-state.tsx";
227
439
 
228
- // Cabeçalho de conteúdo em duas hierarquias visuais, sem impor espaçamento externo.
229
- export { ContentHeader } from './components/patterns/content-header.tsx'
440
+ // Região de conteúdo composta; shorthand e slots explícitos compartilham a mesma anatomia.
441
+ export {
442
+ Content,
443
+ ContentHeader,
444
+ ContentTitle,
445
+ ContentDescription,
446
+ ContentMeta,
447
+ ContentActions,
448
+ ContentBody,
449
+ } from "./components/patterns/content-header.tsx";
230
450
  export type {
451
+ ContentProps,
231
452
  ContentHeaderProps,
232
453
  ContentHeaderLevel,
233
454
  ContentHeaderVariant,
234
- } from './components/patterns/content-header.tsx'
455
+ } from "./components/patterns/content-header.tsx";
235
456
 
236
457
  // Layout composicional: Split decide a relação espacial; Pane carrega conteúdo com inset.
237
- export { Split, Pane } from './components/patterns/split.tsx'
238
- export type { SplitProps, PaneProps, PaneSize, SplitLayout, SplitLayoutChange } from './components/patterns/split.tsx'
458
+ export { Split, Pane } from "./components/patterns/split.tsx";
459
+ export type {
460
+ SplitProps,
461
+ PaneProps,
462
+ PaneSize,
463
+ SplitLayout,
464
+ SplitLayoutChange,
465
+ } from "./components/patterns/split.tsx";
239
466
 
240
467
  // A barra de ferramentas que flutua sobre uma superfície de trabalho (canvas, editor, preview).
241
- export { Dock, DockGroup, DockAction, SurfaceStatus } from './components/patterns/dock.tsx'
242
- export type { DockProps, DockActionProps, SurfaceStatusProps } from './components/patterns/dock.tsx'
468
+ export {
469
+ Dock,
470
+ DockGroup,
471
+ DockAction,
472
+ SurfaceStatus,
473
+ } from "./components/patterns/dock.tsx";
474
+ export type {
475
+ DockProps,
476
+ DockActionProps,
477
+ SurfaceStatusProps,
478
+ } from "./components/patterns/dock.tsx";
243
479
 
244
480
  // Barra lateral composicional: header/conteúdo/footer e navegação, sem possuir o layout.
245
- export { PaneHeader, PaneContent, PaneFooter, Sidebar, SidebarItem, SidebarGroupLabel, SidebarNav } from './components/patterns/sidebar.tsx'
246
- export type { SidebarProps, SidebarItemProps, SidebarNavGroup, SidebarNavSubgroup, SidebarNavItem } from './components/patterns/sidebar.tsx'
481
+ export {
482
+ PaneHeader,
483
+ PaneBody,
484
+ PaneContent,
485
+ PaneFooter,
486
+ Sidebar,
487
+ SidebarItem,
488
+ SidebarGroupLabel,
489
+ SidebarTreeGroup,
490
+ SidebarNav,
491
+ } from "./components/patterns/sidebar.tsx";
492
+ export type {
493
+ SidebarProps,
494
+ SidebarItemProps,
495
+ SidebarTreeGroupProps,
496
+ SidebarNavGroup,
497
+ SidebarNavItem,
498
+ } from "./components/patterns/sidebar.tsx";
247
499
 
248
500
  // O menu como primitivo pivotável: recolhe quando composto dentro de Sidebar.
249
- export { ShellNav, ShellNavHeading } from './components/patterns/shell-nav.tsx'
250
- export type { ShellNavProps, ShellNavGroup, ShellNavItem, ShellNavHeadingProps } from './components/patterns/shell-nav.tsx'
501
+ export { ShellNav, ShellNavHeading } from "./components/patterns/shell-nav.tsx";
502
+ export type {
503
+ ShellNavProps,
504
+ ShellNavGroup,
505
+ ShellNavItem,
506
+ ShellNavHeadingProps,
507
+ } from "./components/patterns/shell-nav.tsx";
251
508
 
252
509
  // Roteamento history-based (o pathname É o estado). Escopo pequeno de propósito: leitura
253
510
  // reativa da URL + navigate — sem tabela de rotas. Ver src/ui/router.ts.
254
- export { navigate, usePathname, useSegments, useSearchParams } from './router.ts'
255
- export type { NavigateOptions } from './router.ts'
256
- export { Dot, dotVariants } from './components/primitives/dot.tsx'
257
- export type { DotProps } from './components/primitives/dot.tsx'
511
+ export {
512
+ navigate,
513
+ usePathname,
514
+ useSegments,
515
+ useSearchParams,
516
+ } from "./router.ts";
517
+ export type { NavigateOptions } from "./router.ts";
518
+ export { Dot, dotVariants } from "./components/primitives/dot.tsx";
519
+ export type {
520
+ DotProps,
521
+ DotContext,
522
+ DotVariant,
523
+ } from "./components/primitives/dot.tsx";