@ponchia/ui 0.6.12 → 0.8.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 +210 -0
- package/MIGRATIONS.json +14 -0
- package/README.md +14 -6
- package/behaviors/dialog.d.ts.map +1 -1
- package/behaviors/dialog.js +14 -0
- package/behaviors/modal.d.ts +4 -0
- package/behaviors/modal.d.ts.map +1 -1
- package/behaviors/modal.js +4 -0
- package/behaviors/splitter.d.ts +2 -0
- package/behaviors/splitter.d.ts.map +1 -1
- package/behaviors/splitter.js +15 -1
- package/behaviors/theme.d.ts +3 -2
- package/behaviors/theme.d.ts.map +1 -1
- package/behaviors/theme.js +10 -6
- package/bin/bronto-ui-check.mjs +286 -0
- package/classes/classes.json +86 -7
- package/classes/index.d.ts +53 -1
- package/classes/index.js +60 -0
- package/classes/vscode.css-custom-data.json +24 -0
- package/css/app.css +14 -3
- package/css/disclosure.css +15 -5
- package/css/dots.css +43 -18
- package/css/feedback.css +46 -8
- package/css/forms.css +3 -3
- package/css/navigation.css +1 -1
- package/css/overlay.css +19 -5
- package/css/primitives.css +101 -6
- package/css/report.css +0 -40
- package/css/site.css +19 -3
- package/css/skins.css +97 -3
- package/css/state.css +161 -0
- package/css/table.css +1 -1
- package/css/tokens.css +6 -0
- package/css/workbench.css +151 -0
- package/dist/bronto.css +1 -1
- package/dist/css/app.css +1 -1
- package/dist/css/disclosure.css +1 -1
- package/dist/css/dots.css +1 -1
- package/dist/css/feedback.css +1 -1
- package/dist/css/forms.css +1 -1
- package/dist/css/navigation.css +1 -1
- package/dist/css/overlay.css +1 -1
- package/dist/css/primitives.css +1 -1
- package/dist/css/report-kit.css +1 -1
- package/dist/css/report.css +1 -1
- package/dist/css/site.css +1 -1
- package/dist/css/skins.css +1 -1
- package/dist/css/state.css +1 -1
- package/dist/css/table.css +1 -1
- package/dist/css/tokens.css +1 -1
- package/dist/css/workbench.css +1 -1
- package/docs/adr/0001-color-system.md +32 -3
- package/docs/adr/0004-prune-unused-adapters.md +34 -0
- package/docs/architecture.md +14 -10
- package/docs/command.md +18 -4
- package/docs/contrast.md +102 -18
- package/docs/migrations/0.6-to-0.7.md +85 -0
- package/docs/package-contract.md +10 -5
- package/docs/reference.md +52 -1
- package/docs/reporting.md +8 -8
- package/docs/stability.md +39 -9
- package/docs/state.md +51 -1
- package/docs/theming.md +67 -5
- package/docs/usage.md +119 -19
- package/docs/workbench.md +99 -6
- package/llms.txt +7 -3
- package/package.json +13 -3
- package/qwik/index.d.ts.map +1 -1
- package/qwik/index.js +4 -0
- package/react/index.d.ts.map +1 -1
- package/react/index.js +4 -0
- package/solid/index.d.ts.map +1 -1
- package/solid/index.js +4 -0
- package/svelte/index.d.ts.map +1 -1
- package/svelte/index.js +4 -0
- package/tokens/figma.variables.json +84 -0
- package/tokens/index.d.ts +2 -2
- package/tokens/index.js +23 -0
- package/tokens/index.json +12 -0
- package/tokens/resolved.json +6 -0
- package/tokens/skins.js +117 -7
- package/tokens/tokens.dtcg.json +2514 -399
- package/vue/index.d.ts.map +1 -1
- package/vue/index.js +4 -0
package/docs/usage.md
CHANGED
|
@@ -167,15 +167,50 @@ a `.ui-legend` key, and fallback data. Full LLM/static report cookbook:
|
|
|
167
167
|
|
|
168
168
|
## Buttons: variant and size
|
|
169
169
|
|
|
170
|
-
- **primary
|
|
170
|
+
- **primary is the bare `ui-button`.** There is no `--primary` and no
|
|
171
|
+
`--accent`: the unmodified class already paints the accent fill, and the
|
|
172
|
+
variants below all step *down* from it. Aim for one per view. Consumers reach
|
|
173
|
+
for a `--primary` or `--accent` modifier often enough that it is worth
|
|
174
|
+
stating plainly: neither exists. Writing one is harmless *and invisible* —
|
|
175
|
+
the unknown class does nothing and the button still looks right, which is why
|
|
176
|
+
the mistake survives review. `bronto-ui-check` is what catches it.
|
|
171
177
|
- **ghost** — secondary actions; the default for "another button here".
|
|
172
178
|
- **subtle** — tertiary / low-stakes (toolbar, inline).
|
|
179
|
+
- **danger** — destructive confirmation.
|
|
173
180
|
- Size: default everywhere; `--sm` for dense tooling (toolbars,
|
|
174
|
-
pagination, table row actions), `--lg` for a hero CTA only
|
|
181
|
+
pagination, table row actions), `--lg` for a hero CTA only, `--dense` when a
|
|
182
|
+
bar's *height* is the constraint (a pane title bar). `--dense` lowers only the
|
|
183
|
+
visual floor — coarse pointers still get the full `--tap-target`, so a control
|
|
184
|
+
you shrink for a mouse is never shrunk for a finger.
|
|
175
185
|
- Loading is **not** a class: set `aria-busy="true"` (+ `disabled`); the
|
|
176
186
|
spinner is CSS. This is the ARIA-driven contract — see reference.md
|
|
177
187
|
→ "Composition & state".
|
|
178
188
|
|
|
189
|
+
## Empty state vs invite
|
|
190
|
+
|
|
191
|
+
Both use `ui-empty-state`, and the slots are the same three parts — a quiet
|
|
192
|
+
`__glyph`, one sentence of full ink in `__lead`, a quieter `__hint`. What
|
|
193
|
+
differs is the job:
|
|
194
|
+
|
|
195
|
+
- **Plain `ui-empty-state`** *reports absence*: a dashed card saying this region
|
|
196
|
+
has no rows today. Use it for a list, a table, a results pane.
|
|
197
|
+
- **`--invite`** *offers the next action*: no dashed box (there is nothing to
|
|
198
|
+
outline — the surface itself is what you are being invited into) and it
|
|
199
|
+
centres in whatever block space it is given. Use it for a surface the user is
|
|
200
|
+
meant to fill.
|
|
201
|
+
|
|
202
|
+
```html
|
|
203
|
+
<div class="ui-empty-state ui-empty-state--invite">
|
|
204
|
+
<span class="ui-empty-state__glyph" aria-hidden="true">+</span>
|
|
205
|
+
<p class="ui-empty-state__lead">Nothing pinned yet</p>
|
|
206
|
+
<p class="ui-empty-state__hint">Drop a file here, or press ⌘K</p>
|
|
207
|
+
</div>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Without the slots, every empty surface in an app re-invents these three parts
|
|
211
|
+
under a different name and they drift — one has a glyph, the next has two
|
|
212
|
+
sentences at the same weight, a third is a bare `<p>`.
|
|
213
|
+
|
|
179
214
|
## Link vs link--cta
|
|
180
215
|
|
|
181
216
|
Plain `ui-link` for in-flow links. `ui-link--cta` is the eyebrow-faced
|
|
@@ -278,6 +313,31 @@ without it these widgets are unlabelled or unannounced:
|
|
|
278
313
|
- **Icon-only buttons** (`ui-button--icon` and any glyph-only control) carry no
|
|
279
314
|
text node, so they're nameless to AT — give them an `aria-label`
|
|
280
315
|
(`<button class="ui-button ui-button--icon" aria-label="Delete">`).
|
|
316
|
+
Prefer `ui-button__label` when the same control also appears with its word
|
|
317
|
+
visible, or when a test reads the button by its text. Wrap the text in the
|
|
318
|
+
slot and let `--icon` decide whether it is painted — the markup does not
|
|
319
|
+
change, the accessible name survives, and no `aria-label` can drift out of
|
|
320
|
+
sync with the visible wording:
|
|
321
|
+
|
|
322
|
+
```js
|
|
323
|
+
// The mask comes from renderGlyph(..., { render: 'mask' }) — there is no
|
|
324
|
+
// --glyph-* token.
|
|
325
|
+
const mask = renderGlyph('trash', { render: 'mask' });
|
|
326
|
+
el.innerHTML =
|
|
327
|
+
`<button class="ui-button ui-button--icon">` +
|
|
328
|
+
`<span class="ui-icon" style="--icon-mask: ${mask}"></span>` +
|
|
329
|
+
`<span class="ui-button__label">Delete</span>` +
|
|
330
|
+
`</button>`;
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
Drop `--icon` and the same markup renders glyph + word. The slot also
|
|
334
|
+
ellipsises rather than wrapping, so a labelled button in a width-constrained
|
|
335
|
+
bar shrinks instead of pushing its neighbours out.
|
|
336
|
+
- **`ui-button--dense`** is for bars whose height is the constraint — a pane
|
|
337
|
+
title bar, a packed toolbar, a table row's actions. It lowers only the
|
|
338
|
+
*visual* floor, to the WCAG 2.5.8 24px minimum. The coarse-pointer block
|
|
339
|
+
still floats it to the full `--tap-target`, so a control you shrink for a
|
|
340
|
+
mouse is never shrunk for a finger.
|
|
281
341
|
- **`ui-sitenav` / `ui-app-nav`** — signal the current link with
|
|
282
342
|
`aria-current="page"` (both honour it; `ui-app-nav` also accepts the
|
|
283
343
|
visual-only `.is-active`, but prefer `aria-current`).
|
|
@@ -362,20 +422,16 @@ element (e.g. `aria-label="Ada Lovelace"`) because the initials alone don't
|
|
|
362
422
|
convey identity to AT. Keep initials to ~2 characters — the box is
|
|
363
423
|
`overflow: hidden` and silently clips a third.
|
|
364
424
|
|
|
365
|
-
## Modal: native `<dialog>`
|
|
425
|
+
## Modal: use native `<dialog>`
|
|
366
426
|
|
|
367
427
|
Prefer the **native `<dialog>`** path — you get top-layer, backdrop and
|
|
368
428
|
focus-trap free (wire it with `initDialog` for open-triggers + focus-return).
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
you still own the `is-open` class, so drop it in response. On bind `initModal`
|
|
376
|
-
also gives the overlay `role="dialog"` + `aria-modal="true"` and dev-warns if it
|
|
377
|
-
has no accessible name (add `aria-label`/`aria-labelledby`). A drawer is a modal
|
|
378
|
-
that enters from an edge — same rule.
|
|
429
|
+
The older `ui-modal.is-open` + `data-bronto-modal` + `initModal()` path remains
|
|
430
|
+
compatible throughout 0.7, but is deprecated for removal no earlier than 0.8.
|
|
431
|
+
It duplicates platform focus, stacking, and inert ownership and no inspected
|
|
432
|
+
real consumer uses it. Migrate portals to a native `<dialog>` where possible;
|
|
433
|
+
if a framework must retain the controlled path during 0.7, keep the existing
|
|
434
|
+
accessible name and `bronto:modal:close` handling unchanged.
|
|
379
435
|
|
|
380
436
|
Controlled modals share one document-level stack. Opening a sibling portal
|
|
381
437
|
modal makes the previous modal inert and keeps only the new top modal
|
|
@@ -387,8 +443,8 @@ nodes added after the modal opens are trapped too. If a controlled parent modal
|
|
|
387
443
|
closes while a descendant still carries `is-open`, the descendant is suspended
|
|
388
444
|
with the parent and resumes if the parent reopens.
|
|
389
445
|
|
|
390
|
-
**Scroll-lock is not automatic
|
|
391
|
-
|
|
446
|
+
**Scroll-lock is not automatic.** A native `<dialog>` does not freeze background
|
|
447
|
+
scroll — the page behind an open modal can
|
|
392
448
|
still scroll. If that matters, toggle a lock yourself while the modal is open
|
|
393
449
|
(`document.documentElement.style.overflow = 'hidden'`, restored on close), or add
|
|
394
450
|
`html:has(dialog[open]) { overflow: hidden }` for the native path.
|
|
@@ -574,6 +630,49 @@ authoring engine.
|
|
|
574
630
|
provide. The summary's title is the legible sans, not the display face — it's
|
|
575
631
|
meant to be read.
|
|
576
632
|
|
|
633
|
+
### Branded file input: keep the native control operable
|
|
634
|
+
|
|
635
|
+
Prefer the visible native control: `<input class="ui-file" type="file">` styles
|
|
636
|
+
its file-selector button without hiding the input. If the product needs a
|
|
637
|
+
button-shaped label, keep the native input focusable inside the label and expose
|
|
638
|
+
its focus on the visible wrapper. Never use `display: none` on the input: that
|
|
639
|
+
removes it from keyboard navigation.
|
|
640
|
+
|
|
641
|
+
```html
|
|
642
|
+
<label class="ui-button upload-button">
|
|
643
|
+
Choose file
|
|
644
|
+
<input class="ui-visually-hidden" type="file" name="document" />
|
|
645
|
+
</label>
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
```css
|
|
649
|
+
.upload-button:focus-within {
|
|
650
|
+
outline: 3px solid var(--focus-ring);
|
|
651
|
+
outline-offset: var(--focus-offset);
|
|
652
|
+
}
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
### Sortable table: the button is part of the contract
|
|
656
|
+
|
|
657
|
+
Put a real button in each sortable header, mark the table, then initialize the
|
|
658
|
+
behavior. Use `data-sort="num"` for numeric columns and `data-sort-value` on a
|
|
659
|
+
cell when its displayed text is not a canonical sortable value.
|
|
660
|
+
|
|
661
|
+
```html
|
|
662
|
+
<table class="ui-table" data-bronto-sortable>
|
|
663
|
+
<thead><tr>
|
|
664
|
+
<th><button class="ui-table__sort" data-sort type="button">Name</button></th>
|
|
665
|
+
<th class="is-num"><button class="ui-table__sort" data-sort="num" type="button">Score</button></th>
|
|
666
|
+
</tr></thead>
|
|
667
|
+
<tbody><tr><td>Ada</td><td class="is-num" data-sort-value="9.5">9,5</td></tr></tbody>
|
|
668
|
+
</table>
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
```js
|
|
672
|
+
import { initTableSort } from '@ponchia/ui/behaviors';
|
|
673
|
+
const cleanup = initTableSort();
|
|
674
|
+
```
|
|
675
|
+
|
|
577
676
|
## Reveal: `ui-reveal` needs JS, `ui-scroll-reveal` doesn't
|
|
578
677
|
|
|
579
678
|
`ui-scroll-reveal` is scroll-driven and **zero-JS** — reach for it in a static
|
|
@@ -615,8 +714,9 @@ It is a **non-modal** dialog by design: the panel gets `role="dialog"` and focus
|
|
|
615
714
|
moves into it, but there is **no focus trap** and the rest of the page stays
|
|
616
715
|
interactive — Tab moves *out* of the panel (it does not cycle), and it closes on
|
|
617
716
|
Escape or outside-click. Don't assume `<dialog>`-modal semantics; if you need a
|
|
618
|
-
trap and an inert backdrop, use a real modal (`<dialog>` + `initDialog
|
|
619
|
-
`initModal
|
|
717
|
+
trap and an inert backdrop, use a real modal (`<dialog>` + `initDialog`). The
|
|
718
|
+
deprecated `initModal()` path remains available only for 0.7 migration. And the
|
|
719
|
+
`is-open` fallback is a plain stacked element, so it sits
|
|
620
720
|
*under* any open native `<dialog>`'s top layer — another reason to prefer the
|
|
621
721
|
native `popover` attribute when a popover and a dialog can be open together.
|
|
622
722
|
|
|
@@ -650,7 +750,7 @@ These are JS widgets wearing the Bronto look; without the behavior they are iner
|
|
|
650
750
|
| Popover (`ui-popover`) | `initPopover` | no placement/ARIA — prefer the native `popover` attribute |
|
|
651
751
|
| Carousel (`ui-carousel`) | `initCarousel` | a native scroll-snap track (usable, no controls) |
|
|
652
752
|
| Native dialog/lightbox (`<dialog>`, `ui-lightbox`) | `initDialog` | closed markup stays closed; `data-bronto-open`/close buttons do nothing. Do not use `open` as a modal fallback: it is non-modal and has no trigger/focus-return path |
|
|
653
|
-
| Controlled modal (`ui-modal.is-open
|
|
753
|
+
| Controlled modal (`ui-modal.is-open`, deprecated) | `initModal` (deprecated) | open skin only — no inert trap, focus-return, or Escape close signal |
|
|
654
754
|
| Menu (`data-bronto-menu`) | `initMenu` | a button next to a list with no open/close, outside-click, or Escape |
|
|
655
755
|
| Dismissible alert/callout (`data-bronto-dismissible`) | `dismissible` | the close affordance is just a button; nothing is removed |
|
|
656
756
|
| Toast | `toast()` | nothing — it is imperative-only |
|
|
@@ -671,7 +771,7 @@ boundary of what CSS alone cannot do.
|
|
|
671
771
|
|
|
672
772
|
The CSS is the framework; `@ponchia/ui/behaviors` is the *sanctioned*
|
|
673
773
|
home for the little JS that genuinely needs scripting (theme persistence,
|
|
674
|
-
disclosure, dialog glue,
|
|
774
|
+
disclosure, native-dialog glue, toast, combobox, form-validation,
|
|
675
775
|
table-sort, splitter resizing). Reach for it instead of reimplementing — every
|
|
676
776
|
initializer is SSR-safe, idempotent, and returns a cleanup. If you find yourself
|
|
677
777
|
writing focus management, ARIA value sync, or `aria-expanded` toggling by hand,
|
package/docs/workbench.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Workbench — split panes, toolstrips, inspector, properties, selection bar
|
|
1
|
+
# Workbench — panes, split panes, toolstrips, inspector, properties, selection bar
|
|
2
2
|
|
|
3
3
|
`@ponchia/ui/css/workbench.css` is an opt-in set of primitives for **real
|
|
4
4
|
tools**: resizable split panes, compact toolstrips, button-mode segmented
|
|
@@ -52,6 +52,29 @@ hiding, and placement.
|
|
|
52
52
|
</header>
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
### Pane-scale — `.ui-toolstrip--pane`
|
|
56
|
+
|
|
57
|
+
The app has one toolstrip; a workbench full of panes has one *per pane*, and
|
|
58
|
+
those are a different thing. The difference is framing, not density: a pane bar
|
|
59
|
+
is a row inside a surface that already has a border, so it drops its own frame
|
|
60
|
+
and corners and rules off from the content below.
|
|
61
|
+
|
|
62
|
+
It also refuses to wrap. A pane bar usually sits directly above content that may
|
|
63
|
+
be a live terminal, an editor, or a video — and a second row would resize that
|
|
64
|
+
content every time a control appears. The row scrolls instead, and
|
|
65
|
+
`.ui-toolstrip__fill` marks the one element that absorbs slack and gives it back
|
|
66
|
+
first (a title, a path, a filter input), so nothing else is pushed out of reach.
|
|
67
|
+
|
|
68
|
+
```html
|
|
69
|
+
<div class="ui-toolstrip ui-toolstrip--pane">
|
|
70
|
+
<button class="ui-button ui-button--subtle ui-button--dense" type="button">Run</button>
|
|
71
|
+
<span class="ui-toolstrip__fill ui-mono">src/server/routes/reports.ts</span>
|
|
72
|
+
<button class="ui-button ui-button--ghost ui-button--icon ui-button--dense" type="button">
|
|
73
|
+
<span class="ui-button__label">Close</span>
|
|
74
|
+
</button>
|
|
75
|
+
</div>
|
|
76
|
+
```
|
|
77
|
+
|
|
55
78
|
## Button segmented control — `.ui-segmented-buttons`
|
|
56
79
|
|
|
57
80
|
Use `.ui-segmented-buttons` when each option is a real command button and the
|
|
@@ -80,7 +103,17 @@ domain selection model.
|
|
|
80
103
|
data-bronto-splitter
|
|
81
104
|
style="--splitter-pos: 36%"
|
|
82
105
|
>
|
|
83
|
-
<section class="ui-splitter__pane" id="files" aria-label="Files"
|
|
106
|
+
<section class="ui-splitter__pane" id="files" aria-label="Files">
|
|
107
|
+
<div class="ui-cluster" role="group" aria-label="Resize files pane">
|
|
108
|
+
<button class="ui-button ui-button--sm" type="button" data-bronto-splitter-adjust="-10">
|
|
109
|
+
Narrow
|
|
110
|
+
</button>
|
|
111
|
+
<button class="ui-button ui-button--sm" type="button" data-bronto-splitter-adjust="10">
|
|
112
|
+
Widen
|
|
113
|
+
</button>
|
|
114
|
+
</div>
|
|
115
|
+
...
|
|
116
|
+
</section>
|
|
84
117
|
<div
|
|
85
118
|
class="ui-splitter__handle"
|
|
86
119
|
role="separator"
|
|
@@ -99,7 +132,11 @@ domain selection model.
|
|
|
99
132
|
Use `.ui-splitter--horizontal` for top/bottom panes. Arrow keys change the value
|
|
100
133
|
by 2 percentage points, Shift+Arrow and PageUp/PageDown by 10, and Home/End jump
|
|
101
134
|
to `aria-valuemin` / `aria-valuemax`. The handle needs a real accessible name
|
|
102
|
-
and `aria-controls` pointing at the primary pane.
|
|
135
|
+
and `aria-controls` pointing at the primary pane. Also provide ordinary buttons
|
|
136
|
+
with `data-bronto-splitter-adjust="-10"` / `"10"`: pointer users then have a
|
|
137
|
+
non-drag resize path, while keyboard and assistive-technology users retain the
|
|
138
|
+
separator interaction. The signed value is a percentage-point delta and is
|
|
139
|
+
clamped to the separator's min/max.
|
|
103
140
|
|
|
104
141
|
## Inspector — `.ui-inspector`
|
|
105
142
|
|
|
@@ -156,11 +193,67 @@ A raised bar of actions on the current selection: a `__count` on one side,
|
|
|
156
193
|
</div>
|
|
157
194
|
```
|
|
158
195
|
|
|
196
|
+
### Anchoring a floating bar
|
|
197
|
+
|
|
198
|
+
Both `--floating` bars are raised but position-less, so every consumer
|
|
199
|
+
re-derives the same thing — including the `max(offset, inset)` shape, which is
|
|
200
|
+
the part people get wrong by writing a bare offset that a phone then swallows
|
|
201
|
+
under the home indicator. `--anchored` centres the bar against its positioned
|
|
202
|
+
ancestor and clears the safe area:
|
|
203
|
+
|
|
204
|
+
```html
|
|
205
|
+
<div class="ui-selectionbar ui-selectionbar--anchored">…</div>
|
|
206
|
+
|
|
207
|
+
<!-- The bar that must NOT sit under the thumb: recovery, destructive actions. -->
|
|
208
|
+
<div class="ui-selectionbar ui-selectionbar--anchor-block-start">…</div>
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
`--anchored` alone means bottom. Override the gap with `--anchor-offset`. The
|
|
212
|
+
host still owns `z-index`, because only it knows what else is on the canvas.
|
|
213
|
+
|
|
214
|
+
## Pane — `.ui-pane`
|
|
215
|
+
|
|
216
|
+
`.ui-panel` is a padded card and `.ui-inspector` is head-plus-body; neither is a
|
|
217
|
+
*window*. A pane is what a canvas node, a floating tool window, or a dockable
|
|
218
|
+
panel needs: a header you can drag, a title that renames in place, an actions
|
|
219
|
+
slot that survives a narrow pane, and a body that owns the rest.
|
|
220
|
+
|
|
221
|
+
```html
|
|
222
|
+
<article class="ui-pane">
|
|
223
|
+
<header class="ui-pane__head">
|
|
224
|
+
<strong class="ui-pane__title">deploy.log</strong>
|
|
225
|
+
<span class="ui-pane__actions">
|
|
226
|
+
<button class="ui-button ui-button--subtle ui-button--icon ui-button--dense" type="button">
|
|
227
|
+
<span class="ui-button__label">Focus</span>
|
|
228
|
+
</button>
|
|
229
|
+
</span>
|
|
230
|
+
</header>
|
|
231
|
+
<div class="ui-pane__body">…</div>
|
|
232
|
+
</article>
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Two behaviours are worth knowing, because both come from a real failure:
|
|
236
|
+
|
|
237
|
+
- **The title gives up space first.** It is the only thing in the header that
|
|
238
|
+
can be truncated without losing a function.
|
|
239
|
+
- **`__actions` scrolls rather than pushing.** Sized `flex: 0 1 auto` with
|
|
240
|
+
`overflow-x: auto`, so a pane narrow enough to run out of room scrolls its
|
|
241
|
+
controls instead of pushing the last one past the clipped edge — which is how
|
|
242
|
+
an app ends up with a Focus or Disconnect button that exists, is in the a11y
|
|
243
|
+
tree, and cannot be reached.
|
|
244
|
+
|
|
245
|
+
Swap the title for `.ui-pane__title-input` to rename in place. It inherits the
|
|
246
|
+
type it replaces, so the swap moves no layout; only the accent border says you
|
|
247
|
+
are typing a name now. The host owns dragging, z-order, focus policy and
|
|
248
|
+
persistence — this leaf has no behavior.
|
|
249
|
+
|
|
159
250
|
## Scope
|
|
160
251
|
|
|
161
|
-
No recipes
|
|
162
|
-
|
|
163
|
-
`cls.property`, …).
|
|
252
|
+
No recipes for the structural containers and rows; apply the classes directly
|
|
253
|
+
(or read them from `cls.toolstrip`, `cls.pane`, `cls.splitter`, `cls.inspector`,
|
|
254
|
+
`cls.property`, …). `ui.toolstrip()` and `ui.selectionbar()` exist only to
|
|
255
|
+
compose the variant/anchor modifiers. Pair the selection bar with the
|
|
256
|
+
cross-cutting
|
|
164
257
|
[`ui-sel`](./selection.md) states on the selected items themselves. Bronto styles
|
|
165
258
|
the chrome and wires the splitter affordance; the host owns hit-testing,
|
|
166
259
|
persistence, pane contents, viewport semantics, and commands.
|
package/llms.txt
CHANGED
|
@@ -45,7 +45,7 @@ the path changes from source `css/` to built `dist/css/`:
|
|
|
45
45
|
<!-- installed locally -->
|
|
46
46
|
<link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/<leaf>.css" />
|
|
47
47
|
<!-- or from a CDN; pin the version (pre-1.0, breaking changes ship in the minor) -->
|
|
48
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
48
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.8.0/dist/css/<leaf>.css" />
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
The flattened default bundle is `dist/bronto.css` (bundler shorthand
|
|
@@ -75,7 +75,8 @@ import { applyStoredTheme } from '@ponchia/ui/behaviors';
|
|
|
75
75
|
Notable behaviors beyond the obvious: `initMenu()` adds close affordances to a
|
|
76
76
|
native `<details data-bronto-menu>` dropdown (outside-click/Escape/select-close);
|
|
77
77
|
`initModal()` wires the controlled `.ui-modal.is-open` path (inert focus-trap +
|
|
78
|
-
role/aria-modal)
|
|
78
|
+
role/aria-modal), but is deprecated in 0.7 for removal no earlier than 0.8;
|
|
79
|
+
prefer native `<dialog>` + `initDialog()`. `initDisabledGuard()` makes every `aria-disabled` control
|
|
79
80
|
keyboard-inert (CSS alone is only pointer-inert). For the value-bearing fills,
|
|
80
81
|
`attrs.meter(value)` / `attrs.progress(value)` from `@ponchia/ui/classes` return
|
|
81
82
|
`role`+`aria-valuenow/min/max`+the `--value` style to spread onto the host.
|
|
@@ -86,6 +87,8 @@ matching `.ui-source-card`, seed lightweight preview metadata, and emit
|
|
|
86
87
|
and any rich preview popover.
|
|
87
88
|
|
|
88
89
|
Optional lifecycle adapters wrap those behaviors without owning markup or state.
|
|
90
|
+
They remain compatible in 0.7 but are deprecated for removal no earlier than
|
|
91
|
+
0.8; prefer vanilla behavior initialization in the host lifecycle.
|
|
89
92
|
React/Solid/Qwik use hook bindings (peer deps `react` / `solid-js` /
|
|
90
93
|
`@builder.io/qwik`, optional — core stays zero-dep); Svelte uses dependency-free
|
|
91
94
|
actions, and Vue uses dependency-free directives/plugin helpers:
|
|
@@ -769,7 +772,8 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
|
|
|
769
772
|
resolved palette; the build fails below the declared floor.
|
|
770
773
|
- `tokens/index.d.ts` — every design-token name as a literal union.
|
|
771
774
|
- `tokens/index.json` — tokens as plain data (global / light / dark).
|
|
772
|
-
- `tokens/tokens.dtcg.json` —
|
|
775
|
+
- `tokens/tokens.dtcg.json` — resolved DTCG 2025.10 structured typed values;
|
|
776
|
+
authored CSS expressions remain in `tokens/index.json` and DTCG extensions.
|
|
773
777
|
- `tokens/resolved.json` — every colour token resolved to a static
|
|
774
778
|
`#rrggbb` / `rgba(...)` per theme (var() + color-mix() evaluated) in
|
|
775
779
|
`light`/`dark`, plus a `scale` block of the non-colour scales
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ponchia/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CSS-first identity and UI layer for services, tools, sites, and reports — works in HTML, every framework, and PDF, no component runtime. Shared app shell, forms, tables, workflow chrome, plus opt-in analytical/report primitives. Monochrome with one rationed accent. Zero runtime dependencies.",
|
|
6
6
|
"keywords": [
|
|
@@ -38,6 +38,9 @@
|
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=18"
|
|
40
40
|
},
|
|
41
|
+
"bin": {
|
|
42
|
+
"bronto-ui-check": "./bin/bronto-ui-check.mjs"
|
|
43
|
+
},
|
|
41
44
|
"sideEffects": [
|
|
42
45
|
"**/*.css"
|
|
43
46
|
],
|
|
@@ -49,6 +52,7 @@
|
|
|
49
52
|
"fonts",
|
|
50
53
|
"tokens",
|
|
51
54
|
"classes",
|
|
55
|
+
"bin",
|
|
52
56
|
"behaviors",
|
|
53
57
|
"glyphs",
|
|
54
58
|
"schemas",
|
|
@@ -108,9 +112,11 @@
|
|
|
108
112
|
"docs/migrations/0.3-to-0.4.md",
|
|
109
113
|
"docs/migrations/0.4-to-0.5.md",
|
|
110
114
|
"docs/migrations/0.5-to-0.6.md",
|
|
115
|
+
"docs/migrations/0.6-to-0.7.md",
|
|
111
116
|
"docs/adr/0001-color-system.md",
|
|
112
117
|
"docs/adr/0002-scope-and-2026-baseline.md",
|
|
113
|
-
"docs/adr/0003-theme-model.md"
|
|
118
|
+
"docs/adr/0003-theme-model.md",
|
|
119
|
+
"docs/adr/0004-prune-unused-adapters.md"
|
|
114
120
|
],
|
|
115
121
|
"style": "./dist/bronto.css",
|
|
116
122
|
"scripts": {
|
|
@@ -188,10 +194,11 @@
|
|
|
188
194
|
"check:contract": "node scripts/check-contract.mjs",
|
|
189
195
|
"check:variables": "node scripts/check-variables.mjs",
|
|
190
196
|
"check:contrast": "node scripts/check-contrast.mjs",
|
|
197
|
+
"check:dtcg": "node scripts/check-dtcg.mjs",
|
|
191
198
|
"check:publint": "publint --strict",
|
|
192
199
|
"check:attw": "attw --pack --ignore-rules no-resolution cjs-resolves-to-esm",
|
|
193
200
|
"check:workflows": "github-actionlint .github/workflows/*.yml",
|
|
194
|
-
"check": "npm run lint && npm run check:format && npm run check:exports && npm run check:fresh && npm run check:classes && npm run check:recipe-types && npm run check:dead && npm run check:complexity && npm run check:types && npm run check:unit && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:consumer-surface && npm run check:consumer-types && npm run check:component-matrix && npm run check:behavior-matrix && npm run check:helper-matrix && npm run check:binding-matrix && npm run check:examples && npm run check:visual-baselines && npm run check:playwright-container && npm run check:schemas && npm run check:publint && npm run check:attw && npm run check:workflows && npm run check:release && npm run check:versions && npm run check:migrations && npm run check:public-metadata && npm run check:public-hygiene && npm run check:doc-links && npm run check:doc-recipes && npm run check:contract && npm run check:variables && npm run check:contrast && npm run check:dts-emit && npm run check:glyphs && npm run check:color-policy && npm run check:skins && npm run check:charts && npm run check:mermaid && npm run check:d2 && npm run check:vega && npm run check:report && npm run check:legend && npm run check:chain",
|
|
201
|
+
"check": "npm run lint && npm run check:format && npm run check:exports && npm run check:fresh && npm run check:classes && npm run check:recipe-types && npm run check:dead && npm run check:complexity && npm run check:types && npm run check:unit && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:consumer-surface && npm run check:consumer-types && npm run check:component-matrix && npm run check:behavior-matrix && npm run check:helper-matrix && npm run check:binding-matrix && npm run check:examples && npm run check:visual-baselines && npm run check:playwright-container && npm run check:schemas && npm run check:publint && npm run check:attw && npm run check:workflows && npm run check:release && npm run check:versions && npm run check:migrations && npm run check:public-metadata && npm run check:public-hygiene && npm run check:doc-links && npm run check:doc-recipes && npm run check:contract && npm run check:variables && npm run check:contrast && npm run check:dtcg && npm run check:dts-emit && npm run check:glyphs && npm run check:color-policy && npm run check:skins && npm run check:charts && npm run check:mermaid && npm run check:d2 && npm run check:vega && npm run check:report && npm run check:legend && npm run check:chain",
|
|
195
202
|
"test": "node --test \"test/*.test.mjs\"",
|
|
196
203
|
"test:e2e": "playwright test",
|
|
197
204
|
"test:e2e:chromium": "playwright test --project=chromium",
|
|
@@ -399,9 +406,11 @@
|
|
|
399
406
|
"./docs/migrations/0.3-to-0.4.md": "./docs/migrations/0.3-to-0.4.md",
|
|
400
407
|
"./docs/migrations/0.4-to-0.5.md": "./docs/migrations/0.4-to-0.5.md",
|
|
401
408
|
"./docs/migrations/0.5-to-0.6.md": "./docs/migrations/0.5-to-0.6.md",
|
|
409
|
+
"./docs/migrations/0.6-to-0.7.md": "./docs/migrations/0.6-to-0.7.md",
|
|
402
410
|
"./docs/adr/0001-color-system.md": "./docs/adr/0001-color-system.md",
|
|
403
411
|
"./docs/adr/0002-scope-and-2026-baseline.md": "./docs/adr/0002-scope-and-2026-baseline.md",
|
|
404
412
|
"./docs/adr/0003-theme-model.md": "./docs/adr/0003-theme-model.md",
|
|
413
|
+
"./docs/adr/0004-prune-unused-adapters.md": "./docs/adr/0004-prune-unused-adapters.md",
|
|
405
414
|
"./classes": {
|
|
406
415
|
"types": "./classes/index.d.ts",
|
|
407
416
|
"default": "./classes/index.js"
|
|
@@ -558,6 +567,7 @@
|
|
|
558
567
|
"./fonts/*": "./fonts/*"
|
|
559
568
|
},
|
|
560
569
|
"overrides": {
|
|
570
|
+
"adm-zip": "0.6.0",
|
|
561
571
|
"esbuild": "0.28.1"
|
|
562
572
|
}
|
|
563
573
|
}
|
package/qwik/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAuHA;;;;;;;sBAOsB;AACtB,kCAJ8B,CAAC,SAAhB,YAAa,0DAChB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,SAC5B,yBAAyB,CAAC,CAAC,CAAC,GAC1B,IAAI,CAIjB;AAGM,sCADK,yBAAyB,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAmB,IAAI,CAGhC;AAEtD,sCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,wCADK,yBAAyB,GAAmB,IAAI,CAGG;AAExD,qCADK,yBAAyB,GAAmB,IAAI,CAGA;AAErD,+BADK,yBAAyB,GAAmB,IAAI,CAGN;AAE/C,yCADK,yBAAyB,GAAmB,IAAI,CAGI;AAEzD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,+BADK,yBAAyB,GAAmB,IAAI,CAGN;AAE/C,iCADK,yBAAyB,GAAmB,IAAI,CAGJ;AAEjD,gCADK,yBAAyB,GAAmB,IAAI,CAGL;AAEhD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,iCADK,yBAAyB,GAAmB,IAAI,CAGJ;AAEjD,qCADK,yBAAyB,GAAmB,IAAI,CAGA;AAErD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAInD,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBA5LtB,OAAO,uBAAuB,EAAE,OAAO;2BACvC,OAAO,uBAAuB,EAAE,YAAY;+BAC5C,OAAO,uBAAuB,EAAE,gBAAgB;wBAChD,OAAO,uBAAuB,EAAE,SAAS;gCAEzC,QAAQ,GACd,OAAO,GACP;IAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7C,IAAI,GACJ,SAAS;8BAIa,CAAC,SAAhB,YAAa,sDACd,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE;sCAI9B,CAAC,SAAhB,YAAa,sDACd,iBAAiB,CAAC,CAAC,CAAC,GAC1B,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,IAAI,GACJ,SAAS;iCA2BT,uBAAuB"}
|
package/qwik/index.js
CHANGED
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
* const root = useSignal();
|
|
26
26
|
* useDialog({ root }); // <section ref={root}> … </section>
|
|
27
27
|
*
|
|
28
|
+
* @deprecated Import the framework-agnostic behavior initializers directly.
|
|
29
|
+
* This adapter remains compatible in 0.7 and is scheduled for removal no
|
|
30
|
+
* earlier than 0.8 because no real consumer adopted it.
|
|
31
|
+
*
|
|
28
32
|
* @typedef {import('../behaviors/index.js').Cleanup} Cleanup
|
|
29
33
|
* @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
|
|
30
34
|
* @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
|
package/react/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAoGA;;;;;;sBAMsB;AACtB,kCAJ8B,CAAC,SAAhB,YAAa,0DAChB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,SAC5B,yBAAyB,CAAC,CAAC,CAAC,GAC1B,IAAI,CAGjB;AAGM,sCADK,yBAAyB,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAmB,IAAI,CACb;AAEzE,sCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,wCADK,yBAAyB,GAAmB,IAAI,CACwB;AAE7E,qCADK,yBAAyB,GAAmB,IAAI,CACkB;AAEvE,+BADK,yBAAyB,GAAmB,IAAI,CACM;AAE3D,yCADK,yBAAyB,GAAmB,IAAI,CAC0B;AAE/E,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAEjE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,+BADK,yBAAyB,GAAmB,IAAI,CACM;AAE3D,iCADK,yBAAyB,GAAmB,IAAI,CACU;AAE/D,gCADK,yBAAyB,GAAmB,IAAI,CACQ;AAE7D,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,iCADK,yBAAyB,GAAmB,IAAI,CACU;AAE/D,qCADK,yBAAyB,GAAmB,IAAI,CACkB;AAEvE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAEjE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAEjE,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAInE,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBAlItB,OAAO,uBAAuB,EAAE,OAAO;2BACvC,OAAO,uBAAuB,EAAE,YAAY;+BAC5C,OAAO,uBAAuB,EAAE,gBAAgB;wBAChD,OAAO,uBAAuB,EAAE,SAAS;gCAEzC,QAAQ,GACd,OAAO,GACP;IAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7C,IAAI,GACJ,SAAS;8BAIa,CAAC,SAAhB,YAAa,sDACd,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE;sCAI9B,CAAC,SAAhB,YAAa,sDACd,iBAAiB,CAAC,CAAC,CAAC,GAC1B,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,IAAI,GACJ,SAAS;iCA2BT,uBAAuB"}
|
package/react/index.js
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
* The public types below are JSDoc `@typedef`s; the shipped `index.d.ts` is
|
|
21
21
|
* generated from them (and these signatures) by `tsc --emitDeclarationOnly`.
|
|
22
22
|
*
|
|
23
|
+
* @deprecated Import the framework-agnostic behavior initializers directly.
|
|
24
|
+
* This adapter remains compatible in 0.7 and is scheduled for removal no
|
|
25
|
+
* earlier than 0.8 because no real consumer adopted it.
|
|
26
|
+
*
|
|
23
27
|
* @typedef {import('../behaviors/index.js').Cleanup} Cleanup
|
|
24
28
|
* @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
|
|
25
29
|
* @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
|
package/solid/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"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"}
|
package/solid/index.js
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
* The public types below are JSDoc `@typedef`s; the shipped `index.d.ts` is
|
|
21
21
|
* generated from them (and these signatures) by `tsc --emitDeclarationOnly`.
|
|
22
22
|
*
|
|
23
|
+
* @deprecated Import the framework-agnostic behavior initializers directly.
|
|
24
|
+
* This adapter remains compatible in 0.7 and is scheduled for removal no
|
|
25
|
+
* earlier than 0.8 because no real consumer adopted it.
|
|
26
|
+
*
|
|
23
27
|
* @typedef {import('../behaviors/index.js').Cleanup} Cleanup
|
|
24
28
|
* @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
|
|
25
29
|
* @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
|
package/svelte/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"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"}
|
package/svelte/index.js
CHANGED
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
* <button data-bronto-theme-toggle>Toggle theme</button>
|
|
15
15
|
* </main>
|
|
16
16
|
*
|
|
17
|
+
* @deprecated Import the framework-agnostic behavior initializers directly.
|
|
18
|
+
* This adapter remains compatible in 0.7 and is scheduled for removal no
|
|
19
|
+
* earlier than 0.8 because no real consumer adopted it.
|
|
20
|
+
*
|
|
17
21
|
* @typedef {import('../behaviors/index.js').Cleanup} Cleanup
|
|
18
22
|
* @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
|
|
19
23
|
* @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
|