@hanzo/ui 8.0.2 → 8.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +63 -4
- package/src/billing.ts +9 -0
- package/src/canvas.ts +11 -0
- package/src/cd/layout.ts +184 -0
- package/src/cd/status.ts +158 -0
- package/src/cd/time.ts +52 -0
- package/src/cd/types.ts +318 -0
- package/src/dashboard.ts +8 -0
- package/src/gitops.ts +5 -0
- package/src/network.ts +11 -0
- package/src/product/AppHeader.tsx +175 -0
- package/src/product/BrandMark.tsx +27 -0
- package/src/product/HanzoMark.tsx +7 -4
- package/src/product/OrgSwitcher.tsx +332 -0
- package/src/product/index.ts +10 -5
- package/src/product/scope.test.ts +92 -0
- package/src/product/scope.ts +123 -0
- package/src/usage.ts +8 -0
- package/src/wallet.ts +11 -0
- package/types/billing.d.ts +2 -0
- package/types/billing.d.ts.map +1 -0
- package/types/canvas.d.ts +2 -0
- package/types/canvas.d.ts.map +1 -0
- package/types/cd/layout.d.ts +57 -0
- package/types/cd/layout.d.ts.map +1 -0
- package/types/cd/status.d.ts +50 -0
- package/types/cd/status.d.ts.map +1 -0
- package/types/cd/time.d.ts +15 -0
- package/types/cd/time.d.ts.map +1 -0
- package/types/cd/types.d.ts +269 -0
- package/types/cd/types.d.ts.map +1 -0
- package/types/dashboard.d.ts +2 -0
- package/types/dashboard.d.ts.map +1 -0
- package/types/gitops.d.ts +2 -0
- package/types/gitops.d.ts.map +1 -0
- package/types/network.d.ts +2 -0
- package/types/network.d.ts.map +1 -0
- package/types/product/AppHeader.d.ts +49 -0
- package/types/product/AppHeader.d.ts.map +1 -0
- package/types/product/BrandMark.d.ts +8 -0
- package/types/product/BrandMark.d.ts.map +1 -0
- package/types/product/Charts.d.ts +5 -5
- package/types/product/Charts.d.ts.map +1 -1
- package/types/product/ComboBox.d.ts +1 -1
- package/types/product/ComboBox.d.ts.map +1 -1
- package/types/product/DataTable.d.ts +1 -1
- package/types/product/DataTable.d.ts.map +1 -1
- package/types/product/Donut.d.ts +1 -1
- package/types/product/Donut.d.ts.map +1 -1
- package/types/product/EmptyState.d.ts +1 -1
- package/types/product/EmptyState.d.ts.map +1 -1
- package/types/product/FadeIn.d.ts +1 -1
- package/types/product/FadeIn.d.ts.map +1 -1
- package/types/product/Field.d.ts +6 -6
- package/types/product/Field.d.ts.map +1 -1
- package/types/product/HanzoMark.d.ts +6 -5
- package/types/product/HanzoMark.d.ts.map +1 -1
- package/types/product/Metric.d.ts +4 -4
- package/types/product/Metric.d.ts.map +1 -1
- package/types/product/OrgSwitcher.d.ts +19 -0
- package/types/product/OrgSwitcher.d.ts.map +1 -0
- package/types/product/PageHeader.d.ts +1 -1
- package/types/product/PageHeader.d.ts.map +1 -1
- package/types/product/PrimaryButton.d.ts +1 -1
- package/types/product/PrimaryButton.d.ts.map +1 -1
- package/types/product/ProductIcon.d.ts +1 -1
- package/types/product/ProductIcon.d.ts.map +1 -1
- package/types/product/ProviderLogo.d.ts +2 -2
- package/types/product/ProviderLogo.d.ts.map +1 -1
- package/types/product/Reorder.d.ts +1 -1
- package/types/product/Reorder.d.ts.map +1 -1
- package/types/product/SelectMenu.d.ts +1 -1
- package/types/product/SelectMenu.d.ts.map +1 -1
- package/types/product/SlideOver.d.ts +1 -1
- package/types/product/SlideOver.d.ts.map +1 -1
- package/types/product/StatusTag.d.ts +1 -1
- package/types/product/StatusTag.d.ts.map +1 -1
- package/types/product/ThemeToggle.d.ts +1 -1
- package/types/product/ThemeToggle.d.ts.map +1 -1
- package/types/product/Toast.d.ts +1 -1
- package/types/product/Toast.d.ts.map +1 -1
- package/types/product/index.d.ts +4 -2
- package/types/product/index.d.ts.map +1 -1
- package/types/product/scope.d.ts +56 -0
- package/types/product/scope.d.ts.map +1 -0
- package/types/usage.d.ts +2 -0
- package/types/usage.d.ts.map +1 -0
- package/types/wallet.d.ts +2 -0
- package/types/wallet.d.ts.map +1 -0
- package/src/product/social/CampaignCard.tsx +0 -62
- package/src/product/social/ChannelBadge.tsx +0 -60
- package/src/product/social/PostCard.tsx +0 -80
- package/src/product/social/index.ts +0 -6
- package/src/product/usage/UsageDashboard.tsx +0 -54
- package/src/product/usage/UsageMeter.tsx +0 -75
- package/src/product/usage/UsageProviderCard.tsx +0 -153
- package/src/product/usage/index.ts +0 -10
- package/types/product/social/CampaignCard.d.ts +0 -14
- package/types/product/social/CampaignCard.d.ts.map +0 -1
- package/types/product/social/ChannelBadge.d.ts +0 -7
- package/types/product/social/ChannelBadge.d.ts.map +0 -1
- package/types/product/social/PostCard.d.ts +0 -16
- package/types/product/social/PostCard.d.ts.map +0 -1
- package/types/product/social/index.d.ts +0 -4
- package/types/product/social/index.d.ts.map +0 -1
- package/types/product/usage/UsageDashboard.d.ts +0 -10
- package/types/product/usage/UsageDashboard.d.ts.map +0 -1
- package/types/product/usage/UsageMeter.d.ts +0 -15
- package/types/product/usage/UsageMeter.d.ts.map +0 -1
- package/types/product/usage/UsageProviderCard.d.ts +0 -35
- package/types/product/usage/UsageProviderCard.d.ts.map +0 -1
- package/types/product/usage/index.d.ts +0 -4
- package/types/product/usage/index.d.ts.map +0 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The Hanzo "H" mark — the canonical
|
|
2
|
+
* The Hanzo "H" mark — the canonical 7-path shaded glyph: five body blocks +
|
|
3
|
+
* two shade slivers (geometry canon: @hanzo/logo `MARK_PATHS`).
|
|
3
4
|
*
|
|
4
|
-
* Rendered as inline SVG with `fill: currentColor
|
|
5
|
-
* surrounding text color and adapts to the dark/light theme
|
|
6
|
-
* asset. ONE source for the mark across the chrome
|
|
5
|
+
* Rendered as inline SVG with `fill: currentColor` (shade at reduced opacity),
|
|
6
|
+
* so it inherits the surrounding text color and adapts to the dark/light theme
|
|
7
|
+
* with no per-theme asset. ONE source for the mark across the chrome.
|
|
7
8
|
*/
|
|
8
9
|
export declare function HanzoMark({ size, color }: {
|
|
9
10
|
size?: number;
|
|
10
11
|
color?: string;
|
|
11
|
-
}): import("react").JSX.Element;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
//# sourceMappingURL=HanzoMark.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HanzoMark.d.ts","sourceRoot":"","sources":["../../src/product/HanzoMark.tsx"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"HanzoMark.d.ts","sourceRoot":"","sources":["../../src/product/HanzoMark.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAS,EAAE,KAAsB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,2CAoBjG"}
|
|
@@ -55,7 +55,7 @@ export declare function LegendDot({ color, label, value }: {
|
|
|
55
55
|
color: string;
|
|
56
56
|
label: string;
|
|
57
57
|
value?: ReactNode;
|
|
58
|
-
}): import("react").JSX.Element;
|
|
58
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
59
59
|
/**
|
|
60
60
|
* One overview metric tile. `value` is pre-formatted by the caller (so an absent
|
|
61
61
|
* metric is an honest `—`, never a fabricated number). The sparkline only appears
|
|
@@ -71,7 +71,7 @@ export declare function MetricCard({ icon, label, value, caption, spark, sparkCo
|
|
|
71
71
|
delta?: {
|
|
72
72
|
pct: number;
|
|
73
73
|
};
|
|
74
|
-
}): import("react").JSX.Element;
|
|
74
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
75
75
|
/**
|
|
76
76
|
* A button that is either a real action (onPress) or HONESTLY disabled with a
|
|
77
77
|
* native tooltip explaining why (the action has no backend yet). One way to
|
|
@@ -86,7 +86,7 @@ export declare function HintButton({ icon, iconAfter, children, onPress, disable
|
|
|
86
86
|
/** Native tooltip text (shown on hover) — say WHY it is disabled. */
|
|
87
87
|
hint?: string;
|
|
88
88
|
theme?: 'light';
|
|
89
|
-
}): import("react").JSX.Element;
|
|
89
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
90
90
|
/**
|
|
91
91
|
* A titled panel wrapper used across the consoles (chart + list cards). `grow`
|
|
92
92
|
* (default true) sets `flex={1}` so panels SHARE width in a ROW; pass `grow={false}`
|
|
@@ -99,5 +99,5 @@ export declare function Panel({ title, right, children, minW, grow, }: {
|
|
|
99
99
|
children: ReactNode;
|
|
100
100
|
minW?: number;
|
|
101
101
|
grow?: boolean;
|
|
102
|
-
}): import("react").JSX.Element;
|
|
102
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
103
103
|
//# sourceMappingURL=Metric.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metric.d.ts","sourceRoot":"","sources":["../../src/product/Metric.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGpD,oFAAoF;AACpF,eAAO,MAAM,MAAM,mGAAoG,CAAA;AACvH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,MAAmC,CAAA;AAG7E,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,KAAW,EACX,MAAW,EACX,KAAiB,GAClB,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,YAAY,GAAG,IAAI,CAatB;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAW,EACX,MAAW,EACX,KAAiB,GAClB,EAAE;IACD,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,YAAY,GAAG,IAAI,CAiBtB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,KAAW,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAQtH;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"Metric.d.ts","sourceRoot":"","sources":["../../src/product/Metric.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Org, type OrgScope } from './scope';
|
|
2
|
+
export type OrgSwitcherProps = {
|
|
3
|
+
/** The active-org contract (see `orgScope`). */
|
|
4
|
+
scope: OrgScope;
|
|
5
|
+
/**
|
|
6
|
+
* Lazy paged org list: 0-based page + server-pushed search → one page of
|
|
7
|
+
* rows. A full page (=== pageSize) implies another. Omit when the caller
|
|
8
|
+
* can only see its own org.
|
|
9
|
+
*/
|
|
10
|
+
orgs?: (page: number, query: string) => Promise<Org[]>;
|
|
11
|
+
/** Rows per page the loader returns. Default 20. */
|
|
12
|
+
pageSize?: number;
|
|
13
|
+
/** Create-org hook → the created org's id; omit to hide the affordance. */
|
|
14
|
+
create?: (name: string) => Promise<string>;
|
|
15
|
+
/** Show the "All organizations" de-scope row (`scope.leaveOrg`). */
|
|
16
|
+
picker?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare function OrgSwitcher({ scope, orgs, pageSize, create, picker }: OrgSwitcherProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=OrgSwitcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgSwitcher.d.ts","sourceRoot":"","sources":["../../src/product/OrgSwitcher.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAc,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AA0B7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,gDAAgD;IAChD,KAAK,EAAE,QAAQ,CAAA;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACtD,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1C,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAa,EAAE,MAAM,EAAE,MAAc,EAAE,EAAE,gBAAgB,2CA4QnG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../src/product/PageHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB
|
|
1
|
+
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../src/product/PageHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,2CAgBA"}
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { ComponentProps } from 'react';
|
|
11
11
|
import { Button } from '@hanzo/gui';
|
|
12
|
-
export declare function PrimaryButton(props: ComponentProps<typeof Button>): import("react").JSX.Element;
|
|
12
|
+
export declare function PrimaryButton(props: ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
//# sourceMappingURL=PrimaryButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimaryButton.d.ts","sourceRoot":"","sources":["../../src/product/PrimaryButton.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"PrimaryButton.d.ts","sourceRoot":"","sources":["../../src/product/PrimaryButton.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,MAAM,CAAC,2CAEjE"}
|
|
@@ -4,5 +4,5 @@ export declare function ProductIcon({ icon: Icon, color, size, }: {
|
|
|
4
4
|
/** The product's resolved accent hex (e.g. `#5E6AD2`). Omit for the neutral chip. */
|
|
5
5
|
color?: string;
|
|
6
6
|
size?: number;
|
|
7
|
-
}): import("react").JSX.Element;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
//# sourceMappingURL=ProductIcon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductIcon.d.ts","sourceRoot":"","sources":["../../src/product/ProductIcon.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEhD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EAAE,IAAI,EACV,KAAK,EACL,IAAS,GACV,EAAE;IACD,IAAI,EAAE,QAAQ,CAAA;IACd,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd
|
|
1
|
+
{"version":3,"file":"ProductIcon.d.ts","sourceRoot":"","sources":["../../src/product/ProductIcon.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEhD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EAAE,IAAI,EACV,KAAK,EACL,IAAS,GACV,EAAE;IACD,IAAI,EAAE,QAAQ,CAAA;IACd,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,2CA2BA"}
|
|
@@ -4,10 +4,10 @@ export declare function providerInitials(provider: string): string;
|
|
|
4
4
|
export declare function ProviderLogo({ provider, size }: {
|
|
5
5
|
provider: string;
|
|
6
6
|
size?: number;
|
|
7
|
-
}): import("react").JSX.Element;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
/** A generic fallback mark for an unspecified provider (used sparingly). */
|
|
9
9
|
export declare function GenericLogo({ size }: {
|
|
10
10
|
size?: number;
|
|
11
|
-
}): import("react").JSX.Element;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
export { Boxes as CustomModelMark };
|
|
13
13
|
//# sourceMappingURL=ProviderLogo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderLogo.d.ts","sourceRoot":"","sources":["../../src/product/ProviderLogo.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,EAAsB,MAAM,0BAA0B,CAAA;AA0CpE,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"ProviderLogo.d.ts","sourceRoot":"","sources":["../../src/product/ProviderLogo.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,EAAsB,MAAM,0BAA0B,CAAA;AA0CpE,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAqDxF;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,EAAE,IAAS,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAM3D;AAID,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,CAAA"}
|
|
@@ -32,5 +32,5 @@ export declare function Reorder<T>({ items, keyOf, rowHeight, onReorder, renderI
|
|
|
32
32
|
rowHeight?: number;
|
|
33
33
|
onReorder: (from: number, to: number) => void;
|
|
34
34
|
renderItem: (item: T, handle: DragHandle, dragging: boolean) => ReactNode;
|
|
35
|
-
}): import("react").JSX.Element;
|
|
35
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
36
36
|
//# sourceMappingURL=Reorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reorder.d.ts","sourceRoot":"","sources":["../../src/product/Reorder.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrE,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzF;AAED;+DAC+D;AAC/D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9F;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,aAAa,EAAE,CAAC,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,CAAA;CAAE,CAAA;AAErI,wBAAgB,OAAO,CAAC,CAAC,EAAE,EACzB,KAAK,EACL,KAAK,EACL,SAAc,EACd,SAAS,EACT,UAAU,GACX,EAAE;IACD,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAA;CAC1E
|
|
1
|
+
{"version":3,"file":"Reorder.d.ts","sourceRoot":"","sources":["../../src/product/Reorder.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrE,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzF;AAED;+DAC+D;AAC/D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9F;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,aAAa,EAAE,CAAC,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,CAAA;CAAE,CAAA;AAErI,wBAAgB,OAAO,CAAC,CAAC,EAAE,EACzB,KAAK,EACL,KAAK,EACL,SAAc,EACd,SAAS,EACT,UAAU,GACX,EAAE;IACD,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAA;CAC1E,2CA6DA"}
|
|
@@ -19,5 +19,5 @@ export declare function SelectMenu<T extends string>({ options, value, onChange,
|
|
|
19
19
|
/** Optional leading icon in the trigger. */
|
|
20
20
|
icon?: ReactElement;
|
|
21
21
|
minWidth?: number;
|
|
22
|
-
}): import("react").JSX.Element;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
23
|
//# sourceMappingURL=SelectMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../src/product/SelectMenu.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAKzC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAC3C,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,IAAI,EACJ,QAAc,GACf,EAAE;IACD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IACf,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB
|
|
1
|
+
{"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../src/product/SelectMenu.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAKzC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAC3C,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,IAAI,EACJ,QAAc,GACf,EAAE;IACD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IACf,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,2CAsCA"}
|
|
@@ -43,6 +43,6 @@ export type SlideOverProps = {
|
|
|
43
43
|
zIndex?: number;
|
|
44
44
|
children: ReactNode;
|
|
45
45
|
};
|
|
46
|
-
export declare function SlideOver({ open, onClose, side, size, title, icon: Icon, iconColor, headerRight, ariaLabel, zIndex, children, }: SlideOverProps): import("react").JSX.Element;
|
|
46
|
+
export declare function SlideOver({ open, onClose, side, size, title, icon: Icon, iconColor, headerRight, ariaLabel, zIndex, children, }: SlideOverProps): import("react/jsx-runtime").JSX.Element;
|
|
47
47
|
export { LG as SLIDEOVER_LG };
|
|
48
48
|
//# sourceMappingURL=SlideOver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlideOver.d.ts","sourceRoot":"","sources":["../../src/product/SlideOver.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIzD,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEhD,6EAA6E;AAC7E,QAAA,MAAM,EAAE,OAAO,CAAA;AAmBf,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,sDAAsD;IACtD,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,EACP,IAAc,EACd,IAAU,EACV,KAAK,EACL,IAAI,EAAE,IAAI,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAa,EACb,QAAQ,GACT,EAAE,cAAc
|
|
1
|
+
{"version":3,"file":"SlideOver.d.ts","sourceRoot":"","sources":["../../src/product/SlideOver.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIzD,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEhD,6EAA6E;AAC7E,QAAA,MAAM,EAAE,OAAO,CAAA;AAmBf,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,sDAAsD;IACtD,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,EACP,IAAc,EACd,IAAU,EACV,KAAK,EACL,IAAI,EAAE,IAAI,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAa,EACb,QAAQ,GACT,EAAE,cAAc,2CAgHhB;AAED,OAAO,EAAE,EAAE,IAAI,YAAY,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusTag.d.ts","sourceRoot":"","sources":["../../src/product/StatusTag.tsx"],"names":[],"mappings":"AAyCA,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"StatusTag.d.ts","sourceRoot":"","sources":["../../src/product/StatusTag.tsx"],"names":[],"mappings":"AAyCA,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,2CAOxD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function ThemeToggle(): import("react").JSX.Element;
|
|
1
|
+
export declare function ThemeToggle(): import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=ThemeToggle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../src/product/ThemeToggle.tsx"],"names":[],"mappings":"AAYA,wBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../src/product/ThemeToggle.tsx"],"names":[],"mappings":"AAYA,wBAAgB,WAAW,4CAY1B"}
|
package/types/product/Toast.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ type ToastApi = {
|
|
|
27
27
|
};
|
|
28
28
|
export declare function ToastProvider({ children }: {
|
|
29
29
|
children: ReactNode;
|
|
30
|
-
}): import("react").JSX.Element;
|
|
30
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
31
31
|
export declare function useToast(): ToastApi;
|
|
32
32
|
export {};
|
|
33
33
|
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/product/Toast.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,OAAO,EAAuE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK3G,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAID,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACpD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnD,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B,CAAA;AAyED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/product/Toast.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,OAAO,EAAuE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK3G,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAID,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACpD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnD,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B,CAAA;AAyED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAkDlE;AAED,wBAAgB,QAAQ,IAAI,QAAQ,CAInC"}
|
package/types/product/index.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ export { SERIES, colorForIndex, utilColor, Sparkline as MetricSparkline, MiniBar
|
|
|
3
3
|
export { Donut as DonutRing, type DonutSegment } from './Donut';
|
|
4
4
|
export { ComboBox } from './ComboBox';
|
|
5
5
|
export * from './combobox/filter';
|
|
6
|
+
export * from './AppHeader';
|
|
7
|
+
export * from './BrandMark';
|
|
8
|
+
export * from './OrgSwitcher';
|
|
9
|
+
export * from './scope';
|
|
6
10
|
export * from './DataTable';
|
|
7
11
|
export * from './EmptyState';
|
|
8
12
|
export * from './FadeIn';
|
|
@@ -19,6 +23,4 @@ export * from './StatusTag';
|
|
|
19
23
|
export * from './ThemeToggle';
|
|
20
24
|
export * from './Toast';
|
|
21
25
|
export * from './color';
|
|
22
|
-
export * from './usage';
|
|
23
|
-
export * from './social';
|
|
24
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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;
|
|
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;AAIjC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AAGvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* orgScope — the active-organization contract every Hanzo surface shares
|
|
3
|
+
* (hoisted from the console; see hanzoai/ui#36).
|
|
4
|
+
*
|
|
5
|
+
* Brand identity (which IAM you log into, the wordmark + logo) is fixed per
|
|
6
|
+
* host; the DATA scope — which org's identity, secrets and resources the app
|
|
7
|
+
* acts on — is orthogonal. This module owns only that switch. Every
|
|
8
|
+
* tenant-scoped call reads `currentOrg()` and stamps it as `X-Org-Id`.
|
|
9
|
+
*
|
|
10
|
+
* Two-level model: the org VALUE (which org) and the SELECTION (has one been
|
|
11
|
+
* chosen yet) are orthogonal. A fresh login is org-LESS: `hasSelectedOrg()` is
|
|
12
|
+
* false so the host can show its org picker even for a one-org user. Entering
|
|
13
|
+
* (`enterOrg`) sets value + flag and navigates home; leaving (`leaveOrg`)
|
|
14
|
+
* clears the flag back to the picker; the in-shell quick switch (`switchOrg`)
|
|
15
|
+
* persists and reloads so every module refetches under the new `X-Org-Id`.
|
|
16
|
+
*
|
|
17
|
+
* Host-agnostic: storage + navigation are injected (browser defaults), so the
|
|
18
|
+
* same contract runs in Next, Vite, Svelte or a test.
|
|
19
|
+
*/
|
|
20
|
+
export type Org = {
|
|
21
|
+
name: string;
|
|
22
|
+
displayName?: string;
|
|
23
|
+
logo?: string;
|
|
24
|
+
};
|
|
25
|
+
export type OrgScopeConfig = {
|
|
26
|
+
/** The brand's own org — the default scope (e.g. `config.iamOrgName`). */
|
|
27
|
+
brandOrg: string;
|
|
28
|
+
/** Storage key namespace — ONE per surface. Default `'hanzo.org'`. */
|
|
29
|
+
key?: string;
|
|
30
|
+
/** Storage — defaults to `window.localStorage`, null-safe on SSR/blocked. */
|
|
31
|
+
storage?: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;
|
|
32
|
+
/** Navigate to a path (enter/leave land on home). Default `location.assign`. */
|
|
33
|
+
navigate?: (path: string) => void;
|
|
34
|
+
/** Hard reload (quick-switch refetches everything). Default `location.reload`. */
|
|
35
|
+
reload?: () => void;
|
|
36
|
+
};
|
|
37
|
+
export type OrgScope = {
|
|
38
|
+
/** The org the surface is currently scoped to (default: the brand org). */
|
|
39
|
+
currentOrg(): string;
|
|
40
|
+
/** Switch the active scope. Passing the brand org clears the override. */
|
|
41
|
+
setCurrentOrg(org: string): void;
|
|
42
|
+
/** True when scoped to a non-default (switched) org. */
|
|
43
|
+
isScopedAway(): boolean;
|
|
44
|
+
/** True once an org has been explicitly ENTERED (picker → shell). */
|
|
45
|
+
hasSelectedOrg(): boolean;
|
|
46
|
+
/** Enter an org from the picker: scope + select + navigate home. */
|
|
47
|
+
enterOrg(org: string): void;
|
|
48
|
+
/** Leave the org (back to the picker): de-select + reset + navigate home. */
|
|
49
|
+
leaveOrg(): void;
|
|
50
|
+
/** In-shell quick switch: persist + keep selection + reload. Same org: no-op. */
|
|
51
|
+
switchOrg(org: string): void;
|
|
52
|
+
};
|
|
53
|
+
export declare function orgScope(config: OrgScopeConfig): OrgScope;
|
|
54
|
+
/** Case-insensitive filter over org name + display name (the switcher search). */
|
|
55
|
+
export declare function filterOrgs<T extends Org>(orgs: T[], query: string): T[];
|
|
56
|
+
//# sourceMappingURL=scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/product/scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,GAAG,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC,CAAA;IAC7D,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,2EAA2E;IAC3E,UAAU,IAAI,MAAM,CAAA;IACpB,0EAA0E;IAC1E,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,wDAAwD;IACxD,YAAY,IAAI,OAAO,CAAA;IACvB,qEAAqE;IACrE,cAAc,IAAI,OAAO,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,6EAA6E;IAC7E,QAAQ,IAAI,IAAI,CAAA;IAChB,iFAAiF;IACjF,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA;AAWD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAoDzD;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAMvE"}
|
package/types/usage.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAUA,cAAc,yBAAyB,CAAA"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* CampaignCard — one marketing campaign (name, channel, lifecycle, budget/spend
|
|
5
|
-
* bar). Pure: all data via props. Reuses the shared StatusTag for the lifecycle
|
|
6
|
-
* pill (one status vocabulary). Extracted from Hanzo Social.
|
|
7
|
-
*/
|
|
8
|
-
import { Card, Text, XStack, YStack } from '@hanzo/gui'
|
|
9
|
-
import { StatusTag } from '../StatusTag'
|
|
10
|
-
|
|
11
|
-
export type Campaign = {
|
|
12
|
-
id: string
|
|
13
|
-
name: string
|
|
14
|
-
channel: string
|
|
15
|
-
status: string
|
|
16
|
-
objective?: string
|
|
17
|
-
/** minor units (cents) */
|
|
18
|
-
budget: number
|
|
19
|
-
spend: number
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const money = (cents: number) => `$${Math.round((cents || 0) / 100).toLocaleString()}`
|
|
23
|
-
|
|
24
|
-
export function CampaignCard({ campaign }: { campaign: Campaign }) {
|
|
25
|
-
const pct =
|
|
26
|
-
campaign.budget > 0 ? Math.min(100, (campaign.spend / campaign.budget) * 100) : 0
|
|
27
|
-
return (
|
|
28
|
-
<Card p="$4" gap="$3" borderWidth={1} borderColor="$borderColor" width="100%">
|
|
29
|
-
<XStack items="flex-start" justify="space-between" gap="$2">
|
|
30
|
-
<YStack gap="$1">
|
|
31
|
-
<Text fontSize="$4" fontWeight="700">
|
|
32
|
-
{campaign.name}
|
|
33
|
-
</Text>
|
|
34
|
-
<Text fontSize="$2" color="$color11">
|
|
35
|
-
{campaign.channel}
|
|
36
|
-
</Text>
|
|
37
|
-
</YStack>
|
|
38
|
-
<StatusTag status={campaign.status} />
|
|
39
|
-
</XStack>
|
|
40
|
-
|
|
41
|
-
{campaign.objective ? (
|
|
42
|
-
<Text fontSize="$2" color="$color11">
|
|
43
|
-
{campaign.objective}
|
|
44
|
-
</Text>
|
|
45
|
-
) : null}
|
|
46
|
-
|
|
47
|
-
<YStack gap="$1.5">
|
|
48
|
-
<XStack justify="space-between">
|
|
49
|
-
<Text fontSize="$1" color="$color11">
|
|
50
|
-
{money(campaign.spend)} spent
|
|
51
|
-
</Text>
|
|
52
|
-
<Text fontSize="$1" color="$color11">
|
|
53
|
-
{money(campaign.budget)} budget
|
|
54
|
-
</Text>
|
|
55
|
-
</XStack>
|
|
56
|
-
<YStack height={6} rounded="$2" bg="$color3" overflow="hidden">
|
|
57
|
-
<YStack height={6} rounded="$2" bg="$color9" width={`${pct}%` as never} />
|
|
58
|
-
</YStack>
|
|
59
|
-
</YStack>
|
|
60
|
-
</Card>
|
|
61
|
-
)
|
|
62
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* ChannelBadge — the ONE way a social network is marked (brand color + glyph +
|
|
5
|
-
* optional label), on @hanzo/gui primitives so it renders on web, native, and
|
|
6
|
-
* desktop. Data-free / host-agnostic. Extracted from Hanzo Social (social.hanzo.ai).
|
|
7
|
-
*/
|
|
8
|
-
import { Text, XStack, YStack } from '@hanzo/gui'
|
|
9
|
-
|
|
10
|
-
export type Channel =
|
|
11
|
-
| 'x'
|
|
12
|
-
| 'facebook'
|
|
13
|
-
| 'instagram'
|
|
14
|
-
| 'linkedin'
|
|
15
|
-
| 'tiktok'
|
|
16
|
-
| 'youtube'
|
|
17
|
-
| 'threads'
|
|
18
|
-
|
|
19
|
-
const META: Record<Channel, { label: string; bg: string; fg: string; mark: string }> = {
|
|
20
|
-
x: { label: 'X', bg: '#0f0f12', fg: '#e6e6ea', mark: '𝕏' },
|
|
21
|
-
facebook: { label: 'Facebook', bg: '#1877f2', fg: '#ffffff', mark: 'f' },
|
|
22
|
-
instagram: { label: 'Instagram', bg: '#e1306c', fg: '#ffffff', mark: 'IG' },
|
|
23
|
-
linkedin: { label: 'LinkedIn', bg: '#0a66c2', fg: '#ffffff', mark: 'in' },
|
|
24
|
-
tiktok: { label: 'TikTok', bg: '#111114', fg: '#25f4ee', mark: 'TT' },
|
|
25
|
-
youtube: { label: 'YouTube', bg: '#ff0000', fg: '#ffffff', mark: '▶' },
|
|
26
|
-
threads: { label: 'Threads', bg: '#111114', fg: '#e6e6ea', mark: '@' },
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export function ChannelBadge({
|
|
30
|
-
channel,
|
|
31
|
-
showLabel = false,
|
|
32
|
-
size = 22,
|
|
33
|
-
}: {
|
|
34
|
-
channel: Channel
|
|
35
|
-
showLabel?: boolean
|
|
36
|
-
size?: number
|
|
37
|
-
}) {
|
|
38
|
-
const m = META[channel] ?? META.x
|
|
39
|
-
return (
|
|
40
|
-
<XStack items="center" gap="$2">
|
|
41
|
-
<YStack
|
|
42
|
-
width={size}
|
|
43
|
-
height={size}
|
|
44
|
-
items="center"
|
|
45
|
-
justify="center"
|
|
46
|
-
rounded="$2"
|
|
47
|
-
bg={m.bg as never}
|
|
48
|
-
>
|
|
49
|
-
<Text fontSize="$1" fontWeight="800" color={m.fg as never}>
|
|
50
|
-
{m.mark}
|
|
51
|
-
</Text>
|
|
52
|
-
</YStack>
|
|
53
|
-
{showLabel ? (
|
|
54
|
-
<Text fontSize="$3" color="$color12">
|
|
55
|
-
{m.label}
|
|
56
|
-
</Text>
|
|
57
|
-
) : null}
|
|
58
|
-
</XStack>
|
|
59
|
-
)
|
|
60
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* PostCard — one social post: channel, lifecycle, body, schedule time, a media
|
|
5
|
-
* count, and injected edit/delete affordances. Pure (data + handlers via props);
|
|
6
|
-
* composes ChannelBadge + the shared StatusTag. Extracted from Hanzo Social.
|
|
7
|
-
*/
|
|
8
|
-
import { Card, Text, XStack, YStack, Button } from '@hanzo/gui'
|
|
9
|
-
import { Pencil, Trash2 } from '@hanzogui/lucide-icons-2'
|
|
10
|
-
import { StatusTag } from '../StatusTag'
|
|
11
|
-
import { ChannelBadge, type Channel } from './ChannelBadge'
|
|
12
|
-
|
|
13
|
-
export type Post = {
|
|
14
|
-
id: string
|
|
15
|
-
content: string
|
|
16
|
-
channel: Channel
|
|
17
|
-
status: string
|
|
18
|
-
/** unix seconds; 0/undefined = not scheduled */
|
|
19
|
-
scheduleAt?: number
|
|
20
|
-
media?: string[]
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const fmt = (unix?: number) =>
|
|
24
|
-
unix
|
|
25
|
-
? new Date(unix * 1000).toLocaleString(undefined, {
|
|
26
|
-
month: 'short',
|
|
27
|
-
day: 'numeric',
|
|
28
|
-
hour: '2-digit',
|
|
29
|
-
minute: '2-digit',
|
|
30
|
-
})
|
|
31
|
-
: ''
|
|
32
|
-
|
|
33
|
-
export function PostCard({
|
|
34
|
-
post,
|
|
35
|
-
onEdit,
|
|
36
|
-
onDelete,
|
|
37
|
-
}: {
|
|
38
|
-
post: Post
|
|
39
|
-
onEdit?: (p: Post) => void
|
|
40
|
-
onDelete?: (p: Post) => void
|
|
41
|
-
}) {
|
|
42
|
-
const mediaCount = post.media?.length ?? 0
|
|
43
|
-
return (
|
|
44
|
-
<Card p="$3" gap="$2.5" borderWidth={1} borderColor="$borderColor" width="100%">
|
|
45
|
-
<XStack items="center" justify="space-between" gap="$2">
|
|
46
|
-
<XStack items="center" gap="$2">
|
|
47
|
-
<ChannelBadge channel={post.channel} />
|
|
48
|
-
<StatusTag status={post.status} />
|
|
49
|
-
</XStack>
|
|
50
|
-
<XStack gap="$1">
|
|
51
|
-
{onEdit ? (
|
|
52
|
-
<Button size="$2" chromeless icon={<Pencil size={15} />} onPress={() => onEdit(post)} />
|
|
53
|
-
) : null}
|
|
54
|
-
{onDelete ? (
|
|
55
|
-
<Button size="$2" chromeless icon={<Trash2 size={15} />} onPress={() => onDelete(post)} />
|
|
56
|
-
) : null}
|
|
57
|
-
</XStack>
|
|
58
|
-
</XStack>
|
|
59
|
-
|
|
60
|
-
<Text fontSize="$3" color="$color12">
|
|
61
|
-
{post.content}
|
|
62
|
-
</Text>
|
|
63
|
-
|
|
64
|
-
<XStack items="center" justify="space-between" gap="$2">
|
|
65
|
-
{post.scheduleAt ? (
|
|
66
|
-
<Text fontSize="$1" color="$color11">
|
|
67
|
-
{fmt(post.scheduleAt)}
|
|
68
|
-
</Text>
|
|
69
|
-
) : (
|
|
70
|
-
<YStack />
|
|
71
|
-
)}
|
|
72
|
-
{mediaCount ? (
|
|
73
|
-
<Text fontSize="$1" color="$color10">
|
|
74
|
-
{mediaCount} media
|
|
75
|
-
</Text>
|
|
76
|
-
) : null}
|
|
77
|
-
</XStack>
|
|
78
|
-
</Card>
|
|
79
|
-
)
|
|
80
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// @hanzo/ui/product/social — pure, host-agnostic social-media components
|
|
2
|
-
// extracted from Hanzo Social (social.hanzo.ai). Data + handlers injected via
|
|
3
|
-
// props; built only on @hanzo/gui primitives + the shared StatusTag.
|
|
4
|
-
export * from './ChannelBadge'
|
|
5
|
-
export * from './CampaignCard'
|
|
6
|
-
export * from './PostCard'
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Usage dashboard — the ONE shared AI-usage screen every Hanzo app (console,
|
|
5
|
-
* desktop, app, chat) renders: a summary header of totals (spend / tokens /
|
|
6
|
-
* requests) as `Metric` tiles, above a responsive grid of `UsageProviderCard`s.
|
|
7
|
-
*
|
|
8
|
-
* Presentational + honest: totals are pre-summed by the caller and formatted here
|
|
9
|
-
* (an absent total is an em-dash, never fabricated); the grid simply lays out the
|
|
10
|
-
* providers it is given. @hanzo/gui primitives only — web + native + desktop.
|
|
11
|
-
*/
|
|
12
|
-
import { XStack, YStack } from '@hanzo/gui'
|
|
13
|
-
import { Activity, Coins, DollarSign } from '@hanzogui/lucide-icons-2'
|
|
14
|
-
|
|
15
|
-
import { MetricCard } from '../Metric'
|
|
16
|
-
import { UsageProviderCard, type UsageProviderCardProps, formatUsageCount, formatUsageCurrency } from './UsageProviderCard'
|
|
17
|
-
|
|
18
|
-
export function UsageDashboard({
|
|
19
|
-
providers,
|
|
20
|
-
totals,
|
|
21
|
-
}: {
|
|
22
|
-
providers: UsageProviderCardProps[]
|
|
23
|
-
totals?: { spendUSD?: number; tokens?: number; requests?: number }
|
|
24
|
-
}) {
|
|
25
|
-
return (
|
|
26
|
-
<YStack gap="$4">
|
|
27
|
-
{totals ? (
|
|
28
|
-
<XStack gap="$3" flexWrap="wrap">
|
|
29
|
-
<MetricCard
|
|
30
|
-
icon={<DollarSign size={16} color="$color11" />}
|
|
31
|
-
label="Total spend"
|
|
32
|
-
value={totals.spendUSD != null ? formatUsageCurrency(totals.spendUSD, 'USD') : '—'}
|
|
33
|
-
/>
|
|
34
|
-
<MetricCard
|
|
35
|
-
icon={<Coins size={16} color="$color11" />}
|
|
36
|
-
label="Tokens"
|
|
37
|
-
value={totals.tokens != null ? formatUsageCount(totals.tokens) : '—'}
|
|
38
|
-
/>
|
|
39
|
-
<MetricCard
|
|
40
|
-
icon={<Activity size={16} color="$color11" />}
|
|
41
|
-
label="Requests"
|
|
42
|
-
value={totals.requests != null ? formatUsageCount(totals.requests) : '—'}
|
|
43
|
-
/>
|
|
44
|
-
</XStack>
|
|
45
|
-
) : null}
|
|
46
|
-
|
|
47
|
-
<XStack gap="$3" flexWrap="wrap">
|
|
48
|
-
{providers.map((p) => (
|
|
49
|
-
<UsageProviderCard key={p.name} {...p} />
|
|
50
|
-
))}
|
|
51
|
-
</XStack>
|
|
52
|
-
</YStack>
|
|
53
|
-
)
|
|
54
|
-
}
|