@hanzo/ui 8.27.8 → 8.27.9
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/README.md +2 -1
- package/dist/canvas.cjs +3 -3
- package/dist/canvas.js +3 -3
- package/dist/canvas.js.map +1 -1
- package/dist/gallery.html +2 -2
- package/dist/grid.cjs +19 -43
- package/dist/grid.d.ts +36 -1
- package/dist/grid.d.ts.map +1 -1
- package/dist/grid.js +19 -43
- package/dist/grid.js.map +1 -1
- package/dist/product/ChunkGuard.cjs +58 -0
- package/dist/product/ChunkGuard.d.ts +7 -0
- package/dist/product/ChunkGuard.d.ts.map +1 -0
- package/dist/product/ChunkGuard.js +56 -0
- package/dist/product/ChunkGuard.js.map +1 -0
- package/dist/product/DetailPane.cjs +46 -0
- package/dist/product/DetailPane.d.ts +47 -0
- package/dist/product/DetailPane.d.ts.map +1 -0
- package/dist/product/DetailPane.js +43 -0
- package/dist/product/DetailPane.js.map +1 -0
- package/dist/product/Fact.cjs +19 -0
- package/dist/product/Fact.d.ts +23 -0
- package/dist/product/Fact.d.ts.map +1 -0
- package/dist/product/Fact.js +17 -0
- package/dist/product/Fact.js.map +1 -0
- package/dist/product/chunkGuard.logic.cjs +54 -0
- package/dist/product/chunkGuard.logic.d.ts +26 -0
- package/dist/product/chunkGuard.logic.d.ts.map +1 -0
- package/dist/product/chunkGuard.logic.js +49 -0
- package/dist/product/chunkGuard.logic.js.map +1 -0
- package/dist/product/index.cjs +10 -0
- package/dist/product/index.d.ts +3 -0
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +10 -0
- package/dist/product/index.js.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Pure decisions for `ChunkGuard`, kept apart from the window listeners so
|
|
4
|
+
* they are unit-tested without a browser.
|
|
5
|
+
*
|
|
6
|
+
* On a rolling deploy, an open tab (or a fresh deep-link landing on a new
|
|
7
|
+
* replica) can request a hashed chunk that no longer exists. The 404 falls
|
|
8
|
+
* through to the app-shell HTML, so the browser throws `ChunkLoadError` /
|
|
9
|
+
* "Unexpected token '<'" trying to parse HTML as JS — a blank,
|
|
10
|
+
* unrecoverable screen. In a PRODUCTION build, user code never throws
|
|
11
|
+
* "Unexpected token '<'" at runtime (that is a build-time syntax error), so
|
|
12
|
+
* at runtime it is a chunk skew — recover, don't crash.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CHUNK_RELOAD_AT_KEY = void 0;
|
|
16
|
+
exports.isChunkLoadError = isChunkLoadError;
|
|
17
|
+
exports.isBuildAssetError = isBuildAssetError;
|
|
18
|
+
exports.shouldReloadForChunk = shouldReloadForChunk;
|
|
19
|
+
/** The sessionStorage key a recovery reload is bounded by, so a skew that
|
|
20
|
+
* trips the guard more than once in a burst reloads at most once. */
|
|
21
|
+
exports.CHUNK_RELOAD_AT_KEY = 'hz.chunkReloadAt';
|
|
22
|
+
/** True for a webpack/Next dynamic chunk (JS or CSS) load failure, including
|
|
23
|
+
* the stale-deploy case where a 404'd chunk URL is parsed as JS. */
|
|
24
|
+
function isChunkLoadError(e) {
|
|
25
|
+
if (!e)
|
|
26
|
+
return false;
|
|
27
|
+
const name = typeof e === 'object' && e !== null && 'name' in e ? String(e.name) : '';
|
|
28
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
29
|
+
return (name === 'ChunkLoadError' ||
|
|
30
|
+
/ChunkLoadError/i.test(msg) ||
|
|
31
|
+
/Loading (?:CSS )?chunk [\w./-]+ failed/i.test(msg) ||
|
|
32
|
+
/(?:Failed to fetch|error loading|Importing a module script failed).*dynamically imported module/i.test(msg) ||
|
|
33
|
+
/Failed to fetch dynamically imported module/i.test(msg) ||
|
|
34
|
+
/Importing a module script failed/i.test(msg) ||
|
|
35
|
+
// Stale chunk URL served the HTML shell → parsed as JS.
|
|
36
|
+
/Unexpected token '<'|expected expression, got '<'|Unexpected token <|<!DOCTYPE/i.test(msg));
|
|
37
|
+
}
|
|
38
|
+
/** True for a failed resource load whose element targets a build asset
|
|
39
|
+
* (a script or stylesheet under `pathPrefix`, default `/_next/static/`). */
|
|
40
|
+
function isBuildAssetError(target, pathPrefix = '/_next/static/') {
|
|
41
|
+
if (!target || typeof target !== 'object')
|
|
42
|
+
return false;
|
|
43
|
+
const el = target;
|
|
44
|
+
const url = el.src || el.href;
|
|
45
|
+
return typeof url === 'string' && url.includes(pathPrefix);
|
|
46
|
+
}
|
|
47
|
+
/** Reload at most once per `windowMs` to recover from a chunk skew.
|
|
48
|
+
* `lastReloadAt` is the epoch-ms of the last recovery reload (null when
|
|
49
|
+
* there has been none); true means a fresh reload is safe. */
|
|
50
|
+
function shouldReloadForChunk(now, lastReloadAt, windowMs = 15_000) {
|
|
51
|
+
if (lastReloadAt == null || !Number.isFinite(lastReloadAt))
|
|
52
|
+
return true;
|
|
53
|
+
return now - lastReloadAt >= windowMs;
|
|
54
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure decisions for `ChunkGuard`, kept apart from the window listeners so
|
|
3
|
+
* they are unit-tested without a browser.
|
|
4
|
+
*
|
|
5
|
+
* On a rolling deploy, an open tab (or a fresh deep-link landing on a new
|
|
6
|
+
* replica) can request a hashed chunk that no longer exists. The 404 falls
|
|
7
|
+
* through to the app-shell HTML, so the browser throws `ChunkLoadError` /
|
|
8
|
+
* "Unexpected token '<'" trying to parse HTML as JS — a blank,
|
|
9
|
+
* unrecoverable screen. In a PRODUCTION build, user code never throws
|
|
10
|
+
* "Unexpected token '<'" at runtime (that is a build-time syntax error), so
|
|
11
|
+
* at runtime it is a chunk skew — recover, don't crash.
|
|
12
|
+
*/
|
|
13
|
+
/** The sessionStorage key a recovery reload is bounded by, so a skew that
|
|
14
|
+
* trips the guard more than once in a burst reloads at most once. */
|
|
15
|
+
export declare const CHUNK_RELOAD_AT_KEY = "hz.chunkReloadAt";
|
|
16
|
+
/** True for a webpack/Next dynamic chunk (JS or CSS) load failure, including
|
|
17
|
+
* the stale-deploy case where a 404'd chunk URL is parsed as JS. */
|
|
18
|
+
export declare function isChunkLoadError(e: unknown): boolean;
|
|
19
|
+
/** True for a failed resource load whose element targets a build asset
|
|
20
|
+
* (a script or stylesheet under `pathPrefix`, default `/_next/static/`). */
|
|
21
|
+
export declare function isBuildAssetError(target: EventTarget | null, pathPrefix?: string): boolean;
|
|
22
|
+
/** Reload at most once per `windowMs` to recover from a chunk skew.
|
|
23
|
+
* `lastReloadAt` is the epoch-ms of the last recovery reload (null when
|
|
24
|
+
* there has been none); true means a fresh reload is safe. */
|
|
25
|
+
export declare function shouldReloadForChunk(now: number, lastReloadAt: number | null, windowMs?: number): boolean;
|
|
26
|
+
//# sourceMappingURL=chunkGuard.logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunkGuard.logic.d.ts","sourceRoot":"","sources":["../../src/product/chunkGuard.logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;sEACsE;AACtE,eAAO,MAAM,mBAAmB,qBAAqB,CAAA;AAErD;qEACqE;AACrE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAcpD;AAED;6EAC6E;AAC7E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,SAAmB,GAAG,OAAO,CAKpG;AAED;;+DAE+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,SAAS,GAAG,OAAO,CAGzG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure decisions for `ChunkGuard`, kept apart from the window listeners so
|
|
3
|
+
* they are unit-tested without a browser.
|
|
4
|
+
*
|
|
5
|
+
* On a rolling deploy, an open tab (or a fresh deep-link landing on a new
|
|
6
|
+
* replica) can request a hashed chunk that no longer exists. The 404 falls
|
|
7
|
+
* through to the app-shell HTML, so the browser throws `ChunkLoadError` /
|
|
8
|
+
* "Unexpected token '<'" trying to parse HTML as JS — a blank,
|
|
9
|
+
* unrecoverable screen. In a PRODUCTION build, user code never throws
|
|
10
|
+
* "Unexpected token '<'" at runtime (that is a build-time syntax error), so
|
|
11
|
+
* at runtime it is a chunk skew — recover, don't crash.
|
|
12
|
+
*/
|
|
13
|
+
/** The sessionStorage key a recovery reload is bounded by, so a skew that
|
|
14
|
+
* trips the guard more than once in a burst reloads at most once. */
|
|
15
|
+
export const CHUNK_RELOAD_AT_KEY = 'hz.chunkReloadAt';
|
|
16
|
+
/** True for a webpack/Next dynamic chunk (JS or CSS) load failure, including
|
|
17
|
+
* the stale-deploy case where a 404'd chunk URL is parsed as JS. */
|
|
18
|
+
export function isChunkLoadError(e) {
|
|
19
|
+
if (!e)
|
|
20
|
+
return false;
|
|
21
|
+
const name = typeof e === 'object' && e !== null && 'name' in e ? String(e.name) : '';
|
|
22
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
23
|
+
return (name === 'ChunkLoadError' ||
|
|
24
|
+
/ChunkLoadError/i.test(msg) ||
|
|
25
|
+
/Loading (?:CSS )?chunk [\w./-]+ failed/i.test(msg) ||
|
|
26
|
+
/(?:Failed to fetch|error loading|Importing a module script failed).*dynamically imported module/i.test(msg) ||
|
|
27
|
+
/Failed to fetch dynamically imported module/i.test(msg) ||
|
|
28
|
+
/Importing a module script failed/i.test(msg) ||
|
|
29
|
+
// Stale chunk URL served the HTML shell → parsed as JS.
|
|
30
|
+
/Unexpected token '<'|expected expression, got '<'|Unexpected token <|<!DOCTYPE/i.test(msg));
|
|
31
|
+
}
|
|
32
|
+
/** True for a failed resource load whose element targets a build asset
|
|
33
|
+
* (a script or stylesheet under `pathPrefix`, default `/_next/static/`). */
|
|
34
|
+
export function isBuildAssetError(target, pathPrefix = '/_next/static/') {
|
|
35
|
+
if (!target || typeof target !== 'object')
|
|
36
|
+
return false;
|
|
37
|
+
const el = target;
|
|
38
|
+
const url = el.src || el.href;
|
|
39
|
+
return typeof url === 'string' && url.includes(pathPrefix);
|
|
40
|
+
}
|
|
41
|
+
/** Reload at most once per `windowMs` to recover from a chunk skew.
|
|
42
|
+
* `lastReloadAt` is the epoch-ms of the last recovery reload (null when
|
|
43
|
+
* there has been none); true means a fresh reload is safe. */
|
|
44
|
+
export function shouldReloadForChunk(now, lastReloadAt, windowMs = 15_000) {
|
|
45
|
+
if (lastReloadAt == null || !Number.isFinite(lastReloadAt))
|
|
46
|
+
return true;
|
|
47
|
+
return now - lastReloadAt >= windowMs;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=chunkGuard.logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunkGuard.logic.js","sourceRoot":"","sources":["../../src/product/chunkGuard.logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;sEACsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAA;AAErD;qEACqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,CAAU;IACzC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7G,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtD,OAAO,CACL,IAAI,KAAK,gBAAgB;QACzB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3B,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;QACnD,kGAAkG,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5G,8CAA8C,CAAC,IAAI,CAAC,GAAG,CAAC;QACxD,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7C,wDAAwD;QACxD,iFAAiF,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5F,CAAA;AACH,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,iBAAiB,CAAC,MAA0B,EAAE,UAAU,GAAG,gBAAgB;IACzF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACvD,MAAM,EAAE,GAAG,MAAsD,CAAA;IACjE,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAA;IAC7B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAC5D,CAAC;AAED;;+DAE+D;AAC/D,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,YAA2B,EAAE,QAAQ,GAAG,MAAM;IAC9F,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAA;IACvE,OAAO,GAAG,GAAG,YAAY,IAAI,QAAQ,CAAA;AACvC,CAAC"}
|
package/dist/product/index.cjs
CHANGED
|
@@ -113,6 +113,9 @@ __exportStar(require("./Workbench.cjs"), exports);
|
|
|
113
113
|
__exportStar(require("./EmptyState.cjs"), exports);
|
|
114
114
|
__exportStar(require("./FadeIn.cjs"), exports);
|
|
115
115
|
__exportStar(require("./Field.cjs"), exports);
|
|
116
|
+
// `Fact` is `Field`'s read-only counterpart: a settings form is a stack of
|
|
117
|
+
// `Field`s, a detail pane is a stack of these.
|
|
118
|
+
__exportStar(require("./Fact.cjs"), exports);
|
|
116
119
|
__exportStar(require("./HanzoMark.cjs"), exports);
|
|
117
120
|
__exportStar(require("./PageHeader.cjs"), exports);
|
|
118
121
|
// Palette — the ONE ⌘K bar, plus its opener. The list it renders is not written
|
|
@@ -129,6 +132,9 @@ __exportStar(require("./Reorder.cjs"), exports);
|
|
|
129
132
|
__exportStar(require("./SelectMenu.cjs"), exports);
|
|
130
133
|
__exportStar(require("./Skeleton.cjs"), exports);
|
|
131
134
|
__exportStar(require("./SlideOver.cjs"), exports);
|
|
135
|
+
// `DetailPane` is the one mount point over `SlideOver` for a descriptor-driven
|
|
136
|
+
// item view: a caller writes `{ title, content, footer? }`, never a drawer.
|
|
137
|
+
__exportStar(require("./DetailPane.cjs"), exports);
|
|
132
138
|
__exportStar(require("./StatusTag.cjs"), exports);
|
|
133
139
|
__exportStar(require("./Split.cjs"), exports);
|
|
134
140
|
__exportStar(require("./tone.cjs"), exports);
|
|
@@ -140,6 +146,10 @@ __exportStar(require("./ThemeToggle.cjs"), exports);
|
|
|
140
146
|
// those shapes; reaching for them is the signal you have left the common case.
|
|
141
147
|
__exportStar(require("./DialogTemplate.cjs"), exports);
|
|
142
148
|
__exportStar(require("./TooltipAnchor.cjs"), exports);
|
|
149
|
+
// `ChunkGuard` — the window-level net for a stale-deploy chunk 404 (see
|
|
150
|
+
// `chunkGuard.logic.ts` for the pure decisions). Mount it once near the shell
|
|
151
|
+
// root; it renders nothing.
|
|
152
|
+
__exportStar(require("./ChunkGuard.cjs"), exports);
|
|
143
153
|
// `ThemeToggleNext` is NOT re-exported here, and that is the whole reason this
|
|
144
154
|
// comment exists. It is the @hanzogui/next-theme binding, and next-theme's
|
|
145
155
|
// provider imports `next/script` — so a static edge from this barrel put Next in
|
package/dist/product/index.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export * from './Workbench.js';
|
|
|
33
33
|
export * from './EmptyState.js';
|
|
34
34
|
export * from './FadeIn.js';
|
|
35
35
|
export * from './Field.js';
|
|
36
|
+
export * from './Fact.js';
|
|
36
37
|
export * from './HanzoMark.js';
|
|
37
38
|
export * from './PageHeader.js';
|
|
38
39
|
export * from './Palette.js';
|
|
@@ -45,12 +46,14 @@ export * from './Reorder.js';
|
|
|
45
46
|
export * from './SelectMenu.js';
|
|
46
47
|
export * from './Skeleton.js';
|
|
47
48
|
export * from './SlideOver.js';
|
|
49
|
+
export * from './DetailPane.js';
|
|
48
50
|
export * from './StatusTag.js';
|
|
49
51
|
export * from './Split.js';
|
|
50
52
|
export * from './tone.js';
|
|
51
53
|
export * from './ThemeToggle.js';
|
|
52
54
|
export * from './DialogTemplate.js';
|
|
53
55
|
export * from './TooltipAnchor.js';
|
|
56
|
+
export * from './ChunkGuard.js';
|
|
54
57
|
export * from './Toast.js';
|
|
55
58
|
export * from './accent.js';
|
|
56
59
|
export * from './color.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAaA,cAAc,UAAU,CAAA;AAKxB,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AASjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,QAAQ,CAAA;AAKtB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAK5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAOzB,cAAc,cAAc,CAAA;AAK5B,cAAc,YAAY,CAAA;AAO1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAI7B,cAAc,cAAc,CAAA;AAG5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAaA,cAAc,UAAU,CAAA;AAKxB,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AASjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,QAAQ,CAAA;AAKtB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAK5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAOzB,cAAc,cAAc,CAAA;AAK5B,cAAc,YAAY,CAAA;AAO1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAI7B,cAAc,cAAc,CAAA;AAG5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AAGvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAM5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAG3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAM7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAK/B,cAAc,cAAc,CAAA;AAc5B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AASvB,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/product/index.js
CHANGED
|
@@ -84,6 +84,9 @@ export * from './Workbench.js';
|
|
|
84
84
|
export * from './EmptyState.js';
|
|
85
85
|
export * from './FadeIn.js';
|
|
86
86
|
export * from './Field.js';
|
|
87
|
+
// `Fact` is `Field`'s read-only counterpart: a settings form is a stack of
|
|
88
|
+
// `Field`s, a detail pane is a stack of these.
|
|
89
|
+
export * from './Fact.js';
|
|
87
90
|
export * from './HanzoMark.js';
|
|
88
91
|
export * from './PageHeader.js';
|
|
89
92
|
// Palette — the ONE ⌘K bar, plus its opener. The list it renders is not written
|
|
@@ -100,6 +103,9 @@ export * from './Reorder.js';
|
|
|
100
103
|
export * from './SelectMenu.js';
|
|
101
104
|
export * from './Skeleton.js';
|
|
102
105
|
export * from './SlideOver.js';
|
|
106
|
+
// `DetailPane` is the one mount point over `SlideOver` for a descriptor-driven
|
|
107
|
+
// item view: a caller writes `{ title, content, footer? }`, never a drawer.
|
|
108
|
+
export * from './DetailPane.js';
|
|
103
109
|
export * from './StatusTag.js';
|
|
104
110
|
export * from './Split.js';
|
|
105
111
|
export * from './tone.js';
|
|
@@ -111,6 +117,10 @@ export * from './ThemeToggle.js';
|
|
|
111
117
|
// those shapes; reaching for them is the signal you have left the common case.
|
|
112
118
|
export * from './DialogTemplate.js';
|
|
113
119
|
export * from './TooltipAnchor.js';
|
|
120
|
+
// `ChunkGuard` — the window-level net for a stale-deploy chunk 404 (see
|
|
121
|
+
// `chunkGuard.logic.ts` for the pure decisions). Mount it once near the shell
|
|
122
|
+
// root; it renders nothing.
|
|
123
|
+
export * from './ChunkGuard.js';
|
|
114
124
|
// `ThemeToggleNext` is NOT re-exported here, and that is the whole reason this
|
|
115
125
|
// comment exists. It is the @hanzogui/next-theme binding, and next-theme's
|
|
116
126
|
// provider imports `next/script` — so a static edge from this barrel put Next in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.27.
|
|
3
|
+
"version": "8.27.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|
|
@@ -241,7 +241,9 @@
|
|
|
241
241
|
"./dist/product/social/api.js"
|
|
242
242
|
],
|
|
243
243
|
"files": [
|
|
244
|
-
"dist"
|
|
244
|
+
"dist",
|
|
245
|
+
"LICENSE-APACHE",
|
|
246
|
+
"LICENSE-MIT"
|
|
245
247
|
],
|
|
246
248
|
"dependencies": {
|
|
247
249
|
"@hanzo/appearance": "0.2.2",
|
|
@@ -328,7 +330,7 @@
|
|
|
328
330
|
"publishConfig": {
|
|
329
331
|
"access": "public"
|
|
330
332
|
},
|
|
331
|
-
"license": "MIT",
|
|
333
|
+
"license": "Apache-2.0 OR MIT",
|
|
332
334
|
"author": "Hanzo AI <dev@hanzo.ai>",
|
|
333
335
|
"scripts": {
|
|
334
336
|
"build": "rm -rf dist dist-cjs && tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json --noCheck && mkdir -p dist/styles && node scripts/compose-theme.mjs && cp src/styles/motion.css dist/styles/motion.css && cp src/next.cjs dist/next.cjs && node scripts/postbuild.mjs && node scripts/gen-css.mjs",
|