@softize/opus 12.11.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 (119) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/bin/lib/check.mjs +2 -7
  3. package/bin/lib/copy.mjs +1 -5
  4. package/docs/adr/0005-structural-surfaces-share-an-explicit-anatomy.md +93 -10
  5. package/docs/adr/0007-toast-actions-form-an-ordered-collection.md +63 -0
  6. package/docs/adr/0008-hierarchical-navigation-is-composed-at-the-consumer-boundary.md +71 -0
  7. package/docs/radius-scale.md +1 -1
  8. package/package.json +1 -1
  9. package/registry/skills/maintain-opus-docs/SKILL.md +83 -0
  10. package/registry/skills/maintain-opus-docs/agents/openai.yaml +4 -0
  11. package/registry/skills/maintain-opus-docs/references/editorial-standard.md +85 -0
  12. package/registry/skills/maintain-opus-docs/references/evaluations.md +34 -0
  13. package/registry/skills/maintain-opus-docs/scripts/audit-docs.mjs +81 -0
  14. package/src/ui/components/patterns/confirm.tsx +140 -40
  15. package/src/ui/components/patterns/list.tsx +35 -40
  16. package/src/ui/components/patterns/page-state.tsx +2 -2
  17. package/src/ui/components/patterns/sidebar.tsx +26 -26
  18. package/src/ui/components/patterns/trigger.tsx +25 -22
  19. package/src/ui/components/primitives/alert.tsx +3 -3
  20. package/src/ui/components/primitives/dialog.tsx +196 -39
  21. package/src/ui/components/primitives/drawer.tsx +8 -5
  22. package/src/ui/components/primitives/empty.tsx +3 -3
  23. package/src/ui/components/primitives/item.tsx +3 -3
  24. package/src/ui/components/primitives/sonner.tsx +187 -8
  25. package/src/ui/docs/DocBrowser.tsx +102 -23
  26. package/src/ui/docs/content/accordion.md +22 -16
  27. package/src/ui/docs/content/action-form-card.md +8 -8
  28. package/src/ui/docs/content/action-form-dialog.md +9 -9
  29. package/src/ui/docs/content/action-form.md +28 -34
  30. package/src/ui/docs/content/action-list-dialog.md +11 -6
  31. package/src/ui/docs/content/action-list.md +64 -39
  32. package/src/ui/docs/content/action-trigger.md +21 -14
  33. package/src/ui/docs/content/action-view.md +8 -8
  34. package/src/ui/docs/content/actions.md +9 -9
  35. package/src/ui/docs/content/ai.md +3 -3
  36. package/src/ui/docs/content/alert.md +14 -12
  37. package/src/ui/docs/content/aspect-ratio.md +4 -4
  38. package/src/ui/docs/content/audit.md +2 -2
  39. package/src/ui/docs/content/auth.md +3 -3
  40. package/src/ui/docs/content/avatar.md +34 -14
  41. package/src/ui/docs/content/badge.md +3 -3
  42. package/src/ui/docs/content/breadcrumb.md +13 -8
  43. package/src/ui/docs/content/button.md +81 -6
  44. package/src/ui/docs/content/calendar.md +5 -5
  45. package/src/ui/docs/content/card.md +1 -1
  46. package/src/ui/docs/content/carousel.md +16 -11
  47. package/src/ui/docs/content/chat.md +3 -3
  48. package/src/ui/docs/content/checkbox.md +7 -7
  49. package/src/ui/docs/content/cli.md +5 -5
  50. package/src/ui/docs/content/collapsible.md +8 -8
  51. package/src/ui/docs/content/command.md +16 -8
  52. package/src/ui/docs/content/composer.md +2 -2
  53. package/src/ui/docs/content/content.md +2 -2
  54. package/src/ui/docs/content/copyable.md +4 -3
  55. package/src/ui/docs/content/customization.md +5 -5
  56. package/src/ui/docs/content/cycle.md +3 -3
  57. package/src/ui/docs/content/data-state.md +11 -12
  58. package/src/ui/docs/content/data.md +26 -33
  59. package/src/ui/docs/content/detail.md +3 -3
  60. package/src/ui/docs/content/dialog.md +339 -31
  61. package/src/ui/docs/content/dictionary-value.md +8 -8
  62. package/src/ui/docs/content/dock.md +3 -3
  63. package/src/ui/docs/content/drawer.md +27 -14
  64. package/src/ui/docs/content/empty-value.md +2 -2
  65. package/src/ui/docs/content/empty.md +19 -12
  66. package/src/ui/docs/content/events.md +4 -4
  67. package/src/ui/docs/content/field.md +34 -12
  68. package/src/ui/docs/content/getting-started.md +1 -1
  69. package/src/ui/docs/content/icon-picker.md +8 -4
  70. package/src/ui/docs/content/input-otp.md +20 -12
  71. package/src/ui/docs/content/input.md +121 -9
  72. package/src/ui/docs/content/item.md +27 -13
  73. package/src/ui/docs/content/kbd.md +19 -11
  74. package/src/ui/docs/content/label.md +5 -3
  75. package/src/ui/docs/content/log.md +4 -4
  76. package/src/ui/docs/content/markdown.md +7 -6
  77. package/src/ui/docs/content/mcp.md +13 -15
  78. package/src/ui/docs/content/menu.md +34 -16
  79. package/src/ui/docs/content/observability.md +2 -2
  80. package/src/ui/docs/content/page.md +51 -6
  81. package/src/ui/docs/content/pagination.md +22 -17
  82. package/src/ui/docs/content/popover.md +16 -8
  83. package/src/ui/docs/content/progress.md +7 -5
  84. package/src/ui/docs/content/queue.md +5 -5
  85. package/src/ui/docs/content/radio-group.md +20 -12
  86. package/src/ui/docs/content/router.md +11 -6
  87. package/src/ui/docs/content/scheduler.md +4 -5
  88. package/src/ui/docs/content/scroll-area.md +12 -7
  89. package/src/ui/docs/content/select.md +42 -29
  90. package/src/ui/docs/content/separator.md +5 -5
  91. package/src/ui/docs/content/sidebar.md +323 -54
  92. package/src/ui/docs/content/skeleton.md +3 -2
  93. package/src/ui/docs/content/slider.md +8 -7
  94. package/src/ui/docs/content/spinner.md +8 -8
  95. package/src/ui/docs/content/split.md +8 -5
  96. package/src/ui/docs/content/storage.md +6 -8
  97. package/src/ui/docs/content/switch.md +8 -7
  98. package/src/ui/docs/content/table.md +13 -3
  99. package/src/ui/docs/content/tabs.md +28 -14
  100. package/src/ui/docs/content/testing.md +9 -11
  101. package/src/ui/docs/content/textarea.md +5 -4
  102. package/src/ui/docs/content/toast.md +47 -13
  103. package/src/ui/docs/content/toggle.md +75 -7
  104. package/src/ui/docs/content/tokens.md +3 -3
  105. package/src/ui/docs/content/tooltip.md +19 -11
  106. package/src/ui/docs/content/truncate.md +7 -8
  107. package/src/ui/docs/content/ui.md +10 -9
  108. package/src/ui/docs/content/upgrading.md +7 -8
  109. package/src/ui/docs/registry.tsx +20 -37
  110. package/src/ui/meta.ts +64 -94
  111. package/src/ui/react.tsx +15 -16
  112. package/src/ui/theme.css +50 -0
  113. package/src/ui/components/primitives/alert-dialog.tsx +0 -192
  114. package/src/ui/docs/content/alert-dialog.md +0 -73
  115. package/src/ui/docs/content/button-group.md +0 -71
  116. package/src/ui/docs/content/confirm.md +0 -120
  117. package/src/ui/docs/content/input-group.md +0 -79
  118. package/src/ui/docs/content/page-state.md +0 -45
  119. package/src/ui/docs/content/toggle-group.md +0 -81
@@ -1,45 +0,0 @@
1
- ## Estado integral da página
2
-
3
- Use `PageState` quando carregamento, falha ou ausência substituírem todo o conteúdo principal. Na
4
- forma curta ele pode ser escrito como filho direto de `Page`, que cria o `PageBody`; na forma
5
- explícita, coloque-o dentro de `PageBody`. O cabeçalho continua visível e o estado recebe composição,
6
- altura e semântica acessível consistentes.
7
-
8
- ```tsx preview col
9
- <Page title="Relatório">
10
- <PageState
11
- status="error"
12
- title="Não foi possível carregar o relatório"
13
- description="Tente novamente. Se o problema continuar, volte mais tarde."
14
- action={<Button variant="outline">Tentar novamente</Button>}
15
- />
16
- </Page>
17
- ```
18
-
19
- `loading` centraliza o `Spinner`; `error` compõe `Alert`; `empty` compõe `Empty`; e `ready` entrega
20
- os filhos sem acrescentar uma superfície.
21
-
22
- ```tsx preview col
23
- <Page title="Relatórios">
24
- <PageState
25
- status="empty"
26
- title="Nenhum relatório"
27
- description="Crie o primeiro relatório para começar."
28
- action={<Button>Novo relatório</Button>}
29
- />
30
- </Page>
31
- ```
32
-
33
- Não use `PageState` para uma falha parcial. Se outra parte da página continua utilizável, mantenha o
34
- estado na própria seção com `DataState`, `ActionView`, `ActionList` ou `Alert`.
35
-
36
- ## Props
37
-
38
- | Prop | Tipo | Default | Descrição |
39
- |---|---|---|---|
40
- | `status` | `'loading' \| 'error' \| 'empty' \| 'ready'` | | Estado integral do conteúdo. |
41
- | `title` | `ReactNode` | Texto seguro por estado | Situação reconhecível pela pessoa. |
42
- | `description` | `ReactNode` | | Impacto ou próximo passo aplicável. |
43
- | `icon` | `ReactNode` | Alerta no erro | Ícone decorativo do estado. |
44
- | `action` | `ReactNode` | | Recuperação, seleção ou criação aplicável. |
45
- | `children` | `ReactNode` | | Conteúdo renderizado somente em `ready`. |
@@ -1,81 +0,0 @@
1
- ## Escolha única
2
-
3
- type=single deixa um item ativo por vez; value é uma string. Controlado por value + onValueChange — bom pra alternar a visão de um workspace.
4
-
5
- ```tsx preview
6
- const [view, setView] = useState('sessions')
7
-
8
- render(
9
- <ToggleGroup type="single" value={view} onValueChange={(v) => v && setView(v)}>
10
- <ToggleGroupItem value="overview">Visão geral</ToggleGroupItem>
11
- <ToggleGroupItem value="sessions">Sessões</ToggleGroupItem>
12
- <ToggleGroupItem value="skills">Skills</ToggleGroupItem>
13
- </ToggleGroup>,
14
- )
15
- ```
16
-
17
- ## Escolha múltipla
18
-
19
- type=multiple permite vários ativos ao mesmo tempo; value é um array de strings. O padrão pra uma barra de formatação.
20
-
21
- ```tsx preview
22
- const [marks, setMarks] = useState(['bold'])
23
-
24
- render(
25
- <ToggleGroup type="multiple" value={marks} onValueChange={setMarks}>
26
- <ToggleGroupItem value="bold" aria-label="Negrito">
27
- <Bold />
28
- </ToggleGroupItem>
29
- <ToggleGroupItem value="italic" aria-label="Itálico">
30
- <Italic />
31
- </ToggleGroupItem>
32
- <ToggleGroupItem value="underline" aria-label="Sublinhado">
33
- <Underline />
34
- </ToggleGroupItem>
35
- </ToggleGroup>,
36
- )
37
- ```
38
-
39
- ## Variante outline
40
-
41
- variant=outline emoldura o grupo com borda; size e o variant definidos no ToggleGroup descem pra cada ToggleGroupItem via contexto.
42
-
43
- ```tsx preview
44
- <ToggleGroup type="single" variant="outline" defaultValue="left" aria-label="Alinhamento">
45
- <ToggleGroupItem value="left" aria-label="Esquerda">
46
- <AlignLeft />
47
- </ToggleGroupItem>
48
- <ToggleGroupItem value="center" aria-label="Centro">
49
- <AlignCenter />
50
- </ToggleGroupItem>
51
- <ToggleGroupItem value="right" aria-label="Direita">
52
- <AlignRight />
53
- </ToggleGroupItem>
54
- </ToggleGroup>
55
- ```
56
-
57
- ## Com espaçamento
58
-
59
- spacing afasta os itens (em unidades de spacing do tema) — sem ele os botões ficam colados num bloco único.
60
-
61
- ```tsx preview
62
- <ToggleGroup type="single" variant="outline" spacing={2} defaultValue="developer">
63
- <ToggleGroupItem value="developer">developer</ToggleGroupItem>
64
- <ToggleGroupItem value="reviewer">reviewer</ToggleGroupItem>
65
- <ToggleGroupItem value="designer">designer</ToggleGroupItem>
66
- </ToggleGroup>
67
- ```
68
-
69
- ## Props
70
-
71
- | Prop | Tipo | Default | Descrição |
72
- |---|---|---|---|
73
- | `type (ToggleGroup)` | `'single' \| 'multiple'` | | single mantém um item ativo (value: string); multiple permite vários (value: string[]). |
74
- | `value (ToggleGroup)` | `string \| string[]` | | O(s) item(ns) ativo(s) no modo controlado — pareie com onValueChange. O tipo segue o type. |
75
- | `onValueChange (ToggleGroup)` | `(value: string \| string[]) => void` | | Chamado quando a seleção muda. No single, vem string vazia ao desmarcar o ativo. |
76
- | `defaultValue (ToggleGroup)` | `string \| string[]` | | A seleção inicial no modo não controlado. |
77
- | `variant (ToggleGroup)` | `'default' \| 'outline'` | `'default'` | default é sem moldura; outline emoldura o grupo com borda. Desce pros itens via contexto. |
78
- | `size (ToggleGroup)` | `'default' \| 'sm' \| 'lg'` | `'default'` | Altura e respiro dos itens. Desce pros itens via contexto. |
79
- | `spacing (ToggleGroup)` | `number` | `0` | Distância entre os itens (unidades de spacing). 0 cola tudo num bloco único. |
80
- | `value (ToggleGroupItem)` | `string` | | Identificador do item — é o que entra no value do grupo quando ativado. |
81
- | `disabled (ToggleGroupItem)` | `boolean` | `false` | Esmaece e bloqueia um item específico do grupo. |