@ponchia/ui 0.6.4 → 0.6.6

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/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.4/dist/css/<leaf>.css" />
47
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.6.6/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):
@@ -562,6 +569,7 @@ specifiers only work after a bundler rewrites them:
562
569
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/bronto.css" />
563
570
  <link rel="stylesheet" href="./node_modules/@ponchia/ui/dist/css/report.css" />
564
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" />
565
573
  ```
566
574
 
567
575
  In Vite/webpack/etc., import `@ponchia/ui`, `@ponchia/ui/css/report.css`, and
@@ -575,35 +583,69 @@ Canonical report skeleton:
575
583
  <p class="ui-eyebrow">Report</p>
576
584
  <h1 class="ui-report__title">System review</h1>
577
585
  <p class="ui-report__subtitle">Static HTML, Chromium PDF-ready.</p>
578
- <ol class="ui-report__meta">
586
+ <ul class="ui-report__meta">
579
587
  <li>2026-06-01</li>
580
588
  <li>Generated</li>
581
- </ol>
589
+ </ul>
582
590
  </header>
583
591
  <section class="ui-report__section">
584
592
  <h2 class="ui-report__section-head">Executive summary</h2>
585
593
  <div class="ui-report__summary">
586
594
  <div class="ui-prose"><p>Use prose only for narrative body content.</p></div>
587
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>
588
608
  </section>
589
609
  </main>
590
610
  ```
591
611
 
592
- Report rules for agents: static output by default; do not initialize behaviors
593
- over untrusted generated content; sanitize arbitrary LLM/CMS/user HTML before
594
- rendering; use semantic headings; give tables captions and header cells; give
595
- charts captions, legends/direct labels, and fallback data; for a chart, theme
596
- Vega-Lite with `@ponchia/ui/vega` (or hand-author a token-themed inline `<svg>`)
597
- inside a `ui-report__figure` bronto ships no chart component; use
598
- `ui-delta` (`--up`/`--down`/`--flat`, `--invert` when up is bad) for a
599
- trend figure and `ui-compare` (`--2up`) for an A/B / before-after section; use
600
- `ui-report__section--unnumbered` for appendices in numbered reports; never
601
- use raw chromatic inline colors. Format numbers/dates yourself (the framework
602
- aligns figures, it does not format them) — see the reporting cookbook. To make
603
- a PDF, render with `chrome-headless-shell` (or any Chromium) using
604
- `printBackground: true` so figure fills survive — reports are static/zero-JS, so
605
- it is just load print; see "Print and PDF" in `docs/reporting.md`. Full
606
- cookbook: `docs/reporting.md`.
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`.
607
649
 
608
650
  ## Authoritative offline references (shipped in this package)
609
651
 
@@ -632,8 +674,8 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
632
674
  density, prose-in-card, when to add a behavior. Read this before
633
675
  re-implementing UI the framework already has an opinion about.
634
676
  - `docs/reporting.md` — static/PDF-first report cookbook for LLM-authored
635
- reports, including report skeletons, chart rules, print utilities, and safety
636
- boundaries.
677
+ reports, including report skeletons, decision/finding/evidence patterns,
678
+ chart rules, print utilities, and safety boundaries.
637
679
  - `docs/annotations.md` — SVG annotation recipes and helper guidance for
638
680
  analytical figures.
639
681
  - `docs/mermaid.md` — theme Mermaid diagrams from bronto tokens (resolved
@@ -681,10 +723,14 @@ Read these from `node_modules/@ponchia/ui/` — no network needed:
681
723
  (§"Table-local state classes" / §"Composition & state") and emitted by the
682
724
  `ui.*()` recipes, but deliberately NOT in `cls`. Do not strip them.
683
725
  - Prefer the `ui.*()` recipes over hand-concatenating modifier strings.
684
- Report/layout classes added in 0.4.1 are the exception: use `cls.report*`,
685
- `cls.chart*`, `cls.printOnly`, or literal documented class names because
686
- there are no `ui.report()` / `ui.chart()` recipes yet. Annotations do have a
687
- `ui.annotation()` recipe for variant/tone selection.
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.
688
734
  - For a standalone HTML report, never `<link>` a `@ponchia/ui/css/*.css`
689
735
  package specifier (it does not resolve in a browser) and never assume
690
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.4",
3
+ "version": "0.6.6",
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,7 +63,9 @@
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",
68
70
  "docs/dots.md",
69
71
  "docs/glyphs.md",
@@ -103,6 +105,7 @@
103
105
  "check:format": "prettier --check .",
104
106
  "size:report": "node scripts/size-report.mjs",
105
107
  "report:pdf": "node scripts/render-pdf.mjs",
108
+ "release:prep": "node scripts/release-prep.mjs",
106
109
  "emit:theme": "node scripts/emit-theme.mjs",
107
110
  "emit:theme:check": "node scripts/emit-theme.mjs --check",
108
111
  "gen": "npm run prepack",
@@ -120,6 +123,7 @@
120
123
  "d2:build": "node scripts/gen-d2.mjs",
121
124
  "vega:build": "node scripts/gen-vega.mjs",
122
125
  "reference:build": "node scripts/gen-reference.mjs",
126
+ "package-contract:build": "node scripts/gen-package-contract.mjs",
123
127
  "classes:json:build": "node scripts/gen-classes-json.mjs",
124
128
  "contrast:build": "node scripts/gen-contrast.mjs",
125
129
  "vscode:build": "node scripts/gen-vscode-data.mjs",
@@ -145,14 +149,15 @@
145
149
  "check:pack": "node scripts/check-pack.mjs",
146
150
  "check:release": "node scripts/check-release.mjs",
147
151
  "check:versions": "node scripts/check-versions.mjs",
152
+ "check:public-metadata": "node scripts/check-public-metadata.mjs",
148
153
  "check:doc-recipes": "node scripts/check-doc-recipes.mjs",
149
154
  "check:contract": "node scripts/check-contract.mjs",
150
155
  "check:contrast": "node scripts/check-contrast.mjs",
151
156
  "check:publint": "publint --strict",
152
157
  "check:attw": "attw --pack --ignore-rules no-resolution cjs-resolves-to-esm",
153
- "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",
158
+ "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",
154
159
  "test": "node --test \"test/*.test.mjs\"",
155
- "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",
160
+ "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",
156
161
  "prepublishOnly": "npm run check && npm test"
157
162
  },
158
163
  "devDependencies": {
@@ -161,6 +166,7 @@
161
166
  "@builder.io/qwik": "^1.20.0",
162
167
  "@playwright/test": "1.60.0",
163
168
  "jsdom": "^29.1.1",
169
+ "pdfjs-dist": "^6.0.227",
164
170
  "prettier": "^3.8.3",
165
171
  "publint": "^0.3.21",
166
172
  "react": "^19.2.7",
@@ -291,7 +297,9 @@
291
297
  "./docs/theming.md": "./docs/theming.md",
292
298
  "./docs/contrast.md": "./docs/contrast.md",
293
299
  "./docs/stability.md": "./docs/stability.md",
300
+ "./docs/package-contract.md": "./docs/package-contract.md",
294
301
  "./docs/usage.md": "./docs/usage.md",
302
+ "./docs/frontier-primitives.md": "./docs/frontier-primitives.md",
295
303
  "./docs/reporting.md": "./docs/reporting.md",
296
304
  "./docs/dots.md": "./docs/dots.md",
297
305
  "./docs/glyphs.md": "./docs/glyphs.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;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAgHA;;;;;;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;AAIlD,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBAhLtB,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;iCAyBT,uBAAuB"}
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;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AA8FA;;;;;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;AAIjE,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBA3HtB,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;iCAyBT,uBAAuB"}
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;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAgGA;;;;;GAKG;AACH,wCAJW,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,SACvC,yBAAyB,GACvB,IAAI,CAOhB;AAED,0FAA0F;AAC1F,6BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,GAAG,YAAY,CAAC,KAAK,IAAI,CACL;AACjF,yDAAyD;AACzD,6BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACwB;AAC7E,yDAAyD;AACzD,+BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACgC;AACrF,yDAAyD;AACzD,4BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CAC0B;AAC/E,yDAAyD;AACzD,sBADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACc;AACnE,yDAAyD;AACzD,gCADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACkC;AACvF,yDAAyD;AACzD,0BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACsB;AAC3E,yDAAyD;AACzD,yBADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACoB;AACzE,yDAAyD;AACzD,2BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACwB;AAC7E,yDAAyD;AACzD,sBADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACc;AACnE,yDAAyD;AACzD,wBADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACkB;AACvE,yDAAyD;AACzD,uBADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACgB;AACrE,yDAAyD;AACzD,0BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACsB;AAC3E,yDAAyD;AACzD,0BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACsB;AAC3E,yDAAyD;AACzD,wBADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACkB;AACvE,yDAAyD;AACzD,4BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CAC0B;AAC/E,yDAAyD;AACzD,2BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACwB;AAC7E,yDAAyD;AACzD,2BADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACwB;AAC7E,yDAAyD;AACzD,yBADW,CAAC,IAAI,CAAC,EAAE,yBAAyB,KAAK,IAAI,CACoB;AAEzE;kEACkE;AAClE,uBADU,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CAC1B;;sBAhIvB,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;;;;8BAKa,CAAC,SAAhB,YAAa,sDACd,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE;;;;sCAK9B,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;iCAyBT,uBAAuB"}
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} */