@duckcodeailabs/dql-ui 1.6.21 → 1.6.22
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/primitives/DerivationWalkPanel.d.ts +30 -0
- package/dist/primitives/DerivationWalkPanel.d.ts.map +1 -0
- package/dist/primitives/DerivationWalkPanel.js +113 -0
- package/dist/primitives/DerivationWalkPanel.js.map +1 -0
- package/dist/primitives/PublishedCellChrome.d.ts.map +1 -1
- package/dist/primitives/PublishedCellChrome.js +7 -2
- package/dist/primitives/PublishedCellChrome.js.map +1 -1
- package/dist/primitives/TrustBadge.d.ts +29 -2
- package/dist/primitives/TrustBadge.d.ts.map +1 -1
- package/dist/primitives/TrustBadge.js +19 -5
- package/dist/primitives/TrustBadge.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { PanelFrame, PanelSection, PanelCard, StatusPill, PanelEmpty, PanelToolb
|
|
|
8
8
|
export { Shell, TopBar, CanvasBody, LeftPanel, RightPanel, BottomDrawer, StatusBar, type ShellProps, type TopBarProps, type CanvasBodyProps, type StatusBarProps, } from './primitives/Shell.js';
|
|
9
9
|
export { SegmentedControl, type SegmentedControlProps, type SegmentedControlOption, } from './primitives/SegmentedControl.js';
|
|
10
10
|
export { TrustBadge, type TrustBadgeProps, type TrustState } from './primitives/TrustBadge.js';
|
|
11
|
+
export { DerivationWalkPanel, type DerivationWalkPanelProps, type DerivationWalk, type DerivationStep, type DerivationStepKind, } from './primitives/DerivationWalkPanel.js';
|
|
11
12
|
export { CellChrome, type CellChromeProps } from './primitives/CellChrome.js';
|
|
12
13
|
export { PublishedCellChrome, type PublishedCellChromeProps } from './primitives/PublishedCellChrome.js';
|
|
13
14
|
export { Kbd, type KbdProps } from './primitives/Kbd.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,MAAM,GACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG/F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAGzG,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,MAAM,GACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG/F,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAGzG,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,8 @@ export { Shell, TopBar, CanvasBody, LeftPanel, RightPanel, BottomDrawer, StatusB
|
|
|
16
16
|
export { SegmentedControl, } from './primitives/SegmentedControl.js';
|
|
17
17
|
// TrustBadge (v1.3 Track 4 — v1.4 plug slot)
|
|
18
18
|
export { TrustBadge } from './primitives/TrustBadge.js';
|
|
19
|
+
// DerivationWalkPanel — consumer-facing "Why?" / show-your-work derivation panel
|
|
20
|
+
export { DerivationWalkPanel, } from './primitives/DerivationWalkPanel.js';
|
|
19
21
|
// CellChrome (v1.3 Track 6 — Hex-style cell card wrapper)
|
|
20
22
|
export { CellChrome } from './primitives/CellChrome.js';
|
|
21
23
|
// PublishedCellChrome (v1.3 Track 11 — read-only card shared by App mode + dashboard emitter)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,SAAS;AACT,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,GAGP,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA2B,MAAM,0BAA0B,CAAC;AAE5F,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAoB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,GAEb,MAAM,yBAAyB,CAAC;AAEjC,0CAA0C;AAC1C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,GASb,MAAM,4BAA4B,CAAC;AAEpC,yCAAyC;AACzC,OAAO,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,GAKV,MAAM,uBAAuB,CAAC;AAE/B,yEAAyE;AACzE,OAAO,EACL,gBAAgB,GAGjB,MAAM,kCAAkC,CAAC;AAE1C,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAyC,MAAM,4BAA4B,CAAC;AAE/F,0DAA0D;AAC1D,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAC;AAE9E,8FAA8F;AAC9F,OAAO,EAAE,mBAAmB,EAAiC,MAAM,qCAAqC,CAAC;AAEzG,+CAA+C;AAC/C,OAAO,EAAE,GAAG,EAAiB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,SAAS;AACT,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,GAGP,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA2B,MAAM,0BAA0B,CAAC;AAE5F,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAoB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,GAEb,MAAM,yBAAyB,CAAC;AAEjC,0CAA0C;AAC1C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,GASb,MAAM,4BAA4B,CAAC;AAEpC,yCAAyC;AACzC,OAAO,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,GAKV,MAAM,uBAAuB,CAAC;AAE/B,yEAAyE;AACzE,OAAO,EACL,gBAAgB,GAGjB,MAAM,kCAAkC,CAAC;AAE1C,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAyC,MAAM,4BAA4B,CAAC;AAE/F,iFAAiF;AACjF,OAAO,EACL,mBAAmB,GAKpB,MAAM,qCAAqC,CAAC;AAE7C,0DAA0D;AAC1D,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAC;AAE9E,8FAA8F;AAC9F,OAAO,EAAE,mBAAmB,EAAiC,MAAM,qCAAqC,CAAC;AAEzG,+CAA+C;AAC/C,OAAO,EAAE,GAAG,EAAiB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type DerivationStepKind = 'value' | 'block' | 'term' | 'metric' | 'dimension' | 'model' | 'source' | 'consumer';
|
|
3
|
+
export interface DerivationStep {
|
|
4
|
+
kind: DerivationStepKind;
|
|
5
|
+
name: string;
|
|
6
|
+
owner?: string;
|
|
7
|
+
status?: string;
|
|
8
|
+
detail?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DerivationWalk {
|
|
11
|
+
value?: string;
|
|
12
|
+
summary: string;
|
|
13
|
+
steps: DerivationStep[];
|
|
14
|
+
trustLabel?: string;
|
|
15
|
+
freshness?: string;
|
|
16
|
+
caveats?: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface DerivationWalkPanelProps {
|
|
19
|
+
walk: DerivationWalk;
|
|
20
|
+
/** Start expanded. Defaults to false — the "Why?" affordance is collapsed. */
|
|
21
|
+
defaultOpen?: boolean;
|
|
22
|
+
/** Label for the collapsed affordance. Defaults to "Why?". */
|
|
23
|
+
triggerLabel?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Progressive-disclosure derivation panel. Depth is collapsed by default;
|
|
27
|
+
* opening reveals the steps one level at a time via "Show more".
|
|
28
|
+
*/
|
|
29
|
+
export declare function DerivationWalkPanel({ walk, defaultOpen, triggerLabel }: DerivationWalkPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
//# sourceMappingURL=DerivationWalkPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DerivationWalkPanel.d.ts","sourceRoot":"","sources":["../../src/primitives/DerivationWalkPanel.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,OAAO,GACP,MAAM,GACN,QAAQ,GACR,WAAW,GACX,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAqBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,WAAmB,EAAE,YAAY,EAAE,EAAE,wBAAwB,2CAiKxG"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// "Show your work" — consumer-facing derivation walk panel.
|
|
3
|
+
//
|
|
4
|
+
// Renders the plain-language story of how a certified (or generated) answer was
|
|
5
|
+
// derived: value → block (owner / status / review) → terms → metrics → dbt
|
|
6
|
+
// model / source, plus caveats and an optional trust/freshness line.
|
|
7
|
+
//
|
|
8
|
+
// It deliberately HIDES depth. The walk is collapsed behind a "Why?" affordance
|
|
9
|
+
// and, once opened, reveals one step at a time (progressive disclosure) so a
|
|
10
|
+
// non-technical consumer is never shown the raw lineage graph. The component is
|
|
11
|
+
// presentational and dependency-free: the host assembles the `DerivationWalk`
|
|
12
|
+
// payload (via dql-core's `buildDerivationWalk`) and passes it in.
|
|
13
|
+
import React from 'react';
|
|
14
|
+
import { StatusPill } from './PanelFrame.js';
|
|
15
|
+
const STEP_LABEL = {
|
|
16
|
+
value: 'Value',
|
|
17
|
+
block: 'Certified block',
|
|
18
|
+
term: 'Business term',
|
|
19
|
+
metric: 'Metric',
|
|
20
|
+
dimension: 'Dimension',
|
|
21
|
+
model: 'dbt model',
|
|
22
|
+
source: 'Source table',
|
|
23
|
+
consumer: 'Used by',
|
|
24
|
+
};
|
|
25
|
+
function statusTone(status) {
|
|
26
|
+
const value = (status ?? '').toLowerCase();
|
|
27
|
+
if (value === 'certified')
|
|
28
|
+
return 'success';
|
|
29
|
+
if (value === 'deprecated')
|
|
30
|
+
return 'neutral';
|
|
31
|
+
if (value.includes('review') || value === 'draft' || value === 'pending')
|
|
32
|
+
return 'warning';
|
|
33
|
+
return 'neutral';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Progressive-disclosure derivation panel. Depth is collapsed by default;
|
|
37
|
+
* opening reveals the steps one level at a time via "Show more".
|
|
38
|
+
*/
|
|
39
|
+
export function DerivationWalkPanel({ walk, defaultOpen = false, triggerLabel }) {
|
|
40
|
+
const [open, setOpen] = React.useState(defaultOpen);
|
|
41
|
+
// Reveal one step at a time. Start by showing the value + block (the first
|
|
42
|
+
// two steps); each "Show more" reveals the next single level.
|
|
43
|
+
const initialVisible = Math.min(walk.steps.length, 2);
|
|
44
|
+
const [visible, setVisible] = React.useState(initialVisible);
|
|
45
|
+
const reset = () => setVisible(initialVisible);
|
|
46
|
+
const shownSteps = walk.steps.slice(0, visible);
|
|
47
|
+
const remaining = walk.steps.length - visible;
|
|
48
|
+
return (_jsxs("div", { style: {
|
|
49
|
+
border: '1px solid var(--border-subtle, rgba(127,127,127,0.25))',
|
|
50
|
+
borderRadius: 8,
|
|
51
|
+
background: 'var(--bg-1, transparent)',
|
|
52
|
+
overflow: 'hidden',
|
|
53
|
+
}, children: [_jsxs("button", { type: "button", "aria-expanded": open, onClick: () => {
|
|
54
|
+
setOpen((value) => !value);
|
|
55
|
+
if (open)
|
|
56
|
+
reset();
|
|
57
|
+
}, style: {
|
|
58
|
+
width: '100%',
|
|
59
|
+
display: 'flex',
|
|
60
|
+
alignItems: 'center',
|
|
61
|
+
justifyContent: 'space-between',
|
|
62
|
+
gap: 8,
|
|
63
|
+
border: 0,
|
|
64
|
+
background: 'transparent',
|
|
65
|
+
color: 'var(--text-secondary, inherit)',
|
|
66
|
+
cursor: 'pointer',
|
|
67
|
+
padding: '8px 11px',
|
|
68
|
+
font: 'inherit',
|
|
69
|
+
fontSize: 12,
|
|
70
|
+
fontWeight: 700,
|
|
71
|
+
}, children: [_jsxs("span", { style: { display: 'flex', alignItems: 'center', gap: 7 }, children: [_jsx("span", { "aria-hidden": true, style: { transform: open ? 'rotate(90deg)' : 'none', transition: 'transform 120ms', display: 'inline-block' }, children: "\u25B8" }), triggerLabel ?? 'Why?'] }), _jsx("span", { style: { fontSize: 11, color: 'var(--text-tertiary, inherit)', fontWeight: 600 }, children: open ? 'Hide derivation' : 'Show how this was derived' })] }), open && (_jsxs("div", { style: { padding: '2px 11px 11px', display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsx("div", { style: { fontSize: 12.5, lineHeight: 1.5, color: 'var(--text-primary, inherit)' }, children: walk.summary }), (walk.trustLabel || walk.freshness) && (_jsxs("div", { style: { display: 'flex', gap: 6, flexWrap: 'wrap', alignItems: 'center' }, children: [walk.trustLabel && _jsx(StatusPill, { tone: statusTone(walk.trustLabel), children: formatLabel(walk.trustLabel) }), walk.freshness && (_jsxs("span", { style: { fontSize: 11, color: 'var(--text-tertiary, inherit)' }, children: ["Fresh as of ", formatFreshness(walk.freshness)] }))] })), _jsx("ol", { style: { listStyle: 'none', margin: 0, padding: 0, display: 'flex', flexDirection: 'column', gap: 7 }, children: shownSteps.map((step, index) => (_jsxs("li", { style: {
|
|
72
|
+
display: 'flex',
|
|
73
|
+
gap: 9,
|
|
74
|
+
alignItems: 'flex-start',
|
|
75
|
+
paddingLeft: 2,
|
|
76
|
+
}, children: [_jsx("span", { "aria-hidden": true, style: {
|
|
77
|
+
marginTop: 3,
|
|
78
|
+
width: 7,
|
|
79
|
+
height: 7,
|
|
80
|
+
borderRadius: 999,
|
|
81
|
+
flexShrink: 0,
|
|
82
|
+
background: 'var(--accent, currentColor)',
|
|
83
|
+
opacity: 0.7,
|
|
84
|
+
} }), _jsxs("div", { style: { minWidth: 0, display: 'flex', flexDirection: 'column', gap: 2 }, children: [_jsxs("div", { style: { display: 'flex', gap: 6, alignItems: 'center', flexWrap: 'wrap' }, children: [_jsx("span", { style: { fontSize: 10, fontWeight: 700, textTransform: 'uppercase', letterSpacing: '0.04em', color: 'var(--text-tertiary, inherit)' }, children: STEP_LABEL[step.kind] }), _jsx("span", { style: { fontSize: 12.5, fontWeight: 700, color: 'var(--text-primary, inherit)', overflowWrap: 'anywhere' }, children: step.name }), step.status && _jsx(StatusPill, { tone: statusTone(step.status), children: formatLabel(step.status) })] }), (step.owner || step.detail) && (_jsxs("div", { style: { fontSize: 11.5, color: 'var(--text-secondary, inherit)', lineHeight: 1.45 }, children: [step.owner && _jsxs("span", { children: ["Owner: ", step.owner, ". "] }), step.detail] }))] })] }, `${step.kind}-${step.name}-${index}`))) }), remaining > 0 && (_jsxs("button", { type: "button", onClick: () => setVisible((value) => Math.min(walk.steps.length, value + 1)), style: {
|
|
85
|
+
alignSelf: 'flex-start',
|
|
86
|
+
border: '1px solid var(--border-default, rgba(127,127,127,0.3))',
|
|
87
|
+
borderRadius: 6,
|
|
88
|
+
background: 'transparent',
|
|
89
|
+
color: 'var(--accent, inherit)',
|
|
90
|
+
cursor: 'pointer',
|
|
91
|
+
padding: '4px 9px',
|
|
92
|
+
fontSize: 11,
|
|
93
|
+
fontWeight: 700,
|
|
94
|
+
}, children: ["Show next step (", remaining, " more)"] })), walk.caveats && walk.caveats.length > 0 && (_jsxs("div", { style: {
|
|
95
|
+
borderLeft: '3px solid var(--status-warning, #d29922)',
|
|
96
|
+
background: 'var(--status-warning-bg, rgba(210,153,34,0.08))',
|
|
97
|
+
borderRadius: 6,
|
|
98
|
+
padding: '8px 10px',
|
|
99
|
+
display: 'flex',
|
|
100
|
+
flexDirection: 'column',
|
|
101
|
+
gap: 4,
|
|
102
|
+
}, children: [_jsx("span", { style: { fontSize: 10, fontWeight: 800, textTransform: 'uppercase', letterSpacing: '0.04em', color: 'var(--status-warning, inherit)' }, children: "Caveats" }), walk.caveats.map((caveat, index) => (_jsx("span", { style: { fontSize: 11.5, color: 'var(--text-secondary, inherit)', lineHeight: 1.45 }, children: caveat }, index)))] }))] }))] }));
|
|
103
|
+
}
|
|
104
|
+
function formatLabel(value) {
|
|
105
|
+
return value.replace(/[_-]+/g, ' ').replace(/\b\w/g, (char) => char.toUpperCase());
|
|
106
|
+
}
|
|
107
|
+
function formatFreshness(value) {
|
|
108
|
+
const date = new Date(value);
|
|
109
|
+
if (Number.isNaN(date.getTime()))
|
|
110
|
+
return value;
|
|
111
|
+
return date.toLocaleDateString();
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=DerivationWalkPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DerivationWalkPanel.js","sourceRoot":"","sources":["../../src/primitives/DerivationWalkPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublishedCellChrome.d.ts","sourceRoot":"","sources":["../../src/primitives/PublishedCellChrome.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,oEAAoE;IACpE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"PublishedCellChrome.d.ts","sourceRoot":"","sources":["../../src/primitives/PublishedCellChrome.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,oEAAoE;IACpE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAkBD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,GACN,EAAE,wBAAwB,2CAkF1B"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
const TRUST_DOT = {
|
|
3
|
+
// Canonical vocabulary (mirrors dql-core).
|
|
4
|
+
certified: 'var(--color-accent-green, #3fb950)',
|
|
5
|
+
reviewed: 'var(--color-accent-blue, #58a6ff)',
|
|
6
|
+
ai_generated: 'var(--color-accent-yellow, #e3b341)',
|
|
7
|
+
insufficient_context: 'var(--color-text-muted, #9aa4b2)',
|
|
8
|
+
conflict: 'var(--color-accent-red, #f85149)',
|
|
9
|
+
// Legacy lifecycle states.
|
|
3
10
|
draft: 'var(--color-text-muted, #9aa4b2)',
|
|
4
11
|
pending: 'var(--color-accent-yellow, #e3b341)',
|
|
5
12
|
review: 'var(--color-accent-yellow, #e3b341)',
|
|
6
|
-
certified: 'var(--color-accent-green, #3fb950)',
|
|
7
|
-
ai_generated: 'var(--color-accent-yellow, #e3b341)',
|
|
8
13
|
uncertified: 'var(--color-accent-yellow, #e3b341)',
|
|
9
14
|
deprecated: 'var(--color-accent-red, #f85149)',
|
|
10
15
|
no_answer: 'var(--color-accent-red, #f85149)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublishedCellChrome.js","sourceRoot":"","sources":["../../src/primitives/PublishedCellChrome.tsx"],"names":[],"mappings":";AA4BA,MAAM,SAAS,GAA4C;IACzD,
|
|
1
|
+
{"version":3,"file":"PublishedCellChrome.js","sourceRoot":"","sources":["../../src/primitives/PublishedCellChrome.tsx"],"names":[],"mappings":";AA4BA,MAAM,SAAS,GAA4C;IACzD,2CAA2C;IAC3C,SAAS,EAAE,oCAAoC;IAC/C,QAAQ,EAAE,mCAAmC;IAC7C,YAAY,EAAE,qCAAqC;IACnD,oBAAoB,EAAE,kCAAkC;IACxD,QAAQ,EAAE,kCAAkC;IAC5C,2BAA2B;IAC3B,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,qCAAqC;IAC9C,MAAM,EAAE,qCAAqC;IAC7C,WAAW,EAAE,qCAAqC;IAClD,UAAU,EAAE,kCAAkC;IAC9C,SAAS,EAAE,kCAAkC;CAC9C,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,GACoB;IACzB,MAAM,EAAE,GAAG,UAAU,IAAI,uCAAuC,CAAC;IACjE,MAAM,MAAM,GAAG,UAAU,IAAI,oDAAoD,CAAC;IAElF,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,aAAa,MAAM,EAAE;YAC7B,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,QAAQ;YAClB,GAAG,KAAK;SACT,aAEA,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAC/D,eACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,aAAa,MAAM,EAAE;iBACpC,aAEA,UAAU,IAAI,CACb,eACE,KAAK,EAAE,UAAU,gBACL,gBAAgB,UAAU,EAAE,EACxC,KAAK,EAAE;4BACL,KAAK,EAAE,CAAC;4BACR,MAAM,EAAE,CAAC;4BACT,YAAY,EAAE,KAAK;4BACnB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC;4BACjC,UAAU,EAAE,CAAC;yBACd,GACD,CACH,EACD,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aACjC,KAAK,KAAK,SAAS,IAAI,CACtB,cACE,KAAK,EAAE;oCACL,QAAQ,EAAE,EAAE;oCACZ,UAAU,EAAE,GAAG;oCACf,KAAK,EAAE,oCAAoC;oCAC3C,QAAQ,EAAE,QAAQ;oCAClB,YAAY,EAAE,UAAU;oCACxB,UAAU,EAAE,QAAQ;iCACrB,YAEA,KAAK,GACF,CACP,EACA,OAAO,KAAK,SAAS,IAAI,CACxB,cACE,KAAK,EAAE;oCACL,QAAQ,EAAE,EAAE;oCACZ,KAAK,EAAE,kCAAkC;oCACzC,SAAS,EAAE,CAAC;iCACb,YAEA,OAAO,GACJ,CACP,IACG,IACF,CACP,EACD,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAG,QAAQ,GAAO,EAC5C,MAAM,KAAK,SAAS,IAAI,CACvB,cACE,KAAK,EAAE;oBACL,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,aAAa,MAAM,EAAE;oBAChC,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,kCAAkC;iBAC1C,YAEA,MAAM,GACH,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,35 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Canonical trust-label vocabulary.
|
|
4
|
+
*
|
|
5
|
+
* This MIRRORS the single source of truth in
|
|
6
|
+
* `@duckcodeailabs/dql-core` (`src/trust/labels.ts`): the same five base
|
|
7
|
+
* labels (Certified · Reviewed · AI-Generated · Insufficient-Context ·
|
|
8
|
+
* Conflict), each with a base label + optional qualifier shape and a color
|
|
9
|
+
* token. `dql-ui` is a browser-only leaf package with no DQL workspace
|
|
10
|
+
* dependencies, so it cannot import dql-core (which carries node-only deps)
|
|
11
|
+
* without bloating the UI bundle — hence this intentional mirror. Keep the two
|
|
12
|
+
* in sync; the ids and base labels must match exactly.
|
|
13
|
+
*
|
|
14
|
+
* Color tokens map to `StatusPill` tones here. Unknown labels degrade to a
|
|
15
|
+
* safe default rather than throwing, matching dql-core's `resolveTrustLabel`.
|
|
16
|
+
*/
|
|
17
|
+
export type CanonicalTrustLabelId = 'certified' | 'reviewed' | 'ai_generated' | 'insufficient_context' | 'conflict';
|
|
18
|
+
/**
|
|
19
|
+
* Legacy lifecycle states, retained for backward compatibility. Existing
|
|
20
|
+
* callers passing these keep working; new code should prefer the canonical ids.
|
|
21
|
+
*/
|
|
22
|
+
export type LegacyTrustState = 'draft' | 'pending' | 'review' | 'deprecated' | 'uncertified' | 'no_answer';
|
|
23
|
+
export type TrustState = CanonicalTrustLabelId | LegacyTrustState;
|
|
3
24
|
export interface TrustBadgeProps {
|
|
4
25
|
state?: TrustState;
|
|
26
|
+
/**
|
|
27
|
+
* Optional downgrade/composition qualifier appended as `base · qualifier`,
|
|
28
|
+
* e.g. `state="certified" qualifier="invariant violated"` →
|
|
29
|
+
* "Certified · invariant violated". Ignored when an explicit `label` is set.
|
|
30
|
+
*/
|
|
31
|
+
qualifier?: string;
|
|
5
32
|
label?: React.ReactNode;
|
|
6
33
|
}
|
|
7
|
-
export declare function TrustBadge({ state, label }: TrustBadgeProps): import("react/jsx-runtime").JSX.Element | null;
|
|
34
|
+
export declare function TrustBadge({ state, qualifier, label }: TrustBadgeProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
35
|
//# sourceMappingURL=TrustBadge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrustBadge.d.ts","sourceRoot":"","sources":["../../src/primitives/TrustBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TrustBadge.d.ts","sourceRoot":"","sources":["../../src/primitives/TrustBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,UAAU,GACV,cAAc,GACd,sBAAsB,GACtB,UAAU,CAAC;AAYf;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,WAAW,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,kDAMtE"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { StatusPill } from './PanelFrame.js';
|
|
3
|
-
|
|
3
|
+
const CANONICAL_TRUST_LABELS = {
|
|
4
|
+
certified: { base: 'Certified', tone: 'success' },
|
|
5
|
+
reviewed: { base: 'Reviewed', tone: 'info' },
|
|
6
|
+
ai_generated: { base: 'AI-Generated', tone: 'warning' },
|
|
7
|
+
insufficient_context: { base: 'Insufficient-Context', tone: 'neutral' },
|
|
8
|
+
conflict: { base: 'Conflict', tone: 'error' },
|
|
9
|
+
};
|
|
10
|
+
const DEFAULT_CANONICAL_TRUST_LABEL_ID = 'insufficient_context';
|
|
11
|
+
export function TrustBadge({ state, qualifier, label }) {
|
|
4
12
|
if (!state)
|
|
5
13
|
return null;
|
|
6
|
-
const config = TRUST_BADGE_CONFIG[state] ?? TRUST_BADGE_CONFIG
|
|
7
|
-
|
|
14
|
+
const config = TRUST_BADGE_CONFIG[state] ?? TRUST_BADGE_CONFIG[DEFAULT_CANONICAL_TRUST_LABEL_ID];
|
|
15
|
+
const composed = qualifier ? `${config.label} · ${qualifier}` : config.label;
|
|
16
|
+
return _jsx(StatusPill, { tone: config.tone, children: label ?? composed });
|
|
8
17
|
}
|
|
9
18
|
const TRUST_BADGE_CONFIG = {
|
|
10
|
-
|
|
19
|
+
// Canonical vocabulary (mirrors dql-core).
|
|
20
|
+
certified: { tone: CANONICAL_TRUST_LABELS.certified.tone, label: CANONICAL_TRUST_LABELS.certified.base },
|
|
21
|
+
reviewed: { tone: CANONICAL_TRUST_LABELS.reviewed.tone, label: CANONICAL_TRUST_LABELS.reviewed.base },
|
|
22
|
+
ai_generated: { tone: CANONICAL_TRUST_LABELS.ai_generated.tone, label: CANONICAL_TRUST_LABELS.ai_generated.base },
|
|
23
|
+
insufficient_context: { tone: CANONICAL_TRUST_LABELS.insufficient_context.tone, label: CANONICAL_TRUST_LABELS.insufficient_context.base },
|
|
24
|
+
conflict: { tone: CANONICAL_TRUST_LABELS.conflict.tone, label: CANONICAL_TRUST_LABELS.conflict.base },
|
|
25
|
+
// Legacy lifecycle states (unchanged behavior).
|
|
11
26
|
draft: { tone: 'warning', label: 'Draft' },
|
|
12
27
|
pending: { tone: 'warning', label: 'Pending review' },
|
|
13
28
|
review: { tone: 'warning', label: 'Review' },
|
|
14
|
-
ai_generated: { tone: 'warning', label: 'AI draft' },
|
|
15
29
|
uncertified: { tone: 'warning', label: 'Uncertified' },
|
|
16
30
|
deprecated: { tone: 'neutral', label: 'Deprecated' },
|
|
17
31
|
no_answer: { tone: 'error', label: 'No answer' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrustBadge.js","sourceRoot":"","sources":["../../src/primitives/TrustBadge.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TrustBadge.js","sourceRoot":"","sources":["../../src/primitives/TrustBadge.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA0B7C,MAAM,sBAAsB,GAAgE;IAC1F,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;IACvD,oBAAoB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE;IACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;CAC9C,CAAC;AAEF,MAAM,gCAAgC,GAA0B,sBAAsB,CAAC;AA2BvF,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAmB;IACrE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7E,OAAO,KAAC,UAAU,IAAC,IAAI,EAAE,MAAM,CAAC,IAAI,YAAG,KAAK,IAAI,QAAQ,GAAc,CAAC;AACzE,CAAC;AAED,MAAM,kBAAkB,GAAsD;IAC5E,2CAA2C;IAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE;IACxG,QAAQ,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE;IACrG,YAAY,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE;IACjH,oBAAoB,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,IAAI,EAAE;IACzI,QAAQ,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE;IACrG,gDAAgD;IAChD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;IAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACrD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC5C,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;IACtD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE;IACpD,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;CACjD,CAAC"}
|
package/package.json
CHANGED