@north-light/crouter 0.3.197 → 0.3.198
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/dist/api/client.d.ts +2 -2
- package/dist/api/dto/inbox.d.ts +46 -0
- package/dist/builtin-memory/00-runtime-base.md +3 -3
- package/dist/builtin-memory/internal/nodes-and-canvas.md +1 -1
- package/dist/builtin-memory/internal/storage-tiers.md +1 -1
- package/dist/builtin-memory/wedged-child-on-runaway-bash.md +1 -1
- package/dist/clients/attach/render/chat-view.d.ts +3 -8
- package/dist/clients/attach/render/chat-view.js +3 -24
- package/dist/clients/attach/render/markdown-source.js +0 -6
- package/dist/clients/attach/render/tool-calls.js +16 -2
- package/dist/clients/attach/viewer.js +613 -602
- package/dist/clients/inbox/__tests__/serial/inbox-controller.test.js +2 -2
- package/dist/clients/inbox/__tests__/serial/mount-panel.test.js +11 -4
- package/dist/clients/inbox/controller.js +4 -4
- package/dist/clients/inbox/page-adapter.d.ts +2 -1
- package/dist/clients/inbox/tui/render.js +46 -25
- package/dist/clients/inbox/tui/slots.d.ts +1 -3
- package/dist/clients/inbox/tui/slots.js +8 -37
- package/dist/clients/inbox/tui/types.d.ts +4 -3
- package/dist/commands/__tests__/human.test.js +160 -23
- package/dist/commands/canvas-browse.js +1 -1
- package/dist/commands/human/doc.js +21 -74
- package/dist/commands/human/html.d.ts +2 -0
- package/dist/commands/human/html.js +81 -0
- package/dist/commands/human/prompts.d.ts +5 -4
- package/dist/commands/human/prompts.js +81 -153
- package/dist/commands/human/shared.d.ts +5 -6
- package/dist/commands/human/shared.js +13 -61
- package/dist/commands/human.js +7 -2
- package/dist/core/__tests__/daemon-boot.test.js +7 -4
- package/dist/core/__tests__/dead-node-policy-table.test.js +20 -36
- package/dist/core/__tests__/human-deliver.test.js +28 -37
- package/dist/core/__tests__/seam/broker-crash-teardown.test.js +13 -11
- package/dist/core/__tests__/seam/dormancy-release.test.js +63 -4
- package/dist/core/__tests__/serial/human-deliver-e2e.test.js +3 -13
- package/dist/core/canvas/__tests__/attention.test.js +2 -2
- package/dist/core/canvas/__tests__/render-remote.test.js +2 -2
- package/dist/core/canvas/browse/app.d.ts +1 -1
- package/dist/core/canvas/browse/app.js +21 -3
- package/dist/core/canvas/browse/render.d.ts +4 -0
- package/dist/core/canvas/browse/render.js +5 -1
- package/dist/core/canvas/canvas.d.ts +26 -0
- package/dist/core/canvas/canvas.js +55 -0
- package/dist/core/command.js +6 -11
- package/dist/core/config.js +3 -2
- package/dist/core/help.d.ts +3 -0
- package/dist/core/human/__tests__/html-markdown.test.d.ts +1 -0
- package/dist/core/human/__tests__/html-markdown.test.js +52 -0
- package/dist/core/human/__tests__/page-catalog.test.d.ts +1 -0
- package/dist/core/human/__tests__/page-catalog.test.js +16 -0
- package/dist/core/human/__tests__/page-render.test.js +40 -23
- package/dist/core/human/__tests__/page-tickets.test.js +48 -27
- package/dist/core/human/__tests__/page.test.js +48 -65
- package/dist/core/human/__tests__/serial/inbox-core.test.js +5 -15
- package/dist/core/human/answer-text.d.ts +3 -0
- package/dist/core/human/answer-text.js +98 -0
- package/dist/core/human/answer.d.ts +51 -0
- package/dist/core/human/answer.js +125 -0
- package/dist/core/human/component-docs.d.ts +14 -0
- package/dist/core/human/component-docs.js +161 -0
- package/dist/core/human/html-markdown.d.ts +3 -0
- package/dist/core/human/html-markdown.js +288 -0
- package/dist/core/human/page-catalog.d.ts +19 -3
- package/dist/core/human/page-catalog.js +73 -16
- package/dist/core/human/page-render.d.ts +3 -2
- package/dist/core/human/page-render.js +19 -45
- package/dist/core/human/page-schema.d.ts +108 -8
- package/dist/core/human/page-schema.js +88 -31
- package/dist/core/human/page-synth.d.ts +2 -4
- package/dist/core/human/page-synth.js +23 -7
- package/dist/core/human/page.d.ts +14 -7
- package/dist/core/human/page.js +178 -90
- package/dist/core/human/review-schema.d.ts +1 -0
- package/dist/core/human/review-schema.js +1 -1
- package/dist/core/human/scan.d.ts +3 -2
- package/dist/core/human/scan.js +7 -8
- package/dist/core/human/summary.d.ts +4 -7
- package/dist/core/human/summary.js +4 -60
- package/dist/core/human/tickets.d.ts +10 -9
- package/dist/core/human/tickets.js +5 -3
- package/dist/core/human/types.d.ts +4 -0
- package/dist/core/keybindings/catalog.d.ts +2 -2
- package/dist/core/keybindings/catalog.js +1 -0
- package/dist/core/review/realize.js +9 -1
- package/dist/core/runtime/boot-root.js +6 -1
- package/dist/core/runtime/broker.js +8 -6
- package/dist/core/runtime/busy.d.ts +4 -3
- package/dist/core/runtime/busy.js +4 -3
- package/dist/core/runtime/spawn.js +4 -4
- package/dist/core/user-settings.d.ts +17 -2
- package/dist/core/user-settings.js +32 -11
- package/dist/daemon/api/handlers/human.js +1 -1
- package/dist/daemon/api/handlers/inbox.js +22 -7
- package/dist/daemon/cron-run.js +16 -2
- package/dist/daemon/crtrd.js +1 -1
- package/dist/daemon/fleet.d.ts +22 -10
- package/dist/daemon/fleet.js +43 -24
- package/dist/daemon/human/finish.d.ts +2 -1
- package/dist/daemon/human/finish.js +45 -28
- package/dist/daemon/human/sweep.js +4 -2
- package/dist/daemon/reconcilers/broker-supervision.js +11 -8
- package/dist/daemon/reconcilers/dormant-inbox.js +11 -6
- package/dist/daemon/reconcilers/live-obligation.d.ts +21 -1
- package/dist/daemon/reconcilers/live-obligation.js +30 -2
- package/dist/daemon/reconcilers/storage-maintenance.d.ts +5 -0
- package/dist/daemon/reconcilers/storage-maintenance.js +28 -1
- package/dist/daemon/review/sweep.js +12 -1
- package/dist/pages/bundle.css +1 -1
- package/dist/pages/bundle.js +1008 -577
- package/dist/pages/comments.d.ts +29 -0
- package/dist/pages/comments.js +51 -0
- package/dist/pages/controls.d.ts +98 -0
- package/dist/pages/controls.js +261 -0
- package/dist/pages/elements/cards.d.ts +15 -4
- package/dist/pages/elements/cards.js +299 -186
- package/dist/pages/elements/chart.d.ts +22 -0
- package/dist/pages/elements/chart.js +107 -91
- package/dist/pages/elements/options.d.ts +9 -0
- package/dist/pages/elements/options.js +268 -155
- package/dist/pages/elements/pages.d.ts +6 -0
- package/dist/pages/elements/pages.js +60 -38
- package/dist/pages/elements/slot.d.ts +5 -0
- package/dist/pages/elements/slot.js +17 -10
- package/dist/pages/elements/table.d.ts +17 -0
- package/dist/pages/elements/table.js +336 -228
- package/dist/pages/elements/text.d.ts +9 -3
- package/dist/pages/elements/text.js +350 -143
- package/dist/pages/host.d.ts +0 -24
- package/dist/pages/host.js +0 -17
- package/dist/pages/readonly.d.ts +24 -0
- package/dist/pages/readonly.js +31 -0
- package/dist/pages/responses.d.ts +37 -0
- package/dist/pages/responses.js +56 -0
- package/dist/pi-extensions/canvas-bash-valve.d.ts +9 -1
- package/dist/pi-extensions/canvas-bash-valve.js +12 -8
- package/dist/types.d.ts +19 -5
- package/dist/types.js +2 -1
- package/package.json +1 -1
- package/runtime.lock.json +2 -2
- package/scripts/install-runtime.mjs +19 -24
- package/dist/clients/attach/render/html-markdown.d.ts +0 -13
- package/dist/clients/attach/render/html-markdown.js +0 -206
- package/dist/core/human/markdown-html.d.ts +0 -8
- package/dist/core/human/markdown-html.js +0 -581
|
@@ -20,8 +20,16 @@
|
|
|
20
20
|
*
|
|
21
21
|
* A single-step page renders no pager chrome at all — no progress, no forward/back — just
|
|
22
22
|
* the submit affordance, because there is nothing to flip.
|
|
23
|
+
*
|
|
24
|
+
* Both elements paint entirely through `--crtr-page-*` component tokens — the same element
|
|
25
|
+
* scope `bundle.css` gives `crtr-pages` and `crtr-page`, because a person looking at the page
|
|
26
|
+
* sees one thing. The pager's buttons are the bundle's ordinary buttons, so their focus ring
|
|
27
|
+
* and their motion chain through the shared `--crtr-control-*` family before falling back to
|
|
28
|
+
* the kit default.
|
|
23
29
|
*/
|
|
30
|
+
import { focusRingStyle } from '../controls.js';
|
|
24
31
|
import { registerElement } from '../register.js';
|
|
32
|
+
import { reportSlotResponses } from '../responses.js';
|
|
25
33
|
function hostBridge() {
|
|
26
34
|
return window.crtr;
|
|
27
35
|
}
|
|
@@ -37,11 +45,15 @@ const PAGE_STYLE = `
|
|
|
37
45
|
|
|
38
46
|
[part="page"] {
|
|
39
47
|
display: grid;
|
|
40
|
-
gap: var(--crtr-space-3);
|
|
48
|
+
gap: var(--crtr-page-step-gap, var(--crtr-space-3));
|
|
41
49
|
}
|
|
42
50
|
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
/* A step takes focus programmatically when the pager flips to it, so it wears no ring by
|
|
52
|
+
default — a host that wants one sets the outline rather than patching around it. The
|
|
53
|
+
pager focuses the element itself, not the inner div, so the rule has to sit on the host:
|
|
54
|
+
on [part="page"] it would never match and every step change would paint a UA ring. */
|
|
55
|
+
:host(:focus) {
|
|
56
|
+
outline: var(--crtr-page-step-focus-outline, none);
|
|
45
57
|
}
|
|
46
58
|
`;
|
|
47
59
|
const PAGES_STYLE = `
|
|
@@ -51,7 +63,7 @@ const PAGES_STYLE = `
|
|
|
51
63
|
|
|
52
64
|
[part="container"] {
|
|
53
65
|
display: grid;
|
|
54
|
-
gap: var(--crtr-space-4);
|
|
66
|
+
gap: var(--crtr-page-container-gap, var(--crtr-space-4));
|
|
55
67
|
}
|
|
56
68
|
|
|
57
69
|
[part="chrome"] {
|
|
@@ -59,9 +71,11 @@ const PAGES_STYLE = `
|
|
|
59
71
|
flex-wrap: wrap;
|
|
60
72
|
align-items: center;
|
|
61
73
|
justify-content: space-between;
|
|
62
|
-
gap: var(--crtr-space-3);
|
|
63
|
-
padding-top: var(--crtr-space-3);
|
|
64
|
-
border-top:
|
|
74
|
+
gap: var(--crtr-page-chrome-gap, var(--crtr-space-3));
|
|
75
|
+
padding-top: var(--crtr-page-chrome-padding-top, var(--crtr-space-3));
|
|
76
|
+
border-top: var(--crtr-page-chrome-border-width, 1px)
|
|
77
|
+
var(--crtr-page-chrome-border-style, solid)
|
|
78
|
+
var(--crtr-page-chrome-border-color, var(--crtr-color-border));
|
|
65
79
|
}
|
|
66
80
|
|
|
67
81
|
[part="container"][data-steps="1"] [part="chrome"] {
|
|
@@ -71,79 +85,83 @@ const PAGES_STYLE = `
|
|
|
71
85
|
[part="progress"] {
|
|
72
86
|
display: flex;
|
|
73
87
|
align-items: center;
|
|
74
|
-
gap: var(--crtr-space-2);
|
|
75
|
-
color: var(--crtr-color-text-muted);
|
|
88
|
+
gap: var(--crtr-page-progress-gap, var(--crtr-space-2));
|
|
89
|
+
color: var(--crtr-page-progress-text-color, var(--crtr-color-text-muted));
|
|
76
90
|
}
|
|
77
91
|
|
|
78
92
|
[part="progress-track"] {
|
|
79
93
|
display: flex;
|
|
80
94
|
align-items: center;
|
|
81
|
-
gap: var(--crtr-space-1);
|
|
95
|
+
gap: var(--crtr-page-progress-track-gap, var(--crtr-space-1));
|
|
82
96
|
}
|
|
83
97
|
|
|
84
98
|
[part="progress-step"] {
|
|
85
|
-
width: var(--crtr-space-2);
|
|
86
|
-
height: var(--crtr-space-1);
|
|
87
|
-
border-radius: var(--crtr-radius-small);
|
|
88
|
-
background: var(--crtr-color-border);
|
|
99
|
+
width: var(--crtr-page-progress-step-width, var(--crtr-space-2));
|
|
100
|
+
height: var(--crtr-page-progress-step-height, var(--crtr-space-1));
|
|
101
|
+
border-radius: var(--crtr-page-progress-step-radius, var(--crtr-radius-small));
|
|
102
|
+
background: var(--crtr-page-progress-step-fill, var(--crtr-color-border));
|
|
89
103
|
}
|
|
90
104
|
|
|
91
105
|
[part="progress-step"][data-state="complete"] {
|
|
92
|
-
background: var(--crtr-color-text-muted);
|
|
106
|
+
background: var(--crtr-page-progress-step-complete-fill, var(--crtr-color-text-muted));
|
|
93
107
|
}
|
|
94
108
|
|
|
95
109
|
[part="progress-step"][data-state="current"] {
|
|
96
|
-
width: var(--crtr-space-4);
|
|
97
|
-
background: var(--crtr-color-accent);
|
|
110
|
+
width: var(--crtr-page-progress-step-current-width, var(--crtr-space-4));
|
|
111
|
+
background: var(--crtr-page-progress-step-current-fill, var(--crtr-color-accent));
|
|
98
112
|
}
|
|
99
113
|
|
|
100
114
|
[part="actions"] {
|
|
101
115
|
display: flex;
|
|
102
116
|
align-items: center;
|
|
103
|
-
gap: var(--crtr-space-2);
|
|
117
|
+
gap: var(--crtr-page-actions-gap, var(--crtr-space-2));
|
|
104
118
|
}
|
|
105
119
|
|
|
106
120
|
button {
|
|
107
|
-
font: inherit;
|
|
108
|
-
color: var(--crtr-color-text);
|
|
109
|
-
background: var(--crtr-color-surface);
|
|
110
|
-
border:
|
|
111
|
-
|
|
112
|
-
|
|
121
|
+
font: var(--crtr-page-button-font, inherit);
|
|
122
|
+
color: var(--crtr-page-button-text-color, var(--crtr-color-text));
|
|
123
|
+
background: var(--crtr-page-button-fill, var(--crtr-color-surface));
|
|
124
|
+
border: var(--crtr-page-button-border-width, 1px)
|
|
125
|
+
var(--crtr-page-button-border-style, solid)
|
|
126
|
+
var(--crtr-page-button-border-color, var(--crtr-color-border));
|
|
127
|
+
border-radius: var(--crtr-page-button-radius, var(--crtr-radius-small));
|
|
128
|
+
padding: var(--crtr-page-button-padding, var(--crtr-space-2) var(--crtr-space-3));
|
|
113
129
|
cursor: pointer;
|
|
130
|
+
transition: color var(--crtr-page-button-transition, var(--crtr-control-transition, 120ms ease)),
|
|
131
|
+
background-color var(--crtr-page-button-transition, var(--crtr-control-transition, 120ms ease)),
|
|
132
|
+
border-color var(--crtr-page-button-transition, var(--crtr-control-transition, 120ms ease));
|
|
114
133
|
}
|
|
115
134
|
|
|
116
135
|
button:hover:not(:disabled) {
|
|
117
|
-
background: var(--crtr-color-surface-hover);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
button:focus-visible {
|
|
121
|
-
outline: 2px solid var(--crtr-color-focus);
|
|
122
|
-
outline-offset: 2px;
|
|
136
|
+
background: var(--crtr-page-button-hover-fill, var(--crtr-color-surface-hover));
|
|
123
137
|
}
|
|
124
138
|
|
|
139
|
+
${focusRingStyle({ scope: 'page-button' }, 'button')}
|
|
125
140
|
button:disabled {
|
|
126
141
|
cursor: not-allowed;
|
|
127
|
-
opacity: 0.5;
|
|
142
|
+
opacity: var(--crtr-page-button-disabled-opacity, var(--crtr-control-disabled-opacity, 0.5));
|
|
128
143
|
}
|
|
129
144
|
|
|
130
145
|
[part="submit"] {
|
|
131
|
-
color: var(--crtr-color-accent-contrast);
|
|
132
|
-
background: var(--crtr-color-accent);
|
|
133
|
-
border-color:
|
|
146
|
+
color: var(--crtr-page-submit-text-color, var(--crtr-color-accent-contrast));
|
|
147
|
+
background: var(--crtr-page-submit-fill, var(--crtr-color-accent));
|
|
148
|
+
border-color: var(--crtr-page-submit-border-color, var(--crtr-color-accent));
|
|
134
149
|
}
|
|
135
150
|
|
|
151
|
+
/* Mixing the accent toward the text colour darkens on a light token set and lightens on a
|
|
152
|
+
dark one — a brightness filter moves the wrong way on one of them. */
|
|
136
153
|
[part="submit"]:hover:not(:disabled) {
|
|
137
|
-
background: var(--crtr-color-accent);
|
|
138
|
-
|
|
154
|
+
background: var(--crtr-page-submit-hover-fill, color-mix(in srgb, var(--crtr-color-accent) 88%, var(--crtr-color-text)));
|
|
155
|
+
border-color: var(--crtr-page-submit-hover-border-color, color-mix(in srgb, var(--crtr-color-accent) 88%, var(--crtr-color-text)));
|
|
139
156
|
}
|
|
140
157
|
|
|
141
158
|
[part="notice"] {
|
|
142
|
-
color: var(--crtr-color-text-muted);
|
|
159
|
+
color: var(--crtr-page-notice-text-color, var(--crtr-color-text-muted));
|
|
160
|
+
font-size: var(--crtr-page-notice-font-size, 0.875em);
|
|
143
161
|
}
|
|
144
162
|
|
|
145
163
|
[part="notice"][data-state="error"] {
|
|
146
|
-
color: var(--crtr-color-danger);
|
|
164
|
+
color: var(--crtr-page-notice-error-text-color, var(--crtr-color-danger));
|
|
147
165
|
}
|
|
148
166
|
|
|
149
167
|
[hidden] {
|
|
@@ -266,6 +284,10 @@ class CrtrPagesElement extends HTMLElement {
|
|
|
266
284
|
this.#error = null;
|
|
267
285
|
this.#render();
|
|
268
286
|
try {
|
|
287
|
+
// The host has only heard from the slots the person changed. A submit sends the whole
|
|
288
|
+
// page, so every response-bearing slot reports what it is currently showing first —
|
|
289
|
+
// an untouched slot's answer is what it shows, not an omission.
|
|
290
|
+
reportSlotResponses();
|
|
269
291
|
await bridge.submit();
|
|
270
292
|
this.#state = 'submitted';
|
|
271
293
|
}
|
|
@@ -17,5 +17,10 @@
|
|
|
17
17
|
*
|
|
18
18
|
* A mounted component owns its own answer: it talks to `window.crtr` itself, and this element
|
|
19
19
|
* never invents a response shape for a kind whose shape only the product knows.
|
|
20
|
+
*
|
|
21
|
+
* The unavailable notice is the only thing this element paints, and every value in it is read
|
|
22
|
+
* through a `--crtr-slot-*` component token so a host can restyle the notice without touching
|
|
23
|
+
* crtr. There is no shared family behind these: nothing else in the bundle draws a notice, so
|
|
24
|
+
* each chain is one layer over the kit default.
|
|
20
25
|
*/
|
|
21
26
|
export {};
|
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
*
|
|
18
18
|
* A mounted component owns its own answer: it talks to `window.crtr` itself, and this element
|
|
19
19
|
* never invents a response shape for a kind whose shape only the product knows.
|
|
20
|
+
*
|
|
21
|
+
* The unavailable notice is the only thing this element paints, and every value in it is read
|
|
22
|
+
* through a `--crtr-slot-*` component token so a host can restyle the notice without touching
|
|
23
|
+
* crtr. There is no shared family behind these: nothing else in the bundle draws a notice, so
|
|
24
|
+
* each chain is one layer over the kit default.
|
|
20
25
|
*/
|
|
21
26
|
import { mountWorkspaceComponent } from '../host.js';
|
|
22
27
|
import { registerElement } from '../register.js';
|
|
@@ -26,13 +31,15 @@ const STYLE = `
|
|
|
26
31
|
display: block;
|
|
27
32
|
}
|
|
28
33
|
|
|
34
|
+
/* Flat: this sits in the flow of the page. A shadow in this bundle means floating. */
|
|
29
35
|
[part="unavailable"] {
|
|
30
|
-
padding: var(--crtr-space-3);
|
|
31
|
-
color: var(--crtr-color-text-muted);
|
|
32
|
-
background: var(--crtr-color-surface);
|
|
33
|
-
border:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
padding: var(--crtr-slot-unavailable-padding, var(--crtr-space-3));
|
|
37
|
+
color: var(--crtr-slot-unavailable-text-color, var(--crtr-color-text-muted));
|
|
38
|
+
background: var(--crtr-slot-unavailable-fill, var(--crtr-color-surface));
|
|
39
|
+
border: var(--crtr-slot-unavailable-border-width, 1px)
|
|
40
|
+
var(--crtr-slot-unavailable-border-style, solid)
|
|
41
|
+
var(--crtr-slot-unavailable-border-color, var(--crtr-color-border));
|
|
42
|
+
border-radius: var(--crtr-slot-unavailable-radius, var(--crtr-radius-medium));
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
[part="unavailable"][hidden] {
|
|
@@ -40,14 +47,14 @@ const STYLE = `
|
|
|
40
47
|
}
|
|
41
48
|
|
|
42
49
|
[part="kind"] {
|
|
43
|
-
color: var(--crtr-color-text);
|
|
44
|
-
font-family: var(--crtr-font-mono);
|
|
50
|
+
color: var(--crtr-slot-kind-text-color, var(--crtr-color-text));
|
|
51
|
+
font-family: var(--crtr-slot-kind-font-family, var(--crtr-font-mono));
|
|
45
52
|
}
|
|
46
53
|
|
|
47
54
|
[part="reason"] {
|
|
48
55
|
display: block;
|
|
49
|
-
margin-top: var(--crtr-space-1);
|
|
50
|
-
font-size: 0.
|
|
56
|
+
margin-top: var(--crtr-slot-reason-gap, var(--crtr-space-1));
|
|
57
|
+
font-size: var(--crtr-slot-reason-font-size, 0.875em);
|
|
51
58
|
}
|
|
52
59
|
`;
|
|
53
60
|
class CrtrSlotElement extends HTMLElement {
|
|
@@ -15,5 +15,22 @@
|
|
|
15
15
|
* Ported from the agent interaction kit's `agent-table.tsx` (northlight `3705fe9e2`), with the
|
|
16
16
|
* kit's `classic-list-keys` grammar — j/k move, x selects, c comments — reimplemented here
|
|
17
17
|
* over the shadow root.
|
|
18
|
+
*
|
|
19
|
+
* ## Styling
|
|
20
|
+
*
|
|
21
|
+
* Every styling value below is read through a `--crtr-table-*` component token, so a host
|
|
22
|
+
* restyles this element without touching crtr — custom properties inherit through the shadow
|
|
23
|
+
* boundary, which is the whole mechanism. The parts a person can name each own a scope:
|
|
24
|
+
* `container`, `caption`, `header`, `column-toggle`, `row`, `cell`, `selection` (the row
|
|
25
|
+
* control and the header's select-all, deliberately one thing), `comment-trigger`,
|
|
26
|
+
* `comment-editor`, `comment-input`, `comment-button` and its `comment-cancel` /
|
|
27
|
+
* `comment-save` paint, `notice`, `reason`, `empty`. Where a shared recipe draws the value the
|
|
28
|
+
* chain is `--crtr-table-<part>-<knob>` over the family's `--crtr-control-*` and then the kit
|
|
29
|
+
* default; every default stays inline at the rule that spends it, and no token is declared
|
|
30
|
+
* anywhere, which is what keeps the kit's own look when a host sets nothing.
|
|
31
|
+
*
|
|
32
|
+
* Layout and behaviour stay literal: `display`, positioning, the shrink-to-content column
|
|
33
|
+
* widths, text alignment, and the trigger's reveal-on-hover `opacity` are anatomy rather than
|
|
34
|
+
* paint, so they are not knobs.
|
|
18
35
|
*/
|
|
19
36
|
export {};
|