@ponchia/ui 0.6.3 → 0.6.5
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 +53 -0
- package/README.md +7 -7
- package/behaviors/glyph.d.ts +7 -0
- package/behaviors/glyph.d.ts.map +1 -1
- package/behaviors/glyph.js +58 -4
- package/behaviors/index.d.ts +2 -0
- package/behaviors/index.d.ts.map +1 -1
- package/behaviors/index.js +2 -0
- package/behaviors/sources.d.ts +28 -0
- package/behaviors/sources.d.ts.map +1 -0
- package/behaviors/sources.js +158 -0
- package/classes/classes.json +210 -4
- package/classes/index.d.ts +75 -1
- package/classes/index.js +95 -1
- package/css/dots.css +210 -3
- package/css/report.css +359 -7
- package/css/skins.css +9 -0
- package/css/sources.css +18 -0
- package/css/spark.css +14 -0
- package/css/table.css +7 -1
- package/css/tokens.css +8 -1
- package/dist/bronto.css +1 -1
- package/dist/css/dots.css +1 -1
- package/dist/css/report.css +1 -1
- package/dist/css/skins.css +1 -1
- package/dist/css/sources.css +1 -1
- package/dist/css/spark.css +1 -1
- package/dist/css/table.css +1 -1
- package/dist/css/tokens.css +1 -1
- package/docs/dots.md +146 -0
- package/docs/frontier-primitives.md +262 -0
- package/docs/glyphs.md +114 -0
- package/docs/package-contract.md +263 -0
- package/docs/reference.md +115 -1
- package/docs/reporting.md +296 -16
- package/docs/sources.md +32 -0
- package/docs/stability.md +6 -3
- package/glyphs/glyphs.d.ts +61 -0
- package/glyphs/glyphs.js +593 -30
- package/llms.txt +79 -25
- package/package.json +13 -3
- package/qwik/index.d.ts +1 -0
- package/qwik/index.d.ts.map +1 -1
- package/qwik/index.js +5 -0
- package/react/index.d.ts +1 -0
- package/react/index.d.ts.map +1 -1
- package/react/index.js +3 -0
- package/solid/index.d.ts +2 -0
- package/solid/index.d.ts.map +1 -1
- package/solid/index.js +3 -0
- package/tokens/skins.js +22 -9
package/llms.txt
CHANGED
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
> This file orients an LLM/agent. The authoritative, always-correct API
|
|
10
10
|
> is the TypeScript declarations shipped in this package (paths below):
|
|
11
11
|
> they are generated from the runtime sources and CI-drift-checked, so
|
|
12
|
-
> they never lie. Read them before guessing class or token names.
|
|
12
|
+
> they never lie. Read them before guessing class or token names. For the
|
|
13
|
+
> manifest-level inventory, use `docs/package-contract.md`: it is generated
|
|
14
|
+
> from package.json and lists every export, shipped path, and provenance gate.
|
|
13
15
|
|
|
14
16
|
## Use the framework
|
|
15
17
|
|
|
@@ -42,7 +44,7 @@ the path changes from source `css/` to built `dist/css/`:
|
|
|
42
44
|
<!-- installed locally -->
|
|
43
45
|
<link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/<leaf>.css" />
|
|
44
46
|
<!-- or from a CDN; pin the version (pre-1.0, breaking changes ship in the minor) -->
|
|
45
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.
|
|
47
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.5/dist/css/<leaf>.css" />
|
|
46
48
|
```
|
|
47
49
|
|
|
48
50
|
The flattened default bundle is `dist/bronto.css` (bundler shorthand
|
|
@@ -76,6 +78,11 @@ role/aria-modal); `initDisabledGuard()` makes every `aria-disabled` control
|
|
|
76
78
|
keyboard-inert (CSS alone is only pointer-inert). For the value-bearing fills,
|
|
77
79
|
`attrs.meter(value)` / `attrs.progress(value)` from `@ponchia/ui/classes` return
|
|
78
80
|
`role`+`aria-valuenow/min/max`+the `--value` style to spread onto the host.
|
|
81
|
+
`initSources()` wires `[data-bronto-sources]` citation/source islands:
|
|
82
|
+
`.ui-citation[href^="#"]` and `[data-bronto-source-ref]` focus/highlight the
|
|
83
|
+
matching `.ui-source-card`, seed lightweight preview metadata, and emit
|
|
84
|
+
`bronto:source:focus`; the host still owns numbering, fetching, trust decisions,
|
|
85
|
+
and any rich preview popover.
|
|
79
86
|
|
|
80
87
|
For React/Solid/Qwik, optional thin hook bindings over those behaviors (peer
|
|
81
88
|
deps `react` / `solid-js` / `@builder.io/qwik`, optional — core stays zero-dep):
|
|
@@ -87,13 +94,21 @@ import { useDialog, useToast } from '@ponchia/ui/react'; // or '@ponchia/ui/soli
|
|
|
87
94
|
```
|
|
88
95
|
|
|
89
96
|
Optional display glyphs — dot-matrix bitmaps on the `.ui-dotmatrix` primitive
|
|
90
|
-
(decorative by default; `renderGlyph` is SSR-safe, `initDotGlyph` is the DOM form)
|
|
97
|
+
(decorative by default; `renderGlyph` is SSR-safe, `initDotGlyph` is the DOM form).
|
|
98
|
+
`findGlyphs('delete')` resolves an intent word to real names; `renderReadout`
|
|
99
|
+
composes digits into a big Nothing-style numeric. Details: `docs/glyphs.md`.
|
|
91
100
|
|
|
92
101
|
```js
|
|
93
|
-
import { renderGlyph, GLYPH_NAMES } from '@ponchia/ui/glyphs';
|
|
102
|
+
import { renderGlyph, findGlyphs, renderReadout, GLYPH_NAMES } from '@ponchia/ui/glyphs';
|
|
94
103
|
el.innerHTML = renderGlyph('check', { label: 'Done' });
|
|
104
|
+
el.innerHTML = renderReadout('73%', { label: '73 percent of quota' });
|
|
95
105
|
```
|
|
96
106
|
|
|
107
|
+
The dot family also has data-bound reporting surfaces — `.ui-waffle` (unit
|
|
108
|
+
chart), `.ui-activity` (contribution grid), `.ui-level` (LED meter),
|
|
109
|
+
`.ui-dotgauge` (radial gauge), `.ui-halftone`, `.ui-readout` — same host-sets-
|
|
110
|
+
the-data / leaf-paints boundary as `ui-spark`/`ui-meter`. Details: `docs/dots.md`.
|
|
111
|
+
|
|
97
112
|
Layout primitives (core bundle, no media queries — intrinsic Every-Layout
|
|
98
113
|
composition that responds to content + available space): `ui-stack` (vertical
|
|
99
114
|
rhythm), `ui-cluster` (wrapping inline row), `ui-grid` (auto-fit columns),
|
|
@@ -554,6 +569,7 @@ specifiers only work after a bundler rewrites them:
|
|
|
554
569
|
<link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/bronto.css" />
|
|
555
570
|
<link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/report.css" />
|
|
556
571
|
<link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/dataviz.css" />
|
|
572
|
+
<link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/sources.css" />
|
|
557
573
|
```
|
|
558
574
|
|
|
559
575
|
In Vite/webpack/etc., import `@ponchia/ui`, `@ponchia/ui/css/report.css`, and
|
|
@@ -577,25 +593,59 @@ Canonical report skeleton:
|
|
|
577
593
|
<div class="ui-report__summary">
|
|
578
594
|
<div class="ui-prose"><p>Use prose only for narrative body content.</p></div>
|
|
579
595
|
</div>
|
|
596
|
+
<aside class="ui-report__decision" aria-labelledby="decision-title">
|
|
597
|
+
<p class="ui-report__decision-kicker">Decision</p>
|
|
598
|
+
<h3 class="ui-report__decision-title" id="decision-title">Ship the low-risk path</h3>
|
|
599
|
+
<p class="ui-report__decision-body">State the operator-facing call before the evidence.</p>
|
|
600
|
+
<dl class="ui-report__decision-grid">
|
|
601
|
+
<div class="ui-report__decision-item">
|
|
602
|
+
<dt class="ui-report__decision-label">Basis</dt>
|
|
603
|
+
<dd class="ui-report__decision-value">Two verified sources support the call.</dd>
|
|
604
|
+
</div>
|
|
605
|
+
</dl>
|
|
606
|
+
<p class="ui-report__decision-meta">Evidence state: supported · Sources: 4 verified</p>
|
|
607
|
+
</aside>
|
|
580
608
|
</section>
|
|
581
609
|
</main>
|
|
582
610
|
```
|
|
583
611
|
|
|
584
|
-
Report rules for agents:
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
612
|
+
Report rules for agents:
|
|
613
|
+
|
|
614
|
+
- Static output by default; do not initialize behaviors over untrusted generated
|
|
615
|
+
content; sanitize arbitrary LLM/CMS/user HTML before rendering.
|
|
616
|
+
- Use semantic headings; give tables captions and header cells; give charts
|
|
617
|
+
captions, legends/direct labels, and fallback data.
|
|
618
|
+
- For a chart, theme Vega-Lite with `@ponchia/ui/vega` or hand-author a
|
|
619
|
+
token-themed inline `<svg>` inside a `ui-report__figure`. Bronto ships no
|
|
620
|
+
chart component.
|
|
621
|
+
- Put the above-the-fold call in `ui-report__decision`; use
|
|
622
|
+
`ui-report__finding--critical|--major|--minor|--resolved` only when the
|
|
623
|
+
written finding label also states the severity/status.
|
|
624
|
+
- Use `ui-claim` (`--supported|--partial|--disputed|--unsupported|--unknown`)
|
|
625
|
+
for auditable claims. Pair it with written `ui-claim__status`, source links,
|
|
626
|
+
scope, basis, limits, and caveats; tone is only a scanning aid.
|
|
627
|
+
- Use `ui-evidence-grid` / `ui-evidence-item` for compact evidence packets and
|
|
628
|
+
`ui-evidence-ledger` + `ui-table` for claim/evidence/source matrices.
|
|
629
|
+
- Use `ui-report__actions` for follow-up rows. Real workflow actions should
|
|
630
|
+
include title, owner, due/recheck date, status, criteria, and source/claim
|
|
631
|
+
link when available.
|
|
632
|
+
- Use `ui-source-card` + `ui-provenance` for source-backed claims; stale,
|
|
633
|
+
conflicting, unverified, or generated inputs should be surfaced near affected
|
|
634
|
+
claims, not only in the source appendix.
|
|
635
|
+
- For important reports, emit a sidecar `claims.json` / source archive manifest
|
|
636
|
+
with stable claim IDs, source IDs, status, risk, retrieval time, and
|
|
637
|
+
claim-source relations. The visible HTML remains the primary artifact, but the
|
|
638
|
+
sidecar lets tools prove IDs and high-risk evidence still resolve.
|
|
639
|
+
- Use `ui-delta` (`--up`/`--down`/`--flat`, `--invert` when up is bad) for a
|
|
640
|
+
trend figure and `ui-compare` (`--2up`) for an A/B / before-after section.
|
|
641
|
+
- Use `ui-report__section--unnumbered` for appendices in numbered reports.
|
|
642
|
+
Never use raw chromatic inline colors. Format numbers/dates yourself (the
|
|
643
|
+
framework aligns figures, it does not format them).
|
|
644
|
+
- To make a PDF, render with `chrome-headless-shell` (or any Chromium) using
|
|
645
|
+
`printBackground: true` so figure fills survive. Reports are static/zero-JS,
|
|
646
|
+
so it is just load → print; see "Print and PDF" in `docs/reporting.md`.
|
|
647
|
+
|
|
648
|
+
Full cookbook: `docs/reporting.md`.
|
|
599
649
|
|
|
600
650
|
## Authoritative offline references (shipped in this package)
|
|
601
651
|
|
|
@@ -624,8 +674,8 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
|
|
|
624
674
|
density, prose-in-card, when to add a behavior. Read this before
|
|
625
675
|
re-implementing UI the framework already has an opinion about.
|
|
626
676
|
- `docs/reporting.md` — static/PDF-first report cookbook for LLM-authored
|
|
627
|
-
reports, including report skeletons,
|
|
628
|
-
boundaries.
|
|
677
|
+
reports, including report skeletons, decision/finding/evidence patterns,
|
|
678
|
+
chart rules, print utilities, and safety boundaries.
|
|
629
679
|
- `docs/annotations.md` — SVG annotation recipes and helper guidance for
|
|
630
680
|
analytical figures.
|
|
631
681
|
- `docs/mermaid.md` — theme Mermaid diagrams from bronto tokens (resolved
|
|
@@ -673,10 +723,14 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
|
|
|
673
723
|
(§"Table-local state classes" / §"Composition & state") and emitted by the
|
|
674
724
|
`ui.*()` recipes, but deliberately NOT in `cls`. Do not strip them.
|
|
675
725
|
- Prefer the `ui.*()` recipes over hand-concatenating modifier strings.
|
|
676
|
-
Report/layout classes
|
|
677
|
-
`
|
|
678
|
-
|
|
679
|
-
`ui.
|
|
726
|
+
Report/layout classes are mostly literal (`cls.report*`, `cls.printOnly`,
|
|
727
|
+
`ui-evidence-grid`, `ui-evidence-ledger`, `ui-evidence-item`,
|
|
728
|
+
`ui-evidence-item__title`, `ui-evidence-item__meta`, and
|
|
729
|
+
`ui-evidence-item__body`); use `ui.reportFinding({ severity })` for finding
|
|
730
|
+
severity, `ui.claim({ status })` for claim status, and
|
|
731
|
+
`ui.compare({ cols: 2 })` for hard A/B layouts. Bronto still has no chart
|
|
732
|
+
recipe or component. Annotations do have a `ui.annotation()` recipe for
|
|
733
|
+
variant/tone selection.
|
|
680
734
|
- For a standalone HTML report, never `<link>` a `@ponchia/ui/css/*.css`
|
|
681
735
|
package specifier (it does not resolve in a browser) and never assume
|
|
682
736
|
`dist/bronto.css` carries the report/chart/legend/annotation layers — it
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ponchia/ui",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CSS-first design system for interfaces that explain themselves — works in HTML, every framework, and PDF, no component runtime. A standard component set plus an opt-in analytical & report layer (annotations, legends, connectors, data-viz, report grammar). Monochrome with one rationed accent, re-skinnable from one --accent knob. Zero runtime dependencies.",
|
|
6
6
|
"keywords": [
|
|
@@ -63,8 +63,12 @@
|
|
|
63
63
|
"docs/theming.md",
|
|
64
64
|
"docs/contrast.md",
|
|
65
65
|
"docs/stability.md",
|
|
66
|
+
"docs/package-contract.md",
|
|
66
67
|
"docs/usage.md",
|
|
68
|
+
"docs/frontier-primitives.md",
|
|
67
69
|
"docs/reporting.md",
|
|
70
|
+
"docs/dots.md",
|
|
71
|
+
"docs/glyphs.md",
|
|
68
72
|
"docs/mermaid.md",
|
|
69
73
|
"docs/d2.md",
|
|
70
74
|
"docs/vega.md",
|
|
@@ -118,6 +122,7 @@
|
|
|
118
122
|
"d2:build": "node scripts/gen-d2.mjs",
|
|
119
123
|
"vega:build": "node scripts/gen-vega.mjs",
|
|
120
124
|
"reference:build": "node scripts/gen-reference.mjs",
|
|
125
|
+
"package-contract:build": "node scripts/gen-package-contract.mjs",
|
|
121
126
|
"classes:json:build": "node scripts/gen-classes-json.mjs",
|
|
122
127
|
"contrast:build": "node scripts/gen-contrast.mjs",
|
|
123
128
|
"vscode:build": "node scripts/gen-vscode-data.mjs",
|
|
@@ -143,14 +148,15 @@
|
|
|
143
148
|
"check:pack": "node scripts/check-pack.mjs",
|
|
144
149
|
"check:release": "node scripts/check-release.mjs",
|
|
145
150
|
"check:versions": "node scripts/check-versions.mjs",
|
|
151
|
+
"check:public-metadata": "node scripts/check-public-metadata.mjs",
|
|
146
152
|
"check:doc-recipes": "node scripts/check-doc-recipes.mjs",
|
|
147
153
|
"check:contract": "node scripts/check-contract.mjs",
|
|
148
154
|
"check:contrast": "node scripts/check-contrast.mjs",
|
|
149
155
|
"check:publint": "publint --strict",
|
|
150
156
|
"check:attw": "attw --pack --ignore-rules no-resolution cjs-resolves-to-esm",
|
|
151
|
-
"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:types && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:publint && npm run check:attw && npm run check:release && npm run check:versions && npm run check:doc-recipes && npm run check:contract && 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",
|
|
157
|
+
"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:types && npm run check:shiki && npm run check:dist && npm run check:pack && npm run check:publint && npm run check:attw && npm run check:release && npm run check:versions && npm run check:public-metadata && npm run check:doc-recipes && npm run check:contract && 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",
|
|
152
158
|
"test": "node --test \"test/*.test.mjs\"",
|
|
153
|
-
"prepack": "npm run tokens:css:build && npm run tokens:build && npm run dtcg:build && npm run resolved:build && npm run dts:build && npm run dts:emit && npm run reference:build && npm run classes:json:build && npm run contrast:build && npm run vscode:build && npm run skins:build && npm run charts:build && npm run mermaid:build && npm run d2:build && npm run vega:build && npm run dist:build && npm run glyphs:build",
|
|
159
|
+
"prepack": "npm run tokens:css:build && npm run tokens:build && npm run dtcg:build && npm run resolved:build && npm run dts:build && npm run dts:emit && npm run reference:build && npm run package-contract:build && npm run classes:json:build && npm run contrast:build && npm run vscode:build && npm run skins:build && npm run charts:build && npm run mermaid:build && npm run d2:build && npm run vega:build && npm run dist:build && npm run glyphs:build",
|
|
154
160
|
"prepublishOnly": "npm run check && npm test"
|
|
155
161
|
},
|
|
156
162
|
"devDependencies": {
|
|
@@ -289,8 +295,12 @@
|
|
|
289
295
|
"./docs/theming.md": "./docs/theming.md",
|
|
290
296
|
"./docs/contrast.md": "./docs/contrast.md",
|
|
291
297
|
"./docs/stability.md": "./docs/stability.md",
|
|
298
|
+
"./docs/package-contract.md": "./docs/package-contract.md",
|
|
292
299
|
"./docs/usage.md": "./docs/usage.md",
|
|
300
|
+
"./docs/frontier-primitives.md": "./docs/frontier-primitives.md",
|
|
293
301
|
"./docs/reporting.md": "./docs/reporting.md",
|
|
302
|
+
"./docs/dots.md": "./docs/dots.md",
|
|
303
|
+
"./docs/glyphs.md": "./docs/glyphs.md",
|
|
294
304
|
"./docs/mermaid.md": "./docs/mermaid.md",
|
|
295
305
|
"./docs/d2.md": "./docs/d2.md",
|
|
296
306
|
"./docs/vega.md": "./docs/vega.md",
|
package/qwik/index.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export function useConnectors(opts?: BrontoBindingOptsResolver): void;
|
|
|
25
25
|
export function useSpotlight(opts?: BrontoBindingOptsResolver): void;
|
|
26
26
|
export function useCrosshair(opts?: BrontoBindingOptsResolver): void;
|
|
27
27
|
export function useCommand(opts?: BrontoBindingOptsResolver): void;
|
|
28
|
+
export function useSources(opts?: BrontoBindingOptsResolver): void;
|
|
28
29
|
export function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
|
|
29
30
|
export { applyStoredTheme };
|
|
30
31
|
export type Cleanup = import("../behaviors/index.js").Cleanup;
|
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":"AAiHA;;;;;;sBAMsB;AACtB,wCAHY,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,SACvC,yBAAyB,GACvB,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;AAIlD,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBArLtB,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;iCA0BT,uBAAuB"}
|
package/qwik/index.js
CHANGED
|
@@ -73,6 +73,7 @@ import {
|
|
|
73
73
|
initSpotlight,
|
|
74
74
|
initCrosshair,
|
|
75
75
|
initCommand,
|
|
76
|
+
initSources,
|
|
76
77
|
toast,
|
|
77
78
|
} from '../behaviors/index.js';
|
|
78
79
|
|
|
@@ -198,6 +199,10 @@ export const useCrosshair = (opts) =>
|
|
|
198
199
|
export const useCommand = (opts) =>
|
|
199
200
|
// eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
|
|
200
201
|
useVisibleTask$((ctx) => start(initCommand, opts, ctx));
|
|
202
|
+
/** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
|
|
203
|
+
export const useSources = (opts) =>
|
|
204
|
+
// eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
|
|
205
|
+
useVisibleTask$((ctx) => start(initSources, opts, ctx));
|
|
201
206
|
|
|
202
207
|
/** The `toast()` imperative (no lifecycle of its own).
|
|
203
208
|
* @returns {(message: string, opts?: ToastOpts) => Cleanup} */
|
package/react/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export function useConnectors(opts?: BrontoBindingOptsResolver): void;
|
|
|
24
24
|
export function useSpotlight(opts?: BrontoBindingOptsResolver): void;
|
|
25
25
|
export function useCrosshair(opts?: BrontoBindingOptsResolver): void;
|
|
26
26
|
export function useCommand(opts?: BrontoBindingOptsResolver): void;
|
|
27
|
+
export function useSources(opts?: BrontoBindingOptsResolver): void;
|
|
27
28
|
export function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
|
|
28
29
|
export { applyStoredTheme };
|
|
29
30
|
export type Cleanup = import("../behaviors/index.js").Cleanup;
|
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":"AA+FA;;;;;sBAKsB;AACtB,wCAHY,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,SACvC,yBAAyB,GACvB,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;AAIjE,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBA9HtB,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;iCA0BT,uBAAuB"}
|
package/react/index.js
CHANGED
|
@@ -67,6 +67,7 @@ import {
|
|
|
67
67
|
initSpotlight,
|
|
68
68
|
initCrosshair,
|
|
69
69
|
initCommand,
|
|
70
|
+
initSources,
|
|
70
71
|
toast,
|
|
71
72
|
} from '../behaviors/index.js';
|
|
72
73
|
|
|
@@ -140,6 +141,8 @@ export const useSpotlight = (opts) => useBrontoBehavior(initSpotlight, opts);
|
|
|
140
141
|
export const useCrosshair = (opts) => useBrontoBehavior(initCrosshair, opts);
|
|
141
142
|
/** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
|
|
142
143
|
export const useCommand = (opts) => useBrontoBehavior(initCommand, opts);
|
|
144
|
+
/** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
|
|
145
|
+
export const useSources = (opts) => useBrontoBehavior(initSources, opts);
|
|
143
146
|
|
|
144
147
|
/** The `toast()` imperative (no lifecycle of its own).
|
|
145
148
|
* @returns {(message: string, opts?: ToastOpts) => Cleanup} */
|
package/solid/index.d.ts
CHANGED
|
@@ -43,6 +43,8 @@ export const useSpotlight: (opts?: BrontoBindingOptsResolver) => void;
|
|
|
43
43
|
export const useCrosshair: (opts?: BrontoBindingOptsResolver) => void;
|
|
44
44
|
/** @type {(opts?: BrontoBindingOptsResolver) => void} */
|
|
45
45
|
export const useCommand: (opts?: BrontoBindingOptsResolver) => void;
|
|
46
|
+
/** @type {(opts?: BrontoBindingOptsResolver) => void} */
|
|
47
|
+
export const useSources: (opts?: BrontoBindingOptsResolver) => void;
|
|
46
48
|
/** The `toast()` imperative (no lifecycle of its own).
|
|
47
49
|
* @type {() => (message: string, opts?: ToastOpts) => Cleanup} */
|
|
48
50
|
export const useToast: () => (message: string, opts?: ToastOpts) => Cleanup;
|
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
|
@@ -69,6 +69,7 @@ import {
|
|
|
69
69
|
initSpotlight,
|
|
70
70
|
initCrosshair,
|
|
71
71
|
initCommand,
|
|
72
|
+
initSources,
|
|
72
73
|
toast,
|
|
73
74
|
} from '../behaviors/index.js';
|
|
74
75
|
|
|
@@ -145,6 +146,8 @@ export const useSpotlight = (opts) => useBrontoBehavior(initSpotlight, opts);
|
|
|
145
146
|
export const useCrosshair = (opts) => useBrontoBehavior(initCrosshair, opts);
|
|
146
147
|
/** @type {(opts?: BrontoBindingOptsResolver) => void} */
|
|
147
148
|
export const useCommand = (opts) => useBrontoBehavior(initCommand, opts);
|
|
149
|
+
/** @type {(opts?: BrontoBindingOptsResolver) => void} */
|
|
150
|
+
export const useSources = (opts) => useBrontoBehavior(initSources, opts);
|
|
148
151
|
|
|
149
152
|
/** The `toast()` imperative (no lifecycle of its own).
|
|
150
153
|
* @type {() => (message: string, opts?: ToastOpts) => Cleanup} */
|
package/tokens/skins.js
CHANGED
|
@@ -38,22 +38,35 @@ export const skins = {
|
|
|
38
38
|
'amber-crt': {
|
|
39
39
|
label: 'Amber CRT',
|
|
40
40
|
// Phosphor amber. Dark+saturated in light theme (AA under a white label),
|
|
41
|
-
// bright with a warm bloom in dark theme (the classic CRT glow).
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
// bright with a warm bloom in dark theme (the classic CRT glow). The glow
|
|
42
|
+
// and a deeper --pulse breath (`--dotmatrix-pulse-min`) are the Tier-3
|
|
43
|
+
// "display expression" knobs the colorway is allowed to re-point.
|
|
44
|
+
light: { '--accent': 'oklch(52% 0.11 67deg)', '--dotmatrix-pulse-min': '0.35' },
|
|
45
|
+
dark: {
|
|
46
|
+
'--accent': 'oklch(82% 0.15 82deg)',
|
|
47
|
+
'--dotmatrix-glow': '0.4em',
|
|
48
|
+
'--dotmatrix-pulse-min': '0.3',
|
|
49
|
+
},
|
|
44
50
|
},
|
|
45
51
|
'phosphor-green': {
|
|
46
52
|
label: 'Phosphor Green',
|
|
47
|
-
// P1-phosphor green. Same light=dark-ink / dark=bright-glow split
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
// P1-phosphor green. Same light=dark-ink / dark=bright-glow split, with the
|
|
54
|
+
// same deeper phosphor breath as Amber CRT.
|
|
55
|
+
light: { '--accent': 'oklch(52% 0.13 150deg)', '--dotmatrix-pulse-min': '0.35' },
|
|
56
|
+
dark: {
|
|
57
|
+
'--accent': 'oklch(84% 0.19 150deg)',
|
|
58
|
+
'--dotmatrix-glow': '0.4em',
|
|
59
|
+
'--dotmatrix-pulse-min': '0.3',
|
|
60
|
+
},
|
|
50
61
|
},
|
|
51
62
|
'e-ink': {
|
|
52
63
|
label: 'E-ink',
|
|
53
64
|
// The opposite move: drop the hue almost entirely → a near-monochrome
|
|
54
|
-
// ink/paper accent, no glow. The most restrained look in the set
|
|
55
|
-
|
|
56
|
-
|
|
65
|
+
// ink/paper accent, no glow. The most restrained look in the set — and the
|
|
66
|
+
// --reveal scan snaps on instantly (`--dotmatrix-reveal-step: 0ms`), since
|
|
67
|
+
// e-ink panels don't sweep, they flip.
|
|
68
|
+
light: { '--accent': 'oklch(34% 0.012 250deg)', '--dotmatrix-reveal-step': '0ms' },
|
|
69
|
+
dark: { '--accent': 'oklch(84% 0.008 250deg)', '--dotmatrix-reveal-step': '0ms' },
|
|
57
70
|
},
|
|
58
71
|
};
|
|
59
72
|
|