@botiverse/raft-ui 0.85.0 → 0.86.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/CHANGELOG.md +13 -0
- package/dist/components/fit-toolbar/fit-toolbar.d.mts +78 -2
- package/dist/components/fit-toolbar/fit-toolbar.mjs +331 -14
- package/dist/components/fit-toolbar/fit-toolbar.recipe.mjs +30 -4
- package/dist/components/fit-toolbar/index.d.mts +2 -2
- package/dist/components/selection-toolbar/selection-toolbar.d.mts +1 -1
- package/dist/wip.d.mts +2 -2
- package/dist/wip.mjs +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
## [0.86.0](https://github.com/botiverse/raft-design/compare/v0.85.0...v0.86.0) (2026-11-10)
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
|
|
5
|
+
- **FitToolbar follows the list-toolbar rule: one thing fills each line, at most two lines** ([The toolbar over a list](https://raft-design.botiverse.build/patterns/responsive/#the-toolbar-over-a-list)). New, all optional:
|
|
6
|
+
- `FitToolbarSearch`: the search field of a list's toolbar. It fills the rest of its line and keeps at least what its icon and its whole placeholder take (measured in the field's own font, again when fonts load or the placeholder changes; `minWidth` takes a number instead), so the toolbar's other steps come first. From `collapseOrder` on it is a search icon button at the line's start that opens the field in the scope's place, More and the primary action kept at the line's end. A search with text never collapses. Esc empties it, then closes an open field; Esc that ends an input method's composition is the IME's. `clearLabel` adds a clear button that empties it and keeps focus.
|
|
7
|
+
- `FitToolbarGroup` `moreOrder` and `moreItem`: a group of how-to-show controls (sort, grouping, view) moves into More together at that step, each as its `moreItem` (a view switch as a radio choice in the menu).
|
|
8
|
+
- `FitToolbarGroup` `end`: an item pinned at the end of a scrolling group (`overflow="scroll"`), such as a filter line's Clear all ×. Without `overflow="scroll"` it is not rendered, and development warns.
|
|
9
|
+
- `FitToolbarMore` and `FitToolbarMoreItems`: the More (⋯) button, shown only while something is in it, and the items it holds. Its label comes from the page, in the page's language ("More" by default, in English).
|
|
10
|
+
- Why: a list toolbar with nothing at the start of a line left its buttons hanging, and the search was the first thing squeezed out when a page narrowed (stdrc asked Jasper to decide from research, #proj-raft-ui:f9756e85; rule in #1158).
|
|
11
|
+
- Affects: nothing for an existing toolbar. Step names (`label`, `more`, `collapse`, `wrap`, `plus`) and their order are unchanged, and toolbars that use none of the new parts lay out as before. slock's Tasks, Members, Computers, Search and Apps move onto the new parts in their own PR (#proj-raft-ui:#230).
|
|
12
|
+
- Docs: https://raft-design.botiverse.build/components/fit-toolbar/
|
|
13
|
+
|
|
1
14
|
## [0.85.0](https://github.com/botiverse/raft-design/compare/v0.84.0...v0.85.0) (2026-11-10)
|
|
2
15
|
|
|
3
16
|
### Added
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { StyledProps } from "../../lib/styled-props.mjs";
|
|
2
2
|
import { ButtonProps } from "../button/button.mjs";
|
|
3
|
+
import { InputGroupInputProps } from "../input-group/input-group.mjs";
|
|
3
4
|
import { PickerTriggerButtonProps } from "../picker-trigger-button/picker-trigger-button.mjs";
|
|
4
|
-
import { ReactElement, ReactNode, Ref } from "react";
|
|
5
|
+
import { CSSProperties, ReactElement, ReactNode, Ref } from "react";
|
|
5
6
|
import { Toolbar } from "@base-ui/react/toolbar";
|
|
6
7
|
//#region src/components/fit-toolbar/fit-toolbar.d.ts
|
|
7
8
|
/**
|
|
@@ -66,6 +67,25 @@ export declare function useFitMore(): {
|
|
|
66
67
|
};
|
|
67
68
|
/** The items in More, in their order, each as its `moreItem`: put it in More's menu. */
|
|
68
69
|
export declare function FitToolbarMoreItems(): import("react").JSX.Element[] | null;
|
|
70
|
+
export type FitToolbarMoreProps = Omit<ButtonProps, "children" | "size" | "variant" | "render" | "loading" | "loadingLabel"> & {
|
|
71
|
+
/**
|
|
72
|
+
* Its menu's trigger, which opens the menu holding `FitToolbarMoreItems`:
|
|
73
|
+
* `<DropdownMenuTrigger />`. It renders it as a toolbar button.
|
|
74
|
+
*/
|
|
75
|
+
trigger: ReactElement<{
|
|
76
|
+
render?: unknown;
|
|
77
|
+
}>;
|
|
78
|
+
/** Its accessible name and tooltip, in the page's language: "More" by default, in English. */
|
|
79
|
+
"aria-label"?: string;
|
|
80
|
+
/** Its icon: ⋯ by default. */
|
|
81
|
+
children?: ReactNode;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* The toolbar's More as one toolbar item: a ghost ⋯ icon button, shown only
|
|
85
|
+
* while an item is in More, its name as a tooltip. Put it where the items it
|
|
86
|
+
* holds were: on a list's toolbar, before the primary action.
|
|
87
|
+
*/
|
|
88
|
+
export declare function FitToolbarMore({ trigger, "aria-label": label, children, className, ...props }: FitToolbarMoreProps): import("react").JSX.Element;
|
|
69
89
|
export type FitToolbarGroupProps = StyledProps<Toolbar.Group.Props> & {
|
|
70
90
|
/** When it moves to a line of its own (the `wrap` step), in a toolbar that allows it. */
|
|
71
91
|
wrapOrder?: number;
|
|
@@ -78,6 +98,21 @@ export type FitToolbarGroupProps = StyledProps<Toolbar.Group.Props> & {
|
|
|
78
98
|
wrapLine?: string;
|
|
79
99
|
/** When it shows `collapsed` instead of its items (the `collapse` step). */
|
|
80
100
|
collapseOrder?: number;
|
|
101
|
+
/**
|
|
102
|
+
* When the whole group moves into More (the `more` step), its items
|
|
103
|
+
* together: the sort, the grouping and the view switch of a list's toolbar,
|
|
104
|
+
* folded into one menu. Give the group a `moreItem` for More's menu.
|
|
105
|
+
*/
|
|
106
|
+
moreOrder?: number;
|
|
107
|
+
/** What the group is in More's menu while it is there (`FitToolbarMoreItems`). */
|
|
108
|
+
moreItem?: ReactNode;
|
|
109
|
+
/**
|
|
110
|
+
* Pinned at the group's end, outside its scroll, with `overflow="scroll"`:
|
|
111
|
+
* Clear all, as ×, at the end of the filters' line. It changes form with
|
|
112
|
+
* the group's items and keeps the form it took once the group wraps, while
|
|
113
|
+
* the items get theirs back.
|
|
114
|
+
*/
|
|
115
|
+
end?: ReactNode;
|
|
81
116
|
/** The group as one button (a Filter button for its filters), shown once it collapses. */
|
|
82
117
|
collapsed?: ReactNode;
|
|
83
118
|
/**
|
|
@@ -92,7 +127,7 @@ export type FitToolbarGroupProps = StyledProps<Toolbar.Group.Props> & {
|
|
|
92
127
|
* between groups, the last first; groups with the same `wrapLine` share a
|
|
93
128
|
* line, any other takes one of its own.
|
|
94
129
|
*/
|
|
95
|
-
export declare function FitToolbarGroup({ className, wrapOrder, firstLine, wrapLine, collapseOrder, collapsed, overflow, children, ref, ...props }: FitToolbarGroupProps & {
|
|
130
|
+
export declare function FitToolbarGroup({ className, wrapOrder, firstLine, wrapLine, collapseOrder, collapsed, moreOrder, moreItem, overflow, end, children, ref, ...props }: FitToolbarGroupProps & {
|
|
96
131
|
ref?: Ref<HTMLDivElement>;
|
|
97
132
|
}): import("react").JSX.Element;
|
|
98
133
|
export type FitToolbarButtonProps = Omit<ButtonProps, "children" | "size"> & {
|
|
@@ -162,4 +197,45 @@ export type FitToolbarPickerProps = Omit<PickerTriggerButtonProps, "children" |
|
|
|
162
197
|
* as its tooltip.
|
|
163
198
|
*/
|
|
164
199
|
export declare function FitToolbarPicker({ trigger, icon, children, value, labelOrder, moreOrder, moreItem, className, ...props }: FitToolbarPickerProps): import("react").JSX.Element;
|
|
200
|
+
export type FitToolbarSearchProps = Omit<InputGroupInputProps, "className" | "value" | "defaultValue" | "onValueChange" | "aria-label" | "render"> & {
|
|
201
|
+
/** Its accessible name ("Search tasks"): the field's and, once it is an icon, the button's, and the button's tooltip. */
|
|
202
|
+
"aria-label": string;
|
|
203
|
+
/** The text, when the page holds it. */
|
|
204
|
+
value?: string;
|
|
205
|
+
/** The text it starts with, when it holds its own. */
|
|
206
|
+
defaultValue?: string;
|
|
207
|
+
/** Called with the new text as the person types, clears it or presses Esc. */
|
|
208
|
+
onValueChange?: (value: string) => void;
|
|
209
|
+
/**
|
|
210
|
+
* The least it may be, in px, before the toolbar gives way. By default it
|
|
211
|
+
* is measured: what its search icon and its whole placeholder (or, with
|
|
212
|
+
* none, its `aria-label`) take, in the field's own font, so the empty field
|
|
213
|
+
* always shows what it is for.
|
|
214
|
+
*/
|
|
215
|
+
minWidth?: number;
|
|
216
|
+
/**
|
|
217
|
+
* When it shows as a search icon button at the start of its line instead
|
|
218
|
+
* of the field (the `collapse` step): the toolbar's last step. Without it,
|
|
219
|
+
* it never collapses.
|
|
220
|
+
*/
|
|
221
|
+
collapseOrder?: number;
|
|
222
|
+
/** The icon at the field's start and on the button: a search icon by default. */
|
|
223
|
+
icon?: ReactNode;
|
|
224
|
+
/** The clear button's accessible name ("Clear search"): with it, the field has one at its end once it has text. */
|
|
225
|
+
clearLabel?: string;
|
|
226
|
+
/** For the field's box (the InputGroup). */
|
|
227
|
+
className?: string;
|
|
228
|
+
style?: CSSProperties;
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* The search field of a list's toolbar: it fills the rest of its line and
|
|
232
|
+
* keeps at least the room its icon and its whole placeholder take (measured,
|
|
233
|
+
* or `minWidth`), so the toolbar's other steps come before
|
|
234
|
+
* it is squeezed. From `collapseOrder` on it is a search icon button at the
|
|
235
|
+
* start of the line, which opens the field in the scope's place, More and the
|
|
236
|
+
* primary action kept at the line's end; the
|
|
237
|
+
* field closes once it is empty and loses focus, or on Esc. A search with
|
|
238
|
+
* text stays open. Put it straight in the FitToolbar, between its groups.
|
|
239
|
+
*/
|
|
240
|
+
export declare function FitToolbarSearch({ "aria-label": label, value, defaultValue, onValueChange, minWidth, collapseOrder, icon, clearLabel, className, style, onKeyDown, disabled, ref, ...props }: FitToolbarSearchProps): import("react").JSX.Element;
|
|
165
241
|
//#endregion
|
|
@@ -3,9 +3,10 @@ import { Button } from "../button/button.mjs";
|
|
|
3
3
|
import { useMergedRef } from "../../lib/use-merged-ref.mjs";
|
|
4
4
|
import { ScrollArea } from "../scroll-area/scroll-area.mjs";
|
|
5
5
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../tooltip/tooltip.mjs";
|
|
6
|
+
import { InputGroup, InputGroupAddon, InputGroupInput } from "../input-group/input-group.mjs";
|
|
6
7
|
import { PickerTriggerButton } from "../picker-trigger-button/picker-trigger-button.mjs";
|
|
7
8
|
import { fitToolbar } from "./fit-toolbar.recipe.mjs";
|
|
8
|
-
import { ChevronDown, Plus } from "lucide-react";
|
|
9
|
+
import { ChevronDown, MoreHorizontal, Plus, Search, X } from "lucide-react";
|
|
9
10
|
import { Fragment, cloneElement, createContext, useCallback, useContext, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
10
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
12
|
import { Toolbar } from "@base-ui/react/toolbar";
|
|
@@ -32,6 +33,7 @@ const NO_WRAP = "data-fit-first-line";
|
|
|
32
33
|
const WRAP_LINE = "data-fit-wrap-line";
|
|
33
34
|
const BREAK = "data-fit-break";
|
|
34
35
|
const NEEDS_ICON = "data-fit-needs-icon";
|
|
36
|
+
const PINNED_END = "[data-slot=fit-toolbar-group-end]";
|
|
35
37
|
const stepAttribute = (step) => `data-fit-${step}`;
|
|
36
38
|
const hasIcon = (item) => item.querySelector("svg, img") !== null;
|
|
37
39
|
/** The group has a `wrap` step it may take: the toolbar wraps and the page lets it. */
|
|
@@ -55,10 +57,10 @@ function fits(root, allowWrap) {
|
|
|
55
57
|
for (const group of root.querySelectorAll("[data-fit-scroll]")) {
|
|
56
58
|
if (group.getClientRects().length === 0) continue;
|
|
57
59
|
const content = group.querySelector("[data-slot=scroll-area-content]") ?? group;
|
|
60
|
+
const scroller = group.querySelector("[data-fit-scroller]") ?? group;
|
|
58
61
|
const [first] = laidOutChildren(content);
|
|
59
|
-
if (first &&
|
|
62
|
+
if (first && scroller.clientWidth + .5 < first.getBoundingClientRect().width) return false;
|
|
60
63
|
if (canWrap(group, allowWrap) && !group.hasAttribute(stepAttribute("wrap"))) {
|
|
61
|
-
const scroller = group.querySelector("[data-fit-scroller]") ?? group;
|
|
62
64
|
if (scroller.scrollWidth > scroller.clientWidth + .5) return false;
|
|
63
65
|
}
|
|
64
66
|
}
|
|
@@ -145,7 +147,7 @@ function measure(root, allowWrap) {
|
|
|
145
147
|
};
|
|
146
148
|
for (const { members, step } of batches) {
|
|
147
149
|
if (fits(root, allowWrap)) break;
|
|
148
|
-
const giving = members.filter((element) => !taken.get(element)?.has("more"));
|
|
150
|
+
const giving = members.filter((element) => !taken.get(element)?.has("more") && element.parentElement?.closest(`[${stepAttribute("more")}]`) == null);
|
|
149
151
|
if (giving.length === 0) continue;
|
|
150
152
|
for (const element of giving) take(element, step);
|
|
151
153
|
history.push({
|
|
@@ -159,8 +161,10 @@ function measure(root, allowWrap) {
|
|
|
159
161
|
const group = members[0].closest(`[${stepAttribute("wrap")}]`);
|
|
160
162
|
if (!group || !root.contains(group)) continue;
|
|
161
163
|
if (history.findIndex((entry) => entry.members.includes(group) && entry.step === "wrap") < index) continue;
|
|
162
|
-
|
|
163
|
-
if (
|
|
164
|
+
const back = members.filter((element) => element.closest(PINNED_END) === null);
|
|
165
|
+
if (back.length === 0) continue;
|
|
166
|
+
for (const element of back) undo(element, step);
|
|
167
|
+
if (!fits(root, allowWrap)) for (const element of back) take(element, step);
|
|
164
168
|
}
|
|
165
169
|
const items = /* @__PURE__ */ new Map();
|
|
166
170
|
const more = [];
|
|
@@ -229,10 +233,11 @@ function lineOf(element, root) {
|
|
|
229
233
|
* order of the DOM on each line. Wrapped groups move with CSS `order`, which
|
|
230
234
|
* neither the browser's focus order nor Base UI's list follows (WCAG 2.4.3).
|
|
231
235
|
* Leaves out what isn't shown (in More, a collapsed group's items), what is
|
|
232
|
-
* disabled natively, hidden from assistive technology
|
|
236
|
+
* disabled natively, hidden from assistive technology or `inert` (the first
|
|
237
|
+
* line under an open search), or a popup's focus guard.
|
|
233
238
|
*/
|
|
234
239
|
function readingOrder(root) {
|
|
235
|
-
const controls = Array.from(root.querySelectorAll(STOP)).filter((control) => !control.matches(":disabled") && control.closest("[aria-hidden=true]") === null && !control.hasAttribute("data-base-ui-focus-guard") && control.getClientRects().length > 0);
|
|
240
|
+
const controls = Array.from(root.querySelectorAll(STOP)).filter((control) => !control.matches(":disabled") && control.closest("[aria-hidden=true], [inert]") === null && !control.hasAttribute("data-base-ui-focus-guard") && control.getClientRects().length > 0);
|
|
236
241
|
const lines = new Map(controls.map((control) => [control, lineOf(control, root)]));
|
|
237
242
|
return controls.sort((a, b) => lines.get(a) - lines.get(b));
|
|
238
243
|
}
|
|
@@ -495,6 +500,28 @@ function FitToolbarMoreItems() {
|
|
|
495
500
|
if (!context) return null;
|
|
496
501
|
return context.applied.more.map((id) => /* @__PURE__ */ jsx(Fragment, { children: context.store.get(id) }, id));
|
|
497
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* The toolbar's More as one toolbar item: a ghost ⋯ icon button, shown only
|
|
505
|
+
* while an item is in More, its name as a tooltip. Put it where the items it
|
|
506
|
+
* holds were: on a list's toolbar, before the primary action.
|
|
507
|
+
*/
|
|
508
|
+
function FitToolbarMore({ trigger, "aria-label": label = "More", children, className, ...props }) {
|
|
509
|
+
const { more } = fitToolbar();
|
|
510
|
+
const fit = useFitMore();
|
|
511
|
+
const ownTrigger = cloneElement(trigger, { render: /* @__PURE__ */ jsx(Button, {
|
|
512
|
+
variant: "ghost",
|
|
513
|
+
size: "icon-md",
|
|
514
|
+
"aria-label": label,
|
|
515
|
+
className: more({ className }),
|
|
516
|
+
...fit.props,
|
|
517
|
+
...props
|
|
518
|
+
}) });
|
|
519
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
520
|
+
"data-slot": "button",
|
|
521
|
+
render: /* @__PURE__ */ jsx(Toolbar.Button, { render: ownTrigger }),
|
|
522
|
+
children: children ?? /* @__PURE__ */ jsx(MoreHorizontal, {})
|
|
523
|
+
}), /* @__PURE__ */ jsx(TooltipContent, { children: label })] });
|
|
524
|
+
}
|
|
498
525
|
const noSubscription = () => () => {};
|
|
499
526
|
const noVersion = () => 0;
|
|
500
527
|
/**
|
|
@@ -579,18 +606,31 @@ function useScrollGroup(group) {
|
|
|
579
606
|
};
|
|
580
607
|
}, [group]);
|
|
581
608
|
}
|
|
609
|
+
let warnedEndWithoutScroll = false;
|
|
610
|
+
function warnEndWithoutScroll() {
|
|
611
|
+
if (warnedEndWithoutScroll) return;
|
|
612
|
+
warnedEndWithoutScroll = true;
|
|
613
|
+
console.warn("raft-ui: a FitToolbarGroup has `end` without `overflow=\"scroll\"`; it is not rendered. Pin an item at the end of a scrolling group only, or put it among the group's children.");
|
|
614
|
+
}
|
|
582
615
|
/**
|
|
583
616
|
* A group of items in one row, a fixed gap apart. A toolbar wraps only
|
|
584
617
|
* between groups, the last first; groups with the same `wrapLine` share a
|
|
585
618
|
* line, any other takes one of its own.
|
|
586
619
|
*/
|
|
587
|
-
function FitToolbarGroup({ className, wrapOrder = 0, firstLine = false, wrapLine, collapseOrder, collapsed, overflow, children, ref, ...props }) {
|
|
588
|
-
const
|
|
620
|
+
function FitToolbarGroup({ className, wrapOrder = 0, firstLine = false, wrapLine, collapseOrder, collapsed, moreOrder, moreItem, overflow, end, children, ref, ...props }) {
|
|
621
|
+
const pinned = overflow === "scroll" && end !== void 0 && end !== null;
|
|
622
|
+
if (process.env.NODE_ENV !== "production" && !pinned && end !== void 0 && end !== null) warnEndWithoutScroll();
|
|
623
|
+
const { group, full, short, scroller, scrollContent, end: endSlot } = fitToolbar({
|
|
624
|
+
scroll: overflow === "scroll",
|
|
625
|
+
pinned
|
|
626
|
+
});
|
|
589
627
|
const [scrollerElement, setScroller] = useState(null);
|
|
590
628
|
useScrollGroup(overflow === "scroll" ? scrollerElement : null);
|
|
591
629
|
const item = useFitItem({
|
|
592
630
|
wrap: wrapOrder,
|
|
593
|
-
collapse: collapsed === void 0 ? void 0 : collapseOrder ?? 0
|
|
631
|
+
collapse: collapsed === void 0 ? void 0 : collapseOrder ?? 0,
|
|
632
|
+
more: moreOrder,
|
|
633
|
+
moreItem
|
|
594
634
|
});
|
|
595
635
|
return /* @__PURE__ */ jsx(Toolbar.Group, {
|
|
596
636
|
ref,
|
|
@@ -602,7 +642,7 @@ function FitToolbarGroup({ className, wrapOrder = 0, firstLine = false, wrapLine
|
|
|
602
642
|
className: group({ className }),
|
|
603
643
|
...item.props,
|
|
604
644
|
...props,
|
|
605
|
-
children: overflow === "scroll" ? /* @__PURE__ */ jsx(ScrollArea, {
|
|
645
|
+
children: overflow === "scroll" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ScrollArea, {
|
|
606
646
|
ref: setScroller,
|
|
607
647
|
orientation: "horizontal",
|
|
608
648
|
overscroll: "contain",
|
|
@@ -613,7 +653,11 @@ function FitToolbarGroup({ className, wrapOrder = 0, firstLine = false, wrapLine
|
|
|
613
653
|
className: scroller(),
|
|
614
654
|
contentClassName: scrollContent(),
|
|
615
655
|
children
|
|
616
|
-
})
|
|
656
|
+
}), pinned ? /* @__PURE__ */ jsx("span", {
|
|
657
|
+
"data-slot": "fit-toolbar-group-end",
|
|
658
|
+
className: endSlot(),
|
|
659
|
+
children: end
|
|
660
|
+
}) : null] }) : collapsed === void 0 ? children : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
617
661
|
"data-slot": "fit-toolbar-group-items",
|
|
618
662
|
className: full(),
|
|
619
663
|
children
|
|
@@ -732,5 +776,278 @@ function FitToolbarPicker({ trigger, icon, children, value, labelOrder, moreOrde
|
|
|
732
776
|
}), /* @__PURE__ */ jsx(TooltipContent, { children })]
|
|
733
777
|
});
|
|
734
778
|
}
|
|
779
|
+
const COVERED = "data-fit-search-covered";
|
|
780
|
+
/** How many FitToolbarSearch fields each toolbar root holds (`data-fit-search`). */
|
|
781
|
+
const searchesByRoot = /* @__PURE__ */ new WeakMap();
|
|
782
|
+
/**
|
|
783
|
+
* While a collapsed search is open in the scope's place, the first line's
|
|
784
|
+
* items before it (the scope) are under it: hidden (their room kept, so the
|
|
785
|
+
* toolbar measures the same) and `inert`, so neither the pointer, the arrow
|
|
786
|
+
* keys nor assistive technology reach what can't be seen. The items after it
|
|
787
|
+
* (More, the primary action) and the wrapped lines stay as they are.
|
|
788
|
+
*/
|
|
789
|
+
function coverScope(root, search) {
|
|
790
|
+
const covered = [];
|
|
791
|
+
for (const child of Array.from(root.children)) {
|
|
792
|
+
if (!(child instanceof HTMLElement)) continue;
|
|
793
|
+
if (child === search || child.contains(search)) break;
|
|
794
|
+
if (child.hasAttribute(BREAK)) continue;
|
|
795
|
+
if ((Number(getComputedStyle(child).order) || 0) > 0) continue;
|
|
796
|
+
if (child.hasAttribute("inert")) continue;
|
|
797
|
+
child.setAttribute(COVERED, "");
|
|
798
|
+
child.setAttribute("inert", "");
|
|
799
|
+
child.style.visibility = "hidden";
|
|
800
|
+
covered.push(child);
|
|
801
|
+
}
|
|
802
|
+
return () => {
|
|
803
|
+
for (const child of covered) {
|
|
804
|
+
if (!child.hasAttribute(COVERED)) continue;
|
|
805
|
+
child.removeAttribute(COVERED);
|
|
806
|
+
child.removeAttribute("inert");
|
|
807
|
+
child.style.removeProperty("visibility");
|
|
808
|
+
}
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
/**
|
|
812
|
+
* The search field of a list's toolbar: it fills the rest of its line and
|
|
813
|
+
* keeps at least the room its icon and its whole placeholder take (measured,
|
|
814
|
+
* or `minWidth`), so the toolbar's other steps come before
|
|
815
|
+
* it is squeezed. From `collapseOrder` on it is a search icon button at the
|
|
816
|
+
* start of the line, which opens the field in the scope's place, More and the
|
|
817
|
+
* primary action kept at the line's end; the
|
|
818
|
+
* field closes once it is empty and loses focus, or on Esc. A search with
|
|
819
|
+
* text stays open. Put it straight in the FitToolbar, between its groups.
|
|
820
|
+
*/
|
|
821
|
+
function FitToolbarSearch({ "aria-label": label, value, defaultValue = "", onValueChange, minWidth, collapseOrder, icon = /* @__PURE__ */ jsx(Search, {}), clearLabel, className, style, onKeyDown, disabled, ref, ...props }) {
|
|
822
|
+
const { search, searchButton, searchSpacer, searchField, searchInput, searchSizer } = fitToolbar();
|
|
823
|
+
const item = useFitItem({ collapse: collapseOrder });
|
|
824
|
+
const collapsed = item.taken("collapse");
|
|
825
|
+
const [own, setOwn] = useState(defaultValue);
|
|
826
|
+
const text = value ?? own;
|
|
827
|
+
const [opened, setOpened] = useState(false);
|
|
828
|
+
const open = collapsed && (opened || text !== "");
|
|
829
|
+
const wrapper = useRef(null);
|
|
830
|
+
const field = useRef(null);
|
|
831
|
+
const spacer = useRef(null);
|
|
832
|
+
const input = useRef(null);
|
|
833
|
+
const button = useRef(null);
|
|
834
|
+
const [setInput] = useMergedRef(input, ref);
|
|
835
|
+
const sizer = useRef(null);
|
|
836
|
+
const sizerText = useRef(null);
|
|
837
|
+
const focusOnOpen = useRef(false);
|
|
838
|
+
const focusButtonOnClose = useRef(false);
|
|
839
|
+
useLayoutEffect(() => {
|
|
840
|
+
const root = wrapper.current?.closest("[data-slot=fit-toolbar]");
|
|
841
|
+
if (!root) return;
|
|
842
|
+
const count = (searchesByRoot.get(root) ?? 0) + 1;
|
|
843
|
+
searchesByRoot.set(root, count);
|
|
844
|
+
root.setAttribute("data-fit-search", "");
|
|
845
|
+
return () => {
|
|
846
|
+
const left = (searchesByRoot.get(root) ?? 1) - 1;
|
|
847
|
+
if (left > 0) searchesByRoot.set(root, left);
|
|
848
|
+
else {
|
|
849
|
+
searchesByRoot.delete(root);
|
|
850
|
+
root.removeAttribute("data-fit-search");
|
|
851
|
+
}
|
|
852
|
+
};
|
|
853
|
+
}, []);
|
|
854
|
+
const [measured, setMeasured] = useState(null);
|
|
855
|
+
const placeholder = typeof props.placeholder === "string" ? props.placeholder : label;
|
|
856
|
+
useLayoutEffect(() => {
|
|
857
|
+
const copy = sizer.current;
|
|
858
|
+
const words = sizerText.current;
|
|
859
|
+
const real = input.current;
|
|
860
|
+
if (!copy || !words || !real || minWidth !== void 0) return;
|
|
861
|
+
const read = () => {
|
|
862
|
+
const style = getComputedStyle(real);
|
|
863
|
+
words.style.font = style.font;
|
|
864
|
+
words.style.letterSpacing = style.letterSpacing;
|
|
865
|
+
words.style.paddingInlineEnd = style.paddingInlineEnd;
|
|
866
|
+
const width = Math.ceil(copy.getBoundingClientRect().width);
|
|
867
|
+
if (width <= 0) return;
|
|
868
|
+
wrapper.current?.style.setProperty("--fit-search-min", `${width}px`);
|
|
869
|
+
setMeasured(width);
|
|
870
|
+
};
|
|
871
|
+
read();
|
|
872
|
+
const resize = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(read);
|
|
873
|
+
resize?.observe(copy);
|
|
874
|
+
const fonts = typeof document === "undefined" ? void 0 : document.fonts;
|
|
875
|
+
fonts?.addEventListener?.("loadingdone", read);
|
|
876
|
+
return () => {
|
|
877
|
+
resize?.disconnect();
|
|
878
|
+
fonts?.removeEventListener?.("loadingdone", read);
|
|
879
|
+
};
|
|
880
|
+
}, [
|
|
881
|
+
minWidth,
|
|
882
|
+
placeholder,
|
|
883
|
+
icon
|
|
884
|
+
]);
|
|
885
|
+
const least = minWidth ?? measured;
|
|
886
|
+
const change = useCallback((next) => {
|
|
887
|
+
setOwn(next);
|
|
888
|
+
onValueChange?.(next);
|
|
889
|
+
}, [onValueChange]);
|
|
890
|
+
useLayoutEffect(() => {
|
|
891
|
+
const box = field.current;
|
|
892
|
+
const line = spacer.current;
|
|
893
|
+
const root = wrapper.current?.closest("[data-slot=fit-toolbar]");
|
|
894
|
+
if (!box || !line || !root || !open) return;
|
|
895
|
+
const place = () => {
|
|
896
|
+
const style = getComputedStyle(root);
|
|
897
|
+
const edge = root.getBoundingClientRect();
|
|
898
|
+
const slot = line.getBoundingClientRect();
|
|
899
|
+
const end = style.direction === "rtl" ? slot.left - edge.left - parseFloat(style.borderLeftWidth) : edge.right - parseFloat(style.borderRightWidth) - slot.right;
|
|
900
|
+
box.style.insetInlineStart = style.paddingInlineStart;
|
|
901
|
+
box.style.insetInlineEnd = `${end}px`;
|
|
902
|
+
box.style.top = `${line.offsetTop + (line.offsetHeight - box.offsetHeight) / 2}px`;
|
|
903
|
+
};
|
|
904
|
+
place();
|
|
905
|
+
const uncover = coverScope(root, wrapper.current);
|
|
906
|
+
const resize = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(place);
|
|
907
|
+
resize?.observe(root);
|
|
908
|
+
resize?.observe(line);
|
|
909
|
+
if (focusOnOpen.current) {
|
|
910
|
+
focusOnOpen.current = false;
|
|
911
|
+
input.current?.focus();
|
|
912
|
+
}
|
|
913
|
+
return () => {
|
|
914
|
+
resize?.disconnect();
|
|
915
|
+
uncover();
|
|
916
|
+
for (const side of [
|
|
917
|
+
"inset-inline-start",
|
|
918
|
+
"inset-inline-end",
|
|
919
|
+
"top"
|
|
920
|
+
]) box.style.removeProperty(side);
|
|
921
|
+
};
|
|
922
|
+
}, [open]);
|
|
923
|
+
useLayoutEffect(() => {
|
|
924
|
+
if (open || !focusButtonOnClose.current) return;
|
|
925
|
+
focusButtonOnClose.current = false;
|
|
926
|
+
if (collapsed) button.current?.focus();
|
|
927
|
+
});
|
|
928
|
+
const close = useCallback(() => {
|
|
929
|
+
setOpened(false);
|
|
930
|
+
focusOnOpen.current = false;
|
|
931
|
+
}, []);
|
|
932
|
+
const handleFocus = useCallback(() => setOpened(true), []);
|
|
933
|
+
const handleBlur = useCallback((event) => {
|
|
934
|
+
const to = event.relatedTarget;
|
|
935
|
+
if (to instanceof Node && field.current?.contains(to)) return;
|
|
936
|
+
close();
|
|
937
|
+
}, [close]);
|
|
938
|
+
const handleKeyDown = useCallback((event) => {
|
|
939
|
+
onKeyDown?.(event);
|
|
940
|
+
if (event.defaultPrevented || event.key !== "Escape") return;
|
|
941
|
+
if (event.nativeEvent.isComposing) return;
|
|
942
|
+
if (text === "" && !collapsed) return;
|
|
943
|
+
event.preventDefault();
|
|
944
|
+
event.stopPropagation();
|
|
945
|
+
if (text !== "") {
|
|
946
|
+
change("");
|
|
947
|
+
return;
|
|
948
|
+
}
|
|
949
|
+
focusButtonOnClose.current = true;
|
|
950
|
+
close();
|
|
951
|
+
}, [
|
|
952
|
+
change,
|
|
953
|
+
close,
|
|
954
|
+
collapsed,
|
|
955
|
+
onKeyDown,
|
|
956
|
+
text
|
|
957
|
+
]);
|
|
958
|
+
const clear = useCallback(() => {
|
|
959
|
+
change("");
|
|
960
|
+
input.current?.focus();
|
|
961
|
+
}, [change]);
|
|
962
|
+
const openField = useCallback(() => {
|
|
963
|
+
focusOnOpen.current = true;
|
|
964
|
+
setOpened(true);
|
|
965
|
+
}, []);
|
|
966
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
967
|
+
ref: wrapper,
|
|
968
|
+
"data-slot": "fit-toolbar-search",
|
|
969
|
+
className: search(),
|
|
970
|
+
style: least === null ? void 0 : { "--fit-search-min": `${least}px` },
|
|
971
|
+
...item.props,
|
|
972
|
+
children: [
|
|
973
|
+
/* @__PURE__ */ jsx("div", {
|
|
974
|
+
"aria-hidden": true,
|
|
975
|
+
inert: true,
|
|
976
|
+
"data-slot": "fit-toolbar-search-sizer",
|
|
977
|
+
className: searchSizer(),
|
|
978
|
+
children: /* @__PURE__ */ jsxs(InputGroup, {
|
|
979
|
+
ref: sizer,
|
|
980
|
+
size: "md",
|
|
981
|
+
className: "w-max",
|
|
982
|
+
children: [/* @__PURE__ */ jsx(InputGroupAddon, { children: icon }), /* @__PURE__ */ jsx("span", {
|
|
983
|
+
ref: sizerText,
|
|
984
|
+
className: "whitespace-pre",
|
|
985
|
+
children: placeholder
|
|
986
|
+
})]
|
|
987
|
+
})
|
|
988
|
+
}),
|
|
989
|
+
/* @__PURE__ */ jsxs(Tooltip, {
|
|
990
|
+
disabled: !collapsed || open,
|
|
991
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
992
|
+
"data-slot": "button",
|
|
993
|
+
render: /* @__PURE__ */ jsx(Toolbar.Button, {
|
|
994
|
+
ref: button,
|
|
995
|
+
disabled,
|
|
996
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
997
|
+
variant: "ghost",
|
|
998
|
+
size: "icon-md",
|
|
999
|
+
"aria-label": label,
|
|
1000
|
+
"data-fit-search-button": "",
|
|
1001
|
+
inert: open || void 0,
|
|
1002
|
+
className: searchButton(),
|
|
1003
|
+
onClick: openField
|
|
1004
|
+
})
|
|
1005
|
+
}),
|
|
1006
|
+
children: icon
|
|
1007
|
+
}), /* @__PURE__ */ jsx(TooltipContent, { children: label })]
|
|
1008
|
+
}),
|
|
1009
|
+
/* @__PURE__ */ jsx("span", {
|
|
1010
|
+
ref: spacer,
|
|
1011
|
+
"aria-hidden": true,
|
|
1012
|
+
"data-slot": "fit-toolbar-search-spacer",
|
|
1013
|
+
className: searchSpacer()
|
|
1014
|
+
}),
|
|
1015
|
+
/* @__PURE__ */ jsxs(InputGroup, {
|
|
1016
|
+
ref: field,
|
|
1017
|
+
size: "md",
|
|
1018
|
+
"data-fit-search-field": "",
|
|
1019
|
+
"data-open": open ? "" : void 0,
|
|
1020
|
+
className: searchField({ className }),
|
|
1021
|
+
style,
|
|
1022
|
+
onFocus: handleFocus,
|
|
1023
|
+
onBlur: handleBlur,
|
|
1024
|
+
children: [
|
|
1025
|
+
/* @__PURE__ */ jsx(InputGroupAddon, { children: icon }),
|
|
1026
|
+
/* @__PURE__ */ jsx(Toolbar.Input, { render: /* @__PURE__ */ jsx(InputGroupInput, {
|
|
1027
|
+
ref: setInput,
|
|
1028
|
+
type: "search",
|
|
1029
|
+
"aria-label": label,
|
|
1030
|
+
className: searchInput(),
|
|
1031
|
+
disabled,
|
|
1032
|
+
...props,
|
|
1033
|
+
value: text,
|
|
1034
|
+
onValueChange: change,
|
|
1035
|
+
onKeyDown: handleKeyDown
|
|
1036
|
+
}) }),
|
|
1037
|
+
clearLabel !== void 0 && text !== "" ? /* @__PURE__ */ jsx(InputGroupAddon, {
|
|
1038
|
+
align: "inline-end",
|
|
1039
|
+
children: /* @__PURE__ */ jsx(Toolbar.Button, { render: /* @__PURE__ */ jsx(Button, {
|
|
1040
|
+
variant: "ghost",
|
|
1041
|
+
size: "icon-md",
|
|
1042
|
+
"aria-label": clearLabel,
|
|
1043
|
+
onClick: clear,
|
|
1044
|
+
children: /* @__PURE__ */ jsx(X, {})
|
|
1045
|
+
}) })
|
|
1046
|
+
}) : null
|
|
1047
|
+
]
|
|
1048
|
+
})
|
|
1049
|
+
]
|
|
1050
|
+
});
|
|
1051
|
+
}
|
|
735
1052
|
//#endregion
|
|
736
|
-
export { FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMoreItems, FitToolbarPicker, useFitItem, useFitMore, useInFitToolbar };
|
|
1053
|
+
export { FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMore, FitToolbarMoreItems, FitToolbarPicker, FitToolbarSearch, useFitItem, useFitMore, useInFitToolbar };
|
|
@@ -2,8 +2,17 @@ import { tv } from "../../lib/tv.mjs";
|
|
|
2
2
|
//#region src/components/fit-toolbar/fit-toolbar.recipe.ts
|
|
3
3
|
const fitToolbar = tv({
|
|
4
4
|
slots: {
|
|
5
|
-
root: [
|
|
6
|
-
|
|
5
|
+
root: [
|
|
6
|
+
"flex min-w-0 max-w-full flex-nowrap items-center",
|
|
7
|
+
"data-fit-wrapping:flex-wrap data-fit-wrapping:gap-y-0",
|
|
8
|
+
"data-fit-search:relative",
|
|
9
|
+
"data-fit-search:[--fit-scroll-grow:0] data-fit-search:[--fit-scroll-basis:auto]"
|
|
10
|
+
],
|
|
11
|
+
group: [
|
|
12
|
+
"group/fit-group flex shrink-0 flex-nowrap items-center",
|
|
13
|
+
"data-fit-wrap:mt-(--fit-gap)",
|
|
14
|
+
"data-fit-more:hidden"
|
|
15
|
+
],
|
|
7
16
|
full: ["contents group-data-fit-collapse/fit-group:hidden"],
|
|
8
17
|
short: ["hidden group-data-fit-collapse/fit-group:contents"],
|
|
9
18
|
button: [
|
|
@@ -19,15 +28,32 @@ const fitToolbar = tv({
|
|
|
19
28
|
pickerValue: [],
|
|
20
29
|
chevron: ["inline-flex"],
|
|
21
30
|
plus: ["hidden in-data-fit-plus:block"],
|
|
31
|
+
more: ["hidden data-fit-shown:inline-flex"],
|
|
22
32
|
scroller: [],
|
|
23
|
-
scrollContent: []
|
|
33
|
+
scrollContent: [],
|
|
34
|
+
end: ["flex shrink-0 items-center gap-[inherit]"],
|
|
35
|
+
search: ["contents"],
|
|
36
|
+
searchButton: ["hidden order-first in-data-fit-collapse:inline-flex", "inert:invisible"],
|
|
37
|
+
searchSizer: ["pointer-events-none invisible absolute inset-s-0 top-0 size-0 overflow-hidden"],
|
|
38
|
+
searchSpacer: ["hidden min-w-0 flex-1 basis-0 self-stretch in-data-fit-collapse:block"],
|
|
39
|
+
searchField: [
|
|
40
|
+
"w-auto min-w-(--fit-search-min) flex-1 basis-0",
|
|
41
|
+
"in-data-fit-collapse:not-data-open:not-focus-within:hidden",
|
|
42
|
+
"in-data-fit-collapse:data-open:absolute in-data-fit-collapse:data-open:min-w-0",
|
|
43
|
+
"in-data-fit-collapse:focus-within:absolute in-data-fit-collapse:focus-within:min-w-0"
|
|
44
|
+
],
|
|
45
|
+
searchInput: ["[&::-webkit-search-cancel-button]:appearance-none"]
|
|
24
46
|
},
|
|
25
47
|
variants: {
|
|
26
48
|
count: { true: { pickerValue: ["font-mono text-mono-meta"] } },
|
|
27
49
|
scroll: { true: {
|
|
28
|
-
group: ["block min-w-0
|
|
50
|
+
group: ["block min-w-0 shrink grow-(--fit-scroll-grow,1) basis-(--fit-scroll-basis,0px)", "data-fit-wrap:grow"],
|
|
29
51
|
scroller: ["-my-1.5 w-full gap-[inherit] scroll-px-6 mask-fade-x"],
|
|
30
52
|
scrollContent: ["flex w-max items-center gap-[inherit] py-1.5"]
|
|
53
|
+
} },
|
|
54
|
+
pinned: { true: {
|
|
55
|
+
group: ["flex"],
|
|
56
|
+
scroller: ["w-auto min-w-0 flex-auto"]
|
|
31
57
|
} }
|
|
32
58
|
}
|
|
33
59
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FitItemOptions, FitStep, FitSteps, FitToolbar, FitToolbarButton, FitToolbarButtonProps, FitToolbarGroup, FitToolbarGroupProps, FitToolbarMoreItems, FitToolbarPicker, FitToolbarPickerProps, FitToolbarProps, useFitItem, useFitMore, useInFitToolbar } from "./fit-toolbar.mjs";
|
|
2
|
-
export { type FitItemOptions, type FitStep, type FitSteps, FitToolbar, FitToolbarButton, type FitToolbarButtonProps, FitToolbarGroup, type FitToolbarGroupProps, FitToolbarMoreItems, FitToolbarPicker, type FitToolbarPickerProps, type FitToolbarProps, useFitItem, useFitMore, useInFitToolbar };
|
|
1
|
+
import { FitItemOptions, FitStep, FitSteps, FitToolbar, FitToolbarButton, FitToolbarButtonProps, FitToolbarGroup, FitToolbarGroupProps, FitToolbarMore, FitToolbarMoreItems, FitToolbarMoreProps, FitToolbarPicker, FitToolbarPickerProps, FitToolbarProps, FitToolbarSearch, FitToolbarSearchProps, useFitItem, useFitMore, useInFitToolbar } from "./fit-toolbar.mjs";
|
|
2
|
+
export { type FitItemOptions, type FitStep, type FitSteps, FitToolbar, FitToolbarButton, type FitToolbarButtonProps, FitToolbarGroup, type FitToolbarGroupProps, FitToolbarMore, FitToolbarMoreItems, type FitToolbarMoreProps, FitToolbarPicker, type FitToolbarPickerProps, type FitToolbarProps, FitToolbarSearch, type FitToolbarSearchProps, useFitItem, useFitMore, useInFitToolbar };
|
|
@@ -46,7 +46,7 @@ export type SelectionToolbarItemProps = {
|
|
|
46
46
|
* handling only: the control keeps its role and its own keys.
|
|
47
47
|
*/
|
|
48
48
|
export declare function SelectionToolbarItem({ children }: SelectionToolbarItemProps): import("react").JSX.Element;
|
|
49
|
-
export type SelectionToolbarActionsProps = Omit<FitToolbarGroupProps, "wrapOrder" | "firstLine" | "collapseOrder" | "collapsed">;
|
|
49
|
+
export type SelectionToolbarActionsProps = Omit<FitToolbarGroupProps, "wrapOrder" | "firstLine" | "collapseOrder" | "collapsed" | "moreOrder" | "moreItem" | "end">;
|
|
50
50
|
/** The actions on the selection, in one row. */
|
|
51
51
|
export declare function SelectionToolbarActions({ className, ...props }: SelectionToolbarActionsProps): import("react").JSX.Element;
|
|
52
52
|
export type SelectionToolbarActionProps = Omit<ButtonProps, "variant" | "size" | "children"> & {
|
package/dist/wip.d.mts
CHANGED
|
@@ -43,7 +43,7 @@ import { CommentMarginLayout, CommentMarginLayoutItem, CommentMarginLayoutOption
|
|
|
43
43
|
import { CommentMarker, CommentMarkerProps } from "./components/comment/comment-marker.mjs";
|
|
44
44
|
import { UseCommentMarginFitsOptions, useCommentMarginFits } from "./components/comment/use-comment-margin-fits.mjs";
|
|
45
45
|
import "./components/comment/index.mjs";
|
|
46
|
-
import { FitItemOptions, FitStep, FitSteps, FitToolbar, FitToolbarButton, FitToolbarButtonProps, FitToolbarGroup, FitToolbarGroupProps, FitToolbarMoreItems, FitToolbarPicker, FitToolbarPickerProps, FitToolbarProps, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
46
|
+
import { FitItemOptions, FitStep, FitSteps, FitToolbar, FitToolbarButton, FitToolbarButtonProps, FitToolbarGroup, FitToolbarGroupProps, FitToolbarMore, FitToolbarMoreItems, FitToolbarMoreProps, FitToolbarPicker, FitToolbarPickerProps, FitToolbarProps, FitToolbarSearch, FitToolbarSearchProps, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
47
47
|
import "./components/fit-toolbar/index.mjs";
|
|
48
48
|
import { SelectionToolbar, SelectionToolbarAction, SelectionToolbarActionProps, SelectionToolbarActions, SelectionToolbarActionsProps, SelectionToolbarClose, SelectionToolbarCloseProps, SelectionToolbarCount, SelectionToolbarCountProps, SelectionToolbarCountValue, SelectionToolbarCountValueProps, SelectionToolbarDock, SelectionToolbarDockProps, SelectionToolbarHint, SelectionToolbarHintProps, SelectionToolbarItem, SelectionToolbarItemProps, SelectionToolbarMore, SelectionToolbarMoreItems, SelectionToolbarMoreProps, SelectionToolbarProps } from "./components/selection-toolbar/selection-toolbar.mjs";
|
|
49
49
|
import "./components/selection-toolbar/index.mjs";
|
|
@@ -81,4 +81,4 @@ import { KbdButton, KbdButtonCaret, KbdButtonCaretProps, KbdButtonPlaceholder, K
|
|
|
81
81
|
import "./components/kbd-button/index.mjs";
|
|
82
82
|
import { WebTopBarCenter, WebTopBarCenterProps, WebTopBarEnd, WebTopBarEndProps, WebTopBarRoot, WebTopBarRootProps, WebTopBarStart, WebTopBarStartProps } from "./components/web-top-bar/web-top-bar.mjs";
|
|
83
83
|
import "./components/web-top-bar/index.mjs";
|
|
84
|
-
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, type AppLinkCardActionsProps, AppLinkCardBody, type AppLinkCardBodyProps, AppLinkCardEyebrow, type AppLinkCardEyebrowProps, AppLinkCardHeader, type AppLinkCardHeaderProps, AppLinkCardHost, type AppLinkCardHostProps, AppLinkCardIcon, type AppLinkCardIconProps, AppLinkCardMeta, type AppLinkCardMetaProps, AppLinkCardName, type AppLinkCardNameProps, AppLinkCardPlaceholder, type AppLinkCardPlaceholderProps, AppLinkCardTitle, type AppLinkCardTitleProps, AvatarGroupButton, type AvatarGroupButtonProps, ButtonSplit, ButtonSplitMain, type ButtonSplitMainProps, ButtonSplitMenu, type ButtonSplitMenuProps, type ButtonSplitProps, type ButtonSplitSize, type ButtonSplitVariant, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, type ChoiceListGroup, type ChoiceListItem, type ChoiceListMultipleProps, type ChoiceListProps, type ChoiceListSingleProps, ComboboxSelect, type ComboboxSelectGroup, type ComboboxSelectMessages, type ComboboxSelectOption, type ComboboxSelectProps, type ComboboxSelectSelection, type ComboboxSelectValue, CommentCard, CommentCardMeta, type CommentCardMetaProps, type CommentCardProps, CommentCardQuote, type CommentCardQuoteProps, CommentCardTrigger, type CommentCardTriggerProps, CommentEntry, CommentEntryAuthor, type CommentEntryAuthorProps, CommentEntryBody, type CommentEntryBodyProps, CommentEntryHeader, type CommentEntryHeaderProps, type CommentEntryProps, CommentEntryTime, type CommentEntryTimeProps, CommentMargin, CommentMarginItem, type CommentMarginItemProps, type CommentMarginLayout, type CommentMarginLayoutItem, type CommentMarginLayoutOptions, type CommentMarginProps, CommentMarker, type CommentMarkerProps, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, type DialogFooterNoteProps, type DragAcrossLists, type DragAnnouncementSource, DragLift, type DragLiftProps, type DragListsItems, DragLiveRegion, type DragMessages, type DragNamed, type DragPlace, DragRefusalHint, type DragRefusalHintProps, DragRemeasure, type DragRemeasureProps, type DragSensorsOptions, DraggedSlot, type DraggedSlotProps, DropPlaceholder, type DropPlaceholderProps, DropdownMenuLinkItem, type DropdownMenuLinkItemProps, Ellipsis, type EllipsisProps, type EllipsisState, EllipsisToggle, type EllipsisToggleProps, FilterChip, FilterChipLabel, type FilterChipLabelProps, type FilterChipProps, FilterChipRemove, type FilterChipRemoveProps, type FitItemOptions, type FitStep, type FitSteps, FitToolbar, FitToolbarButton, type FitToolbarButtonProps, FitToolbarGroup, type FitToolbarGroupProps, FitToolbarMoreItems, FitToolbarPicker, type FitToolbarPickerProps, type FitToolbarProps, type HoldThenMoveOptions, HoldThenMoveTouchSensor, InboxItemLeadingBadge, type InboxItemLeadingBadgeProps, InboxItemLine, type InboxItemLineProps, InboxItemListGroup, type InboxItemListGroupProps, InboxItemListHeading, type InboxItemListHeadingProps, InboxItemSkeleton, InboxItemSkeletonList, type InboxItemSkeletonListProps, type InboxItemSkeletonProps, InboxItemStatus, type InboxItemStatusProps, KbdButton, KbdButtonCaret, type KbdButtonCaretProps, KbdButtonPlaceholder, type KbdButtonPlaceholderProps, type KbdButtonProps, type KbdKeyName, KbdShortcut, type KbdShortcutProps, type KeyboardPlatform, LIFT_CLASS, LightboxBody, type LightboxBodyProps, ListRowSkeleton, type ListRowSkeletonProps, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, type MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, type MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, type MessageItemDelegatedByNameProps, type MessageItemDelegatedByProps, MessageItemTrailing, type MessageItemTrailingProps, MessageListJumpControls, type MessageListJumpControlsProps, MessageListJumpPill, MessageListJumpPillDismiss, type MessageListJumpPillDismissProps, MessageListJumpPillGroup, type MessageListJumpPillGroupProps, type MessageListJumpPillProps, MessageQuotedPreviewAuthorDelegatedBy, type MessageQuotedPreviewAuthorDelegatedByProps, MessageReferenceIcon, type MessageReferenceIconProps, MessageReferenceReadMark, type MessageReferenceReadMarkProps, Meter, MeterHeader, type MeterHeaderProps, MeterIndicator, type MeterIndicatorProps, MeterLabel, type MeterLabelProps, type MeterProps, MeterTrack, type MeterTrackProps, MeterValue, type MeterValueProps, MobileNavServerItem, type MobileNavServerItemProps, MobileNavServerPopover, MobileNavServerPopoverContent, type MobileNavServerPopoverContentProps, MobileNavServerPopoverDestination, type MobileNavServerPopoverDestinationProps, MobileNavServerPopoverDestinations, type MobileNavServerPopoverDestinationsProps, MobileNavServerPopoverGroup, type MobileNavServerPopoverGroupProps, MobileNavServerPopoverList, type MobileNavServerPopoverListProps, type MobileNavServerPopoverProps, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, type MobileNavServerPopoverRowBodyProps, MobileNavServerPopoverRowDescription, type MobileNavServerPopoverRowDescriptionProps, MobileNavServerPopoverRowLabel, type MobileNavServerPopoverRowLabelProps, type MobileNavServerPopoverRowProps, MouseOnlyPointerSensor, ORIGIN_OPACITY, type OverlayLayerKind, OverlayLayerProvider, type OverlayLayerProviderProps, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, type PanelSplitActionMainProps, PanelSplitActionMenu, type PanelSplitActionMenuProps, type PanelSplitActionProps, PanelSplitActionToggle, type PanelSplitActionToggleProps, PopoverActions, type PopoverActionsProps, PopoverBody, type PopoverBodyProps, PreviewCardActions, type PreviewCardActionsProps, PreviewCardBody, type PreviewCardBodyProps, PreviewCardEyebrow, type PreviewCardEyebrowProps, PreviewCardFooter, type PreviewCardFooterProps, PreviewCardMeta, type PreviewCardMetaProps, type PullToRefresh, PullToRefreshIndicator, type PullToRefreshIndicatorProps, type PullToRefreshPlatform, type PullToRefreshState, SaveStatus, SaveStatusError, type SaveStatusErrorProps, type SaveStatusProps, SaveStatusSaved, type SaveStatusSavedProps, SelectionToolbar, SelectionToolbarAction, type SelectionToolbarActionProps, SelectionToolbarActions, type SelectionToolbarActionsProps, SelectionToolbarClose, type SelectionToolbarCloseProps, SelectionToolbarCount, type SelectionToolbarCountProps, SelectionToolbarCountValue, type SelectionToolbarCountValueProps, SelectionToolbarDock, type SelectionToolbarDockProps, SelectionToolbarHint, type SelectionToolbarHintProps, SelectionToolbarItem, type SelectionToolbarItemProps, SelectionToolbarMore, SelectionToolbarMoreItems, type SelectionToolbarMoreProps, type SelectionToolbarProps, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, type TableSort, TableSortButton, type TableSortButtonProps, TableSortableHead, type TableSortableHeadProps, TaskCompletionControl, type TaskCompletionControlProps, type UseCommentMarginFitsOptions, type UseDragListsOptions, type UsePullToRefreshOptions, WebTopBarCenter, type WebTopBarCenterProps, WebTopBarEnd, type WebTopBarEndProps, WebTopBarRoot, type WebTopBarRootProps, WebTopBarStart, type WebTopBarStartProps, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
|
84
|
+
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, type AppLinkCardActionsProps, AppLinkCardBody, type AppLinkCardBodyProps, AppLinkCardEyebrow, type AppLinkCardEyebrowProps, AppLinkCardHeader, type AppLinkCardHeaderProps, AppLinkCardHost, type AppLinkCardHostProps, AppLinkCardIcon, type AppLinkCardIconProps, AppLinkCardMeta, type AppLinkCardMetaProps, AppLinkCardName, type AppLinkCardNameProps, AppLinkCardPlaceholder, type AppLinkCardPlaceholderProps, AppLinkCardTitle, type AppLinkCardTitleProps, AvatarGroupButton, type AvatarGroupButtonProps, ButtonSplit, ButtonSplitMain, type ButtonSplitMainProps, ButtonSplitMenu, type ButtonSplitMenuProps, type ButtonSplitProps, type ButtonSplitSize, type ButtonSplitVariant, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, type ChoiceListGroup, type ChoiceListItem, type ChoiceListMultipleProps, type ChoiceListProps, type ChoiceListSingleProps, ComboboxSelect, type ComboboxSelectGroup, type ComboboxSelectMessages, type ComboboxSelectOption, type ComboboxSelectProps, type ComboboxSelectSelection, type ComboboxSelectValue, CommentCard, CommentCardMeta, type CommentCardMetaProps, type CommentCardProps, CommentCardQuote, type CommentCardQuoteProps, CommentCardTrigger, type CommentCardTriggerProps, CommentEntry, CommentEntryAuthor, type CommentEntryAuthorProps, CommentEntryBody, type CommentEntryBodyProps, CommentEntryHeader, type CommentEntryHeaderProps, type CommentEntryProps, CommentEntryTime, type CommentEntryTimeProps, CommentMargin, CommentMarginItem, type CommentMarginItemProps, type CommentMarginLayout, type CommentMarginLayoutItem, type CommentMarginLayoutOptions, type CommentMarginProps, CommentMarker, type CommentMarkerProps, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, type DialogFooterNoteProps, type DragAcrossLists, type DragAnnouncementSource, DragLift, type DragLiftProps, type DragListsItems, DragLiveRegion, type DragMessages, type DragNamed, type DragPlace, DragRefusalHint, type DragRefusalHintProps, DragRemeasure, type DragRemeasureProps, type DragSensorsOptions, DraggedSlot, type DraggedSlotProps, DropPlaceholder, type DropPlaceholderProps, DropdownMenuLinkItem, type DropdownMenuLinkItemProps, Ellipsis, type EllipsisProps, type EllipsisState, EllipsisToggle, type EllipsisToggleProps, FilterChip, FilterChipLabel, type FilterChipLabelProps, type FilterChipProps, FilterChipRemove, type FilterChipRemoveProps, type FitItemOptions, type FitStep, type FitSteps, FitToolbar, FitToolbarButton, type FitToolbarButtonProps, FitToolbarGroup, type FitToolbarGroupProps, FitToolbarMore, FitToolbarMoreItems, type FitToolbarMoreProps, FitToolbarPicker, type FitToolbarPickerProps, type FitToolbarProps, FitToolbarSearch, type FitToolbarSearchProps, type HoldThenMoveOptions, HoldThenMoveTouchSensor, InboxItemLeadingBadge, type InboxItemLeadingBadgeProps, InboxItemLine, type InboxItemLineProps, InboxItemListGroup, type InboxItemListGroupProps, InboxItemListHeading, type InboxItemListHeadingProps, InboxItemSkeleton, InboxItemSkeletonList, type InboxItemSkeletonListProps, type InboxItemSkeletonProps, InboxItemStatus, type InboxItemStatusProps, KbdButton, KbdButtonCaret, type KbdButtonCaretProps, KbdButtonPlaceholder, type KbdButtonPlaceholderProps, type KbdButtonProps, type KbdKeyName, KbdShortcut, type KbdShortcutProps, type KeyboardPlatform, LIFT_CLASS, LightboxBody, type LightboxBodyProps, ListRowSkeleton, type ListRowSkeletonProps, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, type MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, type MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, type MessageItemDelegatedByNameProps, type MessageItemDelegatedByProps, MessageItemTrailing, type MessageItemTrailingProps, MessageListJumpControls, type MessageListJumpControlsProps, MessageListJumpPill, MessageListJumpPillDismiss, type MessageListJumpPillDismissProps, MessageListJumpPillGroup, type MessageListJumpPillGroupProps, type MessageListJumpPillProps, MessageQuotedPreviewAuthorDelegatedBy, type MessageQuotedPreviewAuthorDelegatedByProps, MessageReferenceIcon, type MessageReferenceIconProps, MessageReferenceReadMark, type MessageReferenceReadMarkProps, Meter, MeterHeader, type MeterHeaderProps, MeterIndicator, type MeterIndicatorProps, MeterLabel, type MeterLabelProps, type MeterProps, MeterTrack, type MeterTrackProps, MeterValue, type MeterValueProps, MobileNavServerItem, type MobileNavServerItemProps, MobileNavServerPopover, MobileNavServerPopoverContent, type MobileNavServerPopoverContentProps, MobileNavServerPopoverDestination, type MobileNavServerPopoverDestinationProps, MobileNavServerPopoverDestinations, type MobileNavServerPopoverDestinationsProps, MobileNavServerPopoverGroup, type MobileNavServerPopoverGroupProps, MobileNavServerPopoverList, type MobileNavServerPopoverListProps, type MobileNavServerPopoverProps, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, type MobileNavServerPopoverRowBodyProps, MobileNavServerPopoverRowDescription, type MobileNavServerPopoverRowDescriptionProps, MobileNavServerPopoverRowLabel, type MobileNavServerPopoverRowLabelProps, type MobileNavServerPopoverRowProps, MouseOnlyPointerSensor, ORIGIN_OPACITY, type OverlayLayerKind, OverlayLayerProvider, type OverlayLayerProviderProps, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, type PanelSplitActionMainProps, PanelSplitActionMenu, type PanelSplitActionMenuProps, type PanelSplitActionProps, PanelSplitActionToggle, type PanelSplitActionToggleProps, PopoverActions, type PopoverActionsProps, PopoverBody, type PopoverBodyProps, PreviewCardActions, type PreviewCardActionsProps, PreviewCardBody, type PreviewCardBodyProps, PreviewCardEyebrow, type PreviewCardEyebrowProps, PreviewCardFooter, type PreviewCardFooterProps, PreviewCardMeta, type PreviewCardMetaProps, type PullToRefresh, PullToRefreshIndicator, type PullToRefreshIndicatorProps, type PullToRefreshPlatform, type PullToRefreshState, SaveStatus, SaveStatusError, type SaveStatusErrorProps, type SaveStatusProps, SaveStatusSaved, type SaveStatusSavedProps, SelectionToolbar, SelectionToolbarAction, type SelectionToolbarActionProps, SelectionToolbarActions, type SelectionToolbarActionsProps, SelectionToolbarClose, type SelectionToolbarCloseProps, SelectionToolbarCount, type SelectionToolbarCountProps, SelectionToolbarCountValue, type SelectionToolbarCountValueProps, SelectionToolbarDock, type SelectionToolbarDockProps, SelectionToolbarHint, type SelectionToolbarHintProps, SelectionToolbarItem, type SelectionToolbarItemProps, SelectionToolbarMore, SelectionToolbarMoreItems, type SelectionToolbarMoreProps, type SelectionToolbarProps, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, type TableSort, TableSortButton, type TableSortButtonProps, TableSortableHead, type TableSortableHeadProps, TaskCompletionControl, type TaskCompletionControlProps, type UseCommentMarginFitsOptions, type UseDragListsOptions, type UsePullToRefreshOptions, WebTopBarCenter, type WebTopBarCenterProps, WebTopBarEnd, type WebTopBarEndProps, WebTopBarRoot, type WebTopBarRootProps, WebTopBarStart, type WebTopBarStartProps, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
package/dist/wip.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { HoldThenMoveTouchSensor, MouseOnlyPointerSensor, TOUCH_DRAG_DISTANCE_PX
|
|
|
10
10
|
import { PopoverActions, PopoverBody } from "./components/popover/popover.mjs";
|
|
11
11
|
import { MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel } from "./components/mobile-nav/mobile-nav-server.mjs";
|
|
12
12
|
import { PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta } from "./components/preview-card/preview-card.mjs";
|
|
13
|
-
import { FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMoreItems, FitToolbarPicker, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
13
|
+
import { FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMore, FitToolbarMoreItems, FitToolbarPicker, FitToolbarSearch, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
14
14
|
import { AvatarGroupButton } from "./components/avatar/avatar.mjs";
|
|
15
15
|
import { MessageItemTrailing } from "./components/message-item/message-item-content.mjs";
|
|
16
16
|
import { MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName } from "./components/message-item/message-item-delegated.mjs";
|
|
@@ -52,4 +52,4 @@ import { SaveStatus, SaveStatusError, SaveStatusSaved } from "./components/save-
|
|
|
52
52
|
import { TaskCompletionControl } from "./components/task-completion-control/task-completion-control.mjs";
|
|
53
53
|
import { KbdButton, KbdButtonCaret, KbdButtonPlaceholder } from "./components/kbd-button/kbd-button.mjs";
|
|
54
54
|
import { WebTopBarCenter, WebTopBarEnd, WebTopBarRoot, WebTopBarStart } from "./components/web-top-bar/web-top-bar.mjs";
|
|
55
|
-
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, AppLinkCardBody, AppLinkCardEyebrow, AppLinkCardHeader, AppLinkCardHost, AppLinkCardIcon, AppLinkCardMeta, AppLinkCardName, AppLinkCardPlaceholder, AppLinkCardTitle, AvatarGroupButton, ButtonSplit, ButtonSplitMain, ButtonSplitMenu, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, ComboboxSelect, CommentCard, CommentCardMeta, CommentCardQuote, CommentCardTrigger, CommentEntry, CommentEntryAuthor, CommentEntryBody, CommentEntryHeader, CommentEntryTime, CommentMargin, CommentMarginItem, CommentMarker, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, DragLift, DragLiveRegion, DragRefusalHint, DragRemeasure, DraggedSlot, DropPlaceholder, DropdownMenuLinkItem, Ellipsis, EllipsisToggle, FilterChip, FilterChipLabel, FilterChipRemove, FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMoreItems, FitToolbarPicker, HoldThenMoveTouchSensor, InboxItemLeadingBadge, InboxItemLine, InboxItemListGroup, InboxItemListHeading, InboxItemSkeleton, InboxItemSkeletonList, InboxItemStatus, KbdButton, KbdButtonCaret, KbdButtonPlaceholder, KbdShortcut, LIFT_CLASS, LightboxBody, ListRowSkeleton, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName, MessageItemTrailing, MessageListJumpControls, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillGroup, MessageQuotedPreviewAuthorDelegatedBy, MessageReferenceIcon, MessageReferenceReadMark, Meter, MeterHeader, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel, MouseOnlyPointerSensor, ORIGIN_OPACITY, OverlayLayerProvider, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, PanelSplitActionMenu, PanelSplitActionToggle, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, SaveStatus, SaveStatusError, SaveStatusSaved, SelectionToolbar, SelectionToolbarAction, SelectionToolbarActions, SelectionToolbarClose, SelectionToolbarCount, SelectionToolbarCountValue, SelectionToolbarDock, SelectionToolbarHint, SelectionToolbarItem, SelectionToolbarMore, SelectionToolbarMoreItems, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, TableSortButton, TableSortableHead, TaskCompletionControl, WebTopBarCenter, WebTopBarEnd, WebTopBarRoot, WebTopBarStart, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
|
55
|
+
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, AppLinkCardBody, AppLinkCardEyebrow, AppLinkCardHeader, AppLinkCardHost, AppLinkCardIcon, AppLinkCardMeta, AppLinkCardName, AppLinkCardPlaceholder, AppLinkCardTitle, AvatarGroupButton, ButtonSplit, ButtonSplitMain, ButtonSplitMenu, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, ComboboxSelect, CommentCard, CommentCardMeta, CommentCardQuote, CommentCardTrigger, CommentEntry, CommentEntryAuthor, CommentEntryBody, CommentEntryHeader, CommentEntryTime, CommentMargin, CommentMarginItem, CommentMarker, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, DragLift, DragLiveRegion, DragRefusalHint, DragRemeasure, DraggedSlot, DropPlaceholder, DropdownMenuLinkItem, Ellipsis, EllipsisToggle, FilterChip, FilterChipLabel, FilterChipRemove, FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMore, FitToolbarMoreItems, FitToolbarPicker, FitToolbarSearch, HoldThenMoveTouchSensor, InboxItemLeadingBadge, InboxItemLine, InboxItemListGroup, InboxItemListHeading, InboxItemSkeleton, InboxItemSkeletonList, InboxItemStatus, KbdButton, KbdButtonCaret, KbdButtonPlaceholder, KbdShortcut, LIFT_CLASS, LightboxBody, ListRowSkeleton, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName, MessageItemTrailing, MessageListJumpControls, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillGroup, MessageQuotedPreviewAuthorDelegatedBy, MessageReferenceIcon, MessageReferenceReadMark, Meter, MeterHeader, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel, MouseOnlyPointerSensor, ORIGIN_OPACITY, OverlayLayerProvider, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, PanelSplitActionMenu, PanelSplitActionToggle, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, SaveStatus, SaveStatusError, SaveStatusSaved, SelectionToolbar, SelectionToolbarAction, SelectionToolbarActions, SelectionToolbarClose, SelectionToolbarCount, SelectionToolbarCountValue, SelectionToolbarDock, SelectionToolbarHint, SelectionToolbarItem, SelectionToolbarMore, SelectionToolbarMoreItems, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, TableSortButton, TableSortableHead, TaskCompletionControl, WebTopBarCenter, WebTopBarEnd, WebTopBarRoot, WebTopBarStart, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|