@softize/opus 8.9.1 → 9.0.1

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 (34) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/bin/cli.mjs +3 -3
  3. package/bin/lib/check.mjs +236 -2
  4. package/bin/lib/create.mjs +2 -2
  5. package/bin/lib/materialize.mjs +0 -1
  6. package/bin/lib/postinstall.mjs +1 -1
  7. package/docs/consumer-upgrade-propagation.md +56 -0
  8. package/docs/elevation-scale.md +55 -0
  9. package/docs/ownership-vs-shadcn-lock.md +4 -3
  10. package/package.json +1 -1
  11. package/registry/instructions/opus.md +2 -0
  12. package/src/ui/components/primitives/alert-dialog.tsx +1 -1
  13. package/src/ui/components/primitives/button-group.tsx +26 -1
  14. package/src/ui/components/primitives/button.tsx +10 -2
  15. package/src/ui/components/primitives/card.tsx +1 -1
  16. package/src/ui/components/primitives/chat.tsx +6 -2
  17. package/src/ui/components/primitives/composer.tsx +3 -2
  18. package/src/ui/components/primitives/control.ts +2 -0
  19. package/src/ui/components/primitives/dialog.tsx +1 -1
  20. package/src/ui/components/primitives/drawer.tsx +1 -1
  21. package/src/ui/components/primitives/input-group.tsx +4 -2
  22. package/src/ui/components/primitives/menu.tsx +2 -2
  23. package/src/ui/components/primitives/popover.tsx +1 -1
  24. package/src/ui/components/primitives/select.tsx +27 -9
  25. package/src/ui/components/primitives/tabs.tsx +6 -5
  26. package/src/ui/components/primitives/toggle-group.tsx +13 -2
  27. package/src/ui/components/primitives/toggle.tsx +8 -1
  28. package/src/ui/docs/content/card.md +2 -2
  29. package/src/ui/docs/content/composer.md +1 -1
  30. package/src/ui/docs/content/tokens.md +18 -18
  31. package/src/ui/meta.ts +5 -5
  32. package/src/ui/react.tsx +1 -0
  33. package/src/ui/theme.css +16 -27
  34. package/registry/github/opus.yml +0 -22
package/src/ui/theme.css CHANGED
@@ -12,11 +12,10 @@
12
12
  * da casa (upstream v4 também elevou; calibramos pelo site deles em 2026-06).
13
13
  * 3. Radius mapeado (sm/md/lg/xl em @theme inline) preservando o sentido pré-v4 dos
14
14
  * utilitários `rounded-*` — neutraliza o rename do v4.
15
- * (A antiga nº 4 escala shadow-* sobrescrita foi APOSENTADA: a elevação da casa
16
- * vive em namespace próprio, shadow-card/popover/dialog + ring-edge, sem tocar os
17
- * defaults do Tailwind.)
15
+ * 4. Escala shadow-* recomposta diretamente em duas camadas claras, difusas e com spread
16
+ * negativo preserva inclusive modifiers como `shadow-lg/30` (ver docs/elevation-scale.md).
18
17
  * 5. Bordas mais leves no light: --border/--input em 92.5% (upstream 89.8%) — par do
19
- * canvas quase-branco; a aresta de superfície elevada é o ring-edge.
18
+ * canvas quase-branco; superfícies elevadas usam a mesma borda real dos demais papéis.
20
19
  * Tudo o mais (escala neutra, radius base 0.625rem, semânticas) segue o upstream.
21
20
  */
22
21
  @import 'tailwindcss';
@@ -27,15 +26,6 @@
27
26
  @custom-variant dark (&:is(.dark *));
28
27
 
29
28
  :root {
30
- /* Elevação POR PAPEL (par do bg-card/bg-popover): família Notion — camada curta +
31
- longa, tinte 25/25/25 — e a ARESTA (--edge-value): o anel hairline que SUBSTITUI a
32
- borda em superfície elevada (ring-1 ring-edge). Papel novo = token novo; os
33
- defaults shadow-* do Tailwind ficam INTACTOS (sem pegadinha). */
34
- --edge-value: rgba(42, 28, 0, 0.07);
35
- --elevation-card: 0 1px 2px rgba(25, 25, 25, 0.027), 0 3px 6px rgba(25, 25, 25, 0.05);
36
- --elevation-popover: 0 5px 8px rgba(25, 25, 25, 0.027), 0 20px 24px rgba(25, 25, 25, 0.05);
37
- --elevation-dialog: 0 4px 8px rgba(25, 25, 25, 0.03), 0 16px 24px rgba(25, 25, 25, 0.06);
38
-
39
29
  /* Scrollbars e controles NATIVOS (date picker, autofill…) seguem o tema — sem
40
30
  isto o browser assume light e pinta scrollbar branca no dark. */
41
31
  color-scheme: light;
@@ -64,10 +54,6 @@
64
54
  }
65
55
 
66
56
  .dark {
67
- --edge-value: rgba(255, 255, 255, 0.06);
68
- --elevation-card: 0 1px 2px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.28);
69
- --elevation-popover: 0 5px 8px rgba(0, 0, 0, 0.16), 0 20px 24px rgba(0, 0, 0, 0.3);
70
- --elevation-dialog: 0 4px 8px rgba(0, 0, 0, 0.2), 0 16px 24px rgba(0, 0, 0, 0.35);
71
57
  color-scheme: dark;
72
58
  --background: hsl(0 0% 3.9%);
73
59
  --foreground: hsl(0 0% 98%);
@@ -151,20 +137,23 @@
151
137
  --radius-lg: var(--radius);
152
138
  --radius-xl: calc(var(--radius) + 4px);
153
139
 
154
- /* Forma por papel (rounded-card/popover/dialog) o papel de superfície carrega cor
155
- (bg-*), elevação (shadow-*) E forma. Derivados de --radius: a identidade por app
156
- (sobrescrever --radius) escala os papéis junto. Controles ficam na escala sm–xl. */
140
+ /* Forma por papel (rounded-card/popover/dialog), separada da intensidade de elevação.
141
+ Derivados de --radius: a identidade por app (sobrescrever --radius) escala os papéis
142
+ junto. Controles ficam na escala sm–xl. */
157
143
  --radius-card: calc(var(--radius) + 6px);
158
144
  --radius-popover: calc(var(--radius) - 2px);
159
145
  --radius-dialog: calc(var(--radius) + 6px);
160
146
 
161
- /* Elevação por papel (utilitários shadow-card/popover/dialog + ring-edge/border-edge)
162
- namespace PRÓPRIO: os shadow-* default do Tailwind seguem intactos. Superfície
163
- elevada usa `ring-1 ring-edge` NO LUGAR de border (não combine os dois). */
164
- --shadow-card: var(--elevation-card);
165
- --shadow-popover: var(--elevation-popover);
166
- --shadow-dialog: var(--elevation-dialog);
167
- --color-edge: var(--edge-value);
147
+ /* Escala Tailwind, com receita direta para o compilador preservar modifiers `/opacity`.
148
+ `light-dark()` mantém o peso adequado em cada tema sem uma variável intermediária. */
149
+ --shadow-2xs: 0 1px 2px -1px light-dark(rgb(15 15 15 / 0.03), rgb(0 0 0 / 0.12));
150
+ --shadow-xs: 0 1px 2px -1px light-dark(rgb(15 15 15 / 0.025), rgb(0 0 0 / 0.12)), 0 2px 4px -2px light-dark(rgb(15 15 15 / 0.035), rgb(0 0 0 / 0.18));
151
+ --shadow-sm: 0 2px 4px -2px light-dark(rgb(15 15 15 / 0.025), rgb(0 0 0 / 0.16)), 0 4px 8px -4px light-dark(rgb(15 15 15 / 0.04), rgb(0 0 0 / 0.28));
152
+ --shadow: 0 2px 6px -2px light-dark(rgb(15 15 15 / 0.03), rgb(0 0 0 / 0.16)), 0 6px 14px -6px light-dark(rgb(15 15 15 / 0.05), rgb(0 0 0 / 0.29));
153
+ --shadow-md: 0 4px 8px -4px light-dark(rgb(15 15 15 / 0.03), rgb(0 0 0 / 0.16)), 0 10px 28px -8px light-dark(rgb(15 15 15 / 0.065), rgb(0 0 0 / 0.3));
154
+ --shadow-lg: 0 6px 16px -6px light-dark(rgb(15 15 15 / 0.03), rgb(0 0 0 / 0.18)), 0 18px 48px -12px light-dark(rgb(15 15 15 / 0.07), rgb(0 0 0 / 0.3));
155
+ --shadow-xl: 0 8px 24px -10px light-dark(rgb(15 15 15 / 0.04), rgb(0 0 0 / 0.2)), 0 24px 64px -18px light-dark(rgb(15 15 15 / 0.08), rgb(0 0 0 / 0.34));
156
+ --shadow-2xl: 0 12px 32px -14px light-dark(rgb(15 15 15 / 0.05), rgb(0 0 0 / 0.22)), 0 32px 88px -24px light-dark(rgb(15 15 15 / 0.1), rgb(0 0 0 / 0.38));
168
157
  }
169
158
 
170
159
  /* Base canônica do consumidor — vem DAQUI, não do entry de cada app. Tailwind v4
@@ -1,22 +0,0 @@
1
- name: opus
2
-
3
- on:
4
- pull_request: {}
5
- push:
6
- branches: [main]
7
- workflow_dispatch: {}
8
-
9
- jobs:
10
- check:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
- - uses: pnpm/action-setup@v4
15
- with:
16
- version: 11
17
- - uses: actions/setup-node@v4
18
- with:
19
- node-version: 22
20
- cache: pnpm
21
- - run: pnpm install --frozen-lockfile
22
- - run: pnpm exec opus check