@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.
- package/CHANGELOG.md +29 -0
- package/bin/lib/check.mjs +2 -7
- package/bin/lib/copy.mjs +1 -5
- package/docs/adr/0005-structural-surfaces-share-an-explicit-anatomy.md +93 -10
- package/docs/adr/0007-toast-actions-form-an-ordered-collection.md +63 -0
- package/docs/adr/0008-hierarchical-navigation-is-composed-at-the-consumer-boundary.md +71 -0
- package/docs/radius-scale.md +1 -1
- package/package.json +1 -1
- package/registry/skills/maintain-opus-docs/SKILL.md +83 -0
- package/registry/skills/maintain-opus-docs/agents/openai.yaml +4 -0
- package/registry/skills/maintain-opus-docs/references/editorial-standard.md +85 -0
- package/registry/skills/maintain-opus-docs/references/evaluations.md +34 -0
- package/registry/skills/maintain-opus-docs/scripts/audit-docs.mjs +81 -0
- package/src/ui/components/patterns/confirm.tsx +140 -40
- package/src/ui/components/patterns/list.tsx +35 -40
- package/src/ui/components/patterns/page-state.tsx +2 -2
- package/src/ui/components/patterns/sidebar.tsx +26 -26
- package/src/ui/components/patterns/trigger.tsx +25 -22
- package/src/ui/components/primitives/alert.tsx +3 -3
- package/src/ui/components/primitives/dialog.tsx +196 -39
- package/src/ui/components/primitives/drawer.tsx +8 -5
- package/src/ui/components/primitives/empty.tsx +3 -3
- package/src/ui/components/primitives/item.tsx +3 -3
- package/src/ui/components/primitives/sonner.tsx +187 -8
- package/src/ui/docs/DocBrowser.tsx +102 -23
- package/src/ui/docs/content/accordion.md +22 -16
- package/src/ui/docs/content/action-form-card.md +8 -8
- package/src/ui/docs/content/action-form-dialog.md +9 -9
- package/src/ui/docs/content/action-form.md +28 -34
- package/src/ui/docs/content/action-list-dialog.md +11 -6
- package/src/ui/docs/content/action-list.md +64 -39
- package/src/ui/docs/content/action-trigger.md +21 -14
- package/src/ui/docs/content/action-view.md +8 -8
- package/src/ui/docs/content/actions.md +9 -9
- package/src/ui/docs/content/ai.md +3 -3
- package/src/ui/docs/content/alert.md +14 -12
- package/src/ui/docs/content/aspect-ratio.md +4 -4
- package/src/ui/docs/content/audit.md +2 -2
- package/src/ui/docs/content/auth.md +3 -3
- package/src/ui/docs/content/avatar.md +34 -14
- package/src/ui/docs/content/badge.md +3 -3
- package/src/ui/docs/content/breadcrumb.md +13 -8
- package/src/ui/docs/content/button.md +81 -6
- package/src/ui/docs/content/calendar.md +5 -5
- package/src/ui/docs/content/card.md +1 -1
- package/src/ui/docs/content/carousel.md +16 -11
- package/src/ui/docs/content/chat.md +3 -3
- package/src/ui/docs/content/checkbox.md +7 -7
- package/src/ui/docs/content/cli.md +5 -5
- package/src/ui/docs/content/collapsible.md +8 -8
- package/src/ui/docs/content/command.md +16 -8
- package/src/ui/docs/content/composer.md +2 -2
- package/src/ui/docs/content/content.md +2 -2
- package/src/ui/docs/content/copyable.md +4 -3
- package/src/ui/docs/content/customization.md +5 -5
- package/src/ui/docs/content/cycle.md +3 -3
- package/src/ui/docs/content/data-state.md +11 -12
- package/src/ui/docs/content/data.md +26 -33
- package/src/ui/docs/content/detail.md +3 -3
- package/src/ui/docs/content/dialog.md +339 -31
- package/src/ui/docs/content/dictionary-value.md +8 -8
- package/src/ui/docs/content/dock.md +3 -3
- package/src/ui/docs/content/drawer.md +27 -14
- package/src/ui/docs/content/empty-value.md +2 -2
- package/src/ui/docs/content/empty.md +19 -12
- package/src/ui/docs/content/events.md +4 -4
- package/src/ui/docs/content/field.md +34 -12
- package/src/ui/docs/content/getting-started.md +1 -1
- package/src/ui/docs/content/icon-picker.md +8 -4
- package/src/ui/docs/content/input-otp.md +20 -12
- package/src/ui/docs/content/input.md +121 -9
- package/src/ui/docs/content/item.md +27 -13
- package/src/ui/docs/content/kbd.md +19 -11
- package/src/ui/docs/content/label.md +5 -3
- package/src/ui/docs/content/log.md +4 -4
- package/src/ui/docs/content/markdown.md +7 -6
- package/src/ui/docs/content/mcp.md +13 -15
- package/src/ui/docs/content/menu.md +34 -16
- package/src/ui/docs/content/observability.md +2 -2
- package/src/ui/docs/content/page.md +51 -6
- package/src/ui/docs/content/pagination.md +22 -17
- package/src/ui/docs/content/popover.md +16 -8
- package/src/ui/docs/content/progress.md +7 -5
- package/src/ui/docs/content/queue.md +5 -5
- package/src/ui/docs/content/radio-group.md +20 -12
- package/src/ui/docs/content/router.md +11 -6
- package/src/ui/docs/content/scheduler.md +4 -5
- package/src/ui/docs/content/scroll-area.md +12 -7
- package/src/ui/docs/content/select.md +42 -29
- package/src/ui/docs/content/separator.md +5 -5
- package/src/ui/docs/content/sidebar.md +323 -54
- package/src/ui/docs/content/skeleton.md +3 -2
- package/src/ui/docs/content/slider.md +8 -7
- package/src/ui/docs/content/spinner.md +8 -8
- package/src/ui/docs/content/split.md +8 -5
- package/src/ui/docs/content/storage.md +6 -8
- package/src/ui/docs/content/switch.md +8 -7
- package/src/ui/docs/content/table.md +13 -3
- package/src/ui/docs/content/tabs.md +28 -14
- package/src/ui/docs/content/testing.md +9 -11
- package/src/ui/docs/content/textarea.md +5 -4
- package/src/ui/docs/content/toast.md +47 -13
- package/src/ui/docs/content/toggle.md +75 -7
- package/src/ui/docs/content/tokens.md +3 -3
- package/src/ui/docs/content/tooltip.md +19 -11
- package/src/ui/docs/content/truncate.md +7 -8
- package/src/ui/docs/content/ui.md +10 -9
- package/src/ui/docs/content/upgrading.md +7 -8
- package/src/ui/docs/registry.tsx +20 -37
- package/src/ui/meta.ts +64 -94
- package/src/ui/react.tsx +15 -16
- package/src/ui/theme.css +50 -0
- package/src/ui/components/primitives/alert-dialog.tsx +0 -192
- package/src/ui/docs/content/alert-dialog.md +0 -73
- package/src/ui/docs/content/button-group.md +0 -71
- package/src/ui/docs/content/confirm.md +0 -120
- package/src/ui/docs/content/input-group.md +0 -79
- package/src/ui/docs/content/page-state.md +0 -45
- 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. |
|