@stll/ui 0.57.0 → 0.58.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/dist/calendar/day-calendar.d.ts +85 -0
- package/dist/calendar/day-calendar.js +465 -0
- package/dist/calendar/day-calendar.logic.d.ts +113 -0
- package/dist/calendar/day-calendar.logic.js +235 -0
- package/dist/components/identity-text.d.ts +9 -0
- package/dist/components/identity-text.js +72 -0
- package/dist/components/menu.d.ts +2 -1
- package/dist/components/menu.js +8 -1
- package/dist/components/sidebar.js +2 -1
- package/dist/components/stella-mark.js +5 -4
- package/dist/components/stella-mark.native.d.ts +9 -0
- package/dist/components/stella-mark.native.js +28 -0
- package/dist/components/stella-mark.shared.d.ts +6 -0
- package/dist/components/stella-mark.shared.js +7 -0
- package/dist/components/tooltip.d.ts +11 -1
- package/dist/components/tooltip.js +13 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/styles/inline-rename.css +2 -2
- package/package.json +18 -2
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { Result, panic } from "better-result";
|
|
2
|
+
import { Temporal } from "temporal-polyfill/full";
|
|
3
|
+
//#region src/calendar/day-calendar.logic.ts
|
|
4
|
+
const DAY_CALENDAR_GRANULARITIES = [
|
|
5
|
+
15,
|
|
6
|
+
30,
|
|
7
|
+
60
|
|
8
|
+
];
|
|
9
|
+
/**
|
|
10
|
+
* Height of one grid slot. Coarser grids get taller slots, but not
|
|
11
|
+
* proportionally: an hour stays tall enough for a two-line block.
|
|
12
|
+
*/
|
|
13
|
+
const DAY_CALENDAR_SLOT_HEIGHT_PX = {
|
|
14
|
+
15: 22,
|
|
15
|
+
30: 32,
|
|
16
|
+
60: 44
|
|
17
|
+
};
|
|
18
|
+
const MINUTE_MS = 6e4;
|
|
19
|
+
const HOUR_MS = 60 * MINUTE_MS;
|
|
20
|
+
const ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/u;
|
|
21
|
+
const granularityMs = (granularity) => granularity * MINUTE_MS;
|
|
22
|
+
/**
|
|
23
|
+
* The instants a day view covers, from `startHour` to `endHour` wall-clock
|
|
24
|
+
* time in `timeZone`. A daylight-saving day is an hour shorter or longer;
|
|
25
|
+
* the view stays linear in real time. Hours wholly inside a daylight-saving
|
|
26
|
+
* gap resolve both ends to the same instant; the view then covers the hour
|
|
27
|
+
* after the gap rather than collapsing to zero height.
|
|
28
|
+
*/
|
|
29
|
+
const getDayBounds = ({ date, endHour, startHour, timeZone }) => {
|
|
30
|
+
if (!Number.isInteger(startHour) || !Number.isInteger(endHour) || startHour < 0 || endHour > 24 || startHour >= endHour) panic("Day calendar hours must be whole hours with 0 <= start < end <= 24");
|
|
31
|
+
const plainDate = ISO_DATE_PATTERN.test(date) ? Result.try(() => Temporal.PlainDate.from(date)).unwrapOr(null) : null;
|
|
32
|
+
if (plainDate === null) panic("Day calendar dates must use normalized YYYY-MM-DD values");
|
|
33
|
+
const zonedStart = (day, hour) => day.toZonedDateTime({
|
|
34
|
+
plainTime: { hour },
|
|
35
|
+
timeZone
|
|
36
|
+
}).epochMilliseconds;
|
|
37
|
+
const startMs = zonedStart(plainDate, startHour);
|
|
38
|
+
const endMs = endHour === 24 ? zonedStart(plainDate.add({ days: 1 }), 0) : zonedStart(plainDate, endHour);
|
|
39
|
+
return {
|
|
40
|
+
endMs: endMs > startMs ? endMs : startMs + HOUR_MS,
|
|
41
|
+
startMs
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Whether the wall-clock time at `ms` occurs twice in `timeZone`, as in the
|
|
46
|
+
* repeated hour of a fall-back day; only its UTC offset tells it apart from
|
|
47
|
+
* its twin. A wall time read from an instant is never in a gap, so the two
|
|
48
|
+
* resolutions differ only for a repeated one.
|
|
49
|
+
*/
|
|
50
|
+
const isRepeatedWallTime = (ms, timeZone) => {
|
|
51
|
+
const wallTime = Temporal.Instant.fromEpochMilliseconds(ms).toZonedDateTimeISO(timeZone).toPlainDateTime();
|
|
52
|
+
return wallTime.toZonedDateTime(timeZone, { disambiguation: "earlier" }).epochMilliseconds !== wallTime.toZonedDateTime(timeZone, { disambiguation: "later" }).epochMilliseconds;
|
|
53
|
+
};
|
|
54
|
+
/** One instant per elapsed hour from the day's start, for hour labels. */
|
|
55
|
+
const getHourTicks = (bounds) => {
|
|
56
|
+
const ticks = [];
|
|
57
|
+
for (let tick = bounds.startMs; tick < bounds.endMs; tick += HOUR_MS) ticks.push(tick);
|
|
58
|
+
return ticks;
|
|
59
|
+
};
|
|
60
|
+
const timeToOffset = (ms, { granularity, bounds }) => (ms - bounds.startMs) / granularityMs(granularity) * DAY_CALENDAR_SLOT_HEIGHT_PX[granularity];
|
|
61
|
+
const offsetToTime = (offsetPx, { granularity, bounds }) => bounds.startMs + offsetPx / DAY_CALENDAR_SLOT_HEIGHT_PX[granularity] * granularityMs(granularity);
|
|
62
|
+
const boundsHeight = (options) => timeToOffset(options.bounds.endMs, options);
|
|
63
|
+
const clampToBounds = (ms, bounds) => Math.min(bounds.endMs, Math.max(bounds.startMs, ms));
|
|
64
|
+
const SNAP_ROUNDING = {
|
|
65
|
+
ceil: Math.ceil,
|
|
66
|
+
floor: Math.floor,
|
|
67
|
+
nearest: Math.round
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Snaps to the slot grid, which starts at the day's first hour (a whole
|
|
71
|
+
* wall-clock hour), then clamps into the day. Idempotent: a snapped
|
|
72
|
+
* instant is a grid point or a day edge, and both snap to themselves.
|
|
73
|
+
*/
|
|
74
|
+
const snapToGrid = (ms, { direction, granularity, bounds }) => {
|
|
75
|
+
const step = granularityMs(granularity);
|
|
76
|
+
const slots = SNAP_ROUNDING[direction]((ms - bounds.startMs) / step);
|
|
77
|
+
return clampToBounds(bounds.startMs + slots * step, bounds);
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Ensures a range spans at least one slot without leaving the day. A day
|
|
81
|
+
* whose length is not a whole number of slots ends in a partial slot, so a
|
|
82
|
+
* range ending at the day's end may be shorter than a slot; its start stays
|
|
83
|
+
* on the grid.
|
|
84
|
+
*/
|
|
85
|
+
const atLeastOneSlot = (range, options) => {
|
|
86
|
+
const { bounds } = options;
|
|
87
|
+
const step = granularityMs(options.granularity);
|
|
88
|
+
const duration = range.endMs - range.startMs;
|
|
89
|
+
if (duration >= step || duration > 0 && range.endMs === bounds.endMs) return range;
|
|
90
|
+
if (range.startMs < bounds.endMs) return {
|
|
91
|
+
endMs: Math.min(bounds.endMs, range.startMs + step),
|
|
92
|
+
startMs: range.startMs
|
|
93
|
+
};
|
|
94
|
+
return {
|
|
95
|
+
endMs: bounds.endMs,
|
|
96
|
+
startMs: snapToGrid(bounds.endMs - step, {
|
|
97
|
+
...options,
|
|
98
|
+
direction: "ceil"
|
|
99
|
+
})
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* The snapped range between a drag's anchor and the pointer, in either
|
|
104
|
+
* order: the start floors and the end ceils, so the range always covers
|
|
105
|
+
* both instants.
|
|
106
|
+
*/
|
|
107
|
+
const rangeFromDrag = ({ anchorMs, pointerMs }, options) => atLeastOneSlot({
|
|
108
|
+
endMs: snapToGrid(Math.max(anchorMs, pointerMs), {
|
|
109
|
+
...options,
|
|
110
|
+
direction: "ceil"
|
|
111
|
+
}),
|
|
112
|
+
startMs: snapToGrid(Math.min(anchorMs, pointerMs), {
|
|
113
|
+
...options,
|
|
114
|
+
direction: "floor"
|
|
115
|
+
})
|
|
116
|
+
}, options);
|
|
117
|
+
/** Moves a range by whole slots, keeping its duration inside the day. */
|
|
118
|
+
const moveRange = (range, slots, { granularity, bounds }) => {
|
|
119
|
+
const duration = range.endMs - range.startMs;
|
|
120
|
+
const startMs = Math.min(bounds.endMs - duration, Math.max(bounds.startMs, range.startMs + slots * granularityMs(granularity)));
|
|
121
|
+
return {
|
|
122
|
+
endMs: startMs + duration,
|
|
123
|
+
startMs
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
/** Grows or shrinks a range's end by whole slots; it never drops below one slot. */
|
|
127
|
+
const extendRange = (range, slots, options) => {
|
|
128
|
+
const step = granularityMs(options.granularity);
|
|
129
|
+
const endMs = Math.min(options.bounds.endMs, Math.max(range.startMs + step, range.endMs + slots * step));
|
|
130
|
+
return atLeastOneSlot({
|
|
131
|
+
endMs,
|
|
132
|
+
startMs: range.startMs
|
|
133
|
+
}, options);
|
|
134
|
+
};
|
|
135
|
+
/** A one-slot range at the snapped instant, used to start a keyboard selection. */
|
|
136
|
+
const slotAt = (ms, options) => rangeFromDrag({
|
|
137
|
+
anchorMs: ms,
|
|
138
|
+
pointerMs: ms
|
|
139
|
+
}, options);
|
|
140
|
+
/**
|
|
141
|
+
* Places overlapping ranges side by side. Ranges that overlap transitively
|
|
142
|
+
* form a cluster; each takes the first lane free at its start, and every
|
|
143
|
+
* member of a cluster shares the cluster's lane count, so their widths match.
|
|
144
|
+
*/
|
|
145
|
+
const layoutOverlaps = (ranges) => {
|
|
146
|
+
const sorted = ranges.toSorted((left, right) => left.startMs - right.startMs || right.endMs - left.endMs || compareIds(left.id, right.id));
|
|
147
|
+
const placements = /* @__PURE__ */ new Map();
|
|
148
|
+
const seen = /* @__PURE__ */ new Set();
|
|
149
|
+
let cluster = [];
|
|
150
|
+
let laneEnds = [];
|
|
151
|
+
let clusterEnd = Number.NEGATIVE_INFINITY;
|
|
152
|
+
const closeCluster = () => {
|
|
153
|
+
for (const { id, lane } of cluster) placements.set(id, {
|
|
154
|
+
lane,
|
|
155
|
+
laneCount: laneEnds.length
|
|
156
|
+
});
|
|
157
|
+
cluster = [];
|
|
158
|
+
laneEnds = [];
|
|
159
|
+
};
|
|
160
|
+
for (const range of sorted) {
|
|
161
|
+
if (seen.has(range.id)) panic("Day calendar block ids must be unique within a column");
|
|
162
|
+
seen.add(range.id);
|
|
163
|
+
if (range.startMs >= clusterEnd) closeCluster();
|
|
164
|
+
const freeLane = laneEnds.findIndex((end) => end <= range.startMs);
|
|
165
|
+
const lane = freeLane === -1 ? laneEnds.length : freeLane;
|
|
166
|
+
laneEnds[lane] = range.endMs;
|
|
167
|
+
cluster.push({
|
|
168
|
+
id: range.id,
|
|
169
|
+
lane
|
|
170
|
+
});
|
|
171
|
+
clusterEnd = Math.max(clusterEnd, range.endMs);
|
|
172
|
+
}
|
|
173
|
+
closeCluster();
|
|
174
|
+
return placements;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Collapses runs of rapid switching. Consecutive segments shorter than
|
|
178
|
+
* `thresholdMs` that touch or overlap form one `mixed` entry listing its
|
|
179
|
+
* sources in time order; a lone short segment stays as it is. Every input
|
|
180
|
+
* segment lands in exactly one output entry, and the time the output covers
|
|
181
|
+
* equals the time the input covers. Output ids are unique: a `mixed` id
|
|
182
|
+
* derives from its first source and takes a numeric suffix when an input or
|
|
183
|
+
* an earlier entry already uses it.
|
|
184
|
+
*/
|
|
185
|
+
const mergeShortSegments = (segments, { thresholdMs }) => {
|
|
186
|
+
const sorted = segments.toSorted((left, right) => left.startMs - right.startMs || left.endMs - right.endMs || compareIds(left.id, right.id));
|
|
187
|
+
const merged = [];
|
|
188
|
+
const takenIds = new Set(segments.map(({ id }) => id));
|
|
189
|
+
let run = [];
|
|
190
|
+
let runEnd = Number.NEGATIVE_INFINITY;
|
|
191
|
+
const mixedId = (first) => {
|
|
192
|
+
const base = `mixed:${first.id}`;
|
|
193
|
+
let id = base;
|
|
194
|
+
for (let suffix = 2; takenIds.has(id); suffix += 1) id = `${base}:${String(suffix)}`;
|
|
195
|
+
takenIds.add(id);
|
|
196
|
+
return id;
|
|
197
|
+
};
|
|
198
|
+
const flushRun = () => {
|
|
199
|
+
const first = run.at(0);
|
|
200
|
+
if (first !== void 0 && run.length === 1) merged.push({
|
|
201
|
+
segment: first,
|
|
202
|
+
type: "single"
|
|
203
|
+
});
|
|
204
|
+
if (first !== void 0 && run.length > 1) merged.push({
|
|
205
|
+
endMs: runEnd,
|
|
206
|
+
id: mixedId(first),
|
|
207
|
+
sources: run,
|
|
208
|
+
startMs: first.startMs,
|
|
209
|
+
type: "mixed"
|
|
210
|
+
});
|
|
211
|
+
run = [];
|
|
212
|
+
runEnd = Number.NEGATIVE_INFINITY;
|
|
213
|
+
};
|
|
214
|
+
for (const segment of sorted) {
|
|
215
|
+
if (segment.endMs - segment.startMs >= thresholdMs) {
|
|
216
|
+
flushRun();
|
|
217
|
+
merged.push({
|
|
218
|
+
segment,
|
|
219
|
+
type: "single"
|
|
220
|
+
});
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (segment.startMs > runEnd) flushRun();
|
|
224
|
+
run.push(segment);
|
|
225
|
+
runEnd = Math.max(runEnd, segment.endMs);
|
|
226
|
+
}
|
|
227
|
+
flushRun();
|
|
228
|
+
return merged;
|
|
229
|
+
};
|
|
230
|
+
function compareIds(left, right) {
|
|
231
|
+
if (left < right) return -1;
|
|
232
|
+
return left > right ? 1 : 0;
|
|
233
|
+
}
|
|
234
|
+
//#endregion
|
|
235
|
+
export { DAY_CALENDAR_GRANULARITIES, DAY_CALENDAR_SLOT_HEIGHT_PX, boundsHeight, clampToBounds, extendRange, getDayBounds, getHourTicks, granularityMs, isRepeatedWallTime, layoutOverlaps, mergeShortSegments, moveRange, offsetToTime, rangeFromDrag, slotAt, snapToGrid, timeToOffset };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/components/identity-text.d.ts
|
|
2
|
+
type IdentityTextProps = {
|
|
3
|
+
children: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
};
|
|
6
|
+
/** Discloses clipped names on hover and when their owning control receives focus. */
|
|
7
|
+
export declare const IdentityText: ({ children, className }: IdentityTextProps) => import("react").JSX.Element;
|
|
8
|
+
//#endregion
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
|
+
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "./tooltip.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useCallback, useId, useState } from "react";
|
|
6
|
+
//#region src/components/identity-text.tsx
|
|
7
|
+
/** Discloses clipped names on hover and when their owning control receives focus. */
|
|
8
|
+
const IdentityText = ({ children, className }) => {
|
|
9
|
+
const triggerId = useId();
|
|
10
|
+
const [overflow, setOverflow] = useState(false);
|
|
11
|
+
const [hasFocusOwner, setHasFocusOwner] = useState(false);
|
|
12
|
+
const [open, setOpen] = useState(false);
|
|
13
|
+
const textRef = useCallback((node) => {
|
|
14
|
+
if (node === null) return;
|
|
15
|
+
const measure = () => setOverflow(node.scrollWidth > node.clientWidth);
|
|
16
|
+
const observer = new ResizeObserver(measure);
|
|
17
|
+
observer.observe(node);
|
|
18
|
+
const contentObserver = new MutationObserver(measure);
|
|
19
|
+
contentObserver.observe(node, {
|
|
20
|
+
childList: true,
|
|
21
|
+
characterData: true,
|
|
22
|
+
subtree: true
|
|
23
|
+
});
|
|
24
|
+
measure();
|
|
25
|
+
const focusOwner = node.parentElement?.closest("a[href],button,[tabindex]");
|
|
26
|
+
setHasFocusOwner(focusOwner !== null && focusOwner !== void 0);
|
|
27
|
+
const show = () => setOpen(true);
|
|
28
|
+
const hide = () => setOpen(false);
|
|
29
|
+
focusOwner?.addEventListener("focus", show);
|
|
30
|
+
focusOwner?.addEventListener("blur", hide);
|
|
31
|
+
return () => {
|
|
32
|
+
observer.disconnect();
|
|
33
|
+
contentObserver.disconnect();
|
|
34
|
+
focusOwner?.removeEventListener("focus", show);
|
|
35
|
+
focusOwner?.removeEventListener("blur", hide);
|
|
36
|
+
};
|
|
37
|
+
}, []);
|
|
38
|
+
return /* @__PURE__ */ jsxs(Tooltip, {
|
|
39
|
+
disabled: !overflow,
|
|
40
|
+
onOpenChange: setOpen,
|
|
41
|
+
open: overflow && open,
|
|
42
|
+
triggerId,
|
|
43
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
44
|
+
id: triggerId,
|
|
45
|
+
onClick: () => setOpen(true),
|
|
46
|
+
onKeyDown: (event) => {
|
|
47
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
setOpen(true);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
render: /* @__PURE__ */ jsx("span", {
|
|
53
|
+
className: cn("focus-visible:ring-ring block min-w-0 truncate outline-none [unicode-bidi:isolate] focus-visible:ring-2", className),
|
|
54
|
+
dir: "auto",
|
|
55
|
+
ref: textRef,
|
|
56
|
+
role: overflow && !hasFocusOwner ? "button" : void 0,
|
|
57
|
+
tabIndex: overflow && !hasFocusOwner ? 0 : void 0
|
|
58
|
+
}),
|
|
59
|
+
children
|
|
60
|
+
}), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
61
|
+
className: "max-w-sm",
|
|
62
|
+
role: "tooltip",
|
|
63
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
64
|
+
className: "block max-w-sm wrap-break-word",
|
|
65
|
+
dir: "auto",
|
|
66
|
+
children
|
|
67
|
+
})
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
//#endregion
|
|
72
|
+
export { IdentityText };
|
|
@@ -7,6 +7,7 @@ declare const MenuPortal: React$1.ForwardRefExoticComponent<Omit<import("@base-u
|
|
|
7
7
|
declare function MenuTrigger({ tooltip, ...props }: Menu$1.Trigger.Props & {
|
|
8
8
|
tooltip?: React$1.ReactNode;
|
|
9
9
|
}): React$1.JSX.Element;
|
|
10
|
+
declare const MenuAnchor: () => React$1.JSX.Element;
|
|
10
11
|
declare const MenuPopup: ({ children, className, sideOffset, align, alignOffset, side, anchor, collisionAvoidance, header, viewportClassName, ...props }: Menu$1.Popup.Props & {
|
|
11
12
|
/** Content pinned above the scrolling list, such as a search field. It sits
|
|
12
13
|
* outside the list, so a row scrolled into view can never hide under it. */
|
|
@@ -50,4 +51,4 @@ declare const MenuSubPopup: ({ className, sideOffset, alignOffset, align, ...pro
|
|
|
50
51
|
alignOffset?: Menu$1.Positioner.Props["alignOffset"];
|
|
51
52
|
}) => React$1.JSX.Element;
|
|
52
53
|
//#endregion
|
|
53
|
-
export { 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 };
|
|
54
|
+
export { 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, MenuAnchor };
|
package/dist/components/menu.js
CHANGED
|
@@ -20,6 +20,13 @@ function MenuTrigger({ tooltip, ...props }) {
|
|
|
20
20
|
})
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
+
const MenuAnchor = () => /* @__PURE__ */ jsx(Menu$1.Trigger, {
|
|
24
|
+
"aria-hidden": "true",
|
|
25
|
+
"data-slot": "menu-anchor",
|
|
26
|
+
nativeButton: false,
|
|
27
|
+
render: /* @__PURE__ */ jsx("span", { hidden: true }),
|
|
28
|
+
tabIndex: -1
|
|
29
|
+
});
|
|
23
30
|
const MenuPopup = ({ children, className, sideOffset = 4, align, alignOffset, side = "bottom", anchor, collisionAvoidance, header, viewportClassName, ...props }) => /* @__PURE__ */ jsx(Menu$1.Portal, { children: /* @__PURE__ */ jsx(Menu$1.Positioner, {
|
|
24
31
|
align: align ?? (anchor ? "start" : "center"),
|
|
25
32
|
alignOffset,
|
|
@@ -150,4 +157,4 @@ const MenuSubPopup = ({ className, sideOffset = 0, alignOffset, align = "start",
|
|
|
150
157
|
});
|
|
151
158
|
};
|
|
152
159
|
//#endregion
|
|
153
|
-
export { 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 };
|
|
160
|
+
export { 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, MenuAnchor };
|
|
@@ -259,7 +259,7 @@ const SidebarGroup = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
|
259
259
|
});
|
|
260
260
|
const SidebarGroupLabel = ({ className, asChild = false, ...props }) => {
|
|
261
261
|
return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
|
|
262
|
-
className: cn("text-sidebar-foreground
|
|
262
|
+
className: cn("text-sidebar-foreground ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-in-out focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:hidden", className),
|
|
263
263
|
"data-sidebar": "group-label",
|
|
264
264
|
"data-slot": "sidebar-group-label",
|
|
265
265
|
...props
|
|
@@ -385,6 +385,7 @@ const SidebarMenuSub = ({ className, ...props }) => /* @__PURE__ */ jsx("ul", {
|
|
|
385
385
|
const SidebarMenuSubItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", {
|
|
386
386
|
className: cn("group/menu-sub-item relative", className),
|
|
387
387
|
"data-sidebar": "menu-sub-item",
|
|
388
|
+
"data-context-menu-target": "",
|
|
388
389
|
"data-slot": "sidebar-menu-sub-item",
|
|
389
390
|
...props
|
|
390
391
|
});
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { STELLA_MARK } from "./stella-mark.shared.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
//#region src/components/stella-mark.tsx
|
|
3
|
-
const StellaMark = (props) => /* @__PURE__ */
|
|
4
|
+
const StellaMark = (props) => /* @__PURE__ */ jsx("svg", {
|
|
4
5
|
"aria-hidden": "true",
|
|
5
6
|
fill: "currentColor",
|
|
6
|
-
viewBox:
|
|
7
|
+
viewBox: STELLA_MARK.viewBox,
|
|
7
8
|
xmlns: "http://www.w3.org/2000/svg",
|
|
8
9
|
...props,
|
|
9
|
-
children:
|
|
10
|
+
children: STELLA_MARK.paths.map((d) => /* @__PURE__ */ jsx("path", { d }, d))
|
|
10
11
|
});
|
|
11
12
|
//#endregion
|
|
12
13
|
export { StellaMark };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/components/stella-mark.native.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The web's `StellaMark` (./stella-mark.tsx) on a phone: the same paths, in
|
|
4
|
+
* the foreground colour, `size` points tall. Decorative, like the web's.
|
|
5
|
+
*/
|
|
6
|
+
export declare const StellaMark: ({ size }: {
|
|
7
|
+
size?: number | undefined;
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
|
+
//#endregion
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { STELLA_MARK } from "./stella-mark.shared.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import Svg, { Path } from "react-native-svg";
|
|
4
|
+
import { useCSSVariable } from "uniwind";
|
|
5
|
+
//#region src/components/stella-mark.native.tsx
|
|
6
|
+
const BOX = STELLA_MARK.viewBox.split(" ").map(Number);
|
|
7
|
+
const WIDTH = BOX[2] ?? 1;
|
|
8
|
+
const HEIGHT = BOX[3] ?? 1;
|
|
9
|
+
/**
|
|
10
|
+
* The web's `StellaMark` (./stella-mark.tsx) on a phone: the same paths, in
|
|
11
|
+
* the foreground colour, `size` points tall. Decorative, like the web's.
|
|
12
|
+
*/
|
|
13
|
+
const StellaMark = ({ size = 28 }) => {
|
|
14
|
+
const foreground = useCSSVariable("--color-foreground");
|
|
15
|
+
return /* @__PURE__ */ jsx(Svg, {
|
|
16
|
+
accessibilityElementsHidden: true,
|
|
17
|
+
height: size,
|
|
18
|
+
importantForAccessibility: "no-hide-descendants",
|
|
19
|
+
viewBox: STELLA_MARK.viewBox,
|
|
20
|
+
width: size * WIDTH / HEIGHT,
|
|
21
|
+
children: STELLA_MARK.paths.map((d) => /* @__PURE__ */ jsx(Path, {
|
|
22
|
+
d,
|
|
23
|
+
fill: typeof foreground === "string" ? foreground : "currentColor"
|
|
24
|
+
}, d))
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { StellaMark };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/components/stella-mark.shared.d.ts
|
|
2
|
+
export declare const STELLA_MARK: {
|
|
3
|
+
readonly viewBox: "0 0 40 41";
|
|
4
|
+
readonly paths: readonly ["M6.58 11.3 16.69 5.05a5.9 5.9 0 0 1 6.62.01l14.68 9.07V9.26L25.52 1.55A11.8 11.8 0 0 0 20 0c-1.97 0-3.88.54-5.53 1.56L4.37 7.81A9.3 9.3 0 0 0 0 15.61a9.3 9.3 0 0 0 4.37 7.8l3.26 2.02-.01.01 11.15 6.9c.14.09.27.16.39.2.68.26 1.42.19 2.03-.19l9.59-5.93.1-.07 2.07-1.28-2.82-1.72-1.1-.69-9.02 5.56-.41-.24-13.01-8.05a5.57 5.57 0 0 1-2.41-4.31c0-1.79.88-3.36 2.41-4.3Z", "M33.34 29.25 23.24 35.5a5.9 5.9 0 0 1-6.63-.01L1.94 26.43v4.86l12.47 7.71a11.8 11.8 0 0 0 5.52 1.55c1.97 0 3.88-.54 5.53-1.56l10.1-6.25a9.3 9.3 0 0 0 4.37-7.8 9.3 9.3 0 0 0-4.37-7.8l-3.26-2.02.01-.01-11.15-6.9a1.6 1.6 0 0 0-.39-.2 1.64 1.64 0 0 0-2.03.19l-9.59 5.93-.1.07-2.07 1.28 2.82 1.72 1.1.69 9.02-5.56.41.24 13.01 8.05a5.57 5.57 0 0 1 2.41 4.31c0 1.79-.88 3.36-2.41 4.3Z"];
|
|
5
|
+
};
|
|
6
|
+
//#endregion
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/components/stella-mark.shared.ts
|
|
2
|
+
const STELLA_MARK = {
|
|
3
|
+
viewBox: "0 0 40 41",
|
|
4
|
+
paths: ["M6.58 11.3 16.69 5.05a5.9 5.9 0 0 1 6.62.01l14.68 9.07V9.26L25.52 1.55A11.8 11.8 0 0 0 20 0c-1.97 0-3.88.54-5.53 1.56L4.37 7.81A9.3 9.3 0 0 0 0 15.61a9.3 9.3 0 0 0 4.37 7.8l3.26 2.02-.01.01 11.15 6.9c.14.09.27.16.39.2.68.26 1.42.19 2.03-.19l9.59-5.93.1-.07 2.07-1.28-2.82-1.72-1.1-.69-9.02 5.56-.41-.24-13.01-8.05a5.57 5.57 0 0 1-2.41-4.31c0-1.79.88-3.36 2.41-4.3Z", "M33.34 29.25 23.24 35.5a5.9 5.9 0 0 1-6.63-.01L1.94 26.43v4.86l12.47 7.71a11.8 11.8 0 0 0 5.52 1.55c1.97 0 3.88-.54 5.53-1.56l10.1-6.25a9.3 9.3 0 0 0 4.37-7.8 9.3 9.3 0 0 0-4.37-7.8l-3.26-2.02.01-.01-11.15-6.9a1.6 1.6 0 0 0-.39-.2 1.64 1.64 0 0 0-2.03.19l-9.59 5.93-.1.07-2.07 1.28 2.82 1.72 1.1.69 9.02-5.56.41.24 13.01 8.05a5.57 5.57 0 0 1 2.41 4.31c0 1.79-.88 3.36-2.41 4.3Z"]
|
|
5
|
+
};
|
|
6
|
+
//#endregion
|
|
7
|
+
export { STELLA_MARK };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
1
2
|
import { Tooltip as Tooltip$1 } from "@base-ui/react/tooltip";
|
|
2
3
|
//#region src/components/tooltip.d.ts
|
|
3
4
|
declare const TooltipCreateHandle: typeof Tooltip$1.createHandle;
|
|
@@ -17,10 +18,19 @@ declare const TOOLTIP_OPEN_DELAY_MS = 300;
|
|
|
17
18
|
declare const TooltipProvider: ({ delay, ...props }: Tooltip$1.Provider.Props) => import("react").JSX.Element;
|
|
18
19
|
declare const Tooltip: <Payload>(props: Tooltip$1.Root.Props<Payload>) => React.JSX.Element;
|
|
19
20
|
declare const TooltipTrigger: (props: Tooltip$1.Trigger.Props) => import("react").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* A fact read inline with the facts beside it, whose dotted rule says there
|
|
23
|
+
* is more on hover or focus. The words keep the colour and weight of the
|
|
24
|
+
* text the caller wraps them in; the trigger owns the rule, the focus ring
|
|
25
|
+
* and the touch target.
|
|
26
|
+
*/
|
|
27
|
+
declare const TooltipFactTrigger: ({ children }: {
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
}) => import("react").JSX.Element;
|
|
20
30
|
declare const TooltipPopup: ({ className, align, sideOffset, side, children, ...props }: Tooltip$1.Popup.Props & {
|
|
21
31
|
align?: Tooltip$1.Positioner.Props["align"];
|
|
22
32
|
side?: Tooltip$1.Positioner.Props["side"];
|
|
23
33
|
sideOffset?: Tooltip$1.Positioner.Props["sideOffset"];
|
|
24
34
|
}) => import("react").JSX.Element;
|
|
25
35
|
//#endregion
|
|
26
|
-
export { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger };
|
|
36
|
+
export { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger };
|
|
@@ -28,6 +28,18 @@ const TooltipTrigger = (props) => /* @__PURE__ */ jsx(Tooltip$1.Trigger, {
|
|
|
28
28
|
"data-slot": "tooltip-trigger",
|
|
29
29
|
...props
|
|
30
30
|
});
|
|
31
|
+
/**
|
|
32
|
+
* A fact read inline with the facts beside it, whose dotted rule says there
|
|
33
|
+
* is more on hover or focus. The words keep the colour and weight of the
|
|
34
|
+
* text the caller wraps them in; the trigger owns the rule, the focus ring
|
|
35
|
+
* and the touch target.
|
|
36
|
+
*/
|
|
37
|
+
const TooltipFactTrigger = ({ children }) => /* @__PURE__ */ jsx(Tooltip$1.Trigger, {
|
|
38
|
+
className: "decoration-foreground-placeholder hover:decoration-foreground-muted focus-visible:ring-ring relative cursor-default rounded-xs underline decoration-dotted underline-offset-2 focus-visible:ring-2 focus-visible:outline-none pointer-coarse:after:absolute pointer-coarse:after:-inset-3",
|
|
39
|
+
"data-slot": "tooltip-trigger",
|
|
40
|
+
type: "button",
|
|
41
|
+
children
|
|
42
|
+
});
|
|
31
43
|
const TooltipPopup = ({ className, align = "center", sideOffset = 4, side = "top", children, ...props }) => /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(Tooltip$1.Positioner, {
|
|
32
44
|
align,
|
|
33
45
|
className: cn(CONTENT_SIZED_POSITIONER_CLASS_NAME, "transition-[top,left,right,bottom,transform] data-instant:transition-none", OVERLAY_LAYER_CLASS_NAMES.popup),
|
|
@@ -47,4 +59,4 @@ const TooltipPopup = ({ className, align = "center", sideOffset = 4, side = "top
|
|
|
47
59
|
})
|
|
48
60
|
}) });
|
|
49
61
|
//#endregion
|
|
50
|
-
export { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger };
|
|
62
|
+
export { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger };
|
package/dist/index.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ import { DetailsGrid, DetailsItem } from "./components/details-grid.js";
|
|
|
30
30
|
import { DialogFormState } from "./components/dialog-form-state.js";
|
|
31
31
|
import { DirectionalIcon } from "./components/directional-icon.js";
|
|
32
32
|
import { DiscordLogoIcon, GitHubLogoIcon, XLogoIcon } from "./components/brand-icons.js";
|
|
33
|
-
import { DropdownMenu as Menu, DropdownMenuCheckboxItem as MenuCheckboxItem, DropdownMenuContent as MenuPopup, DropdownMenuCreateHandle as MenuCreateHandle, DropdownMenuGroup as MenuGroup, DropdownMenuItem as MenuItem, DropdownMenuLabel as MenuGroupLabel, DropdownMenuPortal as MenuPortal, DropdownMenuRadioGroup as MenuRadioGroup, DropdownMenuRadioItem as MenuRadioItem, DropdownMenuSeparator as MenuSeparator, DropdownMenuShortcut as MenuShortcut, DropdownMenuSub as MenuSub, DropdownMenuSubContent as MenuSubPopup, DropdownMenuSubTrigger as MenuSubTrigger, DropdownMenuTrigger as MenuTrigger } from "./components/menu.js";
|
|
33
|
+
import { DropdownMenu as Menu, DropdownMenuCheckboxItem as MenuCheckboxItem, DropdownMenuContent as MenuPopup, DropdownMenuCreateHandle as MenuCreateHandle, DropdownMenuGroup as MenuGroup, DropdownMenuItem as MenuItem, DropdownMenuLabel as MenuGroupLabel, DropdownMenuPortal as MenuPortal, DropdownMenuRadioGroup as MenuRadioGroup, DropdownMenuRadioItem as MenuRadioItem, DropdownMenuSeparator as MenuSeparator, DropdownMenuShortcut as MenuShortcut, DropdownMenuSub as MenuSub, DropdownMenuSubContent as MenuSubPopup, DropdownMenuSubTrigger as MenuSubTrigger, DropdownMenuTrigger as MenuTrigger, MenuAnchor } from "./components/menu.js";
|
|
34
34
|
import { Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity } from "./components/field.js";
|
|
35
35
|
import { FileInput, FileInputProps } from "./components/file-input.js";
|
|
36
36
|
import { Form } from "./components/form.js";
|
|
@@ -90,7 +90,7 @@ import { Skeleton } from "./components/skeleton.js";
|
|
|
90
90
|
import { SortDirection, SortableHead, Table, TableAlign, TableBody, TableCaption, TableCell, TableCellProps, TableFooter, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableInset, TableProps, TableRow, TableScroll, TableTone } from "./components/table.js";
|
|
91
91
|
import { StellaMark } from "./components/stella-mark.js";
|
|
92
92
|
import { StellaWordmarkLatin } from "./components/stella-wordmark.js";
|
|
93
|
-
import { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipContent as TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
|
|
93
|
+
import { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipContent as TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
|
|
94
94
|
import { TableColumnCapabilities, TableColumnDescriptor, TableSchema, duplicateColumnIds, findTableColumn, hideableColumnIds, sortableColumnIds, tableColumnIds, tableColumnSizing, visibleColumnIds } from "./data-table/schema.js";
|
|
95
95
|
import { Tabs, TabsContent as TabsPanel, TabsList, TabsTab } from "./components/tabs.js";
|
|
96
96
|
import { Textarea, TextareaProps } from "./components/textarea.js";
|
|
@@ -105,4 +105,4 @@ import { getInitials } from "./lib/initials.js";
|
|
|
105
105
|
import { useIsMobile } from "./hooks/use-mobile.js";
|
|
106
106
|
import { useLatest } from "./hooks/use-latest.js";
|
|
107
107
|
import { useViewportWidth } from "./hooks/use-viewport-width.js";
|
|
108
|
-
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, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, 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, CopyButton, CopyFeedback, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DIALOG_MOBILE_LAYOUT, DIALOG_SIZE_CLASS_NAMES, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, type DestructiveConfirmOutcome, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, type DialogLabels, type DialogMobileLayout, DialogPanel, DialogPortal, DialogProvider, type DialogSize, 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, FileInput, type FileInputProps, 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_EDITOR_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, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardDragPreview, type KanbanCardFieldSelection, type KanbanCardSelectionModifiers, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanSchema, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, LEGAL_TEXT_CLASS_NAME, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelTrigger, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, ResourceCalendarColumn, ResourceCalendarEntry, ResourceCalendarEntryTone, ResourceCalendarLaneLayout, ResourceCalendarLanePlacement, ResourceCalendarPlacement, ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, 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, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TOOLTIP_OPEN_DELAY_MS, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, type TableAlign, TableBody, TableCaption, TableCell, type TableCellProps, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableInset, type TableProps, TableRow, type TableSchema, type TableScroll, type TableTone, 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, TruncatedText, type TruncatedTextLines, type TruncatedTextProps, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, XLogoIcon, assertConsecutiveCalendarDates, badgeVariants, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, isTextOverflowing, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, resolveToastUpdateTimeout, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };
|
|
108
|
+
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, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, 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, CopyButton, CopyFeedback, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DIALOG_MOBILE_LAYOUT, DIALOG_SIZE_CLASS_NAMES, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, type DestructiveConfirmOutcome, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, type DialogLabels, type DialogMobileLayout, DialogPanel, DialogPortal, DialogProvider, type DialogSize, 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, FileInput, type FileInputProps, 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_EDITOR_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, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardDragPreview, type KanbanCardFieldSelection, type KanbanCardSelectionModifiers, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanSchema, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, LEGAL_TEXT_CLASS_NAME, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuAnchor, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelTrigger, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, ResourceCalendarColumn, ResourceCalendarEntry, ResourceCalendarEntryTone, ResourceCalendarLaneLayout, ResourceCalendarLanePlacement, ResourceCalendarPlacement, ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, 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, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TOOLTIP_OPEN_DELAY_MS, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, type TableAlign, TableBody, TableCaption, TableCell, type TableCellProps, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableInset, type TableProps, TableRow, type TableSchema, type TableScroll, type TableTone, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextLines, type TruncatedTextProps, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, XLogoIcon, assertConsecutiveCalendarDates, badgeVariants, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, isTextOverflowing, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, resolveToastUpdateTimeout, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };
|