@cloudflare/kumo 2.4.1 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/ai/component-registry.json +34 -4
- package/ai/component-registry.md +176 -3
- package/ai/schemas.ts +1 -0
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts +2 -0
- package/dist/ai/schemas.d.ts.map +1 -1
- package/dist/ai/schemas.js +45 -43
- package/dist/ai/schemas.js.map +1 -1
- package/dist/chunks/{SankeyChart-npoyr1j06svoxsfe.js → SankeyChart-i1m7zv0lys3j0iq6.js} +74 -69
- package/dist/chunks/SankeyChart-i1m7zv0lys3j0iq6.js.map +1 -0
- package/dist/chunks/{dialog-my9fioafdstq50mi.js → dialog-3mpu1i1wssrsz8i6.js} +11 -11
- package/dist/chunks/dialog-3mpu1i1wssrsz8i6.js.map +1 -0
- package/dist/chunks/sidebar-nbdw4rgvuabxp5nj.js +1144 -0
- package/dist/chunks/sidebar-nbdw4rgvuabxp5nj.js.map +1 -0
- package/dist/chunks/{tabs-hice1yy5q2t889z8.js → tabs-ho9t1gkq22jb855l.js} +51 -28
- package/dist/chunks/tabs-ho9t1gkq22jb855l.js.map +1 -0
- package/dist/components/chart.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/flow.js +3 -2
- package/dist/components/flow.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/index.js +5 -5
- package/dist/src/components/chart/EChart.d.ts.map +1 -1
- package/dist/src/components/flow/connectors.d.ts.map +1 -1
- package/dist/src/components/sidebar/sidebar.d.ts +14 -2
- package/dist/src/components/sidebar/sidebar.d.ts.map +1 -1
- package/dist/src/components/tabs/tabs.d.ts.map +1 -1
- package/dist/styles/kumo-binding.css +27 -20
- package/dist/styles/kumo-standalone.css +1 -1
- package/package.json +2 -2
- package/dist/chunks/SankeyChart-npoyr1j06svoxsfe.js.map +0 -1
- package/dist/chunks/dialog-my9fioafdstq50mi.js.map +0 -1
- package/dist/chunks/sidebar-hzio700cg85f7f31.js +0 -1014
- package/dist/chunks/sidebar-hzio700cg85f7f31.js.map +0 -1
- package/dist/chunks/tabs-hice1yy5q2t889z8.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# @cloudflare/kumo
|
|
2
2
|
|
|
3
|
+
## 2.5.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b06e35b: Allow unprefixed Dialog max-width classes to override the default viewport cap at desktop breakpoints.
|
|
8
|
+
|
|
9
|
+
## 2.5.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 7401701: Sidebar: mobile rewrite, smooth collapse transitions, and new props
|
|
14
|
+
|
|
15
|
+
**New features:**
|
|
16
|
+
- `mobileBreakpoint` prop on Provider — configurable viewport width for mobile detection
|
|
17
|
+
- `contentClassName` prop on Sidebar root — pass-through class for the inner content container
|
|
18
|
+
- Controlled mobile state — `open` prop now controls the mobile sidebar too, not just desktop
|
|
19
|
+
|
|
20
|
+
**Fixes:**
|
|
21
|
+
- Replaced Base UI Dialog mobile sidebar with a plain `<nav>` + backdrop for simpler, more predictable transitions
|
|
22
|
+
- Collapsible sections now animate closed smoothly when the sidebar collapses instead of snapping shut
|
|
23
|
+
- Removed `hidden` class from `Sidebar.MenuSub` so sub-menus participate in collapse animations
|
|
24
|
+
- Removed `inertValue` React-version helper — `SidebarSlidingView` now sets `inert` imperatively for React 18 compatibility
|
|
25
|
+
- Restored `inert` on closed `SidebarCollapsibleContent` while removing its `data-open` attribute
|
|
26
|
+
|
|
27
|
+
**Styling:**
|
|
28
|
+
- `bg-kumo-tint` → `bg-(--sidebar-active-bg)` CSS variable for active/hover/focus backgrounds
|
|
29
|
+
- Icon opacity `0.5` → `0.4`; chevron gains hover opacity transition
|
|
30
|
+
- Header gains `shrink-0` and animated padding on collapse
|
|
31
|
+
- Content scroll area gains animated `gap` transition and `tabIndex={-1}` on viewport
|
|
32
|
+
- Sliding views container gains `max-w-(--sidebar-width)` to prevent overflow
|
|
33
|
+
- Mobile sidebar uses `--sidebar-animation-duration` CSS variable for slide transition
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- f957dbc: Add React 18 and React 19 compatibility checks for Kumo tests.
|
|
38
|
+
- ac46184: Fix `Chart` (and `SankeyChart`) rendering in dark mode. The chart canvas
|
|
39
|
+
now stays transparent so the surrounding `bg-kumo-*` surface shows through
|
|
40
|
+
symmetrically in both modes, and ECharts' built-in `"dark"` theme is
|
|
41
|
+
applied when `isDarkMode` is true so the tooltip card, axes, splitLines,
|
|
42
|
+
and legend text are themed correctly.
|
|
43
|
+
- e25a3d6: fix(sidebar): add text truncation with ellipsis to Sidebar.MenuButton content
|
|
44
|
+
|
|
45
|
+
Previously, `Sidebar.MenuButton` used `overflow-hidden` which clipped long text without showing an ellipsis. Now uses `truncate` to match `Sidebar.MenuSubButton`'s behavior.
|
|
46
|
+
|
|
47
|
+
- d3feec0: Fix segmented `Tabs` scroll fade, scroll-into-view, and ring styling:
|
|
48
|
+
- Rewrite CSS scroll-fade masking to use `@property`-animated custom properties, fixing proportional fade rendering across browsers.
|
|
49
|
+
- Scroll the selected tab into view on click so it stays visible in overflowing tab lists.
|
|
50
|
+
- Move `ring ring-kumo-hairline/70` from the inner list to the root container so the segmented variant ring wraps the entire component correctly.
|
|
51
|
+
|
|
52
|
+
- f831482: Fix Flow connector rendering in Firefox by emitting valid SVG path data without array commas and setting visible overflow on the SVG element attribute.
|
|
53
|
+
- 4a8b992: Restore React 18-compatible Sidebar inert attribute handling while keeping the full React compatibility CI suite.
|
|
54
|
+
|
|
3
55
|
## 2.4.1
|
|
4
56
|
|
|
5
57
|
### Patch Changes
|
|
@@ -2816,9 +2816,10 @@
|
|
|
2816
2816
|
"examples": [
|
|
2817
2817
|
"<Dialog.Root>\n <Dialog.Trigger render={(p) => <Button {...p}>Click me</Button>} />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-start justify-between gap-4\">\n <Dialog.Title className=\"text-2xl font-semibold\">\n Modal Title\n </Dialog.Title>\n <Dialog.Close\n aria-label=\"Close\"\n render={(props) => (\n <Button\n {...props}\n variant=\"secondary\"\n shape=\"square\"\n icon={<X />}\n aria-label=\"Close\"\n />\n )}\n />\n </div>\n <Dialog.Description className=\"text-kumo-subtle\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua.\n </Dialog.Description>\n </Dialog>\n </Dialog.Root>",
|
|
2818
2818
|
"<Dialog.Root>\n <Dialog.Trigger render={(p) => <Button {...p}>Delete</Button>} />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-start justify-between gap-4\">\n <Dialog.Title className=\"text-2xl font-semibold\">\n Modal Title\n </Dialog.Title>\n <Dialog.Close\n aria-label=\"Close\"\n render={(props) => (\n <Button\n {...props}\n variant=\"secondary\"\n shape=\"square\"\n icon={<X />}\n aria-label=\"Close\"\n />\n )}\n />\n </div>\n <Dialog.Description className=\"text-kumo-subtle\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua.\n </Dialog.Description>\n <div className=\"mt-8 flex justify-end gap-2\">\n <Dialog.Close\n render={(props) => (\n <Button variant=\"secondary\" {...props}>\n Cancel\n </Button>\n )}\n />\n <Dialog.Close\n render={(props) => (\n <Button variant=\"destructive\" {...props}>\n Delete\n </Button>\n )}\n />\n </div>\n </Dialog>\n </Dialog.Root>",
|
|
2819
|
+
"<Dialog.Root>\n <Dialog.Trigger render={(p) => <Button {...p}>Open capped dialog</Button>} />\n <Dialog className=\"max-w-lg p-8\">\n <div className=\"mb-4 flex items-start justify-between gap-4\">\n <Dialog.Title className=\"text-2xl font-semibold\">\n Max width override\n </Dialog.Title>\n <Dialog.Close\n aria-label=\"Close\"\n render={(props) => (\n <Button\n {...props}\n variant=\"secondary\"\n shape=\"square\"\n icon={<X />}\n aria-label=\"Close\"\n />\n )}\n />\n </div>\n <Dialog.Description className=\"text-kumo-subtle\">\n This dialog uses <code>className=\"max-w-lg\"</code> and should stay\n capped around 512px on desktop.\n </Dialog.Description>\n <div className=\"mt-4 truncate rounded-md border border-kumo-line bg-kumo-recessed p-3 font-mono text-sm\">\n abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\n </div>\n </Dialog>\n </Dialog.Root>",
|
|
2819
2820
|
"<Dialog.Root disablePointerDismissal>\n <Dialog.Trigger\n render={(p) => (\n <Button {...p} variant=\"destructive\">\n Delete Project\n </Button>\n )}\n />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-center gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-kumo-danger/20\">\n <Warning size={20} className=\"text-kumo-danger\" />\n </div>\n <Dialog.Title className=\"text-xl font-semibold\">\n Delete Project?\n </Dialog.Title>\n </div>\n <Dialog.Description className=\"text-kumo-subtle\">\n This action cannot be undone. This will permanently delete the project\n and all associated data.\n </Dialog.Description>\n <div className=\"mt-8 flex justify-end gap-2\">\n <Dialog.Close\n render={(props) => (\n <Button variant=\"secondary\" {...props}>\n Cancel\n </Button>\n )}\n />\n <Dialog.Close\n render={(props) => (\n <Button variant=\"destructive\" {...props}>\n Delete\n </Button>\n )}\n />\n </div>\n </Dialog>\n </Dialog.Root>",
|
|
2820
2821
|
"<Dialog.Root role=\"alertdialog\">\n <Dialog.Trigger\n render={(p) => (\n <Button {...p} variant=\"destructive\">\n Delete Account\n </Button>\n )}\n />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-center gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-kumo-danger/20\">\n <Warning size={20} className=\"text-kumo-danger\" weight=\"fill\" />\n </div>\n <Dialog.Title className=\"text-xl font-semibold\">\n Delete Account?\n </Dialog.Title>\n </div>\n <Dialog.Description className=\"text-kumo-subtle\">\n This action cannot be undone. All your data will be permanently\n removed from our servers. Are you sure you want to proceed?\n </Dialog.Description>\n <div className=\"mt-8 flex justify-end gap-2\">\n <Dialog.Close\n render={(props) => (\n <Button variant=\"secondary\" {...props}>\n Cancel\n </Button>\n )}\n />\n <Dialog.Close\n render={(props) => (\n <Button variant=\"destructive\" {...props}>\n Delete Account\n </Button>\n )}\n />\n </div>\n </Dialog>\n </Dialog.Root>",
|
|
2821
|
-
"<Dialog.Root>\n <Dialog.Trigger render={(p) => <Button {...p}>Open Form</Button>} />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-start justify-between gap-4\">\n <Dialog.Title className=\"text-2xl font-semibold\">\n Create Resource\n </Dialog.Title>\n <Dialog.Close\n aria-label=\"Close\"\n render={(props) => (\n <Button\n {...props}\n variant=\"secondary\"\n shape=\"square\"\n icon={<X />}\n aria-label=\"Close\"\n />\n )}\n />\n </div>\n <Dialog.Description className=\"mb-4 text-kumo-subtle\">\n Select a region for your new resource.\n </Dialog.Description>\n <Select\n className=\"w-full\"\n renderValue={(v) =>\n regions.find((r) => r.value === v)?.label
|
|
2822
|
+
"<Dialog.Root>\n <Dialog.Trigger render={(p) => <Button {...p}>Open Form</Button>} />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-start justify-between gap-4\">\n <Dialog.Title className=\"text-2xl font-semibold\">\n Create Resource\n </Dialog.Title>\n <Dialog.Close\n aria-label=\"Close\"\n render={(props) => (\n <Button\n {...props}\n variant=\"secondary\"\n shape=\"square\"\n icon={<X />}\n aria-label=\"Close\"\n />\n )}\n />\n </div>\n <Dialog.Description className=\"mb-4 text-kumo-subtle\">\n Select a region for your new resource.\n </Dialog.Description>\n <Select\n className=\"w-full\"\n placeholder=\"Select region...\"\n renderValue={(v) =>\n regions.find((r) => r.value === v)?.label\n }\n >\n {regions.map((region) => (\n <Select.Option key={region.value} value={region.value}>\n {region.label}\n </Select.Option>\n ))}\n </Select>\n <div className=\"mt-8 flex justify-end gap-2\">\n <Dialog.Close\n render={(props) => (\n <Button variant=\"secondary\" {...props}>\n Cancel\n </Button>\n )}\n />\n <Button variant=\"primary\">Create</Button>\n </div>\n </Dialog>\n </Dialog.Root>",
|
|
2822
2823
|
"<Dialog.Root>\n <Dialog.Trigger render={(p) => <Button {...p}>Open Form</Button>} />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-start justify-between gap-4\">\n <Dialog.Title className=\"text-2xl font-semibold\">\n Create Resource\n </Dialog.Title>\n <Dialog.Close\n aria-label=\"Close\"\n render={(props) => (\n <Button\n {...props}\n variant=\"secondary\"\n shape=\"square\"\n icon={<X />}\n aria-label=\"Close\"\n />\n )}\n />\n </div>\n <Dialog.Description className=\"mb-4 text-kumo-subtle\">\n Search and select a region for your new resource.\n </Dialog.Description>\n <Combobox value={value} onValueChange={setValue} items={regions}>\n <Combobox.TriggerInput\n className=\"w-full\"\n placeholder=\"Search regions...\"\n />\n <Combobox.Content>\n <Combobox.Empty>No regions found</Combobox.Empty>\n <Combobox.List>\n {(item: { value: string; label: string }) => (\n <Combobox.Item key={item.value} value={item}>\n {item.label}\n </Combobox.Item>\n )}\n </Combobox.List>\n </Combobox.Content>\n </Combobox>\n <div className=\"mt-8 flex justify-end gap-2\">\n <Dialog.Close\n render={(props) => (\n <Button variant=\"secondary\" {...props}>\n Cancel\n </Button>\n )}\n />\n <Button variant=\"primary\">Create</Button>\n </div>\n </Dialog>\n </Dialog.Root>",
|
|
2823
2824
|
"<Dialog.Root>\n <Dialog.Trigger render={(p) => <Button {...p}>Open Form</Button>} />\n <Dialog className=\"p-8\">\n <div className=\"mb-4 flex items-start justify-between gap-4\">\n <Dialog.Title className=\"text-2xl font-semibold\">\n Resource Actions\n </Dialog.Title>\n <Dialog.Close\n aria-label=\"Close\"\n render={(props) => (\n <Button\n {...props}\n variant=\"secondary\"\n shape=\"square\"\n icon={<X />}\n aria-label=\"Close\"\n />\n )}\n />\n </div>\n <Dialog.Description className=\"mb-4 text-kumo-subtle\">\n Choose an action for the selected resource.\n </Dialog.Description>\n <DropdownMenu>\n <DropdownMenu.Trigger render={<Button>Actions</Button>} />\n <DropdownMenu.Content>\n <DropdownMenu.Item>Edit</DropdownMenu.Item>\n <DropdownMenu.Item>Duplicate</DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.Item variant=\"danger\">Delete</DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n <div className=\"mt-8 flex justify-end\">\n <Dialog.Close\n render={(props) => (\n <Button variant=\"secondary\" {...props}>\n Close\n </Button>\n )}\n />\n </div>\n </Dialog>\n </Dialog.Root>"
|
|
2824
2825
|
],
|
|
@@ -5049,6 +5050,11 @@
|
|
|
5049
5050
|
"optional": true,
|
|
5050
5051
|
"description": "Duration of sidebar expand/collapse animation in milliseconds."
|
|
5051
5052
|
},
|
|
5053
|
+
"mobileBreakpoint": {
|
|
5054
|
+
"type": "number",
|
|
5055
|
+
"optional": true,
|
|
5056
|
+
"description": "Viewport width (in px) below which the sidebar renders as a mobile dialog sheet instead of the desktop aside rail."
|
|
5057
|
+
},
|
|
5052
5058
|
"children": {
|
|
5053
5059
|
"type": "ReactNode",
|
|
5054
5060
|
"optional": true,
|
|
@@ -5066,16 +5072,16 @@
|
|
|
5066
5072
|
"<DemoContainer>\n <Sidebar.Provider contained\n defaultOpen\n resizable\n defaultWidth={240}\n minWidth={180}\n maxWidth={400}\n className=\"min-h-0! h-full\"\n >\n <Sidebar>\n <Sidebar.Header>\n <BrandLogo />\n </Sidebar.Header>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n <Sidebar.ResizeHandle />\n </Sidebar>\n <DemoMain>\n <p>Drag the sidebar edge to resize</p>\n </DemoMain>\n </Sidebar.Provider>\n </DemoContainer>",
|
|
5067
5073
|
"<DemoContainer>\n <Sidebar.Provider contained defaultOpen side=\"right\" className=\"min-h-0! h-full\">\n <DemoMain />\n <Sidebar>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Details</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={GearIcon} active>\n Properties\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Metrics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={BellIcon}>Alerts</Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar>\n </Sidebar.Provider>\n </DemoContainer>",
|
|
5068
5074
|
"<DemoContainer>\n <Sidebar.Provider contained defaultOpen peekable className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Header>\n <BrandLogo />\n </Sidebar.Header>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} tooltip=\"Home\" active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon} tooltip=\"Analytics\">\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={CodeIcon} tooltip=\"Compute\">\n Compute\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon} tooltip=\"Storage\">\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n </Sidebar>\n <DemoMain>\n <PeekStateIndicator />\n </DemoMain>\n </Sidebar.Provider>\n </DemoContainer>",
|
|
5075
|
+
"<div className=\"relative h-[420px] w-full overflow-hidden rounded-lg border border-kumo-line bg-kumo-base\">\n <Sidebar.Provider contained defaultOpen className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Header>\n <BrandLogo />\n </Sidebar.Header>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={GlobeIcon}>\n Domains\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Platform</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n Zero Trust\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={GearIcon}>\n Settings\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuItem>\n <Sidebar.Collapsible autoScrollOnOpen>\n <Sidebar.CollapsibleTrigger\n render={\n <Sidebar.MenuButton icon={CodeIcon}>\n Workers\n <Sidebar.MenuChevron />\n </Sidebar.MenuButton>\n }\n />\n <Sidebar.CollapsibleContent>\n <Sidebar.MenuSub>\n <Sidebar.MenuSubButton>Overview</Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>Deployments</Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>Observability</Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>Settings</Sidebar.MenuSubButton>\n </Sidebar.MenuSub>\n </Sidebar.CollapsibleContent>\n </Sidebar.Collapsible>\n </Sidebar.MenuItem>\n <Sidebar.MenuButton icon={CubeIcon}>\n Containers\n <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n </Sidebar>\n <DemoMain>\n <p>Open Workers near the bottom of the list</p>\n </DemoMain>\n </Sidebar.Provider>\n </div>",
|
|
5069
5076
|
"<DemoContainer>\n <Sidebar.Provider contained defaultOpen className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Header>\n <button\n type=\"button\"\n onClick={() =>\n setSurface((s) => (s === \"account\" ? \"zone\" : \"account\"))\n }\n className=\"flex w-full cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium text-kumo-default hover:bg-kumo-tint transition-colors\"\n >\n <ArrowsLeftRightIcon className=\"size-4 shrink-0 text-kumo-brand\" />\n <span className=\"flex-1 text-left font-semibold text-kumo-strong\">\n {surface === \"account\" ? \"Account Nav\" : \"Zone Nav\"}\n </span>\n </button>\n </Sidebar.Header>\n\n <Sidebar.SlidingViews\n activeKey={surface}\n direction={surface === \"zone\" ? \"left\" : \"right\"}\n >\n <Sidebar.SlidingView value=\"account\">\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Account</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={UserIcon}>\n Members\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={GearIcon}>\n Settings\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar.SlidingView>\n\n <Sidebar.SlidingView value=\"zone\">\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Zone</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={GlobeIcon} active>\n Overview\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n SSL/TLS\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Caching\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar.SlidingView>\n </Sidebar.SlidingViews>\n </Sidebar>\n <DemoMain>\n <div className=\"flex flex-col items-center gap-2\">\n <p className=\"font-medium text-kumo-default\">\n Active: {surface === \"account\" ? \"Account\" : \"Zone\"} surface\n </p>\n <p>\n Click the header button to slide between views\n </p>\n </div>\n </DemoMain>\n </Sidebar.Provider>\n </DemoContainer>",
|
|
5070
|
-
"<DemoContainer>\n <Sidebar.Provider contained defaultOpen peekable className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Header>\n <AccountSwitcher />\n </Sidebar.Header>\n <Sidebar.SlidingViews\n activeKey={surface}\n direction={surface === \"domain\" ? \"left\" : \"right\"}\n >\n <Sidebar.SlidingView value=\"account\">\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton\n icon={MagnifyingGlassIcon}\n tooltip=\"Search\"\n className=\"ring ring-kumo-line group-data-[state=collapsed]/sidebar:ring-transparent\"\n >\n Quick search…\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics & Logs\n </Sidebar.MenuButton>\n <Sidebar.MenuButton\n icon={GlobeIcon}\n onClick={() => setSurface(\"domain\")}\n >\n Domains\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuItem>\n <Sidebar.Collapsible defaultOpen>\n <Sidebar.CollapsibleTrigger\n render={\n <Sidebar.MenuButton icon={CodeIcon}>\n Compute\n <Sidebar.MenuChevron />\n </Sidebar.MenuButton>\n }\n />\n <Sidebar.CollapsibleContent>\n <Sidebar.MenuSub>\n <Sidebar.MenuSubItem>\n <Sidebar.Collapsible>\n <Sidebar.CollapsibleTrigger\n render={\n <Sidebar.MenuSubButton>\n Workers & Pages\n <Sidebar.MenuChevron />\n </Sidebar.MenuSubButton>\n }\n />\n <Sidebar.CollapsibleContent>\n <Sidebar.MenuSub>\n <Sidebar.MenuSubButton>\n Overview\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Workers\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Pages\n </Sidebar.MenuSubButton>\n </Sidebar.MenuSub>\n </Sidebar.CollapsibleContent>\n </Sidebar.Collapsible>\n </Sidebar.MenuSubItem>\n <Sidebar.MenuSubButton>\n Durable Objects\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Containers\n <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n </Sidebar.MenuSubButton>\n </Sidebar.MenuSub>\n </Sidebar.CollapsibleContent>\n </Sidebar.Collapsible>\n </Sidebar.MenuItem>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Protect & Connect</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n Zero Trust\n <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar.SlidingView>\n\n <Sidebar.SlidingView value=\"domain\">\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton\n icon={ArrowLeftIcon}\n onClick={() => setSurface(\"account\")}\n >\n Back\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n <Sidebar.Group>\n <Sidebar.GroupLabel>example.com</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={GlobeIcon} active>\n Overview\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n SSL/TLS\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Caching\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar.SlidingView>\n </Sidebar.SlidingViews>\n\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n </Sidebar>\n <DemoMain />\n </Sidebar.Provider>\n </DemoContainer>"
|
|
5077
|
+
"<DemoContainer>\n <Sidebar.Provider contained defaultOpen peekable className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Header>\n <AccountSwitcher />\n </Sidebar.Header>\n <Sidebar.SlidingViews\n activeKey={surface}\n direction={surface === \"domain\" ? \"left\" : \"right\"}\n >\n <Sidebar.SlidingView value=\"account\">\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton\n icon={MagnifyingGlassIcon}\n tooltip=\"Search\"\n className=\"ring ring-kumo-line group-data-[state=collapsed]/sidebar:ring-transparent mb-3 group-data-[state=collapsed]/sidebar:mb-0 transition-[margin] duration-(--sidebar-animation-duration)\"\n >\n Quick search…\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics & Logs\n </Sidebar.MenuButton>\n <Sidebar.MenuButton\n icon={GlobeIcon}\n onClick={() => setSurface(\"domain\")}\n >\n Domains\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuItem>\n <Sidebar.Collapsible defaultOpen>\n <Sidebar.CollapsibleTrigger\n render={\n <Sidebar.MenuButton icon={CodeIcon}>\n Compute\n <Sidebar.MenuChevron />\n </Sidebar.MenuButton>\n }\n />\n <Sidebar.CollapsibleContent>\n <Sidebar.MenuSub>\n <Sidebar.MenuSubItem>\n <Sidebar.Collapsible>\n <Sidebar.CollapsibleTrigger\n render={\n <Sidebar.MenuSubButton>\n Workers & Pages\n <Sidebar.MenuChevron />\n </Sidebar.MenuSubButton>\n }\n />\n <Sidebar.CollapsibleContent>\n <Sidebar.MenuSub>\n <Sidebar.MenuSubButton>\n Overview\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Workers\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Pages\n </Sidebar.MenuSubButton>\n </Sidebar.MenuSub>\n </Sidebar.CollapsibleContent>\n </Sidebar.Collapsible>\n </Sidebar.MenuSubItem>\n <Sidebar.MenuSubButton>\n Durable Objects\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Containers\n <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n </Sidebar.MenuSubButton>\n </Sidebar.MenuSub>\n </Sidebar.CollapsibleContent>\n </Sidebar.Collapsible>\n </Sidebar.MenuItem>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Protect & Connect</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n Zero Trust\n <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar.SlidingView>\n\n <Sidebar.SlidingView value=\"domain\">\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton\n icon={ArrowLeftIcon}\n onClick={() => setSurface(\"account\")}\n >\n Back\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n <Sidebar.Group>\n <Sidebar.GroupLabel>example.com</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={GlobeIcon} active>\n Overview\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n SSL/TLS\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Caching\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar.SlidingView>\n </Sidebar.SlidingViews>\n\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n </Sidebar>\n <DemoMain />\n </Sidebar.Provider>\n </DemoContainer>",
|
|
5078
|
+
"<div className=\"relative h-[540px] w-full overflow-hidden rounded-lg border border-kumo-line bg-kumo-base\">\n <Sidebar.Provider contained mobileBreakpoint={9999} className=\"h-full\">\n <Sidebar>\n <Sidebar.Header>\n <BrandLogo />\n </Sidebar.Header>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={GlobeIcon}>\n Domains\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={CodeIcon}>\n Compute\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n </Sidebar>\n <DemoMain>\n <MobileToggleButton />\n <p>Click the button to open the mobile sidebar</p>\n <p className=\"text-sm text-kumo-subtle\">\n Press Escape or click the backdrop to close\n </p>\n </DemoMain>\n </Sidebar.Provider>\n </div>"
|
|
5071
5079
|
],
|
|
5072
5080
|
"colors": [
|
|
5073
|
-
"bg-kumo-base",
|
|
5074
5081
|
"bg-kumo-brand",
|
|
5075
5082
|
"bg-kumo-hairline",
|
|
5076
5083
|
"bg-kumo-line",
|
|
5077
5084
|
"bg-kumo-recessed",
|
|
5078
|
-
"bg-kumo-tint",
|
|
5079
5085
|
"border-kumo-line",
|
|
5080
5086
|
"ring-kumo-brand",
|
|
5081
5087
|
"text-kumo-default",
|
|
@@ -5135,6 +5141,10 @@
|
|
|
5135
5141
|
"type": "number",
|
|
5136
5142
|
"optional": true
|
|
5137
5143
|
},
|
|
5144
|
+
"mobileBreakpoint": {
|
|
5145
|
+
"type": "number",
|
|
5146
|
+
"optional": true
|
|
5147
|
+
},
|
|
5138
5148
|
"children": {
|
|
5139
5149
|
"type": "ReactNode",
|
|
5140
5150
|
"required": true
|
|
@@ -5292,6 +5302,10 @@
|
|
|
5292
5302
|
"open": {
|
|
5293
5303
|
"type": "boolean",
|
|
5294
5304
|
"optional": true
|
|
5305
|
+
},
|
|
5306
|
+
"autoScrollOnOpen": {
|
|
5307
|
+
"type": "boolean",
|
|
5308
|
+
"optional": true
|
|
5295
5309
|
}
|
|
5296
5310
|
}
|
|
5297
5311
|
},
|
|
@@ -5306,6 +5320,10 @@
|
|
|
5306
5320
|
"open": {
|
|
5307
5321
|
"type": "boolean",
|
|
5308
5322
|
"optional": true
|
|
5323
|
+
},
|
|
5324
|
+
"autoScrollOnOpen": {
|
|
5325
|
+
"type": "boolean",
|
|
5326
|
+
"optional": true
|
|
5309
5327
|
}
|
|
5310
5328
|
}
|
|
5311
5329
|
},
|
|
@@ -5320,6 +5338,10 @@
|
|
|
5320
5338
|
"open": {
|
|
5321
5339
|
"type": "boolean",
|
|
5322
5340
|
"optional": true
|
|
5341
|
+
},
|
|
5342
|
+
"autoScrollOnOpen": {
|
|
5343
|
+
"type": "boolean",
|
|
5344
|
+
"optional": true
|
|
5323
5345
|
}
|
|
5324
5346
|
}
|
|
5325
5347
|
},
|
|
@@ -5334,6 +5356,10 @@
|
|
|
5334
5356
|
"open": {
|
|
5335
5357
|
"type": "boolean",
|
|
5336
5358
|
"optional": true
|
|
5359
|
+
},
|
|
5360
|
+
"autoScrollOnOpen": {
|
|
5361
|
+
"type": "boolean",
|
|
5362
|
+
"optional": true
|
|
5337
5363
|
}
|
|
5338
5364
|
}
|
|
5339
5365
|
},
|
|
@@ -5358,6 +5384,10 @@
|
|
|
5358
5384
|
"open": {
|
|
5359
5385
|
"type": "boolean",
|
|
5360
5386
|
"optional": true
|
|
5387
|
+
},
|
|
5388
|
+
"autoScrollOnOpen": {
|
|
5389
|
+
"type": "boolean",
|
|
5390
|
+
"optional": true
|
|
5361
5391
|
}
|
|
5362
5392
|
}
|
|
5363
5393
|
},
|
package/ai/component-registry.md
CHANGED
|
@@ -2800,6 +2800,38 @@ Close sub-component
|
|
|
2800
2800
|
</Dialog.Root>
|
|
2801
2801
|
```
|
|
2802
2802
|
|
|
2803
|
+
```tsx
|
|
2804
|
+
<Dialog.Root>
|
|
2805
|
+
<Dialog.Trigger render={(p) => <Button {...p}>Open capped dialog</Button>} />
|
|
2806
|
+
<Dialog className="max-w-lg p-8">
|
|
2807
|
+
<div className="mb-4 flex items-start justify-between gap-4">
|
|
2808
|
+
<Dialog.Title className="text-2xl font-semibold">
|
|
2809
|
+
Max width override
|
|
2810
|
+
</Dialog.Title>
|
|
2811
|
+
<Dialog.Close
|
|
2812
|
+
aria-label="Close"
|
|
2813
|
+
render={(props) => (
|
|
2814
|
+
<Button
|
|
2815
|
+
{...props}
|
|
2816
|
+
variant="secondary"
|
|
2817
|
+
shape="square"
|
|
2818
|
+
icon={<X />}
|
|
2819
|
+
aria-label="Close"
|
|
2820
|
+
/>
|
|
2821
|
+
)}
|
|
2822
|
+
/>
|
|
2823
|
+
</div>
|
|
2824
|
+
<Dialog.Description className="text-kumo-subtle">
|
|
2825
|
+
This dialog uses <code>className="max-w-lg"</code> and should stay
|
|
2826
|
+
capped around 512px on desktop.
|
|
2827
|
+
</Dialog.Description>
|
|
2828
|
+
<div className="mt-4 truncate rounded-md border border-kumo-line bg-kumo-recessed p-3 font-mono text-sm">
|
|
2829
|
+
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
|
|
2830
|
+
</div>
|
|
2831
|
+
</Dialog>
|
|
2832
|
+
</Dialog.Root>
|
|
2833
|
+
```
|
|
2834
|
+
|
|
2803
2835
|
```tsx
|
|
2804
2836
|
<Dialog.Root disablePointerDismissal>
|
|
2805
2837
|
<Dialog.Trigger
|
|
@@ -2910,8 +2942,9 @@ Close sub-component
|
|
|
2910
2942
|
</Dialog.Description>
|
|
2911
2943
|
<Select
|
|
2912
2944
|
className="w-full"
|
|
2945
|
+
placeholder="Select region..."
|
|
2913
2946
|
renderValue={(v) =>
|
|
2914
|
-
regions.find((r) => r.value === v)?.label
|
|
2947
|
+
regions.find((r) => r.value === v)?.label
|
|
2915
2948
|
}
|
|
2916
2949
|
>
|
|
2917
2950
|
{regions.map((region) => (
|
|
@@ -6157,6 +6190,8 @@ Sidebar — responsive navigation panel with expand/collapse support. Compound
|
|
|
6157
6190
|
When true, hovering or focusing the collapsed sidebar temporarily expands it. The `state` will be `"peeking"` during the peek. Moving away collapses it back.
|
|
6158
6191
|
- `animationDuration`: number
|
|
6159
6192
|
Duration of sidebar expand/collapse animation in milliseconds.
|
|
6193
|
+
- `mobileBreakpoint`: number
|
|
6194
|
+
Viewport width (in px) below which the sidebar renders as a mobile dialog sheet instead of the desktop aside rail.
|
|
6160
6195
|
- `children`: ReactNode
|
|
6161
6196
|
Content — typically `<Sidebar>` + main content.
|
|
6162
6197
|
- `className`: string
|
|
@@ -6164,7 +6199,7 @@ Sidebar — responsive navigation panel with expand/collapse support. Compound
|
|
|
6164
6199
|
|
|
6165
6200
|
**Colors (kumo tokens used):**
|
|
6166
6201
|
|
|
6167
|
-
`bg-kumo-
|
|
6202
|
+
`bg-kumo-brand`, `bg-kumo-hairline`, `bg-kumo-line`, `bg-kumo-recessed`, `border-kumo-line`, `ring-kumo-brand`, `text-kumo-default`, `text-kumo-strong`, `text-kumo-subtle`
|
|
6168
6203
|
|
|
6169
6204
|
**Styling:**
|
|
6170
6205
|
|
|
@@ -6190,6 +6225,7 @@ Props:
|
|
|
6190
6225
|
- `contained`: boolean
|
|
6191
6226
|
- `peekable`: boolean
|
|
6192
6227
|
- `animationDuration`: number
|
|
6228
|
+
- `mobileBreakpoint`: number
|
|
6193
6229
|
- `children`: ReactNode (required)
|
|
6194
6230
|
- `className`: string
|
|
6195
6231
|
|
|
@@ -6288,6 +6324,7 @@ Separator sub-component
|
|
|
6288
6324
|
Props:
|
|
6289
6325
|
- `defaultOpen`: boolean
|
|
6290
6326
|
- `open`: boolean
|
|
6327
|
+
- `autoScrollOnOpen`: boolean
|
|
6291
6328
|
|
|
6292
6329
|
#### Sidebar.Trigger
|
|
6293
6330
|
|
|
@@ -6296,6 +6333,7 @@ Trigger sub-component
|
|
|
6296
6333
|
Props:
|
|
6297
6334
|
- `defaultOpen`: boolean
|
|
6298
6335
|
- `open`: boolean
|
|
6336
|
+
- `autoScrollOnOpen`: boolean
|
|
6299
6337
|
|
|
6300
6338
|
#### Sidebar.Rail
|
|
6301
6339
|
|
|
@@ -6304,6 +6342,7 @@ Rail sub-component
|
|
|
6304
6342
|
Props:
|
|
6305
6343
|
- `defaultOpen`: boolean
|
|
6306
6344
|
- `open`: boolean
|
|
6345
|
+
- `autoScrollOnOpen`: boolean
|
|
6307
6346
|
|
|
6308
6347
|
#### Sidebar.ResizeHandle
|
|
6309
6348
|
|
|
@@ -6312,6 +6351,7 @@ ResizeHandle sub-component
|
|
|
6312
6351
|
Props:
|
|
6313
6352
|
- `defaultOpen`: boolean
|
|
6314
6353
|
- `open`: boolean
|
|
6354
|
+
- `autoScrollOnOpen`: boolean
|
|
6315
6355
|
|
|
6316
6356
|
#### Sidebar.MenuChevron
|
|
6317
6357
|
|
|
@@ -6327,6 +6367,7 @@ Collapsible sub-component
|
|
|
6327
6367
|
Props:
|
|
6328
6368
|
- `defaultOpen`: boolean
|
|
6329
6369
|
- `open`: boolean
|
|
6370
|
+
- `autoScrollOnOpen`: boolean
|
|
6330
6371
|
|
|
6331
6372
|
#### Sidebar.CollapsibleTrigger
|
|
6332
6373
|
|
|
@@ -6544,6 +6585,88 @@ Props:
|
|
|
6544
6585
|
</DemoContainer>
|
|
6545
6586
|
```
|
|
6546
6587
|
|
|
6588
|
+
```tsx
|
|
6589
|
+
<div className="relative h-[420px] w-full overflow-hidden rounded-lg border border-kumo-line bg-kumo-base">
|
|
6590
|
+
<Sidebar.Provider contained defaultOpen className="min-h-0! h-full">
|
|
6591
|
+
<Sidebar>
|
|
6592
|
+
<Sidebar.Header>
|
|
6593
|
+
<BrandLogo />
|
|
6594
|
+
</Sidebar.Header>
|
|
6595
|
+
<Sidebar.Content>
|
|
6596
|
+
<Sidebar.Group>
|
|
6597
|
+
<Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
|
|
6598
|
+
<Sidebar.Menu>
|
|
6599
|
+
<Sidebar.MenuButton icon={HouseIcon} active>
|
|
6600
|
+
Home
|
|
6601
|
+
</Sidebar.MenuButton>
|
|
6602
|
+
<Sidebar.MenuButton icon={ChartBarIcon}>
|
|
6603
|
+
Analytics
|
|
6604
|
+
</Sidebar.MenuButton>
|
|
6605
|
+
<Sidebar.MenuButton icon={GlobeIcon}>
|
|
6606
|
+
Domains
|
|
6607
|
+
</Sidebar.MenuButton>
|
|
6608
|
+
</Sidebar.Menu>
|
|
6609
|
+
</Sidebar.Group>
|
|
6610
|
+
|
|
6611
|
+
<Sidebar.Group>
|
|
6612
|
+
<Sidebar.GroupLabel>Platform</Sidebar.GroupLabel>
|
|
6613
|
+
<Sidebar.Menu>
|
|
6614
|
+
<Sidebar.MenuButton icon={DatabaseIcon}>
|
|
6615
|
+
Storage
|
|
6616
|
+
</Sidebar.MenuButton>
|
|
6617
|
+
<Sidebar.MenuButton icon={ShieldCheckIcon}>
|
|
6618
|
+
Security
|
|
6619
|
+
</Sidebar.MenuButton>
|
|
6620
|
+
<Sidebar.MenuButton icon={LockIcon}>
|
|
6621
|
+
Zero Trust
|
|
6622
|
+
</Sidebar.MenuButton>
|
|
6623
|
+
<Sidebar.MenuButton icon={GearIcon}>
|
|
6624
|
+
Settings
|
|
6625
|
+
</Sidebar.MenuButton>
|
|
6626
|
+
</Sidebar.Menu>
|
|
6627
|
+
</Sidebar.Group>
|
|
6628
|
+
|
|
6629
|
+
<Sidebar.Group>
|
|
6630
|
+
<Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
|
|
6631
|
+
<Sidebar.Menu>
|
|
6632
|
+
<Sidebar.MenuItem>
|
|
6633
|
+
<Sidebar.Collapsible autoScrollOnOpen>
|
|
6634
|
+
<Sidebar.CollapsibleTrigger
|
|
6635
|
+
render={
|
|
6636
|
+
<Sidebar.MenuButton icon={CodeIcon}>
|
|
6637
|
+
Workers
|
|
6638
|
+
<Sidebar.MenuChevron />
|
|
6639
|
+
</Sidebar.MenuButton>
|
|
6640
|
+
}
|
|
6641
|
+
/>
|
|
6642
|
+
<Sidebar.CollapsibleContent>
|
|
6643
|
+
<Sidebar.MenuSub>
|
|
6644
|
+
<Sidebar.MenuSubButton>Overview</Sidebar.MenuSubButton>
|
|
6645
|
+
<Sidebar.MenuSubButton>Deployments</Sidebar.MenuSubButton>
|
|
6646
|
+
<Sidebar.MenuSubButton>Observability</Sidebar.MenuSubButton>
|
|
6647
|
+
<Sidebar.MenuSubButton>Settings</Sidebar.MenuSubButton>
|
|
6648
|
+
</Sidebar.MenuSub>
|
|
6649
|
+
</Sidebar.CollapsibleContent>
|
|
6650
|
+
</Sidebar.Collapsible>
|
|
6651
|
+
</Sidebar.MenuItem>
|
|
6652
|
+
<Sidebar.MenuButton icon={CubeIcon}>
|
|
6653
|
+
Containers
|
|
6654
|
+
<Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>
|
|
6655
|
+
</Sidebar.MenuButton>
|
|
6656
|
+
</Sidebar.Menu>
|
|
6657
|
+
</Sidebar.Group>
|
|
6658
|
+
</Sidebar.Content>
|
|
6659
|
+
<Sidebar.Footer>
|
|
6660
|
+
<Sidebar.Trigger />
|
|
6661
|
+
</Sidebar.Footer>
|
|
6662
|
+
</Sidebar>
|
|
6663
|
+
<DemoMain>
|
|
6664
|
+
<p>Open Workers near the bottom of the list</p>
|
|
6665
|
+
</DemoMain>
|
|
6666
|
+
</Sidebar.Provider>
|
|
6667
|
+
</div>
|
|
6668
|
+
```
|
|
6669
|
+
|
|
6547
6670
|
```tsx
|
|
6548
6671
|
<DemoContainer>
|
|
6549
6672
|
<Sidebar.Provider contained defaultOpen className="min-h-0! h-full">
|
|
@@ -6644,7 +6767,7 @@ Props:
|
|
|
6644
6767
|
<Sidebar.MenuButton
|
|
6645
6768
|
icon={MagnifyingGlassIcon}
|
|
6646
6769
|
tooltip="Search"
|
|
6647
|
-
className="ring ring-kumo-line group-data-[state=collapsed]/sidebar:ring-transparent"
|
|
6770
|
+
className="ring ring-kumo-line group-data-[state=collapsed]/sidebar:ring-transparent mb-3 group-data-[state=collapsed]/sidebar:mb-0 transition-[margin] duration-(--sidebar-animation-duration)"
|
|
6648
6771
|
>
|
|
6649
6772
|
Quick search…
|
|
6650
6773
|
</Sidebar.MenuButton>
|
|
@@ -6784,6 +6907,56 @@ Props:
|
|
|
6784
6907
|
</DemoContainer>
|
|
6785
6908
|
```
|
|
6786
6909
|
|
|
6910
|
+
```tsx
|
|
6911
|
+
<div className="relative h-[540px] w-full overflow-hidden rounded-lg border border-kumo-line bg-kumo-base">
|
|
6912
|
+
<Sidebar.Provider contained mobileBreakpoint={9999} className="h-full">
|
|
6913
|
+
<Sidebar>
|
|
6914
|
+
<Sidebar.Header>
|
|
6915
|
+
<BrandLogo />
|
|
6916
|
+
</Sidebar.Header>
|
|
6917
|
+
<Sidebar.Content>
|
|
6918
|
+
<Sidebar.Group>
|
|
6919
|
+
<Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
|
|
6920
|
+
<Sidebar.Menu>
|
|
6921
|
+
<Sidebar.MenuButton icon={HouseIcon} active>
|
|
6922
|
+
Home
|
|
6923
|
+
</Sidebar.MenuButton>
|
|
6924
|
+
<Sidebar.MenuButton icon={ChartBarIcon}>
|
|
6925
|
+
Analytics
|
|
6926
|
+
</Sidebar.MenuButton>
|
|
6927
|
+
<Sidebar.MenuButton icon={GlobeIcon}>
|
|
6928
|
+
Domains
|
|
6929
|
+
</Sidebar.MenuButton>
|
|
6930
|
+
</Sidebar.Menu>
|
|
6931
|
+
</Sidebar.Group>
|
|
6932
|
+
|
|
6933
|
+
<Sidebar.Group>
|
|
6934
|
+
<Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
|
|
6935
|
+
<Sidebar.Menu>
|
|
6936
|
+
<Sidebar.MenuButton icon={CodeIcon}>
|
|
6937
|
+
Compute
|
|
6938
|
+
</Sidebar.MenuButton>
|
|
6939
|
+
<Sidebar.MenuButton icon={DatabaseIcon}>
|
|
6940
|
+
Storage
|
|
6941
|
+
</Sidebar.MenuButton>
|
|
6942
|
+
</Sidebar.Menu>
|
|
6943
|
+
</Sidebar.Group>
|
|
6944
|
+
</Sidebar.Content>
|
|
6945
|
+
<Sidebar.Footer>
|
|
6946
|
+
<Sidebar.Trigger />
|
|
6947
|
+
</Sidebar.Footer>
|
|
6948
|
+
</Sidebar>
|
|
6949
|
+
<DemoMain>
|
|
6950
|
+
<MobileToggleButton />
|
|
6951
|
+
<p>Click the button to open the mobile sidebar</p>
|
|
6952
|
+
<p className="text-sm text-kumo-subtle">
|
|
6953
|
+
Press Escape or click the backdrop to close
|
|
6954
|
+
</p>
|
|
6955
|
+
</DemoMain>
|
|
6956
|
+
</Sidebar.Provider>
|
|
6957
|
+
</div>
|
|
6958
|
+
```
|
|
6959
|
+
|
|
6787
6960
|
|
|
6788
6961
|
---
|
|
6789
6962
|
|
package/ai/schemas.ts
CHANGED
|
@@ -714,6 +714,7 @@ export const SidebarPropsSchema = z.object({
|
|
|
714
714
|
contained: z.boolean().optional(), // When true, the collapsed sidebar uses absolute positioning instead of fixed, keeping it scoped inside a bounded parent. Useful for demos and embedded sidebars.
|
|
715
715
|
peekable: z.boolean().optional(), // When true, hovering or focusing the collapsed sidebar temporarily expands it. The `state` will be `"peeking"` during the peek. Moving away collapses it back.
|
|
716
716
|
animationDuration: z.number().optional(), // Duration of sidebar expand/collapse animation in milliseconds.
|
|
717
|
+
mobileBreakpoint: z.number().optional(), // Viewport width (in px) below which the sidebar renders as a mobile dialog sheet instead of the desktop aside rail.
|
|
717
718
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content — typically `<Sidebar>` + main content.
|
|
718
719
|
className: z.string().optional(), // Additional CSS classes for the wrapper div.
|
|
719
720
|
});
|
package/dist/.build-complete
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1780927666222
|
package/dist/ai/schemas.d.ts
CHANGED
|
@@ -1017,6 +1017,7 @@ export declare const SidebarPropsSchema: z.ZodObject<{
|
|
|
1017
1017
|
contained: z.ZodOptional<z.ZodBoolean>;
|
|
1018
1018
|
peekable: z.ZodOptional<z.ZodBoolean>;
|
|
1019
1019
|
animationDuration: z.ZodOptional<z.ZodNumber>;
|
|
1020
|
+
mobileBreakpoint: z.ZodOptional<z.ZodNumber>;
|
|
1020
1021
|
children: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
|
|
1021
1022
|
path: z.ZodString;
|
|
1022
1023
|
}, z.core.$strip>]>]>>;
|
|
@@ -2163,6 +2164,7 @@ export declare const ComponentPropsSchemas: {
|
|
|
2163
2164
|
contained: z.ZodOptional<z.ZodBoolean>;
|
|
2164
2165
|
peekable: z.ZodOptional<z.ZodBoolean>;
|
|
2165
2166
|
animationDuration: z.ZodOptional<z.ZodNumber>;
|
|
2167
|
+
mobileBreakpoint: z.ZodOptional<z.ZodNumber>;
|
|
2166
2168
|
children: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
|
|
2167
2169
|
path: z.ZodString;
|
|
2168
2170
|
}, z.core.$strip>]>]>>;
|
package/dist/ai/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../ai/schemas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../ai/schemas.ts"],"names":[],"mappings":"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"}
|