@hanzo/ui 8.0.7 → 8.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ThemeToggleNext-7727UR5W.js +4 -0
- package/dist/ThemeToggleNext-7727UR5W.js.map +1 -0
- package/dist/ThemeToggleNext-ICB5KL5J.cjs +19 -0
- package/dist/ThemeToggleNext-ICB5KL5J.cjs.map +1 -0
- package/dist/billing.cjs +15 -0
- package/dist/billing.cjs.map +1 -0
- package/{types → dist}/billing.d.ts +0 -1
- package/dist/billing.js +4 -0
- package/dist/billing.js.map +1 -0
- package/dist/canvas.cjs +15 -0
- package/dist/canvas.cjs.map +1 -0
- package/dist/canvas.d.ts +1 -0
- package/dist/canvas.js +4 -0
- package/dist/canvas.js.map +1 -0
- package/{types → dist}/cd/layout.d.ts +0 -1
- package/{types → dist}/cd/status.d.ts +0 -1
- package/{types → dist}/cd/time.d.ts +0 -1
- package/{types → dist}/cd/types.d.ts +0 -1
- package/dist/chunk-42CU5GSF.js +98 -0
- package/dist/chunk-42CU5GSF.js.map +1 -0
- package/dist/chunk-M2ILMK44.cjs +2104 -0
- package/dist/chunk-M2ILMK44.cjs.map +1 -0
- package/dist/chunk-YBXVUV7P.cjs +103 -0
- package/dist/chunk-YBXVUV7P.cjs.map +1 -0
- package/dist/chunk-YSURJUOA.js +2035 -0
- package/dist/chunk-YSURJUOA.js.map +1 -0
- package/dist/dashboard.cjs +15 -0
- package/dist/dashboard.cjs.map +1 -0
- package/dist/dashboard.d.ts +1 -0
- package/dist/dashboard.js +4 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/data.cjs +15 -0
- package/dist/data.cjs.map +1 -0
- package/dist/data.d.ts +1 -0
- package/dist/data.js +4 -0
- package/dist/data.js.map +1 -0
- package/dist/gitops.cjs +15 -0
- package/dist/gitops.cjs.map +1 -0
- package/dist/gitops.d.ts +1 -0
- package/dist/gitops.js +4 -0
- package/dist/gitops.js.map +1 -0
- package/dist/index.cjs +299 -0
- package/dist/index.cjs.map +1 -0
- package/{types → dist}/index.d.ts +0 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/network.cjs +15 -0
- package/dist/network.cjs.map +1 -0
- package/{types → dist}/network.d.ts +0 -1
- package/dist/network.js +4 -0
- package/dist/network.js.map +1 -0
- package/dist/oss/blueprint.d.ts +37 -0
- package/dist/oss/catalog.d.ts +67 -0
- package/dist/oss.cjs +190 -0
- package/dist/oss.cjs.map +1 -0
- package/dist/oss.d.ts +2 -0
- package/dist/oss.js +180 -0
- package/dist/oss.js.map +1 -0
- package/dist/primitives/bases/data/index.cjs +15 -0
- package/dist/primitives/bases/data/index.cjs.map +1 -0
- package/dist/primitives/bases/data/index.d.ts +1 -0
- package/dist/primitives/bases/data/index.js +4 -0
- package/dist/primitives/bases/data/index.js.map +1 -0
- package/{types → dist}/product/AppHeader.d.ts +0 -1
- package/{types → dist}/product/BrandMark.d.ts +0 -1
- package/{types → dist}/product/Charts.d.ts +0 -1
- package/{types → dist}/product/ComboBox.d.ts +0 -1
- package/{types → dist}/product/DataTable.d.ts +0 -1
- package/{types → dist}/product/Donut.d.ts +0 -1
- package/{types → dist}/product/EmptyState.d.ts +0 -1
- package/{types → dist}/product/FadeIn.d.ts +0 -1
- package/{types → dist}/product/Field.d.ts +0 -1
- package/{types → dist}/product/HanzoMark.d.ts +0 -1
- package/{types → dist}/product/Metric.d.ts +0 -1
- package/dist/product/OrgMark.d.ts +21 -0
- package/{types → dist}/product/OrgSwitcher.d.ts +8 -2
- package/{types → dist}/product/PageHeader.d.ts +0 -1
- package/{types → dist}/product/PrimaryButton.d.ts +0 -1
- package/{types → dist}/product/ProductIcon.d.ts +0 -1
- package/{types → dist}/product/ProviderLogo.d.ts +0 -1
- package/{types → dist}/product/Reorder.d.ts +0 -1
- package/{types → dist}/product/SelectMenu.d.ts +6 -8
- package/{types → dist}/product/SlideOver.d.ts +0 -1
- package/{types → dist}/product/StatusTag.d.ts +0 -1
- package/{types → dist}/product/ThemeToggle.d.ts +0 -1
- package/{types → dist}/product/ThemeToggleNext.d.ts +0 -1
- package/{types → dist}/product/Toast.d.ts +0 -1
- package/{types → dist}/product/color.d.ts +0 -1
- package/{types → dist}/product/combobox/filter.d.ts +0 -1
- package/dist/product/index.cjs +286 -0
- package/dist/product/index.cjs.map +1 -0
- package/{types → dist}/product/index.d.ts +1 -1
- package/dist/product/index.js +5 -0
- package/dist/product/index.js.map +1 -0
- package/{types → dist}/product/menu/ContextMenu.d.ts +3 -6
- package/dist/product/menu/DropdownMenu.d.ts +29 -0
- package/dist/product/menu/FloatingMenu.d.ts +36 -0
- package/{types → dist}/product/menu/index.d.ts +1 -1
- package/{types → dist}/product/menu/items.d.ts +0 -1
- package/{types → dist}/product/menu/portal-theme.d.ts +0 -1
- package/{types → dist}/product/menu/roving.d.ts +0 -1
- package/{types → dist}/product/scope.d.ts +0 -1
- package/{types → dist}/product/surfaces.data.d.ts +0 -1
- package/dist/telemetry.cjs +15 -0
- package/dist/telemetry.cjs.map +1 -0
- package/dist/telemetry.d.ts +1 -0
- package/dist/telemetry.js +4 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/usage.cjs +15 -0
- package/dist/usage.cjs.map +1 -0
- package/dist/usage.d.ts +1 -0
- package/dist/usage.js +4 -0
- package/dist/usage.js.map +1 -0
- package/dist/wallet.cjs +15 -0
- package/dist/wallet.cjs.map +1 -0
- package/{types → dist}/wallet.d.ts +0 -1
- package/dist/wallet.js +4 -0
- package/dist/wallet.js.map +1 -0
- package/package.json +69 -34
- package/src/billing.ts +0 -9
- package/src/canvas.ts +0 -11
- package/src/cd/layout.ts +0 -184
- package/src/cd/status.ts +0 -158
- package/src/cd/time.ts +0 -52
- package/src/cd/types.ts +0 -318
- package/src/dashboard.ts +0 -8
- package/src/data.ts +0 -12
- package/src/gitops.ts +0 -5
- package/src/gui-env.d.ts +0 -27
- package/src/index.ts +0 -22
- package/src/network.ts +0 -11
- package/src/primitives/bases/data/index.ts +0 -13
- package/src/product/AppHeader.tsx +0 -183
- package/src/product/BrandMark.tsx +0 -27
- package/src/product/Charts.tsx +0 -471
- package/src/product/ComboBox.tsx +0 -127
- package/src/product/DataTable.tsx +0 -99
- package/src/product/Donut.tsx +0 -83
- package/src/product/EmptyState.tsx +0 -129
- package/src/product/FadeIn.tsx +0 -38
- package/src/product/Field.tsx +0 -160
- package/src/product/HanzoMark.tsx +0 -31
- package/src/product/Metric.tsx +0 -253
- package/src/product/OrgSwitcher.tsx +0 -332
- package/src/product/PageHeader.tsx +0 -31
- package/src/product/PrimaryButton.tsx +0 -17
- package/src/product/ProductIcon.tsx +0 -61
- package/src/product/ProviderLogo.tsx +0 -137
- package/src/product/Reorder.test.ts +0 -41
- package/src/product/Reorder.tsx +0 -110
- package/src/product/SelectMenu.tsx +0 -80
- package/src/product/SlideOver.tsx +0 -197
- package/src/product/StatusTag.tsx +0 -49
- package/src/product/ThemeToggle.tsx +0 -135
- package/src/product/ThemeToggleNext.tsx +0 -27
- package/src/product/Toast.tsx +0 -166
- package/src/product/color.ts +0 -17
- package/src/product/combobox/filter.test.ts +0 -51
- package/src/product/combobox/filter.ts +0 -39
- package/src/product/index.ts +0 -76
- package/src/product/menu/ContextMenu.tsx +0 -114
- package/src/product/menu/DropdownMenu.tsx +0 -76
- package/src/product/menu/index.ts +0 -15
- package/src/product/menu/items.tsx +0 -230
- package/src/product/menu/portal-theme.tsx +0 -33
- package/src/product/menu/roving.ts +0 -34
- package/src/product/scope.test.ts +0 -92
- package/src/product/scope.ts +0 -123
- package/src/product/surfaces.data.ts +0 -42
- package/src/usage.ts +0 -8
- package/src/wallet.ts +0 -11
- package/types/billing.d.ts.map +0 -1
- package/types/canvas.d.ts +0 -2
- package/types/canvas.d.ts.map +0 -1
- package/types/cd/layout.d.ts.map +0 -1
- package/types/cd/status.d.ts.map +0 -1
- package/types/cd/time.d.ts.map +0 -1
- package/types/cd/types.d.ts.map +0 -1
- package/types/dashboard.d.ts +0 -2
- package/types/dashboard.d.ts.map +0 -1
- package/types/data.d.ts +0 -2
- package/types/data.d.ts.map +0 -1
- package/types/gitops.d.ts +0 -2
- package/types/gitops.d.ts.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types/network.d.ts.map +0 -1
- package/types/primitives/bases/data/index.d.ts +0 -2
- package/types/primitives/bases/data/index.d.ts.map +0 -1
- package/types/product/AppHeader.d.ts.map +0 -1
- package/types/product/BrandMark.d.ts.map +0 -1
- package/types/product/Charts.d.ts.map +0 -1
- package/types/product/ComboBox.d.ts.map +0 -1
- package/types/product/DataTable.d.ts.map +0 -1
- package/types/product/Donut.d.ts.map +0 -1
- package/types/product/EmptyState.d.ts.map +0 -1
- package/types/product/FadeIn.d.ts.map +0 -1
- package/types/product/Field.d.ts.map +0 -1
- package/types/product/HanzoMark.d.ts.map +0 -1
- package/types/product/Metric.d.ts.map +0 -1
- package/types/product/OrgSwitcher.d.ts.map +0 -1
- package/types/product/PageHeader.d.ts.map +0 -1
- package/types/product/PrimaryButton.d.ts.map +0 -1
- package/types/product/ProductIcon.d.ts.map +0 -1
- package/types/product/ProviderLogo.d.ts.map +0 -1
- package/types/product/Reorder.d.ts.map +0 -1
- package/types/product/SelectMenu.d.ts.map +0 -1
- package/types/product/SlideOver.d.ts.map +0 -1
- package/types/product/StatusTag.d.ts.map +0 -1
- package/types/product/ThemeToggle.d.ts.map +0 -1
- package/types/product/ThemeToggleNext.d.ts.map +0 -1
- package/types/product/Toast.d.ts.map +0 -1
- package/types/product/color.d.ts.map +0 -1
- package/types/product/combobox/filter.d.ts.map +0 -1
- package/types/product/index.d.ts.map +0 -1
- package/types/product/menu/ContextMenu.d.ts.map +0 -1
- package/types/product/menu/DropdownMenu.d.ts +0 -34
- package/types/product/menu/DropdownMenu.d.ts.map +0 -1
- package/types/product/menu/index.d.ts.map +0 -1
- package/types/product/menu/items.d.ts.map +0 -1
- package/types/product/menu/portal-theme.d.ts.map +0 -1
- package/types/product/menu/roving.d.ts.map +0 -1
- package/types/product/scope.d.ts.map +0 -1
- package/types/product/surfaces.data.d.ts.map +0 -1
- package/types/usage.d.ts +0 -2
- package/types/usage.d.ts.map +0 -1
- package/types/wallet.d.ts.map +0 -1
- /package/{src → dist}/styles/hanzo-motion.css +0 -0
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* The ONE menu-item spec — every menu across the fleet renders through these
|
|
5
|
-
* presentational primitives, so DropdownMenu, ContextMenu, SelectMenu and ComboBox
|
|
6
|
-
* are pixel-identical. Geometry is literal px on a strict 8-grid (never random);
|
|
7
|
-
* colour is theme-adaptive tokens ($color2/$color11/$color12/$borderColor) so light
|
|
8
|
-
* and dark both work, with the single purple accent supplied by the brand CSS vars.
|
|
9
|
-
*
|
|
10
|
-
* Style props use the @hanzo/gui config shorthands (bg/items/justify/px/py/p/mx/my/
|
|
11
|
-
* minW/maxH/rounded/select/shrink) — the config omits the longhand aliases.
|
|
12
|
-
*
|
|
13
|
-
* Panel — bg $color2 (#111 dark), hairline border, radius 12, inner pad 4, subtle
|
|
14
|
-
* border+ambient elevation.
|
|
15
|
-
* Item — height 30 (28–32 band), px 8, gap 8, radius 7; icon in a fixed 16px slot
|
|
16
|
-
* on the left; label 13px $color12; right affordance (shortcut / check /
|
|
17
|
-
* chevron) right-aligned. States: hover/active/focus → accent-soft, focus
|
|
18
|
-
* visible; selected → check + purple; disabled → muted, no hover.
|
|
19
|
-
* Separator — 1px hairline, 4px vertical margin.
|
|
20
|
-
* Label — 11px uppercase muted section header, px 8.
|
|
21
|
-
*/
|
|
22
|
-
import type { ReactNode, KeyboardEvent } from 'react'
|
|
23
|
-
import { Text, XStack, YStack } from '@hanzo/gui'
|
|
24
|
-
import { Check, ChevronRight } from '@hanzogui/lucide-icons-2'
|
|
25
|
-
|
|
26
|
-
// ── Geometry — literal px, 8-grid ──────────────────────────────────────────────
|
|
27
|
-
const ITEM_MIN_HEIGHT = 30
|
|
28
|
-
const ITEM_RADIUS = 7
|
|
29
|
-
const ITEM_PX = 8
|
|
30
|
-
const ITEM_GAP = 8
|
|
31
|
-
const ICON_SLOT = 16
|
|
32
|
-
export const PANEL_RADIUS = 12
|
|
33
|
-
export const PANEL_PAD = 4
|
|
34
|
-
const PANEL_GAP = 2
|
|
35
|
-
const SEP_MARGIN = 4
|
|
36
|
-
const FONT_LABEL = 13
|
|
37
|
-
const FONT_MUTED = 11
|
|
38
|
-
const FONT_SHORTCUT = 12
|
|
39
|
-
|
|
40
|
-
// ── Colour — brand purple accent via CSS vars (fallbacks keep it correct even when
|
|
41
|
-
// @hanzo/brand is not loaded, e.g. a bare Vite/Tauri host); everything else uses
|
|
42
|
-
// theme-adaptive Tamagui tokens. ──────────────────────────────────────────────
|
|
43
|
-
const ACCENT = 'var(--hanzo-accent, #8b5cf6)'
|
|
44
|
-
const ACCENT_SOFT = 'var(--hanzo-accent-soft, rgba(139,92,246,0.16))'
|
|
45
|
-
const DANGER = 'var(--hanzo-danger, #ef4444)'
|
|
46
|
-
|
|
47
|
-
// ── Declarative item model ──────────────────────────────────────────────────────
|
|
48
|
-
export type MenuItemSpec =
|
|
49
|
-
| {
|
|
50
|
-
type?: 'item'
|
|
51
|
-
/** Stable key. */
|
|
52
|
-
key: string
|
|
53
|
-
label: string
|
|
54
|
-
/** Leading Lucide icon (16px, unfilled) in the fixed left slot. */
|
|
55
|
-
icon?: ReactNode
|
|
56
|
-
/** Second muted line under the label (e.g. an id or hint). */
|
|
57
|
-
description?: string
|
|
58
|
-
/** Right-aligned shortcut / hint text (e.g. "⌘K"). */
|
|
59
|
-
shortcut?: string
|
|
60
|
-
/** Renders a right check + purple tint. */
|
|
61
|
-
selected?: boolean
|
|
62
|
-
disabled?: boolean
|
|
63
|
-
/** Danger styling (red label/icon). */
|
|
64
|
-
destructive?: boolean
|
|
65
|
-
/** Renders a right chevron (submenu / drill-in affordance). */
|
|
66
|
-
hasSubmenu?: boolean
|
|
67
|
-
onSelect: () => void
|
|
68
|
-
/** Keep the menu open after selecting (default: close). */
|
|
69
|
-
closeOnSelect?: boolean
|
|
70
|
-
}
|
|
71
|
-
| { type: 'separator'; key?: string }
|
|
72
|
-
| { type: 'label'; key?: string; label: string }
|
|
73
|
-
|
|
74
|
-
// ── Surface ───────────────────────────────────────────────────────────────────
|
|
75
|
-
export function MenuPanel({
|
|
76
|
-
children,
|
|
77
|
-
minWidth = 200,
|
|
78
|
-
maxHeight = 360,
|
|
79
|
-
onKeyDown,
|
|
80
|
-
panelRef,
|
|
81
|
-
...rest
|
|
82
|
-
}: {
|
|
83
|
-
children: ReactNode
|
|
84
|
-
minWidth?: number
|
|
85
|
-
maxHeight?: number
|
|
86
|
-
onKeyDown?: (e: KeyboardEvent) => void
|
|
87
|
-
/** Web DOM node of the panel (for measuring / edge-flip). */
|
|
88
|
-
panelRef?: (node: HTMLElement | null) => void
|
|
89
|
-
[key: string]: unknown
|
|
90
|
-
}) {
|
|
91
|
-
return (
|
|
92
|
-
<YStack
|
|
93
|
-
// Web DOM ref; Gui forwards it to the underlying node. Cast (not @ts-expect-error)
|
|
94
|
-
// so it is env-agnostic — the ref type is strict under the pkg build, loose here.
|
|
95
|
-
ref={panelRef as never}
|
|
96
|
-
role="menu"
|
|
97
|
-
bg="$color2"
|
|
98
|
-
borderColor="$borderColor"
|
|
99
|
-
borderWidth={1}
|
|
100
|
-
rounded={PANEL_RADIUS}
|
|
101
|
-
p={PANEL_PAD}
|
|
102
|
-
gap={PANEL_GAP}
|
|
103
|
-
minW={minWidth}
|
|
104
|
-
maxH={maxHeight}
|
|
105
|
-
overflow="scroll"
|
|
106
|
-
// Subtle border + ambient elevation, minimal shadow.
|
|
107
|
-
shadowColor="rgba(0,0,0,0.45)"
|
|
108
|
-
shadowRadius={20}
|
|
109
|
-
shadowOffset={{ width: 0, height: 10 }}
|
|
110
|
-
onKeyDown={onKeyDown as never}
|
|
111
|
-
{...rest}
|
|
112
|
-
>
|
|
113
|
-
{children}
|
|
114
|
-
</YStack>
|
|
115
|
-
)
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// ── Item — the ONE row ──────────────────────────────────────────────────────────
|
|
119
|
-
export function MenuItemView({
|
|
120
|
-
icon,
|
|
121
|
-
label,
|
|
122
|
-
description,
|
|
123
|
-
shortcut,
|
|
124
|
-
selected = false,
|
|
125
|
-
disabled = false,
|
|
126
|
-
destructive = false,
|
|
127
|
-
hasSubmenu = false,
|
|
128
|
-
onSelect,
|
|
129
|
-
}: Omit<Extract<MenuItemSpec, { type?: 'item' }>, 'key' | 'type' | 'closeOnSelect'>) {
|
|
130
|
-
const press = () => {
|
|
131
|
-
if (!disabled) onSelect()
|
|
132
|
-
}
|
|
133
|
-
const onKeyDown = (e: KeyboardEvent) => {
|
|
134
|
-
if (disabled) return
|
|
135
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
136
|
-
e.preventDefault()
|
|
137
|
-
onSelect()
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const labelColor = destructive ? DANGER : '$color12'
|
|
141
|
-
return (
|
|
142
|
-
<XStack
|
|
143
|
-
role="menuitem"
|
|
144
|
-
tabIndex={disabled ? -1 : 0}
|
|
145
|
-
aria-disabled={disabled || undefined}
|
|
146
|
-
items="center"
|
|
147
|
-
gap={ITEM_GAP}
|
|
148
|
-
px={ITEM_PX}
|
|
149
|
-
minH={ITEM_MIN_HEIGHT}
|
|
150
|
-
rounded={ITEM_RADIUS}
|
|
151
|
-
cursor={disabled ? 'default' : 'pointer'}
|
|
152
|
-
opacity={disabled ? 0.4 : 1}
|
|
153
|
-
select="none"
|
|
154
|
-
style={{ outline: 'none' }}
|
|
155
|
-
hoverStyle={disabled ? {} : { bg: ACCENT_SOFT as never }}
|
|
156
|
-
pressStyle={disabled ? {} : { bg: ACCENT_SOFT as never }}
|
|
157
|
-
focusStyle={disabled ? {} : { bg: ACCENT_SOFT as never }}
|
|
158
|
-
onPress={press}
|
|
159
|
-
onKeyDown={onKeyDown as never}
|
|
160
|
-
>
|
|
161
|
-
<XStack width={ICON_SLOT} height={ICON_SLOT} items="center" justify="center" shrink={0}>
|
|
162
|
-
{icon ? (
|
|
163
|
-
<XStack items="center" justify="center" opacity={destructive ? 1 : 0.9} style={destructive ? { color: DANGER } : undefined}>
|
|
164
|
-
{icon}
|
|
165
|
-
</XStack>
|
|
166
|
-
) : null}
|
|
167
|
-
</XStack>
|
|
168
|
-
|
|
169
|
-
<YStack flex={1} minW={0}>
|
|
170
|
-
<Text fontSize={FONT_LABEL} lineHeight={18} color={labelColor as never} numberOfLines={1}>
|
|
171
|
-
{label}
|
|
172
|
-
</Text>
|
|
173
|
-
{description ? (
|
|
174
|
-
<Text fontSize={FONT_MUTED} lineHeight={14} color="$color11" numberOfLines={1}>
|
|
175
|
-
{description}
|
|
176
|
-
</Text>
|
|
177
|
-
) : null}
|
|
178
|
-
</YStack>
|
|
179
|
-
|
|
180
|
-
{shortcut ? (
|
|
181
|
-
<Text fontSize={FONT_SHORTCUT} color="$color11" shrink={0}>
|
|
182
|
-
{shortcut}
|
|
183
|
-
</Text>
|
|
184
|
-
) : null}
|
|
185
|
-
{selected ? <Check size={14} color={ACCENT} /> : null}
|
|
186
|
-
{hasSubmenu ? <ChevronRight size={14} color="var(--hanzo-muted, currentColor)" opacity={0.6} /> : null}
|
|
187
|
-
</XStack>
|
|
188
|
-
)
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// ── Separator ───────────────────────────────────────────────────────────────────
|
|
192
|
-
export function MenuSeparatorView() {
|
|
193
|
-
return <YStack height={1} bg="$borderColor" my={SEP_MARGIN} mx={SEP_MARGIN} role="separator" />
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// ── Section label ────────────────────────────────────────────────────────────────
|
|
197
|
-
export function MenuLabelView({ children }: { children: ReactNode }) {
|
|
198
|
-
return (
|
|
199
|
-
<Text
|
|
200
|
-
fontSize={FONT_MUTED}
|
|
201
|
-
color="$color11"
|
|
202
|
-
px={ITEM_PX}
|
|
203
|
-
py={SEP_MARGIN}
|
|
204
|
-
textTransform="uppercase"
|
|
205
|
-
letterSpacing={0.4}
|
|
206
|
-
select="none"
|
|
207
|
-
>
|
|
208
|
-
{children}
|
|
209
|
-
</Text>
|
|
210
|
-
)
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// ── The single render path shared by every menu ──────────────────────────────────
|
|
214
|
-
export function renderMenuItems(items: MenuItemSpec[], close?: () => void): ReactNode {
|
|
215
|
-
return items.map((it, i) => {
|
|
216
|
-
if (it.type === 'separator') return <MenuSeparatorView key={it.key ?? `sep-${i}`} />
|
|
217
|
-
if (it.type === 'label') return <MenuLabelView key={it.key ?? `lbl-${i}`}>{it.label}</MenuLabelView>
|
|
218
|
-
const { key, onSelect, closeOnSelect = true, ...rest } = it
|
|
219
|
-
return (
|
|
220
|
-
<MenuItemView
|
|
221
|
-
key={key}
|
|
222
|
-
{...rest}
|
|
223
|
-
onSelect={() => {
|
|
224
|
-
onSelect()
|
|
225
|
-
if (closeOnSelect) close?.()
|
|
226
|
-
}}
|
|
227
|
-
/>
|
|
228
|
-
)
|
|
229
|
-
})
|
|
230
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* PortalTheme — the ONE fix for "themed content escapes its theme through a portal".
|
|
5
|
-
*
|
|
6
|
-
* @hanzo/gui's `Popover.Content` and `Portal` render their children in a SEPARATE
|
|
7
|
-
* React subtree (a Gorhom-style portal host mounted at the app root), NOT via
|
|
8
|
-
* `ReactDOM.createPortal`. React context therefore does NOT flow from the trigger's
|
|
9
|
-
* location to the host. Under a nested `<Theme name="dark">` the portaled content
|
|
10
|
-
* lands OUTSIDE that theme context and Tamagui throws "Missing theme" (or renders
|
|
11
|
-
* unthemed).
|
|
12
|
-
*
|
|
13
|
-
* The fix is two-part and must stay two-part:
|
|
14
|
-
* 1. At the TRIGGER site (theme context still available) capture the resolved
|
|
15
|
-
* theme name with `useThemeName()`.
|
|
16
|
-
* 2. INSIDE the portaled content re-apply it: `<PortalTheme name={captured}>`.
|
|
17
|
-
*
|
|
18
|
-
* Every portal-backed menu in this package (DropdownMenu, ContextMenu, SelectMenu,
|
|
19
|
-
* ComboBox) uses this so a menu renders identically whether it is opened under the
|
|
20
|
-
* root theme or under any nested `<Theme>`, light or dark.
|
|
21
|
-
*/
|
|
22
|
-
import type { ReactNode } from 'react'
|
|
23
|
-
import { Theme, useThemeName } from '@hanzo/gui'
|
|
24
|
-
|
|
25
|
-
/** Capture the current resolved theme name at the trigger site. Re-exported so the
|
|
26
|
-
* capture + re-apply pair reads from one module. */
|
|
27
|
-
export { useThemeName }
|
|
28
|
-
|
|
29
|
-
export function PortalTheme({ name, children }: { name: string; children: ReactNode }) {
|
|
30
|
-
// `name` is the resolved theme name (e.g. "dark", or a compound "dark_purple").
|
|
31
|
-
// Tamagui's `Theme` accepts the resolved name and reconstructs the context.
|
|
32
|
-
return <Theme name={name as never}>{children}</Theme>
|
|
33
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Roving keyboard focus for a menu panel — ArrowUp/Down move focus between enabled
|
|
5
|
-
* `[role="menuitem"]` children, Home/End jump to ends, Escape closes. Web/desktop
|
|
6
|
-
* only (guards on `document`); native menus have no pointer-keyboard nav. Shared by
|
|
7
|
-
* DropdownMenu and ContextMenu so navigation is identical.
|
|
8
|
-
*/
|
|
9
|
-
import type { KeyboardEvent } from 'react'
|
|
10
|
-
|
|
11
|
-
export function menuKeyDown(e: KeyboardEvent, onClose?: () => void): void {
|
|
12
|
-
if (e.key === 'Escape') {
|
|
13
|
-
onClose?.()
|
|
14
|
-
return
|
|
15
|
-
}
|
|
16
|
-
if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Home' && e.key !== 'End') return
|
|
17
|
-
if (typeof document === 'undefined') return
|
|
18
|
-
|
|
19
|
-
const panel = e.currentTarget as HTMLElement
|
|
20
|
-
const items = Array.from(
|
|
21
|
-
panel.querySelectorAll<HTMLElement>('[role="menuitem"]:not([aria-disabled="true"])'),
|
|
22
|
-
)
|
|
23
|
-
if (items.length === 0) return
|
|
24
|
-
e.preventDefault()
|
|
25
|
-
|
|
26
|
-
const active = document.activeElement as HTMLElement | null
|
|
27
|
-
const current = active ? items.indexOf(active) : -1
|
|
28
|
-
let next: number
|
|
29
|
-
if (e.key === 'Home') next = 0
|
|
30
|
-
else if (e.key === 'End') next = items.length - 1
|
|
31
|
-
else if (e.key === 'ArrowDown') next = current < 0 ? 0 : (current + 1) % items.length
|
|
32
|
-
else next = current <= 0 ? items.length - 1 : current - 1
|
|
33
|
-
items[next]?.focus()
|
|
34
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
-
|
|
3
|
-
import { filterOrgs, orgScope } from './scope'
|
|
4
|
-
|
|
5
|
-
/** In-memory Storage double. */
|
|
6
|
-
function memory(): Pick<Storage, 'getItem' | 'setItem' | 'removeItem'> {
|
|
7
|
-
const m = new Map<string, string>()
|
|
8
|
-
return {
|
|
9
|
-
getItem: (k) => m.get(k) ?? null,
|
|
10
|
-
setItem: (k, v) => void m.set(k, v),
|
|
11
|
-
removeItem: (k) => void m.delete(k),
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function harness() {
|
|
16
|
-
const calls: string[] = []
|
|
17
|
-
const scope = orgScope({
|
|
18
|
-
brandOrg: 'hanzo',
|
|
19
|
-
storage: memory(),
|
|
20
|
-
navigate: (path) => calls.push(`nav:${path}`),
|
|
21
|
-
reload: () => calls.push('reload'),
|
|
22
|
-
})
|
|
23
|
-
return { scope, calls }
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
describe('orgScope', () => {
|
|
27
|
-
it('defaults to the brand org, un-selected', () => {
|
|
28
|
-
const { scope } = harness()
|
|
29
|
-
expect(scope.currentOrg()).toBe('hanzo')
|
|
30
|
-
expect(scope.isScopedAway()).toBe(false)
|
|
31
|
-
expect(scope.hasSelectedOrg()).toBe(false)
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
it('setCurrentOrg persists; the brand org clears the override', () => {
|
|
35
|
-
const { scope } = harness()
|
|
36
|
-
scope.setCurrentOrg('acme')
|
|
37
|
-
expect(scope.currentOrg()).toBe('acme')
|
|
38
|
-
expect(scope.isScopedAway()).toBe(true)
|
|
39
|
-
scope.setCurrentOrg('hanzo')
|
|
40
|
-
expect(scope.currentOrg()).toBe('hanzo')
|
|
41
|
-
expect(scope.isScopedAway()).toBe(false)
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
it('enterOrg selects + scopes + navigates home', () => {
|
|
45
|
-
const { scope, calls } = harness()
|
|
46
|
-
scope.enterOrg('acme')
|
|
47
|
-
expect(scope.currentOrg()).toBe('acme')
|
|
48
|
-
expect(scope.hasSelectedOrg()).toBe(true)
|
|
49
|
-
expect(calls).toEqual(['nav:/'])
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
it('leaveOrg de-selects, resets to the brand org, navigates home', () => {
|
|
53
|
-
const { scope, calls } = harness()
|
|
54
|
-
scope.enterOrg('acme')
|
|
55
|
-
scope.leaveOrg()
|
|
56
|
-
expect(scope.currentOrg()).toBe('hanzo')
|
|
57
|
-
expect(scope.hasSelectedOrg()).toBe(false)
|
|
58
|
-
expect(calls).toEqual(['nav:/', 'nav:/'])
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
it('switchOrg persists, keeps the selection, reloads; same org is a no-op', () => {
|
|
62
|
-
const { scope, calls } = harness()
|
|
63
|
-
scope.enterOrg('acme')
|
|
64
|
-
scope.switchOrg('zoo')
|
|
65
|
-
expect(scope.currentOrg()).toBe('zoo')
|
|
66
|
-
expect(scope.hasSelectedOrg()).toBe(true)
|
|
67
|
-
expect(calls).toEqual(['nav:/', 'reload'])
|
|
68
|
-
scope.switchOrg('zoo')
|
|
69
|
-
expect(calls).toEqual(['nav:/', 'reload'])
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
it('two scopes with different keys never collide', () => {
|
|
73
|
-
const store = memory()
|
|
74
|
-
const a = orgScope({ brandOrg: 'hanzo', key: 'a', storage: store })
|
|
75
|
-
const b = orgScope({ brandOrg: 'hanzo', key: 'b', storage: store })
|
|
76
|
-
a.setCurrentOrg('acme')
|
|
77
|
-
expect(b.currentOrg()).toBe('hanzo')
|
|
78
|
-
})
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
describe('filterOrgs', () => {
|
|
82
|
-
const orgs = [
|
|
83
|
-
{ name: 'acme', displayName: 'Acme Corp' },
|
|
84
|
-
{ name: 'zoo', displayName: 'Zoo Labs' },
|
|
85
|
-
]
|
|
86
|
-
it('matches name and displayName, case-insensitive; blank returns all', () => {
|
|
87
|
-
expect(filterOrgs(orgs, '')).toHaveLength(2)
|
|
88
|
-
expect(filterOrgs(orgs, 'ACME')).toEqual([orgs[0]])
|
|
89
|
-
expect(filterOrgs(orgs, 'labs')).toEqual([orgs[1]])
|
|
90
|
-
expect(filterOrgs(orgs, 'nope')).toEqual([])
|
|
91
|
-
})
|
|
92
|
-
})
|
package/src/product/scope.ts
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
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
|
-
|
|
21
|
-
export type Org = { name: string; displayName?: string; logo?: string }
|
|
22
|
-
|
|
23
|
-
export type OrgScopeConfig = {
|
|
24
|
-
/** The brand's own org — the default scope (e.g. `config.iamOrgName`). */
|
|
25
|
-
brandOrg: string
|
|
26
|
-
/** Storage key namespace — ONE per surface. Default `'hanzo.org'`. */
|
|
27
|
-
key?: string
|
|
28
|
-
/** Storage — defaults to `window.localStorage`, null-safe on SSR/blocked. */
|
|
29
|
-
storage?: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>
|
|
30
|
-
/** Navigate to a path (enter/leave land on home). Default `location.assign`. */
|
|
31
|
-
navigate?: (path: string) => void
|
|
32
|
-
/** Hard reload (quick-switch refetches everything). Default `location.reload`. */
|
|
33
|
-
reload?: () => void
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export type OrgScope = {
|
|
37
|
-
/** The org the surface is currently scoped to (default: the brand org). */
|
|
38
|
-
currentOrg(): string
|
|
39
|
-
/** Switch the active scope. Passing the brand org clears the override. */
|
|
40
|
-
setCurrentOrg(org: string): void
|
|
41
|
-
/** True when scoped to a non-default (switched) org. */
|
|
42
|
-
isScopedAway(): boolean
|
|
43
|
-
/** True once an org has been explicitly ENTERED (picker → shell). */
|
|
44
|
-
hasSelectedOrg(): boolean
|
|
45
|
-
/** Enter an org from the picker: scope + select + navigate home. */
|
|
46
|
-
enterOrg(org: string): void
|
|
47
|
-
/** Leave the org (back to the picker): de-select + reset + navigate home. */
|
|
48
|
-
leaveOrg(): void
|
|
49
|
-
/** In-shell quick switch: persist + keep selection + reload. Same org: no-op. */
|
|
50
|
-
switchOrg(org: string): void
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function browserStorage(): Pick<Storage, 'getItem' | 'setItem' | 'removeItem'> | null {
|
|
54
|
-
if (typeof window === 'undefined') return null
|
|
55
|
-
try {
|
|
56
|
-
return window.localStorage
|
|
57
|
-
} catch {
|
|
58
|
-
return null
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function orgScope(config: OrgScopeConfig): OrgScope {
|
|
63
|
-
const key = config.key ?? 'hanzo.org'
|
|
64
|
-
const selectedKey = `${key}.selected`
|
|
65
|
-
const store = () => config.storage ?? browserStorage()
|
|
66
|
-
const read = (k: string): string | null => {
|
|
67
|
-
try {
|
|
68
|
-
return store()?.getItem(k) ?? null
|
|
69
|
-
} catch {
|
|
70
|
-
return null
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const write = (k: string, v: string | null): void => {
|
|
74
|
-
try {
|
|
75
|
-
if (v === null) store()?.removeItem(k)
|
|
76
|
-
else store()?.setItem(k, v)
|
|
77
|
-
} catch {
|
|
78
|
-
// Storage blocked — the scope simply stays at the brand org.
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
const goHome = () => {
|
|
82
|
-
if (config.navigate) return config.navigate('/')
|
|
83
|
-
if (typeof window !== 'undefined') window.location.assign('/')
|
|
84
|
-
}
|
|
85
|
-
const doReload = () => {
|
|
86
|
-
if (config.reload) return config.reload()
|
|
87
|
-
if (typeof window !== 'undefined') window.location.reload()
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const scope: OrgScope = {
|
|
91
|
-
currentOrg: () => read(key) || config.brandOrg,
|
|
92
|
-
setCurrentOrg: (org) => write(key, !org || org === config.brandOrg ? null : org),
|
|
93
|
-
isScopedAway: () => scope.currentOrg() !== config.brandOrg,
|
|
94
|
-
hasSelectedOrg: () => read(selectedKey) === '1',
|
|
95
|
-
enterOrg: (org) => {
|
|
96
|
-
if (!org) return
|
|
97
|
-
scope.setCurrentOrg(org)
|
|
98
|
-
write(selectedKey, '1')
|
|
99
|
-
goHome()
|
|
100
|
-
},
|
|
101
|
-
leaveOrg: () => {
|
|
102
|
-
write(selectedKey, null)
|
|
103
|
-
scope.setCurrentOrg(config.brandOrg)
|
|
104
|
-
goHome()
|
|
105
|
-
},
|
|
106
|
-
switchOrg: (org) => {
|
|
107
|
-
if (!org || org === scope.currentOrg()) return
|
|
108
|
-
scope.setCurrentOrg(org)
|
|
109
|
-
write(selectedKey, '1')
|
|
110
|
-
doReload()
|
|
111
|
-
},
|
|
112
|
-
}
|
|
113
|
-
return scope
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/** Case-insensitive filter over org name + display name (the switcher search). */
|
|
117
|
-
export function filterOrgs<T extends Org>(orgs: T[], query: string): T[] {
|
|
118
|
-
const q = query.trim().toLowerCase()
|
|
119
|
-
if (!q) return orgs
|
|
120
|
-
return orgs.filter(
|
|
121
|
-
(o) => o.name.toLowerCase().includes(q) || (o.displayName ?? '').toLowerCase().includes(q),
|
|
122
|
-
)
|
|
123
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// The ONE canonical list of Hanzo product surfaces the cross-surface app switcher
|
|
2
|
-
// offers — consumed by EVERY surface's launcher so the set never diverges.
|
|
3
|
-
//
|
|
4
|
-
// Framework-agnostic (plain TS, zero imports): React consumers (the @hanzo/ui
|
|
5
|
-
// `AppHeader`, the console `AppLauncher`) import it directly; a surface that
|
|
6
|
-
// cannot resolve THIS package — the Svelte Huly-fork `team` (whose own `@hanzo/ui`
|
|
7
|
-
// is the workbench UI framework, a name clash) and the shadcn-aliased `app` — keeps
|
|
8
|
-
// a byte-identical MIRROR that points back here. Add or reorder a surface HERE and
|
|
9
|
-
// every launcher moves together (mirrors are updated in the same change).
|
|
10
|
-
//
|
|
11
|
-
// `id` is the stable key AND the icon key: each framework maps it to its own glyph
|
|
12
|
-
// (React → lucide, Svelte → SurfaceIcon), so the DATA itself stays glyph-free.
|
|
13
|
-
|
|
14
|
-
export type SurfaceId = 'ai' | 'console' | 'app' | 'chat' | 'bot' | 'team' | 'billing'
|
|
15
|
-
|
|
16
|
-
/** One Hanzo surface the app switcher offers. */
|
|
17
|
-
export type Surface = {
|
|
18
|
-
/** Stable id; also the per-surface icon key. */
|
|
19
|
-
id: SurfaceId
|
|
20
|
-
/** Menu label. */
|
|
21
|
-
label: string
|
|
22
|
-
/** Absolute product URL (opened in a new tab). */
|
|
23
|
-
href: string
|
|
24
|
-
/** The domain, shown as the tile subtitle. */
|
|
25
|
-
hint: string
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** The seven Hanzo surfaces (`console` opens the cloud AI console). */
|
|
29
|
-
export const SURFACES: Surface[] = [
|
|
30
|
-
{ id: 'ai', label: 'Hanzo AI', href: 'https://hanzo.ai', hint: 'hanzo.ai' },
|
|
31
|
-
{ id: 'console', label: 'Console', href: 'https://console.hanzo.ai', hint: 'console.hanzo.ai' },
|
|
32
|
-
{ id: 'app', label: 'App', href: 'https://hanzo.app', hint: 'hanzo.app' },
|
|
33
|
-
{ id: 'chat', label: 'Chat', href: 'https://hanzo.chat', hint: 'hanzo.chat' },
|
|
34
|
-
{ id: 'bot', label: 'Bot', href: 'https://hanzo.bot', hint: 'hanzo.bot' },
|
|
35
|
-
{ id: 'team', label: 'Team', href: 'https://hanzo.team', hint: 'hanzo.team' },
|
|
36
|
-
{ id: 'billing', label: 'Billing', href: 'https://billing.hanzo.ai', hint: 'billing.hanzo.ai' },
|
|
37
|
-
]
|
|
38
|
-
|
|
39
|
-
/** Every surface except `current` — a launcher never links to itself. */
|
|
40
|
-
export function otherSurfaces(current?: SurfaceId): Surface[] {
|
|
41
|
-
return current ? SURFACES.filter((s) => s.id !== current) : SURFACES
|
|
42
|
-
}
|
package/src/usage.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// @hanzo/ui/usage — the shared AI-usage surface (the meter bar → provider card →
|
|
2
|
-
// dashboard progression), re-exported from its home package @hanzo/usage. Thin
|
|
3
|
-
// subpath so every console shows the same quota UI:
|
|
4
|
-
//
|
|
5
|
-
// import { UsageMeter, UsageProviderCard, UsageDashboard } from '@hanzo/ui/usage'
|
|
6
|
-
//
|
|
7
|
-
// Optional peer — only pulled when the subpath is used.
|
|
8
|
-
export * from '@hanzo/usage'
|
package/src/wallet.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// @hanzo/ui/wallet — the ONE wallet surface, re-exported from its home module
|
|
2
|
-
// @hanzo/ui-shadcn/wallet. `WalletMenu` is presentation only (address, PQ
|
|
3
|
-
// identity, selected-network alignment, explorer link, connect/disconnect);
|
|
4
|
-
// custody lives in the injected `WalletAdapter` (desktop wallet, web EIP-1193).
|
|
5
|
-
// Thin subpath so every console imports the same wallet surface:
|
|
6
|
-
//
|
|
7
|
-
// import { WalletMenu, injectedEvmAdapter, walletAvailable, ensureEvmNetwork,
|
|
8
|
-
// shortAddress, type WalletAdapter } from '@hanzo/ui/wallet'
|
|
9
|
-
//
|
|
10
|
-
// Optional peer — only pulled when the subpath is used.
|
|
11
|
-
export * from '@hanzo/ui-shadcn/wallet'
|
package/types/billing.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"AAQA,cAAc,0BAA0B,CAAA"}
|
package/types/canvas.d.ts
DELETED
package/types/canvas.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"AAUA,cAAc,eAAe,CAAA"}
|
package/types/cd/layout.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/cd/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,gEAAgE;IAChE,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AA6CD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,EAAE,EACnB,KAAK,EAAE,UAAU,EAAE,EACnB,IAAI,GAAE,aAAkB,GACvB,WAAW,CA2Eb"}
|
package/types/cd/status.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cd/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEjF,gFAAgF;AAChF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEnF,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,UAAU,CAAA;CACjB;AA6CD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAOxD,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAIpD,CAAA;AAKD,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAExD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAG7D;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAGzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAGjE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,CAGrD;AAED,2EAA2E;AAC3E,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,CAKlE;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,CAK5D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU5D"}
|
package/types/cd/time.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/cd/time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAClC,GAAG,GAAE,MAAmB,GACvB,MAAM,CAmBR;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CASnF;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,EACrC,GAAG,GAAE,MAAmB,GACvB,MAAM,CAER"}
|
package/types/cd/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cd/types.ts"],"names":[],"mappings":"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"}
|
package/types/dashboard.d.ts
DELETED
package/types/dashboard.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAOA,cAAc,kBAAkB,CAAA"}
|
package/types/data.d.ts
DELETED
package/types/data.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAWA,cAAc,aAAa,CAAA"}
|
package/types/gitops.d.ts
DELETED
package/types/gitops.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gitops.d.ts","sourceRoot":"","sources":["../src/gitops.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAA"}
|
package/types/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,WAAW,CAAA;AAKzB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA"}
|
package/types/network.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAUA,cAAc,0BAA0B,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/primitives/bases/data/index.ts"],"names":[],"mappings":"AAYA,cAAc,aAAa,CAAA"}
|