@adia-ai/web-modules 0.6.18 → 0.6.19

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 CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog — @adia-ai/web-modules
2
2
 
3
+ ## [0.6.19] — 2026-05-21
4
+
5
+ ### Added — `./shell/with-css` opt-in export (FEEDBACK-25)
6
+
7
+ - `import '@adia-ai/web-modules/shell/with-css'` registers the JS-backed
8
+ shell elements (`admin-shell`, `admin-sidebar`, `admin-command`) AND
9
+ mounts the shell layout CSS in one side-effect import. The default
10
+ `./shell` subpath stays CSS-free to preserve the explicit-import contract
11
+ (ADR-0030); `/with-css` is the named opt-in. New `shell/with-css.js` +
12
+ `shell/with-css.d.ts`.
13
+
14
+ ### Added — `types` condition on CSS subpath exports (FEEDBACK-26)
15
+
16
+ - The `shell` / `chat` / `editor` / `simple` / `runtime` / `theme` `.css`
17
+ subpath exports now carry a `types` condition (`css-module.d.ts` stub),
18
+ fixing TS2882 under `moduleResolution: bundler`.
19
+
20
+ ### Docs — per-cluster import contract (FEEDBACK-25)
21
+
22
+ - README documents that the per-cluster JS import registers only the
23
+ JS-backed elements — the CSS-only structural children (`admin-content`,
24
+ `admin-topbar`, `admin-page`, …) need no JS registration by design — plus
25
+ the new `/with-css` opt-in.
26
+
3
27
  ## [0.6.18] — 2026-05-21
4
28
 
5
29
  ### Added — `admin-sidebar` resize-handle diagnostic (FB-17)
package/README.md CHANGED
@@ -33,6 +33,13 @@ import '@adia-ai/web-modules/theme'; // theme-panel
33
33
  import '@adia-ai/web-modules/runtime'; // gen-root + a2ui-root
34
34
  ```
35
35
 
36
+ > The per-cluster import registers the **JS-backed** elements only. Each
37
+ > cluster also has **CSS-only** structural children (e.g. `admin-content`,
38
+ > `admin-topbar`, `admin-page` — see the [Clusters](#clusters) table) that
39
+ > need no JS registration: they are plain custom elements styled entirely
40
+ > by the cluster CSS. `customElements.get()` returning `undefined` for one
41
+ > of them is expected, not a bug.
42
+
36
43
  ## Import: CSS (since v0.4.5)
37
44
 
38
45
  > ⚠️ **Required — shell layouts depend on this CSS.** Shell JS modules
@@ -58,6 +65,27 @@ import '@adia-ai/web-modules/runtime/gen-root.css';
58
65
 
59
66
  > **For pre-v0.4.5 consumers:** if you were importing CSS via the relative `node_modules` path (`'../node_modules/@adia-ai/web-modules/editor/editor-shell/editor-shell.css'`), switch to the package-specifier form above. The relative-path form is fragile under pnpm, Yarn PnP, and npm hoisting; the new package-specifier form works under all three.
60
67
 
68
+ ## Import: JS + CSS in one line (`/with-css`)
69
+
70
+ For the `shell` cluster, the `/with-css` opt-in collapses the JS + CSS
71
+ imports into a single side-effect import:
72
+
73
+ ```js
74
+ import '@adia-ai/web-modules/shell/with-css';
75
+ ```
76
+
77
+ This registers the JS-backed shell elements (`admin-shell`,
78
+ `admin-sidebar`, `admin-command`) **and** mounts the shell layout CSS
79
+ (`admin-shell.css` bundles every sub-component style). It is the one-line
80
+ equivalent of `import '@adia-ai/web-modules/shell'` +
81
+ `import '@adia-ai/web-modules/shell/admin-shell.css'`.
82
+
83
+ The default `@adia-ai/web-modules/shell` subpath stays CSS-free to
84
+ preserve the explicit-import contract ([ADR-0030](../../.brain/adrs/0030-shell-with-css-opt-in-carve-out.md));
85
+ `/with-css` is the named opt-in. Per-element companions
86
+ (`@adia-ai/web-modules/shell/admin-shell/with-css`) also exist for
87
+ finer-grained imports.
88
+
61
89
  Each cluster carries a **shell host** (behavior-only orchestrator) plus
62
90
  a **family of bespoke shell-tier children** (cluster-namespaced custom
63
91
  elements with state-as-attribute semantics) per [ADR-0023](../../.brain/adrs/0023-bespoke-shell-tier-children.md). The bespoke vocabulary is the only recognized authoring shape since v0.4.0 ([ADR-0024](../../.brain/adrs/0024-legacy-shell-shapes-retired.md)).
@@ -0,0 +1,6 @@
1
+ // Ambient declaration so TypeScript (moduleResolution: bundler / node16)
2
+ // can resolve CSS side-effect subpath imports — e.g.
3
+ // import '@adia-ai/web-components/css';
4
+ // without a TS2882 "no type declarations for side-effect import" error.
5
+ // See FEEDBACK-26.
6
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/web-modules",
3
- "version": "0.6.18",
3
+ "version": "0.6.19",
4
4
  "description": "AdiaUI composite custom elements \u2014 shell, chat, editor, runtime clusters built from @adia-ai/web-components primitives. Subpath exports per cluster.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -14,6 +14,11 @@
14
14
  "import": "./shell/index.js",
15
15
  "default": "./shell/index.js"
16
16
  },
17
+ "./shell/with-css": {
18
+ "types": "./shell/with-css.d.ts",
19
+ "import": "./shell/with-css.js",
20
+ "default": "./shell/with-css.js"
21
+ },
17
22
  "./shell/*": {
18
23
  "types": "./shell/*/*.d.ts",
19
24
  "import": "./shell/*/*.js",
@@ -24,9 +29,18 @@
24
29
  "import": "./shell/*/with-css.js",
25
30
  "default": "./shell/*/with-css.js"
26
31
  },
27
- "./shell/*.css": "./shell/*/*.css",
28
- "./shell/*/*.css": "./shell/*/*.css",
29
- "./shell/*/css/*.css": "./shell/*/css/*.css",
32
+ "./shell/*.css": {
33
+ "types": "./css-module.d.ts",
34
+ "default": "./shell/*/*.css"
35
+ },
36
+ "./shell/*/*.css": {
37
+ "types": "./css-module.d.ts",
38
+ "default": "./shell/*/*.css"
39
+ },
40
+ "./shell/*/css/*.css": {
41
+ "types": "./css-module.d.ts",
42
+ "default": "./shell/*/css/*.css"
43
+ },
30
44
  "./chat": {
31
45
  "types": "./chat/index.d.ts",
32
46
  "import": "./chat/index.js",
@@ -42,9 +56,18 @@
42
56
  "import": "./chat/*/with-css.js",
43
57
  "default": "./chat/*/with-css.js"
44
58
  },
45
- "./chat/*.css": "./chat/*/*.css",
46
- "./chat/*/*.css": "./chat/*/*.css",
47
- "./chat/*/css/*.css": "./chat/*/css/*.css",
59
+ "./chat/*.css": {
60
+ "types": "./css-module.d.ts",
61
+ "default": "./chat/*/*.css"
62
+ },
63
+ "./chat/*/*.css": {
64
+ "types": "./css-module.d.ts",
65
+ "default": "./chat/*/*.css"
66
+ },
67
+ "./chat/*/css/*.css": {
68
+ "types": "./css-module.d.ts",
69
+ "default": "./chat/*/css/*.css"
70
+ },
48
71
  "./editor": {
49
72
  "types": "./editor/index.d.ts",
50
73
  "import": "./editor/index.js",
@@ -65,9 +88,18 @@
65
88
  "import": "./editor/*/with-css.js",
66
89
  "default": "./editor/*/with-css.js"
67
90
  },
68
- "./editor/*.css": "./editor/*/*.css",
69
- "./editor/*/*.css": "./editor/*/*.css",
70
- "./editor/*/css/*.css": "./editor/*/css/*.css",
91
+ "./editor/*.css": {
92
+ "types": "./css-module.d.ts",
93
+ "default": "./editor/*/*.css"
94
+ },
95
+ "./editor/*/*.css": {
96
+ "types": "./css-module.d.ts",
97
+ "default": "./editor/*/*.css"
98
+ },
99
+ "./editor/*/css/*.css": {
100
+ "types": "./css-module.d.ts",
101
+ "default": "./editor/*/css/*.css"
102
+ },
71
103
  "./simple": {
72
104
  "types": "./simple/index.d.ts",
73
105
  "import": "./simple/index.js",
@@ -83,9 +115,18 @@
83
115
  "import": "./simple/*/with-css.js",
84
116
  "default": "./simple/*/with-css.js"
85
117
  },
86
- "./simple/*.css": "./simple/*/*.css",
87
- "./simple/*/*.css": "./simple/*/*.css",
88
- "./simple/*/css/*.css": "./simple/*/css/*.css",
118
+ "./simple/*.css": {
119
+ "types": "./css-module.d.ts",
120
+ "default": "./simple/*/*.css"
121
+ },
122
+ "./simple/*/*.css": {
123
+ "types": "./css-module.d.ts",
124
+ "default": "./simple/*/*.css"
125
+ },
126
+ "./simple/*/css/*.css": {
127
+ "types": "./css-module.d.ts",
128
+ "default": "./simple/*/css/*.css"
129
+ },
89
130
  "./runtime": {
90
131
  "types": "./runtime/index.d.ts",
91
132
  "import": "./runtime/index.js",
@@ -96,9 +137,18 @@
96
137
  "import": "./runtime/*/*.js",
97
138
  "default": "./runtime/*/*.js"
98
139
  },
99
- "./runtime/*.css": "./runtime/*/*.css",
100
- "./runtime/*/*.css": "./runtime/*/*.css",
101
- "./runtime/*/css/*.css": "./runtime/*/css/*.css",
140
+ "./runtime/*.css": {
141
+ "types": "./css-module.d.ts",
142
+ "default": "./runtime/*/*.css"
143
+ },
144
+ "./runtime/*/*.css": {
145
+ "types": "./css-module.d.ts",
146
+ "default": "./runtime/*/*.css"
147
+ },
148
+ "./runtime/*/css/*.css": {
149
+ "types": "./css-module.d.ts",
150
+ "default": "./runtime/*/css/*.css"
151
+ },
102
152
  "./theme": {
103
153
  "types": "./theme/index.d.ts",
104
154
  "import": "./theme/index.js",
@@ -109,9 +159,18 @@
109
159
  "import": "./theme/*/*.js",
110
160
  "default": "./theme/*/*.js"
111
161
  },
112
- "./theme/*.css": "./theme/*/*.css",
113
- "./theme/*/*.css": "./theme/*/*.css",
114
- "./theme/*/css/*.css": "./theme/*/css/*.css",
162
+ "./theme/*.css": {
163
+ "types": "./css-module.d.ts",
164
+ "default": "./theme/*/*.css"
165
+ },
166
+ "./theme/*/*.css": {
167
+ "types": "./css-module.d.ts",
168
+ "default": "./theme/*/*.css"
169
+ },
170
+ "./theme/*/css/*.css": {
171
+ "types": "./css-module.d.ts",
172
+ "default": "./theme/*/css/*.css"
173
+ },
115
174
  "./generative": {
116
175
  "types": "./generative/index.d.ts",
117
176
  "import": "./generative/index.js",
@@ -149,6 +208,7 @@
149
208
  "!generative/**/*.examples.js",
150
209
  "!generative/**/*.html",
151
210
  "index.js",
211
+ "css-module.d.ts",
152
212
  "README.md",
153
213
  "CHANGELOG.md"
154
214
  ],
@@ -0,0 +1,3 @@
1
+ // Opt-in `/with-css` companion for the shell cluster (FEEDBACK-25).
2
+ // Side-effect-only module — no type surface.
3
+ export {};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Opt-in `/with-css` companion for the whole shell cluster.
3
+ *
4
+ * Side-effect-only module. Importing this:
5
+ * 1. Loads `./index.js` — registers the JS-backed shell vocabulary
6
+ * (admin-shell, admin-sidebar, admin-command)
7
+ * 2. Side-effect-imports `./admin-shell/admin-shell.css` — the shell
8
+ * layout CSS. One file bundles every sub-component style (topbar,
9
+ * content, page, scroll, statusbar), so the CSS-only shell elements
10
+ * (admin-topbar, admin-content, admin-page, admin-page-header,
11
+ * admin-page-body, admin-scroll) are styled by it too.
12
+ *
13
+ * Consumer-facing entry point:
14
+ * import '@adia-ai/web-modules/shell/with-css';
15
+ *
16
+ * The default `@adia-ai/web-modules/shell` subpath preserves the
17
+ * explicit-import CSS contract (ADR-0030); this `/with-css` companion is
18
+ * the named opt-in for a one-line working shell. See FEEDBACK-25.
19
+ */
20
+ import './index.js';
21
+ import './admin-shell/admin-shell.css';