@ponchia/ui 0.6.10 → 0.6.11
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 +72 -0
- package/README.md +38 -25
- package/annotations/index.d.ts +15 -15
- package/annotations/index.d.ts.map +1 -1
- package/annotations/index.js +52 -34
- package/behaviors/carousel.d.ts +7 -3
- package/behaviors/carousel.d.ts.map +1 -1
- package/behaviors/carousel.js +157 -27
- package/behaviors/combobox.d.ts +1 -1
- package/behaviors/combobox.d.ts.map +1 -1
- package/behaviors/combobox.js +46 -23
- package/behaviors/command.d.ts +1 -1
- package/behaviors/command.d.ts.map +1 -1
- package/behaviors/command.js +63 -23
- package/behaviors/connectors.d.ts.map +1 -1
- package/behaviors/connectors.js +126 -19
- package/behaviors/crosshair.d.ts.map +1 -1
- package/behaviors/crosshair.js +71 -8
- package/behaviors/dialog.d.ts.map +1 -1
- package/behaviors/dialog.js +20 -3
- package/behaviors/disclosure.d.ts.map +1 -1
- package/behaviors/disclosure.js +35 -6
- package/behaviors/dismissible.js +1 -1
- package/behaviors/forms.d.ts +23 -2
- package/behaviors/forms.d.ts.map +1 -1
- package/behaviors/forms.js +97 -9
- package/behaviors/glyph.d.ts.map +1 -1
- package/behaviors/glyph.js +56 -5
- package/behaviors/internal.d.ts.map +1 -1
- package/behaviors/internal.js +52 -5
- package/behaviors/menu.d.ts.map +1 -1
- package/behaviors/menu.js +2 -1
- package/behaviors/modal.d.ts.map +1 -1
- package/behaviors/modal.js +25 -9
- package/behaviors/popover.d.ts.map +1 -1
- package/behaviors/popover.js +8 -6
- package/behaviors/sources.d.ts.map +1 -1
- package/behaviors/sources.js +24 -3
- package/behaviors/splitter.d.ts.map +1 -1
- package/behaviors/splitter.js +27 -6
- package/behaviors/table.d.ts.map +1 -1
- package/behaviors/table.js +44 -7
- package/behaviors/tabs.d.ts.map +1 -1
- package/behaviors/tabs.js +51 -14
- package/behaviors/theme.d.ts.map +1 -1
- package/behaviors/theme.js +64 -4
- package/behaviors/toast.d.ts +6 -1
- package/behaviors/toast.d.ts.map +1 -1
- package/behaviors/toast.js +48 -12
- package/classes/classes.json +24 -0
- package/classes/index.d.ts +3 -2
- package/classes/index.js +77 -39
- package/connectors/index.d.ts +4 -4
- package/connectors/index.d.ts.map +1 -1
- package/connectors/index.js +14 -12
- package/css/annotations.css +1 -0
- package/css/app.css +7 -0
- package/css/base.css +3 -0
- package/css/bullet.css +41 -7
- package/css/code.css +14 -0
- package/css/command.css +10 -0
- package/css/dataviz.css +27 -0
- package/css/diff.css +2 -0
- package/css/disclosure.css +8 -0
- package/css/dots.css +1 -1
- package/css/feedback.css +9 -0
- package/css/interval.css +20 -2
- package/css/legend.css +10 -9
- package/css/marks.css +1 -0
- package/css/motion.css +2 -0
- package/css/overlay.css +14 -2
- package/css/primitives.css +1 -1
- package/css/report.css +3 -0
- package/css/sources.css +4 -4
- package/css/spotlight.css +6 -0
- package/css/table.css +19 -0
- package/css/term.css +4 -1
- package/css/tokens.css +8 -13
- package/dist/bronto.css +1 -1
- package/dist/css/analytical.css +1 -1
- package/dist/css/app.css +1 -1
- package/dist/css/bullet.css +1 -1
- package/dist/css/code.css +1 -1
- package/dist/css/command.css +1 -1
- package/dist/css/dataviz.css +1 -1
- package/dist/css/diff.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/interval.css +1 -1
- package/dist/css/legend.css +1 -1
- package/dist/css/marks.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/sources.css +1 -1
- package/dist/css/spotlight.css +1 -1
- package/dist/css/table.css +1 -1
- package/dist/css/term.css +1 -1
- package/dist/css/tokens.css +1 -1
- package/docs/architecture.md +5 -3
- package/docs/bullet.md +6 -1
- package/docs/clamp.md +5 -0
- package/docs/command.md +3 -2
- package/docs/contrast.md +3 -3
- package/docs/crosshair.md +6 -0
- package/docs/dots.md +10 -3
- package/docs/figure.md +7 -0
- package/docs/glyphs.md +14 -2
- package/docs/highlights.md +9 -0
- package/docs/interval.md +6 -0
- package/docs/mermaid.md +5 -3
- package/docs/package-contract.md +24 -1
- package/docs/reporting.md +8 -8
- package/docs/selection.md +9 -0
- package/docs/sources.md +5 -0
- package/docs/state.md +6 -0
- package/docs/textref.md +18 -13
- package/docs/theming.md +18 -8
- package/docs/toc.md +6 -0
- package/docs/tree.md +9 -2
- package/docs/usage.md +2 -2
- package/docs/vega.md +5 -3
- package/glyphs/glyphs.js +62 -8
- package/index.d.ts +1 -0
- package/llms.txt +18 -14
- package/package.json +98 -6
- package/qwik/index.d.ts +4 -3
- package/qwik/index.d.ts.map +1 -1
- package/qwik/index.js +7 -5
- package/react/index.d.ts +4 -3
- package/react/index.d.ts.map +1 -1
- package/react/index.js +3 -2
- package/solid/index.d.ts +7 -5
- package/solid/index.d.ts.map +1 -1
- package/solid/index.js +11 -7
- package/tokens/vega.d.ts +1 -1
- package/tokens/vega.js +3 -2
- package/vue/index.d.ts.map +1 -1
- package/vue/index.js +37 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ponchia/ui",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.11",
|
|
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": [
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"css",
|
|
46
46
|
"dist",
|
|
47
47
|
"tailwind.css",
|
|
48
|
+
"index.d.ts",
|
|
48
49
|
"fonts",
|
|
49
50
|
"tokens",
|
|
50
51
|
"classes",
|
|
@@ -119,6 +120,8 @@
|
|
|
119
120
|
"check:format": "prettier --check .",
|
|
120
121
|
"size:report": "node scripts/size-report.mjs",
|
|
121
122
|
"report:pdf": "node scripts/render-pdf.mjs",
|
|
123
|
+
"audit:selectors": "node scripts/audit-selectors.mjs",
|
|
124
|
+
"audit:behavior-exports": "node scripts/audit-behavior-exports.mjs",
|
|
122
125
|
"release:prep": "node scripts/release-prep.mjs",
|
|
123
126
|
"emit:theme": "node scripts/emit-theme.mjs",
|
|
124
127
|
"emit:theme:check": "node scripts/emit-theme.mjs --check",
|
|
@@ -203,20 +206,20 @@
|
|
|
203
206
|
"prepublishOnly": "npm run build:artifacts && npm run check"
|
|
204
207
|
},
|
|
205
208
|
"devDependencies": {
|
|
206
|
-
"@arethetypeswrong/cli": "^0.18.
|
|
209
|
+
"@arethetypeswrong/cli": "^0.18.4",
|
|
207
210
|
"@axe-core/playwright": "^4.11.3",
|
|
208
211
|
"@builder.io/qwik": "^1.20.0",
|
|
209
212
|
"@playwright/test": "1.60.0",
|
|
210
213
|
"github-actionlint": "^1.7.12",
|
|
211
214
|
"jsdom": "^29.1.1",
|
|
212
|
-
"knip": "^6.
|
|
213
|
-
"pdfjs-dist": "^6.
|
|
214
|
-
"prettier": "^3.
|
|
215
|
+
"knip": "^6.23.0",
|
|
216
|
+
"pdfjs-dist": "^6.1.200",
|
|
217
|
+
"prettier": "^3.9.1",
|
|
215
218
|
"publint": "^0.3.21",
|
|
216
219
|
"react": "^19.2.7",
|
|
217
220
|
"react-dom": "^19.2.7",
|
|
218
221
|
"solid-js": "^1.9.13",
|
|
219
|
-
"stylelint": "^17.
|
|
222
|
+
"stylelint": "^17.14.0",
|
|
220
223
|
"stylelint-config-standard": "^40.0.0",
|
|
221
224
|
"stylelint-use-logical": "^2.1.3",
|
|
222
225
|
"typescript": "^6.0.3",
|
|
@@ -241,6 +244,7 @@
|
|
|
241
244
|
},
|
|
242
245
|
"exports": {
|
|
243
246
|
".": {
|
|
247
|
+
"types": "./index.d.ts",
|
|
244
248
|
"style": "./dist/bronto.css",
|
|
245
249
|
"default": "./dist/bronto.css"
|
|
246
250
|
},
|
|
@@ -407,6 +411,94 @@
|
|
|
407
411
|
"types": "./behaviors/index.d.ts",
|
|
408
412
|
"default": "./behaviors/index.js"
|
|
409
413
|
},
|
|
414
|
+
"./behaviors/carousel": {
|
|
415
|
+
"types": "./behaviors/carousel.d.ts",
|
|
416
|
+
"default": "./behaviors/carousel.js"
|
|
417
|
+
},
|
|
418
|
+
"./behaviors/combobox": {
|
|
419
|
+
"types": "./behaviors/combobox.d.ts",
|
|
420
|
+
"default": "./behaviors/combobox.js"
|
|
421
|
+
},
|
|
422
|
+
"./behaviors/command": {
|
|
423
|
+
"types": "./behaviors/command.d.ts",
|
|
424
|
+
"default": "./behaviors/command.js"
|
|
425
|
+
},
|
|
426
|
+
"./behaviors/connectors": {
|
|
427
|
+
"types": "./behaviors/connectors.d.ts",
|
|
428
|
+
"default": "./behaviors/connectors.js"
|
|
429
|
+
},
|
|
430
|
+
"./behaviors/crosshair": {
|
|
431
|
+
"types": "./behaviors/crosshair.d.ts",
|
|
432
|
+
"default": "./behaviors/crosshair.js"
|
|
433
|
+
},
|
|
434
|
+
"./behaviors/dialog": {
|
|
435
|
+
"types": "./behaviors/dialog.d.ts",
|
|
436
|
+
"default": "./behaviors/dialog.js"
|
|
437
|
+
},
|
|
438
|
+
"./behaviors/disclosure": {
|
|
439
|
+
"types": "./behaviors/disclosure.d.ts",
|
|
440
|
+
"default": "./behaviors/disclosure.js"
|
|
441
|
+
},
|
|
442
|
+
"./behaviors/dismissible": {
|
|
443
|
+
"types": "./behaviors/dismissible.d.ts",
|
|
444
|
+
"default": "./behaviors/dismissible.js"
|
|
445
|
+
},
|
|
446
|
+
"./behaviors/forms": {
|
|
447
|
+
"types": "./behaviors/forms.d.ts",
|
|
448
|
+
"default": "./behaviors/forms.js"
|
|
449
|
+
},
|
|
450
|
+
"./behaviors/glyph": {
|
|
451
|
+
"types": "./behaviors/glyph.d.ts",
|
|
452
|
+
"default": "./behaviors/glyph.js"
|
|
453
|
+
},
|
|
454
|
+
"./behaviors/inert": {
|
|
455
|
+
"types": "./behaviors/inert.d.ts",
|
|
456
|
+
"default": "./behaviors/inert.js"
|
|
457
|
+
},
|
|
458
|
+
"./behaviors/legend": {
|
|
459
|
+
"types": "./behaviors/legend.d.ts",
|
|
460
|
+
"default": "./behaviors/legend.js"
|
|
461
|
+
},
|
|
462
|
+
"./behaviors/menu": {
|
|
463
|
+
"types": "./behaviors/menu.d.ts",
|
|
464
|
+
"default": "./behaviors/menu.js"
|
|
465
|
+
},
|
|
466
|
+
"./behaviors/modal": {
|
|
467
|
+
"types": "./behaviors/modal.d.ts",
|
|
468
|
+
"default": "./behaviors/modal.js"
|
|
469
|
+
},
|
|
470
|
+
"./behaviors/popover": {
|
|
471
|
+
"types": "./behaviors/popover.d.ts",
|
|
472
|
+
"default": "./behaviors/popover.js"
|
|
473
|
+
},
|
|
474
|
+
"./behaviors/sources": {
|
|
475
|
+
"types": "./behaviors/sources.d.ts",
|
|
476
|
+
"default": "./behaviors/sources.js"
|
|
477
|
+
},
|
|
478
|
+
"./behaviors/splitter": {
|
|
479
|
+
"types": "./behaviors/splitter.d.ts",
|
|
480
|
+
"default": "./behaviors/splitter.js"
|
|
481
|
+
},
|
|
482
|
+
"./behaviors/spotlight": {
|
|
483
|
+
"types": "./behaviors/spotlight.d.ts",
|
|
484
|
+
"default": "./behaviors/spotlight.js"
|
|
485
|
+
},
|
|
486
|
+
"./behaviors/table": {
|
|
487
|
+
"types": "./behaviors/table.d.ts",
|
|
488
|
+
"default": "./behaviors/table.js"
|
|
489
|
+
},
|
|
490
|
+
"./behaviors/tabs": {
|
|
491
|
+
"types": "./behaviors/tabs.d.ts",
|
|
492
|
+
"default": "./behaviors/tabs.js"
|
|
493
|
+
},
|
|
494
|
+
"./behaviors/theme": {
|
|
495
|
+
"types": "./behaviors/theme.d.ts",
|
|
496
|
+
"default": "./behaviors/theme.js"
|
|
497
|
+
},
|
|
498
|
+
"./behaviors/toast": {
|
|
499
|
+
"types": "./behaviors/toast.d.ts",
|
|
500
|
+
"default": "./behaviors/toast.js"
|
|
501
|
+
},
|
|
410
502
|
"./glyphs": {
|
|
411
503
|
"types": "./glyphs/glyphs.d.ts",
|
|
412
504
|
"default": "./glyphs/glyphs.js"
|
package/qwik/index.d.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* below — they inline a statically-imported behavior so the optimizer can
|
|
3
3
|
* serialize the task. Passing a runtime function here is only safe when it
|
|
4
4
|
* is itself optimizer-visible (a module import).
|
|
5
|
-
* @
|
|
6
|
-
* @param {
|
|
5
|
+
* @template {DelegateOpts} [T=DelegateOpts]
|
|
6
|
+
* @param {(opts?: T) => Cleanup | void} init
|
|
7
|
+
* @param {BrontoBindingOptsResolver<T>} [opts]
|
|
7
8
|
* @returns {void} */
|
|
8
|
-
export function useBrontoBehavior(init: (opts?:
|
|
9
|
+
export function useBrontoBehavior<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts>(init: (opts?: T) => Cleanup | void, opts?: BrontoBindingOptsResolver<T>): void;
|
|
9
10
|
export function useThemeToggle(opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>): void;
|
|
10
11
|
export function useDismissible(opts?: BrontoBindingOptsResolver): void;
|
|
11
12
|
export function useDisabledGuard(opts?: BrontoBindingOptsResolver): void;
|
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":"AAmHA;;;;;;;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
|
@@ -105,10 +105,11 @@ function resolveOpts(opts) {
|
|
|
105
105
|
|
|
106
106
|
/** Run a delegated behavior on visible and register its cleanup on dispose.
|
|
107
107
|
* `init` and `opts` are resolved inside the visible task, so a Qwik-signal
|
|
108
|
-
* root is read after the element is assigned
|
|
109
|
-
* optimizer keeps the captured behavior import inside
|
|
108
|
+
* root is read after the element is assigned and tracked for later changes.
|
|
109
|
+
* Shared, non-QRL, so the optimizer keeps the captured behavior import inside
|
|
110
|
+
* the task segment. */
|
|
110
111
|
function start(init, opts, ctx) {
|
|
111
|
-
const cleanup = init(resolveOpts(opts));
|
|
112
|
+
const cleanup = init(ctx.track(() => resolveOpts(opts)));
|
|
112
113
|
if (typeof cleanup === 'function') ctx.cleanup(cleanup);
|
|
113
114
|
}
|
|
114
115
|
|
|
@@ -116,8 +117,9 @@ function start(init, opts, ctx) {
|
|
|
116
117
|
* below — they inline a statically-imported behavior so the optimizer can
|
|
117
118
|
* serialize the task. Passing a runtime function here is only safe when it
|
|
118
119
|
* is itself optimizer-visible (a module import).
|
|
119
|
-
* @
|
|
120
|
-
* @param {
|
|
120
|
+
* @template {DelegateOpts} [T=DelegateOpts]
|
|
121
|
+
* @param {(opts?: T) => Cleanup | void} init
|
|
122
|
+
* @param {BrontoBindingOptsResolver<T>} [opts]
|
|
121
123
|
* @returns {void} */
|
|
122
124
|
export function useBrontoBehavior(init, opts) {
|
|
123
125
|
// eslint-disable-next-line qwik/no-use-visible-task -- intentional delegated DOM glue + cleanup
|
package/react/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/** Run a delegated behavior for the component's lifetime (init on mount, its
|
|
2
2
|
* returned cleanup on unmount). The behavior is run once; `opts` resolves
|
|
3
3
|
* on mount so refs are usable for scoped roots.
|
|
4
|
-
* @
|
|
5
|
-
* @param {
|
|
4
|
+
* @template {DelegateOpts} [T=DelegateOpts]
|
|
5
|
+
* @param {(opts?: T) => Cleanup | void} init
|
|
6
|
+
* @param {BrontoBindingOptsResolver<T>} [opts]
|
|
6
7
|
* @returns {void} */
|
|
7
|
-
export function useBrontoBehavior(init: (opts?:
|
|
8
|
+
export function useBrontoBehavior<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts>(init: (opts?: T) => Cleanup | void, opts?: BrontoBindingOptsResolver<T>): void;
|
|
8
9
|
export function useThemeToggle(opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>): void;
|
|
9
10
|
export function useDismissible(opts?: BrontoBindingOptsResolver): void;
|
|
10
11
|
export function useDisabledGuard(opts?: BrontoBindingOptsResolver): void;
|
package/react/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAgGA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAgGA;;;;;;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
|
@@ -97,8 +97,9 @@ function resolveOpts(opts) {
|
|
|
97
97
|
/** Run a delegated behavior for the component's lifetime (init on mount, its
|
|
98
98
|
* returned cleanup on unmount). The behavior is run once; `opts` resolves
|
|
99
99
|
* on mount so refs are usable for scoped roots.
|
|
100
|
-
* @
|
|
101
|
-
* @param {
|
|
100
|
+
* @template {DelegateOpts} [T=DelegateOpts]
|
|
101
|
+
* @param {(opts?: T) => Cleanup | void} init
|
|
102
|
+
* @param {BrontoBindingOptsResolver<T>} [opts]
|
|
102
103
|
* @returns {void} */
|
|
103
104
|
export function useBrontoBehavior(init, opts) {
|
|
104
105
|
useEffect(() => init(resolveOpts(opts)), []); // eslint-disable-line react-hooks/exhaustive-deps -- intentional delegated once on mount
|
package/solid/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
/** Run a delegated behavior for the component's lifetime (init
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
1
|
+
/** Run a delegated behavior for the component's lifetime (init after mount, its
|
|
2
|
+
* returned cleanup before re-init/dispose). Options resolve after mount and
|
|
3
|
+
* re-resolve when tracked Solid signals change.
|
|
4
|
+
* @template {DelegateOpts} [T=DelegateOpts]
|
|
5
|
+
* @param {(opts?: T) => Cleanup | void} init
|
|
6
|
+
* @param {BrontoBindingOptsResolver<T>} [opts]
|
|
5
7
|
* @returns {void}
|
|
6
8
|
*/
|
|
7
|
-
export function useBrontoBehavior(init: (opts?:
|
|
9
|
+
export function useBrontoBehavior<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts>(init: (opts?: T) => Cleanup | void, opts?: BrontoBindingOptsResolver<T>): void;
|
|
8
10
|
/** @type {(opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>) => void} */
|
|
9
11
|
export const useThemeToggle: (opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>) => void;
|
|
10
12
|
/** @type {(opts?: BrontoBindingOptsResolver) => void} */
|
package/solid/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAkGA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"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"}
|
package/solid/index.js
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
* | null
|
|
48
48
|
* | undefined} BrontoBindingOptsResolver
|
|
49
49
|
*/
|
|
50
|
-
import {
|
|
50
|
+
import { createEffect, onCleanup, onMount } from 'solid-js';
|
|
51
51
|
import {
|
|
52
52
|
applyStoredTheme,
|
|
53
53
|
initThemeToggle,
|
|
@@ -96,16 +96,20 @@ function resolveOpts(opts) {
|
|
|
96
96
|
return { ...value, root: root || null };
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
/** Run a delegated behavior for the component's lifetime (init
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* @
|
|
99
|
+
/** Run a delegated behavior for the component's lifetime (init after mount, its
|
|
100
|
+
* returned cleanup before re-init/dispose). Options resolve after mount and
|
|
101
|
+
* re-resolve when tracked Solid signals change.
|
|
102
|
+
* @template {DelegateOpts} [T=DelegateOpts]
|
|
103
|
+
* @param {(opts?: T) => Cleanup | void} init
|
|
104
|
+
* @param {BrontoBindingOptsResolver<T>} [opts]
|
|
103
105
|
* @returns {void}
|
|
104
106
|
*/
|
|
105
107
|
export function useBrontoBehavior(init, opts) {
|
|
106
108
|
onMount(() => {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
createEffect(() => {
|
|
110
|
+
const cleanup = init(resolveOpts(opts));
|
|
111
|
+
if (typeof cleanup === 'function') onCleanup(cleanup);
|
|
112
|
+
});
|
|
109
113
|
});
|
|
110
114
|
}
|
|
111
115
|
|
package/tokens/vega.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare const vega: { light: VegaConfig; dark: VegaConfig };
|
|
|
23
23
|
* back to light. Spread into a spec's `config`, or pass to vega-embed. */
|
|
24
24
|
export declare function brontoVegaConfig(theme?: 'light' | 'dark'): VegaConfig;
|
|
25
25
|
|
|
26
|
-
/** The
|
|
26
|
+
/** The resolved accent hex (series 1 of `range.category`) for a theme — to spend the
|
|
27
27
|
* accent on one emphasised mark without hard-coding the palette index. */
|
|
28
28
|
export declare function brontoVegaAccent(theme?: 'light' | 'dark'): string;
|
|
29
29
|
|
package/tokens/vega.js
CHANGED
|
@@ -137,10 +137,11 @@ export function brontoVegaConfig(theme = 'light') {
|
|
|
137
137
|
return vega[theme === 'dark' ? 'dark' : 'light'];
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
/** The
|
|
140
|
+
/** The resolved accent hex for a theme — series 1 of `range.category`, the one
|
|
141
141
|
* chromatic mark. Use it to spend the accent on a single emphasised mark in
|
|
142
142
|
* a multi-series chart (a Vega-Lite conditional to this colour) without
|
|
143
|
-
* reverse-engineering the palette array index.
|
|
143
|
+
* reverse-engineering the palette array index. Regenerate after changing
|
|
144
|
+
* `--accent`; already-rendered charts do not live-reskin. */
|
|
144
145
|
export function brontoVegaAccent(theme = 'light') {
|
|
145
146
|
return vega[theme === 'dark' ? 'dark' : 'light'].range.category[0];
|
|
146
147
|
}
|
package/vue/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/vue/index.js
CHANGED
|
@@ -62,6 +62,7 @@ import {
|
|
|
62
62
|
} from '../behaviors/index.js';
|
|
63
63
|
|
|
64
64
|
const cleanups = new WeakMap();
|
|
65
|
+
const optionSignatures = new WeakMap();
|
|
65
66
|
|
|
66
67
|
function cleanupMap(el) {
|
|
67
68
|
let map = cleanups.get(el);
|
|
@@ -72,12 +73,37 @@ function cleanupMap(el) {
|
|
|
72
73
|
return map;
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
function optionSignatureMap(el) {
|
|
77
|
+
let map = optionSignatures.get(el);
|
|
78
|
+
if (!map) {
|
|
79
|
+
map = new Map();
|
|
80
|
+
optionSignatures.set(el, map);
|
|
81
|
+
}
|
|
82
|
+
return map;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function optionSignature(opts) {
|
|
86
|
+
return Object.entries(opts).sort(([a], [b]) => a.localeCompare(b));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function sameOptionSignature(a, b) {
|
|
90
|
+
if (a === b) return true;
|
|
91
|
+
if (!a || !b || a.length !== b.length) return false;
|
|
92
|
+
return a.every(([key, value], index) => {
|
|
93
|
+
const [otherKey, otherValue] = b[index];
|
|
94
|
+
return key === otherKey && Object.is(value, otherValue);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
75
98
|
function stop(el, key) {
|
|
76
99
|
const map = cleanups.get(el);
|
|
77
100
|
const cleanup = map?.get(key);
|
|
78
101
|
if (typeof cleanup === 'function') cleanup();
|
|
79
102
|
map?.delete(key);
|
|
80
103
|
if (map?.size === 0) cleanups.delete(el);
|
|
104
|
+
const signatures = optionSignatures.get(el);
|
|
105
|
+
signatures?.delete(key);
|
|
106
|
+
if (signatures?.size === 0) optionSignatures.delete(el);
|
|
81
107
|
}
|
|
82
108
|
|
|
83
109
|
function resolveOpts(el, opts) {
|
|
@@ -87,9 +113,15 @@ function resolveOpts(el, opts) {
|
|
|
87
113
|
}
|
|
88
114
|
|
|
89
115
|
function start(el, key, init, opts) {
|
|
116
|
+
const resolved = resolveOpts(el, opts);
|
|
117
|
+
startResolved(el, key, init, resolved, optionSignature(resolved));
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function startResolved(el, key, init, resolved, signature) {
|
|
90
121
|
stop(el, key);
|
|
91
|
-
const cleanup = init(
|
|
122
|
+
const cleanup = init(resolved);
|
|
92
123
|
if (typeof cleanup === 'function') cleanupMap(el).set(key, cleanup);
|
|
124
|
+
optionSignatureMap(el).set(key, signature);
|
|
93
125
|
}
|
|
94
126
|
|
|
95
127
|
/**
|
|
@@ -105,8 +137,10 @@ export function createBrontoDirective(init) {
|
|
|
105
137
|
start(el, key, init, binding?.value);
|
|
106
138
|
},
|
|
107
139
|
updated(el, binding) {
|
|
108
|
-
|
|
109
|
-
|
|
140
|
+
const resolved = resolveOpts(el, binding?.value);
|
|
141
|
+
const signature = optionSignature(resolved);
|
|
142
|
+
if (sameOptionSignature(optionSignatures.get(el)?.get(key), signature)) return;
|
|
143
|
+
startResolved(el, key, init, resolved, signature);
|
|
110
144
|
},
|
|
111
145
|
beforeUnmount(el) {
|
|
112
146
|
stop(el, key);
|