@stll/ui 0.9.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -15
- package/dist/components/breadcrumb.d.ts +1 -1
- package/dist/components/button-variants.d.ts +2 -2
- package/dist/components/button.d.ts +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command.d.ts +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/date-picker-popover.js +1 -1
- package/dist/components/input-group.d.ts +1 -1
- package/dist/components/pagination.d.ts +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/select.d.ts +1 -1
- package/dist/components/select.js +8 -10
- package/dist/components/workspace-shell.d.ts +77 -0
- package/dist/components/workspace-shell.js +106 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.js +11 -10
- package/dist/inspector/chrome.d.ts +5 -1
- package/dist/inspector/chrome.js +14 -2
- package/dist/inspector/index.d.ts +2 -2
- package/dist/inspector/index.js +2 -2
- package/dist/inspector/layout-tokens.d.ts +5 -1
- package/dist/inspector/layout-tokens.js +5 -1
- package/dist/kanban/grouping.d.ts +17 -17
- package/dist/kanban/index.d.ts +4 -3
- package/dist/kanban/index.js +3 -2
- package/dist/kanban/matrix.d.ts +15 -15
- package/dist/kanban/sortable-interactions.d.ts +75 -13
- package/dist/kanban/sortable-interactions.js +345 -28
- package/dist/kanban/sortable-interactions.logic.d.ts +79 -0
- package/dist/kanban/sortable-interactions.logic.js +205 -0
- package/dist/kanban/virtual-cell.d.ts +19 -2
- package/dist/kanban/virtual-cell.js +53 -7
- package/dist/lib/control-size.d.ts +1 -1
- package/dist/lib/overlay-layer.d.ts +2 -1
- package/dist/lib/overlay-layer.js +2 -1
- package/dist/review/review-comment-card.js +1 -1
- package/package.json +7 -7
- package/dist/components/application-shell.d.ts +0 -27
- package/dist/components/application-shell.js +0 -25
package/README.md
CHANGED
|
@@ -20,35 +20,78 @@ so a bundler keeps only what is imported:
|
|
|
20
20
|
|
|
21
21
|
```tsx
|
|
22
22
|
import { Button } from "@stll/ui/button";
|
|
23
|
-
import { ApplicationShell } from "@stll/ui/application-shell";
|
|
24
23
|
import { Dialog, DialogPopup } from "@stll/ui/dialog";
|
|
25
24
|
import { Inspector, InspectorDock } from "@stll/ui/inspector";
|
|
26
25
|
import { cn } from "@stll/ui/utils";
|
|
26
|
+
import { WorkspaceShell } from "@stll/ui/workspace-shell";
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
One flat subpath per module: `@stll/ui/<name>` for components, hooks, and
|
|
30
30
|
helpers alike. `@stll/ui` re-exports all of them under one specifier for
|
|
31
31
|
convenience; the subpaths are the real surface, and in-repo code uses those.
|
|
32
32
|
|
|
33
|
-
##
|
|
33
|
+
## Workspace shell
|
|
34
34
|
|
|
35
|
-
`
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
`WorkspaceShell` is the complete desktop and tablet application frame. It
|
|
36
|
+
keeps navigation, sticky top chrome, the active route, and a required
|
|
37
|
+
inline-end dock as sibling surfaces inside one dynamic viewport. Route content
|
|
38
|
+
is the sole scroller, so a feature cannot accidentally render an app inside
|
|
39
|
+
the app.
|
|
39
40
|
|
|
40
41
|
```tsx
|
|
41
|
-
import {
|
|
42
|
+
import { WorkspaceEndRail, WorkspaceShell } from "@stll/ui/workspace-shell";
|
|
43
|
+
|
|
44
|
+
<WorkspaceShell
|
|
45
|
+
endDock={
|
|
46
|
+
<WorkspaceEndRail
|
|
47
|
+
chatAction={{
|
|
48
|
+
label: "New chat",
|
|
49
|
+
onActivate: openChat,
|
|
50
|
+
status: "enabled",
|
|
51
|
+
}}
|
|
52
|
+
label="Workspace inspector"
|
|
53
|
+
topAction={<InspectorToggle />}
|
|
54
|
+
/>
|
|
55
|
+
}
|
|
56
|
+
navigation={{ content: <Navigation />, mode: "responsive" }}
|
|
57
|
+
topBar={() => <WorkspaceHeader />}
|
|
58
|
+
>
|
|
59
|
+
<Workspace />
|
|
60
|
+
</WorkspaceShell>;
|
|
61
|
+
```
|
|
42
62
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
63
|
+
Applications without their own responsive navigation use the shell-managed
|
|
64
|
+
contract. Stella then owns the desktop/compact cutoff, sheet portal, backdrop,
|
|
65
|
+
Escape and viewport-close behavior; the top-bar callback places the supplied
|
|
66
|
+
trigger in product-specific chrome.
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
<WorkspaceShell
|
|
70
|
+
endDock={<WorkspaceInspector />}
|
|
71
|
+
navigation={{
|
|
72
|
+
compact: {
|
|
73
|
+
content: <Navigation expanded />,
|
|
74
|
+
label: "Open navigation",
|
|
75
|
+
onOpenChange: setNavigationOpen,
|
|
76
|
+
open: navigationOpen,
|
|
77
|
+
trigger: <button type="button">Menu</button>,
|
|
78
|
+
},
|
|
79
|
+
desktop: <NavigationRail />,
|
|
80
|
+
mode: "shell-managed",
|
|
81
|
+
}}
|
|
82
|
+
topBar={({ compactNavigationTrigger }) => (
|
|
83
|
+
<WorkspaceHeader navigationTrigger={compactNavigationTrigger} />
|
|
84
|
+
)}
|
|
47
85
|
>
|
|
48
|
-
<
|
|
49
|
-
</
|
|
86
|
+
<Workspace />
|
|
87
|
+
</WorkspaceShell>
|
|
50
88
|
```
|
|
51
89
|
|
|
90
|
+
`WorkspaceEndRail` owns the 48px rail, 44px touch targets, scrolling tab
|
|
91
|
+
region, and permanent bottom chat position. Its chat action is a discriminated
|
|
92
|
+
union: a host must wire an enabled action or expose a reasoned, fail-closed
|
|
93
|
+
unavailable state.
|
|
94
|
+
|
|
52
95
|
### Deprecated grouped subpaths
|
|
53
96
|
|
|
54
97
|
`@stll/ui/components/<name>`, `@stll/ui/hooks/<name>`, and
|
|
@@ -73,10 +116,16 @@ import {
|
|
|
73
116
|
} from "@stll/ui/kanban";
|
|
74
117
|
|
|
75
118
|
const Card = ({ id }: { id: string }) => {
|
|
76
|
-
const {
|
|
119
|
+
const { activator, setNodeRef } = useKanbanSortable({
|
|
120
|
+
activation: { type: "handle" },
|
|
121
|
+
id,
|
|
122
|
+
});
|
|
123
|
+
if (activator.type !== "handle") {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
77
126
|
return (
|
|
78
127
|
<article ref={setNodeRef}>
|
|
79
|
-
<KanbanDragHandle bindings={
|
|
128
|
+
<KanbanDragHandle bindings={activator.bindings} label="Move card" />
|
|
80
129
|
</article>
|
|
81
130
|
);
|
|
82
131
|
};
|
|
@@ -136,6 +185,32 @@ const matrix = buildKanbanBoardMatrix({
|
|
|
136
185
|
/>;
|
|
137
186
|
```
|
|
138
187
|
|
|
188
|
+
When rows inside a virtual cell are sortable, give the cell a unique drop target
|
|
189
|
+
and its ordered matrix position. The cell registers its actual scroll element,
|
|
190
|
+
including when `rows` is empty, and owns the matching `SortableContext`.
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
<KanbanVirtualCell
|
|
194
|
+
getRowKey={(row) => row.id}
|
|
195
|
+
pagination={{ type: "none" }}
|
|
196
|
+
renderRow={(row) => <Card row={row} />}
|
|
197
|
+
rows={cell.rows}
|
|
198
|
+
sortable={{
|
|
199
|
+
dropTarget: {
|
|
200
|
+
id: cellId,
|
|
201
|
+
position: { column: columnIndex, lane: laneIndex },
|
|
202
|
+
},
|
|
203
|
+
getRowId: (row) => row.id,
|
|
204
|
+
}}
|
|
205
|
+
/>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
The default keyboard coordinates move through items in their cell before
|
|
209
|
+
crossing into adjacent columns or subgroup lanes; empty cells remain reachable.
|
|
210
|
+
Pointer and touch drops outside registered board targets cancel. Choose an
|
|
211
|
+
explicit `{ type: "handle" }` activation for the 44px handle, or `{ type:
|
|
212
|
+
"item" }` when the whole item is the intended activation surface.
|
|
213
|
+
|
|
139
214
|
## Styles
|
|
140
215
|
|
|
141
216
|
No compiled CSS ships. The components carry Tailwind class names, so the
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useRender } from "@base-ui/react/use-render";
|
|
2
1
|
import * as React$1 from "react";
|
|
2
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
3
3
|
//#region src/components/breadcrumb.d.ts
|
|
4
4
|
declare const Breadcrumb: ({ ...props }: React$1.ComponentProps<"nav">) => React$1.JSX.Element;
|
|
5
5
|
declare const BreadcrumbList: ({ className, ...props }: React$1.ComponentProps<"ol">) => React$1.JSX.Element;
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
declare const buttonAccessibleDisabledClass = "cursor-not-allowed opacity-64";
|
|
12
12
|
declare const buttonVariants: (props?: ({
|
|
13
|
-
size?: "
|
|
14
|
-
variant?: "
|
|
13
|
+
size?: "default" | "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "sm" | "xl" | "xs" | null | undefined;
|
|
14
|
+
variant?: "link" | "default" | "destructive" | "destructive-outline" | "ghost" | "outline" | "secondary" | null | undefined;
|
|
15
15
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
16
|
//#endregion
|
|
17
17
|
export { buttonAccessibleDisabledClass, buttonVariants };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { OverlayLayer } from "../lib/overlay-layer.js";
|
|
2
2
|
import { buttonVariants } from "./button-variants.js";
|
|
3
|
+
import * as React$1 from "react";
|
|
3
4
|
import { useRender } from "@base-ui/react/use-render";
|
|
4
5
|
import { VariantProps } from "class-variance-authority";
|
|
5
|
-
import * as React$1 from "react";
|
|
6
6
|
//#region src/components/button.d.ts
|
|
7
7
|
type ButtonProps = {
|
|
8
8
|
variant?: VariantProps<typeof buttonVariants>["variant"];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
import { OVERLAY_LAYER_CLASS_NAMES } from "../lib/overlay-layer.js";
|
|
4
|
+
import { ScrollArea } from "./scroll-area.js";
|
|
4
5
|
import { containedHandler } from "../hooks/use-contained-handler.js";
|
|
5
6
|
import { CONTROL_SIZE } from "../lib/control-size.js";
|
|
6
7
|
import { Input } from "./input.js";
|
|
7
|
-
import { ScrollArea } from "./scroll-area.js";
|
|
8
8
|
import { ChevronsUpDownIcon, XIcon } from "lucide-react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
import * as React$1 from "react";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ControlSize } from "../lib/control-size.js";
|
|
2
2
|
import { DialogContent as DialogPopup } from "./dialog.js";
|
|
3
3
|
import * as React$1 from "react";
|
|
4
|
-
import { Autocomplete } from "@base-ui/react/autocomplete";
|
|
5
4
|
import { Dialog } from "@base-ui/react/dialog";
|
|
5
|
+
import { Autocomplete } from "@base-ui/react/autocomplete";
|
|
6
6
|
//#region src/components/command.d.ts
|
|
7
7
|
type CommandProps<ItemValue> = Omit<Autocomplete.Root.Props<ItemValue>, "items"> & {
|
|
8
8
|
items?: readonly ItemValue[] | undefined;
|
|
@@ -5,8 +5,8 @@ import { useContentDir } from "../hooks/use-content-dir.js";
|
|
|
5
5
|
import { DialogContent as DialogPopup } from "./dialog.js";
|
|
6
6
|
import { SearchIcon } from "lucide-react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { Autocomplete } from "@base-ui/react/autocomplete";
|
|
9
8
|
import { Dialog } from "@base-ui/react/dialog";
|
|
9
|
+
import { Autocomplete } from "@base-ui/react/autocomplete";
|
|
10
10
|
//#region src/components/command.tsx
|
|
11
11
|
const Command = ({ autoHighlight = "always", keepHighlight = true, open = true, ...props }) => /* @__PURE__ */ jsx(Autocomplete.Root, {
|
|
12
12
|
autoHighlight,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { DirectionalIcon } from "./directional-icon.js";
|
|
4
3
|
import { Button } from "./button.js";
|
|
4
|
+
import { DirectionalIcon } from "./directional-icon.js";
|
|
5
5
|
import { getLocaleWeekInfo, getWeekendDays } from "../lib/week.js";
|
|
6
6
|
import { localDateFromTimestamp, millisecondsUntilNextLocalDate, resolveCalendarViewMonth } from "./date-picker-popover.logic.js";
|
|
7
7
|
import { Popover, PopoverContent as PopoverPopup, PopoverTrigger } from "./popover.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InputProps } from "./input.js";
|
|
2
2
|
import { TextareaProps } from "./textarea.js";
|
|
3
|
-
import { VariantProps } from "class-variance-authority";
|
|
4
3
|
import * as React$1 from "react";
|
|
4
|
+
import { VariantProps } from "class-variance-authority";
|
|
5
5
|
//#region src/components/input-group.d.ts
|
|
6
6
|
declare const InputGroup: ({ className, ...props }: React$1.ComponentProps<"div">) => React$1.JSX.Element;
|
|
7
7
|
declare const inputGroupAddonVariants: (props?: ({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Button } from "./button.js";
|
|
2
|
-
import { useRender } from "@base-ui/react/use-render";
|
|
3
2
|
import * as React$1 from "react";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
4
|
//#region src/components/pagination.d.ts
|
|
5
5
|
declare const Pagination: ({ className, ...props }: React$1.ComponentProps<"nav">) => React$1.JSX.Element;
|
|
6
6
|
declare const PaginationContent: ({ className, ...props }: React$1.ComponentProps<"ul">) => React$1.JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { DirectionalIcon } from "./directional-icon.js";
|
|
4
3
|
import { buttonVariants } from "./button-variants.js";
|
|
4
|
+
import { DirectionalIcon } from "./directional-icon.js";
|
|
5
5
|
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
@@ -5,7 +5,7 @@ import { Select as Select$1 } from "@base-ui/react/select";
|
|
|
5
5
|
type SelectItemProps = Select$1.Item.Props & {
|
|
6
6
|
label?: string;
|
|
7
7
|
};
|
|
8
|
-
declare const Select: <Value, Multiple extends boolean | undefined = false>({ children, itemToStringLabel, ...props }: Select$1.Root.Props<Value, Multiple>) => React$1.JSX.Element;
|
|
8
|
+
declare const Select: <Value, Multiple extends boolean | undefined = false>({ children, isItemEqualToValue, itemToStringLabel, itemToStringValue, ...props }: Select$1.Root.Props<Value, Multiple>) => React$1.JSX.Element;
|
|
9
9
|
declare const SelectTrigger: ({ className, size, children, ...props }: Select$1.Trigger.Props & {
|
|
10
10
|
size?: ControlSize;
|
|
11
11
|
}) => React$1.JSX.Element;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
import { OVERLAY_LAYER_CLASS_NAMES } from "../lib/overlay-layer.js";
|
|
4
4
|
import { CONTROL_SIZE } from "../lib/control-size.js";
|
|
5
|
+
import { useLatest } from "../hooks/use-latest.js";
|
|
5
6
|
import { ChevronDownIcon, ChevronUpIcon, ChevronsUpDownIcon } from "lucide-react";
|
|
6
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
8
|
import * as React$1 from "react";
|
|
@@ -12,19 +13,16 @@ const renderSelectedDisplay = (displays, placeholder) => (value) => {
|
|
|
12
13
|
if (!displays.has(value)) return placeholder ?? null;
|
|
13
14
|
return displays.get(value) ?? null;
|
|
14
15
|
};
|
|
15
|
-
const Select = ({ children, itemToStringLabel, ...props }) => {
|
|
16
|
+
const Select = ({ children, isItemEqualToValue, itemToStringLabel, itemToStringValue, ...props }) => {
|
|
16
17
|
const itemLabels = collectSelectItemLabels(children);
|
|
17
18
|
const itemDisplays = collectSelectItemDisplays(children);
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
children
|
|
22
|
-
}) : /* @__PURE__ */ jsx(Select$1.Root, {
|
|
23
|
-
itemToStringLabel: (value) => {
|
|
24
|
-
const stringValue = String(value);
|
|
25
|
-
return itemLabels.get(value) ?? stringValue;
|
|
26
|
-
},
|
|
19
|
+
const itemLabelsRef = useLatest(itemLabels);
|
|
20
|
+
const resolveItemLabel = React$1.useCallback((value) => itemLabelsRef.current.get(value) ?? String(value), [itemLabelsRef]);
|
|
21
|
+
const root = /* @__PURE__ */ jsx(Select$1.Root, {
|
|
27
22
|
...props,
|
|
23
|
+
isItemEqualToValue,
|
|
24
|
+
itemToStringLabel: itemToStringLabel === void 0 && itemLabels.size === 0 ? void 0 : itemToStringLabel ?? resolveItemLabel,
|
|
25
|
+
itemToStringValue,
|
|
28
26
|
children
|
|
29
27
|
});
|
|
30
28
|
return /* @__PURE__ */ jsx(SelectItemDisplaysContext, {
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from "react";
|
|
2
|
+
//#region src/components/workspace-shell.d.ts
|
|
3
|
+
type WorkspaceCompactNavigation = {
|
|
4
|
+
/** Navigation content rendered inside Stella's compact sheet. */
|
|
5
|
+
content: ReactElement;
|
|
6
|
+
/** Accessible name shared by the trigger and sheet. */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Controlled sheet state owned by the host application. */
|
|
9
|
+
open: boolean;
|
|
10
|
+
/** Receives close gestures, Escape, backdrop presses, and viewport changes. */
|
|
11
|
+
onOpenChange: (open: boolean) => void;
|
|
12
|
+
/** Host-styled button; Stella supplies trigger behavior and accessibility. */
|
|
13
|
+
trigger: ReactElement;
|
|
14
|
+
};
|
|
15
|
+
type WorkspaceNavigation = {
|
|
16
|
+
/** The host already owns its complete responsive navigation behavior. */
|
|
17
|
+
content: ReactElement;
|
|
18
|
+
mode: "responsive";
|
|
19
|
+
} | {
|
|
20
|
+
/** Stella owns the desktop/compact cutoff and compact navigation sheet. */
|
|
21
|
+
compact: WorkspaceCompactNavigation;
|
|
22
|
+
desktop: ReactElement;
|
|
23
|
+
mode: "shell-managed";
|
|
24
|
+
};
|
|
25
|
+
type WorkspaceTopBarContext = {
|
|
26
|
+
/** Place this in compact chrome; null when navigation is host-responsive. */
|
|
27
|
+
compactNavigationTrigger: ReactElement | null;
|
|
28
|
+
};
|
|
29
|
+
type WorkspaceShellProps = {
|
|
30
|
+
/** Product navigation with one explicit responsive ownership mode. */
|
|
31
|
+
navigation: WorkspaceNavigation;
|
|
32
|
+
/** Sticky route chrome; managed navigation exposes its compact trigger here. */
|
|
33
|
+
topBar: (context: WorkspaceTopBarContext) => ReactElement;
|
|
34
|
+
/** Permanent inline-end rail or inspector dock. */
|
|
35
|
+
endDock: ReactElement;
|
|
36
|
+
/** Active route content. */
|
|
37
|
+
children: ReactNode;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Stella's complete authenticated workspace frame. It owns the dynamic
|
|
41
|
+
* viewport, sibling rail geometry, sticky top chrome, and sole content
|
|
42
|
+
* scroller so product routes cannot create an app inside the app.
|
|
43
|
+
*/
|
|
44
|
+
declare const WorkspaceShell: ({ children, endDock, navigation, topBar }: WorkspaceShellProps) => import("react").JSX.Element;
|
|
45
|
+
type WorkspaceEndRailChatAction = {
|
|
46
|
+
label: string;
|
|
47
|
+
onActivate: () => void;
|
|
48
|
+
status: "enabled";
|
|
49
|
+
} | {
|
|
50
|
+
label: string;
|
|
51
|
+
reason: string;
|
|
52
|
+
status: "unavailable";
|
|
53
|
+
};
|
|
54
|
+
type WorkspaceEndRailProps = {
|
|
55
|
+
/** Accessible name for the complete rail, independent of its chat action. */
|
|
56
|
+
label: string;
|
|
57
|
+
/** Required top-row affordance, such as opening or minimizing a pane. */
|
|
58
|
+
topAction: ReactNode;
|
|
59
|
+
/** Tabs or contextual actions between the two permanent rail rows. */
|
|
60
|
+
children?: ReactNode | undefined;
|
|
61
|
+
/** Portalled menus or overlays that must not become scrolling rail content. */
|
|
62
|
+
overlay?: ReactNode | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Required by construction: a host either wires a working chat action or
|
|
65
|
+
* exposes an explicit, fail-closed unavailable state with a reason.
|
|
66
|
+
*/
|
|
67
|
+
chatAction: WorkspaceEndRailChatAction;
|
|
68
|
+
className?: string | undefined;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* The permanent inline-end workspace rail. Stella owns its width, row rhythm,
|
|
72
|
+
* touch targets, scrolling middle region, and bottom chat position; hosts own
|
|
73
|
+
* only the actions and route state.
|
|
74
|
+
*/
|
|
75
|
+
declare const WorkspaceEndRail: ({ chatAction, children, className, label, overlay, topAction }: WorkspaceEndRailProps) => import("react").JSX.Element;
|
|
76
|
+
//#endregion
|
|
77
|
+
export { type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
|
+
import { useIsMobile } from "../hooks/use-mobile.js";
|
|
4
|
+
import { InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton } from "../inspector/chrome.js";
|
|
5
|
+
import { Sheet, SheetContent as SheetPopup, SheetTitle, SheetTrigger } from "./sheet.js";
|
|
6
|
+
import { MessageSquarePlusIcon } from "lucide-react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { useEffect } from "react";
|
|
9
|
+
//#region src/components/workspace-shell.tsx
|
|
10
|
+
/**
|
|
11
|
+
* Stella's complete authenticated workspace frame. It owns the dynamic
|
|
12
|
+
* viewport, sibling rail geometry, sticky top chrome, and sole content
|
|
13
|
+
* scroller so product routes cannot create an app inside the app.
|
|
14
|
+
*/
|
|
15
|
+
const WorkspaceShell = ({ children, endDock, navigation, topBar }) => {
|
|
16
|
+
const isCompact = useIsMobile();
|
|
17
|
+
const compactNavigation = navigation.mode === "shell-managed" ? navigation.compact : null;
|
|
18
|
+
const compactNavigationOpen = compactNavigation?.open ?? false;
|
|
19
|
+
const onCompactNavigationOpenChange = compactNavigation?.onOpenChange;
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!isCompact && compactNavigationOpen) onCompactNavigationOpenChange?.(false);
|
|
22
|
+
}, [
|
|
23
|
+
compactNavigationOpen,
|
|
24
|
+
isCompact,
|
|
25
|
+
onCompactNavigationOpenChange
|
|
26
|
+
]);
|
|
27
|
+
const compactNavigationTrigger = compactNavigation === null ? null : /* @__PURE__ */ jsx("span", {
|
|
28
|
+
className: "contents md:hidden",
|
|
29
|
+
children: /* @__PURE__ */ jsx(SheetTrigger, {
|
|
30
|
+
"aria-label": compactNavigation.label,
|
|
31
|
+
render: compactNavigation.trigger
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
const frame = /* @__PURE__ */ jsxs("div", {
|
|
35
|
+
className: "flex h-dvh min-h-0 w-full overflow-hidden",
|
|
36
|
+
"data-slot": "workspace-shell",
|
|
37
|
+
children: [
|
|
38
|
+
navigation.mode === "responsive" ? navigation.content : navigation.desktop,
|
|
39
|
+
/* @__PURE__ */ jsxs("main", {
|
|
40
|
+
className: cn("bg-background relative flex w-full min-w-0 flex-1 flex-col overflow-hidden", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2"),
|
|
41
|
+
"data-slot": "workspace-shell-main",
|
|
42
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
43
|
+
className: "bg-background sticky top-0 z-20 shrink-0",
|
|
44
|
+
"data-slot": "workspace-shell-top-bar",
|
|
45
|
+
children: topBar({ compactNavigationTrigger })
|
|
46
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
47
|
+
className: "min-h-0 flex-1 overflow-auto overscroll-contain",
|
|
48
|
+
"data-slot": "workspace-shell-content",
|
|
49
|
+
children
|
|
50
|
+
})]
|
|
51
|
+
}),
|
|
52
|
+
endDock
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
if (compactNavigation === null) return frame;
|
|
56
|
+
return /* @__PURE__ */ jsxs(Sheet, {
|
|
57
|
+
open: isCompact && compactNavigation.open,
|
|
58
|
+
onOpenChange: compactNavigation.onOpenChange,
|
|
59
|
+
children: [frame, isCompact ? /* @__PURE__ */ jsxs(SheetPopup, {
|
|
60
|
+
className: "w-[min(20rem,100vw)]",
|
|
61
|
+
showCloseButton: false,
|
|
62
|
+
side: "inline-start",
|
|
63
|
+
children: [/* @__PURE__ */ jsx(SheetTitle, {
|
|
64
|
+
className: "sr-only",
|
|
65
|
+
children: compactNavigation.label
|
|
66
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
67
|
+
className: "bg-background flex h-full min-h-0 flex-col overflow-y-auto [padding-inline:max(0.75rem,env(safe-area-inset-left))_max(0.75rem,env(safe-area-inset-right))] [padding-block:max(0.75rem,env(safe-area-inset-top))_max(0.75rem,env(safe-area-inset-bottom))]",
|
|
68
|
+
"data-slot": "workspace-compact-navigation",
|
|
69
|
+
children: compactNavigation.content
|
|
70
|
+
})]
|
|
71
|
+
}) : null]
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* The permanent inline-end workspace rail. Stella owns its width, row rhythm,
|
|
76
|
+
* touch targets, scrolling middle region, and bottom chat position; hosts own
|
|
77
|
+
* only the actions and route state.
|
|
78
|
+
*/
|
|
79
|
+
const WorkspaceEndRail = ({ chatAction, children, className, label, overlay, topAction }) => /* @__PURE__ */ jsxs(InspectorRail, {
|
|
80
|
+
"aria-label": label,
|
|
81
|
+
className: cn("h-dvh", className),
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ jsx(InspectorRailCell, { children: topAction }),
|
|
84
|
+
/* @__PURE__ */ jsx(InspectorRailContent, { children }),
|
|
85
|
+
overlay,
|
|
86
|
+
/* @__PURE__ */ jsx(InspectorRailFooter, { children: chatAction.status === "enabled" ? /* @__PURE__ */ jsx(InspectorRailIconButton, {
|
|
87
|
+
"aria-label": chatAction.label,
|
|
88
|
+
onClick: chatAction.onActivate,
|
|
89
|
+
title: chatAction.label,
|
|
90
|
+
children: /* @__PURE__ */ jsx(MessageSquarePlusIcon, {
|
|
91
|
+
"aria-hidden": "true",
|
|
92
|
+
className: "size-4"
|
|
93
|
+
})
|
|
94
|
+
}) : /* @__PURE__ */ jsx(InspectorRailIconButton, {
|
|
95
|
+
"aria-label": `${chatAction.label}: ${chatAction.reason}`,
|
|
96
|
+
disabled: true,
|
|
97
|
+
title: chatAction.reason,
|
|
98
|
+
children: /* @__PURE__ */ jsx(MessageSquarePlusIcon, {
|
|
99
|
+
"aria-hidden": "true",
|
|
100
|
+
className: "size-4"
|
|
101
|
+
})
|
|
102
|
+
}) })
|
|
103
|
+
]
|
|
104
|
+
});
|
|
105
|
+
//#endregion
|
|
106
|
+
export { WorkspaceEndRail, WorkspaceShell };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,10 +3,9 @@ import { CalendarDateRange, ResourceCalendarLaneLayout, ResourceCalendarLanePlac
|
|
|
3
3
|
import { ResourceCalendar, ResourceCalendarColumn, ResourceCalendarEntry, ResourceCalendarEntryTone, ResourceCalendarResource } from "./calendar/resource-calendar.js";
|
|
4
4
|
import "./calendar/index.js";
|
|
5
5
|
import { Accordion, AccordionContent as AccordionPanel, AccordionItem, AccordionTrigger } from "./components/accordion.js";
|
|
6
|
-
import { OVERLAY_LAYER_CLASS_NAMES, OverlayLayer } from "./lib/overlay-layer.js";
|
|
6
|
+
import { BOARD_DRAG_OVERLAY_Z_INDEX, OVERLAY_LAYER_CLASS_NAMES, OverlayLayer } from "./lib/overlay-layer.js";
|
|
7
7
|
import { AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogContent as AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport } from "./components/alert-dialog.js";
|
|
8
8
|
import { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator } from "./components/application-rail.js";
|
|
9
|
-
import { ApplicationShell, ApplicationShellProps } from "./components/application-shell.js";
|
|
10
9
|
import { Avatar, AvatarFallback, AvatarImage } from "./components/avatar.js";
|
|
11
10
|
import { BidiDirection, BidiText, BidiTextProps, UserText } from "./components/bidi-text.js";
|
|
12
11
|
import { DiscordLogoIcon, GitHubLogoIcon } from "./components/brand-icons.js";
|
|
@@ -52,6 +51,7 @@ import { SortDirection, SortableHead, Table, TableBody, TableCaption, TableCell,
|
|
|
52
51
|
import { Tabs, TabsContent as TabsPanel, TabsList, TabsTab } from "./components/tabs.js";
|
|
53
52
|
import { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastPosition, ToastProvider, stellaToast } from "./components/toast.js";
|
|
54
53
|
import { Tooltip, TooltipContent as TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
|
|
54
|
+
import { WorkspaceCompactNavigation, WorkspaceEndRail, WorkspaceEndRailChatAction, WorkspaceEndRailProps, WorkspaceNavigation, WorkspaceShell, WorkspaceShellProps, WorkspaceTopBarContext } from "./components/workspace-shell.js";
|
|
55
55
|
import { TableColumnCapabilities, TableColumnDescriptor, TableSchema, duplicateColumnIds, findTableColumn, hideableColumnIds, sortableColumnIds, tableColumnIds, tableColumnSizing, visibleColumnIds } from "./data-table/schema.js";
|
|
56
56
|
import { DataTable, DataTableAriaSort, DataTableColumn, DataTableProps, DataTableRowAction } from "./data-table/table.js";
|
|
57
57
|
import "./data-table/index.js";
|
|
@@ -60,7 +60,7 @@ import { contentDir, isStructuredInputType, useContentDir } from "./hooks/use-co
|
|
|
60
60
|
import { useLatest } from "./hooks/use-latest.js";
|
|
61
61
|
import { useIsMobile } from "./hooks/use-mobile.js";
|
|
62
62
|
import { useViewportWidth } from "./hooks/use-viewport-width.js";
|
|
63
|
-
import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./inspector/chrome.js";
|
|
63
|
+
import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./inspector/chrome.js";
|
|
64
64
|
import { InspectorDock } from "./inspector/dock.js";
|
|
65
65
|
import { InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs } from "./inspector/tabs.js";
|
|
66
66
|
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./inspector/layout-tokens.js";
|
|
@@ -70,14 +70,15 @@ import "./inspector/index.js";
|
|
|
70
70
|
import { KanbanCardFieldSelection, selectKanbanCardFieldIds } from "./kanban/card-properties.js";
|
|
71
71
|
import { KanbanCardShell, KanbanCardShellProps } from "./kanban/card-shell.js";
|
|
72
72
|
import { KanbanColumnHeader, KanbanColumnHeaderProps } from "./kanban/column-header.js";
|
|
73
|
-
import {
|
|
73
|
+
import { KANBAN_BOARD_COLLISION_DETECTION, KanbanCellVirtualNavigation, KanbanSortableCellPosition, KanbanVirtualScrollRequest, kanbanKeyboardCoordinates } from "./kanban/sortable-interactions.logic.js";
|
|
74
|
+
import { KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KanbanCardDragSurface, KanbanCardDragSurfaceProps, KanbanDragCancelEvent, KanbanDragEndEvent, KanbanDragHandle, KanbanDragHandleProps, KanbanDragOverEvent, KanbanDragStartEvent, KanbanSortableActivationMode, KanbanSortableBindings, KanbanSortableBoard, KanbanSortableBoardProps, KanbanSortableColumns, KanbanSortableColumnsProps, KanbanSortableList, KanbanSortableListProps, UseKanbanDropTargetOptions, UseKanbanSortableOptions, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors } from "./kanban/sortable-interactions.js";
|
|
74
75
|
import { KANBAN_DIRECTIONS, KANBAN_HORIZONTAL_EDGES, KanbanDirection, KanbanHorizontalEdge, getKanbanHorizontalEdge } from "./kanban/sortable-edge.js";
|
|
75
76
|
import { KANBAN_BOARD_AUTO_SCROLL_SOURCES, RegisterKanbanBoardAutoScrollOptions, RegisterKanbanCardDragOptions, registerKanbanBoardAutoScroll, registerKanbanCardDrag } from "./kanban/drag-interactions.js";
|
|
76
77
|
import { ColorVariants, OptionColor, emptyColor, optionColors, resolveOptionColor } from "./lib/option-color.js";
|
|
77
78
|
import { KanbanBuiltInGroup, KanbanGroup, KanbanGroupOption, KanbanGrouping, KanbanSchema, ResolveKanbanGroupingParams, getKanbanGroupingPropertyId, getKanbanGroups, isKanbanGroupingRenderable, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanRows } from "./kanban/grouping.js";
|
|
78
79
|
import { BuildKanbanBoardMatrixParams, CreateKanbanDropIntentParams, KANBAN_BOARD_AXES, KanbanBoardAxis, KanbanBoardCell, KanbanBoardCoordinate, KanbanBoardLane, KanbanBoardMatrix, KanbanDropAxisChange, KanbanDropIntent, OrderKanbanCellsByColumnsParams, ResolveKanbanGroupValueParams, buildKanbanBoardMatrix, createKanbanDropIntent, orderKanbanCellsByColumns } from "./kanban/matrix.js";
|
|
79
80
|
import { KanbanSubgroupBoard, KanbanSubgroupBoardProps, KanbanSubgroupCellContext, KanbanSubgroupColumnHeaderContext, KanbanSubgroupLaneIdentityContext } from "./kanban/subgroup-board.js";
|
|
80
|
-
import { KANBAN_VIRTUAL_CELL_PAGINATION, KanbanVirtualCell, KanbanVirtualCellPagination, KanbanVirtualCellProps } from "./kanban/virtual-cell.js";
|
|
81
|
+
import { KANBAN_VIRTUAL_CELL_PAGINATION, KanbanVirtualCell, KanbanVirtualCellPagination, KanbanVirtualCellProps, KanbanVirtualCellSortableContext } from "./kanban/virtual-cell.js";
|
|
81
82
|
import "./kanban/index.js";
|
|
82
83
|
import { getInitials } from "./lib/initials.js";
|
|
83
84
|
import { cn, composeRefs } from "./lib/utils.js";
|
|
@@ -89,4 +90,4 @@ import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffS
|
|
|
89
90
|
import { ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone } from "./review/review-out-of-date-notice.js";
|
|
90
91
|
import { ReviewStatusBadge, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant } from "./review/review-status-badge.js";
|
|
91
92
|
import { ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusDot, reviewSeverityTone } from "./review/review-severity-dot.js";
|
|
92
|
-
export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, ApplicationShell, type ApplicationShellProps, Avatar, AvatarFallback, AvatarImage, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_DIRECTIONS, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardCoordinate, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDirection, KanbanDragHandle, type KanbanDragHandleProps, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanHorizontalEdge, type KanbanSchema, type KanbanSortableBindings, KanbanSortableBoard, type KanbanSortableBoardProps, KanbanSortableColumns, type KanbanSortableColumnsProps, KanbanSortableList, type KanbanSortableListProps, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, Label, MenuPreviewLayout, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, SheetTitle, SheetTrigger, Skeleton, type SortDirection, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, type UseKanbanSortableOptions, UserText, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, findTableColumn, getFirstWeekday, getInitials, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanSortable, useKanbanSortableSensors, useLatest, useViewportWidth, visibleColumnIds };
|
|
93
|
+
export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, InspectorTitle, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardCoordinate, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, KanbanCardDragSurface, type KanbanCardDragSurfaceProps, type KanbanCardFieldSelection, KanbanCardShell, type KanbanCardShellProps, type KanbanCellVirtualNavigation, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDirection, type KanbanDragCancelEvent, type KanbanDragEndEvent, KanbanDragHandle, type KanbanDragHandleProps, type KanbanDragOverEvent, type KanbanDragStartEvent, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanHorizontalEdge, type KanbanSchema, type KanbanSortableActivationMode, type KanbanSortableBindings, KanbanSortableBoard, type KanbanSortableBoardProps, type KanbanSortableCellPosition, KanbanSortableColumns, type KanbanSortableColumnsProps, KanbanSortableList, type KanbanSortableListProps, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, type KanbanVirtualCellSortableContext, type KanbanVirtualScrollRequest, Label, MenuPreviewLayout, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, SheetTitle, SheetTrigger, Skeleton, type SortDirection, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, type UseKanbanDropTargetOptions, type UseKanbanSortableOptions, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, findTableColumn, getFirstWeekday, getInitials, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, kanbanKeyboardCoordinates, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, parsePersistedPaneWidth, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, useComboboxFilter, useContentDir, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors, useLatest, useViewportWidth, visibleColumnIds };
|