@charcuterie/ui 3.18.0 → 3.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Combobox/Combobox.d.ts +14 -1
- package/dist/Combobox/Combobox.d.ts.map +1 -1
- package/dist/Combobox/Combobox.js +32 -6
- package/dist/Combobox/Combobox.js.map +1 -1
- package/dist/Combobox/ComboboxOption.d.ts +4 -1
- package/dist/Combobox/ComboboxOption.d.ts.map +1 -1
- package/dist/Combobox/ComboboxOption.js +8 -2
- package/dist/Combobox/ComboboxOption.js.map +1 -1
- package/dist/Listbox/Listbox.d.ts +13 -1
- package/dist/Listbox/Listbox.d.ts.map +1 -1
- package/dist/Listbox/Listbox.js +4 -2
- package/dist/Listbox/Listbox.js.map +1 -1
- package/dist/Listbox/ListboxOption.d.ts +4 -1
- package/dist/Listbox/ListboxOption.d.ts.map +1 -1
- package/dist/Listbox/ListboxOption.js +7 -2
- package/dist/Listbox/ListboxOption.js.map +1 -1
- package/dist/Menu/Menu.d.ts +15 -1
- package/dist/Menu/Menu.d.ts.map +1 -1
- package/dist/Menu/Menu.js +39 -5
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/Menu/MenuAction.d.ts +4 -1
- package/dist/Menu/MenuAction.d.ts.map +1 -1
- package/dist/Menu/MenuAction.js +22 -4
- package/dist/Menu/MenuAction.js.map +1 -1
- package/dist/Overlay/useAnchoredOverlay.d.ts +25 -1
- package/dist/Overlay/useAnchoredOverlay.d.ts.map +1 -1
- package/dist/Overlay/useAnchoredOverlay.js +8 -4
- package/dist/Overlay/useAnchoredOverlay.js.map +1 -1
- package/dist/Overlay/usePanelItemSize.d.ts +3 -0
- package/dist/Overlay/usePanelItemSize.d.ts.map +1 -0
- package/dist/Overlay/usePanelItemSize.js +59 -0
- package/dist/Overlay/usePanelItemSize.js.map +1 -0
- package/dist/controlStyles.d.ts +30 -0
- package/dist/controlStyles.d.ts.map +1 -1
- package/dist/controlStyles.js +34 -0
- package/dist/controlStyles.js.map +1 -1
- package/dist/markdownEditorCodeMirror/MarkdownEditorCodeMirror.d.ts.map +1 -1
- package/dist/markdownEditorCodeMirror/MarkdownEditorCodeMirror.js +1 -1
- package/dist/markdownEditorCodeMirror/MarkdownEditorCodeMirror.js.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreview.d.ts.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreview.js +22 -0
- package/dist/markdownEditorCodeMirror/livePreview.js.map +1 -1
- package/dist/viewport.testHelpers.d.ts +18 -4
- package/dist/viewport.testHelpers.d.ts.map +1 -1
- package/dist/viewport.testHelpers.js +18 -6
- package/dist/viewport.testHelpers.js.map +1 -1
- package/package.json +1 -1
- package/src/Combobox/Combobox.mdx +26 -0
- package/src/Combobox/Combobox.stories.tsx +65 -0
- package/src/Combobox/Combobox.test.tsx +46 -0
- package/src/Combobox/Combobox.tsx +76 -24
- package/src/Combobox/ComboboxOption.tsx +11 -1
- package/src/Listbox/Listbox.mdx +24 -0
- package/src/Listbox/Listbox.stories.tsx +81 -5
- package/src/Listbox/Listbox.tsx +17 -0
- package/src/Listbox/ListboxOption.tsx +10 -1
- package/src/Menu/Menu.mdx +49 -0
- package/src/Menu/Menu.stories.tsx +113 -2
- package/src/Menu/Menu.test.tsx +129 -0
- package/src/Menu/Menu.tsx +62 -3
- package/src/Menu/MenuAction.tsx +29 -4
- package/src/Overlay/useAnchoredOverlay.ts +33 -5
- package/src/Overlay/usePanelItemSize.ts +71 -0
- package/src/controlStyles.ts +38 -0
- package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.test.tsx +185 -0
- package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.tsx +42 -1
- package/src/markdownEditorCodeMirror/livePreview.ts +22 -0
- package/src/sourceRules.test.ts +9 -0
- package/src/viewport.testHelpers.ts +21 -6
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ControlSize } from "@charcuterie/tokens";
|
|
1
2
|
import type { ReactElement, ReactNode, RefObject } from "react";
|
|
2
3
|
import type { ListboxItem } from "../Listbox/Listbox.tsx";
|
|
3
4
|
export type ComboboxProps = {
|
|
@@ -31,6 +32,18 @@ export type ComboboxProps = {
|
|
|
31
32
|
/** Windowing. Auto-on above ~100 options when left undefined. */
|
|
32
33
|
isVirtualized?: boolean;
|
|
33
34
|
isVisible: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* How tall each option — and the search field above them — is, from
|
|
37
|
+
* the same density-aware tokens a `Button` reads.
|
|
38
|
+
*
|
|
39
|
+
* It covers the search row deliberately. The owner's report was that
|
|
40
|
+
* the panel's own field was visibly bigger than the options under it
|
|
41
|
+
* (*"the button is huge, but the options don't match it"*), and two
|
|
42
|
+
* sizes inside one panel is the defect. One prop drives both.
|
|
43
|
+
*
|
|
44
|
+
* A short window steps it back down on its own (`usePanelItemSize`).
|
|
45
|
+
*/
|
|
46
|
+
itemSize?: ControlSize;
|
|
34
47
|
onDismiss: () => void;
|
|
35
48
|
onSelect: (value: string) => void;
|
|
36
49
|
/**
|
|
@@ -68,5 +81,5 @@ export type ComboboxProps = {
|
|
|
68
81
|
* debounce, the request token, the cache), and internal on `textValue`
|
|
69
82
|
* otherwise.
|
|
70
83
|
*/
|
|
71
|
-
export declare const Combobox: ({ className, emptyLabel, error, footer, inputRef, isCreatable, isLoading, isMultiple, isVirtualized, isVisible, onDismiss, onQueryChange, onSelect, options, placeholder, query, selectedValue, trigger, }: ComboboxProps) => ReactNode;
|
|
84
|
+
export declare const Combobox: ({ className, emptyLabel, error, footer, inputRef, isCreatable, isLoading, isMultiple, isVirtualized, isVisible, itemSize: requestedItemSize, onDismiss, onQueryChange, onSelect, options, placeholder, query, selectedValue, trigger, }: ComboboxProps) => ReactNode;
|
|
72
85
|
//# sourceMappingURL=Combobox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMtD,OAAO,KAAK,EACV,YAAY,EAEZ,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAA;AAId,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAOzD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IAC7C,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iEAAiE;IACjE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAA;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB,CAAA;AAiDD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,QAAQ,GAAI,yOAoBtB,aAAa,KAAG,SAuyBlB,CAAA"}
|
|
@@ -2,11 +2,26 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { FloatingFocusManager, FloatingPortal, } from "@floating-ui/react";
|
|
3
3
|
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
4
4
|
import { useEffect, useRef, useState } from "react";
|
|
5
|
+
import { PANEL_ITEM_SIZE_CLASS } from "../controlStyles.js";
|
|
5
6
|
import { PANEL_SURFACE_CLASS } from "../Overlay/overlayPanelClass.js";
|
|
6
7
|
import { useAnchoredOverlay } from "../Overlay/useAnchoredOverlay.js";
|
|
8
|
+
import { usePanelItemSize } from "../Overlay/usePanelItemSize.js";
|
|
7
9
|
import { toClassName } from "../toClassName.js";
|
|
8
10
|
import { ComboboxOption } from "./ComboboxOption.js";
|
|
9
11
|
const AUTO_VIRTUALIZE_THRESHOLD = 100;
|
|
12
|
+
/**
|
|
13
|
+
* The virtualizer's pre-measurement guess per row size, in px at
|
|
14
|
+
* `comfortable` density — `--control-height-*` plus the row's own
|
|
15
|
+
* `py-*`. Hardcoded because a virtualizer wants a number before the
|
|
16
|
+
* first paint, which is the one place a token cannot reach; every row
|
|
17
|
+
* is measured immediately afterwards, so a density that disagrees
|
|
18
|
+
* costs a frame rather than a wrong layout.
|
|
19
|
+
*/
|
|
20
|
+
const ROW_ESTIMATE_PX = {
|
|
21
|
+
sm: 40,
|
|
22
|
+
md: 48,
|
|
23
|
+
lg: 60,
|
|
24
|
+
};
|
|
10
25
|
/**
|
|
11
26
|
* How many frames the open seed will wait for the panel to be capped
|
|
12
27
|
* before it gives up on centring the chosen row. A few is all
|
|
@@ -40,7 +55,8 @@ const nextEnabledIndex = (options, from, step) => {
|
|
|
40
55
|
* debounce, the request token, the cache), and internal on `textValue`
|
|
41
56
|
* otherwise.
|
|
42
57
|
*/
|
|
43
|
-
export const Combobox = ({ className, emptyLabel = "No matches", error, footer, inputRef, isCreatable = false, isLoading = false, isMultiple = false, isVirtualized, isVisible, onDismiss, onQueryChange, onSelect, options, placeholder = "Search…", query, selectedValue, trigger, }) => {
|
|
58
|
+
export const Combobox = ({ className, emptyLabel = "No matches", error, footer, inputRef, isCreatable = false, isLoading = false, isMultiple = false, isVirtualized, isVisible, itemSize: requestedItemSize = "md", onDismiss, onQueryChange, onSelect, options, placeholder = "Search…", query, selectedValue, trigger, }) => {
|
|
59
|
+
const itemSize = usePanelItemSize(requestedItemSize);
|
|
44
60
|
// Attached-input mode: the consumer's `<input>` is the reference,
|
|
45
61
|
// query source, focus holder and keyboard target; Combobox renders the
|
|
46
62
|
// list-only panel.
|
|
@@ -115,7 +131,12 @@ export const Combobox = ({ className, emptyLabel = "No matches", error, footer,
|
|
|
115
131
|
}, [isAttached]);
|
|
116
132
|
const rowVirtualizer = useVirtualizer({
|
|
117
133
|
count: filtered.length,
|
|
118
|
-
|
|
134
|
+
// An *estimate*: every row is re-measured (`measureElement` on the
|
|
135
|
+
// wrapper below), so this only decides how far the scrollbar lies
|
|
136
|
+
// before the first measurement lands. It still has to track
|
|
137
|
+
// `itemSize`, or a `lg` list opens with a scrollbar a third too
|
|
138
|
+
// short and visibly settles.
|
|
139
|
+
estimateSize: () => ROW_ESTIMATE_PX[itemSize],
|
|
119
140
|
getScrollElement: () => listElement.current,
|
|
120
141
|
overscan: 8,
|
|
121
142
|
});
|
|
@@ -468,15 +489,20 @@ export const Combobox = ({ className, emptyLabel = "No matches", error, footer,
|
|
|
468
489
|
listboxId,
|
|
469
490
|
inputRef,
|
|
470
491
|
]);
|
|
471
|
-
const renderOption = (option, index) => (_jsx(ComboboxOption, { id: optionDomId(option.value), isActive: index === resolvedActiveIndex, isSelected: selected.includes(option.value), item: option, onSelect: commitValue, posInSet: isWindowed ? index + 1 : undefined, setSize: isWindowed ? filtered.length : undefined }, option.value));
|
|
492
|
+
const renderOption = (option, index) => (_jsx(ComboboxOption, { id: optionDomId(option.value), isActive: index === resolvedActiveIndex, isSelected: selected.includes(option.value), item: option, itemSize: itemSize, onSelect: commitValue, posInSet: isWindowed ? index + 1 : undefined, setSize: isWindowed ? filtered.length : undefined }, option.value));
|
|
472
493
|
return (_jsxs(_Fragment, { children: [isMultiple && !isAttached && selected.length > 0 ? (_jsx("div", { className: "mb-1 flex flex-wrap items-center gap-1", children: selected.map((value) => (_jsxs("button", { "aria-label": `Remove ${chipLabel(value)}`, className: "inline-flex cursor-pointer items-center gap-1 rounded-sm bg-intent-neutral-surface-hover px-1.5 py-0.5 text-content-primary text-xs transition-colors duration-(--duration-fast) ease-standard hover:bg-intent-danger-surface hover:text-intent-danger-content", onClick: () => {
|
|
473
494
|
removeValue(value);
|
|
474
495
|
}, type: "button", children: [chipLabel(value), _jsx("span", { "aria-hidden": "true", className: "text-content-secondary", children: "\u2715" })] }, value))) })) : null, clonedTrigger, isVisible ? (_jsx(FloatingPortal, { children: _jsx(FloatingFocusManager, { context: context,
|
|
475
496
|
// Attached mode keeps focus in the consumer's input — the
|
|
476
497
|
// panel must never grab it.
|
|
477
|
-
disabled: isAttached, initialFocus: inputElement, modal: false, children: _jsxs("div", { ...floatingProps, className: toClassName(PANEL_SURFACE_CLASS, "z-[var(--layer-modal)] flex min-w-64 flex-col overflow-hidden", className), ref: setFloating, style: floatingStyles, children: [isAttached ? null : (_jsx("div", { className: "
|
|
478
|
-
|
|
479
|
-
|
|
498
|
+
disabled: isAttached, initialFocus: inputElement, modal: false, children: _jsxs("div", { ...floatingProps, className: toClassName(PANEL_SURFACE_CLASS, "z-[var(--layer-modal)] flex min-w-64 flex-col overflow-hidden", className), ref: setFloating, style: floatingStyles, children: [isAttached ? null : (_jsx("div", { className: "border-border-subtle border-b p-1", children: _jsx("div", { className: toClassName("flex items-center", PANEL_ITEM_SIZE_CLASS[itemSize]), children: _jsx("input", { "aria-activedescendant": activeDescendantId, "aria-autocomplete": "list", "aria-controls": listboxId, "aria-expanded": "true", "aria-labelledby": triggerId,
|
|
499
|
+
// No `text-*` of its own: the wrapper's row-size
|
|
500
|
+
// class sets the font size, and the input inherits
|
|
501
|
+
// it — so the query reads at exactly the size of
|
|
502
|
+
// the options it is filtering.
|
|
503
|
+
className: "min-w-24 flex-1 bg-transparent text-content-primary outline-none placeholder:text-content-muted", onChange: (changeEvent) => {
|
|
504
|
+
setQuery(changeEvent.target.value);
|
|
505
|
+
}, onKeyDown: handleKeyDown, placeholder: placeholder, ref: internalInputElement, role: "combobox", type: "text", value: currentQuery }) }) })), _jsx("div", { "aria-label": isAttached ? "Suggestions" : undefined, "aria-labelledby": isAttached ? undefined : triggerId, className: "min-h-0 flex-1 overflow-auto p-1", id: listboxId, ref: listElement, role: "listbox", children: isLoading ? (_jsx("p", { className: "px-2 py-3 text-center text-content-secondary text-sm", children: "Loading\u2026" })) : error ? (_jsx("div", { className: "px-2 py-3 text-center text-intent-danger-content text-sm", children: error })) : filtered.length === 0 ? (_jsx("p", { className: "px-2 py-3 text-center text-content-secondary text-sm", children: emptyLabel })) : isWindowed ? (_jsx("div", { className: "relative w-full", style: {
|
|
480
506
|
height: `${rowVirtualizer.getTotalSize()}px`,
|
|
481
507
|
}, children: rowVirtualizer
|
|
482
508
|
.getVirtualItems()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ControlSize } from "@charcuterie/tokens";
|
|
1
2
|
import type { ReactNode } from "react";
|
|
2
3
|
import type { ListboxItem } from "../Listbox/Listbox.tsx";
|
|
3
4
|
export type ComboboxOptionProps = {
|
|
@@ -5,6 +6,8 @@ export type ComboboxOptionProps = {
|
|
|
5
6
|
id: string;
|
|
6
7
|
isActive: boolean;
|
|
7
8
|
isSelected: boolean;
|
|
9
|
+
/** Already stepped down for a short window by `usePanelItemSize`. */
|
|
10
|
+
itemSize: ControlSize;
|
|
8
11
|
item: ListboxItem;
|
|
9
12
|
onSelect: (value: string) => void;
|
|
10
13
|
/**
|
|
@@ -32,5 +35,5 @@ export type ComboboxOptionProps = {
|
|
|
32
35
|
* "Active" is a visual state only — the option the arrow keys have
|
|
33
36
|
* moved to, highlighted because nothing here holds real focus.
|
|
34
37
|
*/
|
|
35
|
-
export declare const ComboboxOption: ({ id, isActive, isSelected, item, onSelect, posInSet, setSize, }: ComboboxOptionProps) => ReactNode;
|
|
38
|
+
export declare const ComboboxOption: ({ id, isActive, isSelected, item, itemSize, onSelect, posInSet, setSize, }: ComboboxOptionProps) => ReactNode;
|
|
36
39
|
//# sourceMappingURL=ComboboxOption.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxOption.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ComboboxOption.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,qEAAqE;IACrE,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,GAAI,4EAS5B,mBAAmB,KAAG,SAkFxB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { PANEL_ITEM_SIZE_CLASS } from "../controlStyles.js";
|
|
2
3
|
import { toClassName } from "../toClassName.js";
|
|
3
4
|
/**
|
|
4
5
|
* `role="option"` with **`tabIndex={-1}`**, and both halves matter.
|
|
@@ -17,7 +18,7 @@ import { toClassName } from "../toClassName.js";
|
|
|
17
18
|
* "Active" is a visual state only — the option the arrow keys have
|
|
18
19
|
* moved to, highlighted because nothing here holds real focus.
|
|
19
20
|
*/
|
|
20
|
-
export const ComboboxOption = ({ id, isActive, isSelected, item, onSelect, posInSet, setSize, }) => {
|
|
21
|
+
export const ComboboxOption = ({ id, isActive, isSelected, item, itemSize, onSelect, posInSet, setSize, }) => {
|
|
21
22
|
const { isDisabled = false, label, value } = item;
|
|
22
23
|
return (_jsxs("button", { "aria-posinset": posInSet, "aria-selected": isSelected, "aria-setsize": setSize, className: toClassName(
|
|
23
24
|
// No base `bg-transparent`: it is a plain `background-color`
|
|
@@ -27,7 +28,12 @@ export const ComboboxOption = ({ id, isActive, isSelected, item, onSelect, posIn
|
|
|
27
28
|
// fill and the keyboard cursor was invisible (it read as "arrows
|
|
28
29
|
// do nothing"). A button's background is transparent by default;
|
|
29
30
|
// the tint classes only ever add one.
|
|
30
|
-
"flex w-full cursor-pointer items-center justify-between
|
|
31
|
+
"flex w-full cursor-pointer items-center justify-between rounded-sm text-start",
|
|
32
|
+
// Height, inline padding, gap and type from the row-size system,
|
|
33
|
+
// so an option matches the search field above it and the trigger
|
|
34
|
+
// that opened it, rather than being visibly the smaller thing in
|
|
35
|
+
// its own panel.
|
|
36
|
+
PANEL_ITEM_SIZE_CLASS[itemSize],
|
|
31
37
|
// The base sets no text colour: a plain `text-content-primary`
|
|
32
38
|
// clobbers a conditional `text-content-disabled` at equal
|
|
33
39
|
// specificity (Tailwind emits the base last), so a disabled option
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxOption.js","sourceRoot":"","sources":["../../src/Combobox/ComboboxOption.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ComboboxOption.js","sourceRoot":"","sources":["../../src/Combobox/ComboboxOption.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAoB/C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,EAAE,EACF,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACa,EAAa,EAAE;IACnC,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAEjD,OAAO,CACL,mCACiB,QAAQ,mBACR,UAAU,kBACX,OAAO,EACrB,SAAS,EAAE,WAAW;QACpB,6DAA6D;QAC7D,gEAAgE;QAChE,iEAAiE;QACjE,kEAAkE;QAClE,iEAAiE;QACjE,iEAAiE;QACjE,sCAAsC;QACtC,+EAA+E;QAC/E,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,iBAAiB;QACjB,qBAAqB,CAAC,QAAQ,CAAC;QAC/B,+DAA+D;QAC/D,0DAA0D;QAC1D,mEAAmE;QACnE,6DAA6D;QAC7D,UAAU;YACR,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,sBAAsB;QAC1B,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,2DAA2D;QAC3D,0BAA0B;QAC1B,CAAC,UAAU;YACT,uCAAuC,EACzC,QAAQ,IAAI,iCAAiC;QAC7C,gEAAgE;QAChE,kEAAkE;QAClE,+DAA+D;QAC/D,UAAU;YACR,CAAC,QAAQ;YACT,0BAA0B,EAC5B,UAAU,IAAI,oBAAoB,CACnC,EACD,QAAQ,EAAE,UAAU,EACpB,EAAE,EAAE,EAAE;QACN,kEAAkE;QAClE,iEAAiE;QACjE,yCAAyC;QACzC,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE;YAC1B,UAAU,CAAC,cAAc,EAAE,CAAA;YAE3B,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,EACD,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EACZ,IAAI,EAAC,QAAQ,aAEZ,KAAK,EAYN,8BACc,MAAM,EAClB,SAAS,EAAE,WAAW,CACpB,6DAA6D,EAC7D,CAAC,UAAU,IAAI,WAAW,CAC3B,uBAGI,IACA,CACV,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ControlSize } from "@charcuterie/tokens";
|
|
1
2
|
import type { Placement } from "@floating-ui/react";
|
|
2
3
|
import type { ReactElement, ReactNode } from "react";
|
|
3
4
|
export type ListboxItem = {
|
|
@@ -14,6 +15,17 @@ export type ListboxItem = {
|
|
|
14
15
|
export type ListboxProps = {
|
|
15
16
|
className?: string;
|
|
16
17
|
isVisible: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* How tall each option is, from the same density-aware tokens a
|
|
20
|
+
* `Button` reads — so a `md` option is exactly as tall as the `md`
|
|
21
|
+
* trigger that opened it. `lg` is the fat one: 2.75rem at
|
|
22
|
+
* `comfortable` density, and a bigger target to aim at.
|
|
23
|
+
*
|
|
24
|
+
* A short window steps it back down on its own
|
|
25
|
+
* (`usePanelItemSize`), so a `lg` list is never the reason the last
|
|
26
|
+
* option is off-screen.
|
|
27
|
+
*/
|
|
28
|
+
itemSize?: ControlSize;
|
|
17
29
|
/** Outside press and Escape both land here. */
|
|
18
30
|
onDismiss: () => void;
|
|
19
31
|
onSelect: (value: string) => void;
|
|
@@ -52,5 +64,5 @@ export type ListboxProps = {
|
|
|
52
64
|
* it by pointing `aria-labelledby` at the trigger — so there is no
|
|
53
65
|
* `heading` prop; the button that opens it is its label.
|
|
54
66
|
*/
|
|
55
|
-
export declare const Listbox: ({ className, isVisible, onDismiss, onSelect, options, placement, selectedValue, trigger, }: ListboxProps) => ReactNode;
|
|
67
|
+
export declare const Listbox: ({ className, isVisible, itemSize: requestedItemSize, onDismiss, onSelect, options, placement, selectedValue, trigger, }: ListboxProps) => ReactNode;
|
|
56
68
|
//# sourceMappingURL=Listbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Listbox.d.ts","sourceRoot":"","sources":["../../src/Listbox/Listbox.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Listbox.d.ts","sourceRoot":"","sources":["../../src/Listbox/Listbox.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AASpD,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kEAAkE;IAClE,OAAO,EAAE,YAAY,CAAA;CACtB,CAAA;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,OAAO,GAAI,yHAUrB,YAAY,KAAG,SAkNjB,CAAA"}
|
package/dist/Listbox/Listbox.js
CHANGED
|
@@ -4,6 +4,7 @@ import { FloatingFocusManager, FloatingPortal, } from "@floating-ui/react";
|
|
|
4
4
|
import { useEffect, useRef } from "react";
|
|
5
5
|
import { PANEL_SURFACE_CLASS } from "../Overlay/overlayPanelClass.js";
|
|
6
6
|
import { useAnchoredOverlay } from "../Overlay/useAnchoredOverlay.js";
|
|
7
|
+
import { usePanelItemSize } from "../Overlay/usePanelItemSize.js";
|
|
7
8
|
import { toClassName } from "../toClassName.js";
|
|
8
9
|
import { ListboxOption } from "./ListboxOption.js";
|
|
9
10
|
const getOptionText = (item) => (item.textValue ??
|
|
@@ -36,7 +37,8 @@ const getOptionText = (item) => (item.textValue ??
|
|
|
36
37
|
* it by pointing `aria-labelledby` at the trigger — so there is no
|
|
37
38
|
* `heading` prop; the button that opens it is its label.
|
|
38
39
|
*/
|
|
39
|
-
export const Listbox = ({ className, isVisible, onDismiss, onSelect, options, placement = "bottom-start", selectedValue, trigger, }) => {
|
|
40
|
+
export const Listbox = ({ className, isVisible, itemSize: requestedItemSize = "md", onDismiss, onSelect, options, placement = "bottom-start", selectedValue, trigger, }) => {
|
|
41
|
+
const itemSize = usePanelItemSize(requestedItemSize);
|
|
40
42
|
const optionElements = useRef(new Map());
|
|
41
43
|
const typeahead = useRef({ buffer: "", stampMs: 0 });
|
|
42
44
|
const focus = useRovingFocus();
|
|
@@ -139,7 +141,7 @@ export const Listbox = ({ className, isVisible, onDismiss, onSelect, options, pl
|
|
|
139
141
|
// "listbox" })` in the hook is where it comes from.
|
|
140
142
|
// Stated here because a linter cannot see a role through
|
|
141
143
|
// a spread.
|
|
142
|
-
role: "listbox", style: floatingStyles, children: options.map((option) => (_jsx(ListboxOption, { isSelected: picker.selectedValue === option.value, item: option, onSelect: chooseValue, registerFocus: focus.register, registerSelection: picker.register, tabIndex: selectTabIndex(focus, option.value), trackElement: (value, element) => {
|
|
144
|
+
role: "listbox", style: floatingStyles, children: options.map((option) => (_jsx(ListboxOption, { isSelected: picker.selectedValue === option.value, item: option, itemSize: itemSize, onSelect: chooseValue, registerFocus: focus.register, registerSelection: picker.register, tabIndex: selectTabIndex(focus, option.value), trackElement: (value, element) => {
|
|
143
145
|
if (element) {
|
|
144
146
|
optionElements.current.set(value, element);
|
|
145
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Listbox.js","sourceRoot":"","sources":["../../src/Listbox/Listbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"Listbox.js","sourceRoot":"","sources":["../../src/Listbox/Listbox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { ControlSize } from "@charcuterie/tokens";
|
|
1
2
|
import type { ReactNode } from "react";
|
|
2
3
|
import type { ListboxItem } from "./Listbox.tsx";
|
|
3
4
|
export type ListboxOptionProps = {
|
|
4
5
|
isSelected: boolean;
|
|
6
|
+
/** Already stepped down for a short window by `usePanelItemSize`. */
|
|
7
|
+
itemSize: ControlSize;
|
|
5
8
|
item: ListboxItem;
|
|
6
9
|
onSelect: (value: string) => void;
|
|
7
10
|
/** `RovingFocus.register` — membership of the arrow-key group. */
|
|
@@ -32,5 +35,5 @@ export type ListboxOptionProps = {
|
|
|
32
35
|
* `<button>` with `role="option"` so it is natively focusable for the
|
|
33
36
|
* roving-tabindex move, the same shape `Menu` uses.
|
|
34
37
|
*/
|
|
35
|
-
export declare const ListboxOption: ({ isSelected, item, onSelect, registerFocus, registerSelection, tabIndex, trackElement, }: ListboxOptionProps) => ReactNode;
|
|
38
|
+
export declare const ListboxOption: ({ isSelected, item, itemSize, onSelect, registerFocus, registerSelection, tabIndex, trackElement, }: ListboxOptionProps) => ReactNode;
|
|
36
39
|
//# sourceMappingURL=ListboxOption.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListboxOption.d.ts","sourceRoot":"","sources":["../../src/Listbox/ListboxOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ListboxOption.d.ts","sourceRoot":"","sources":["../../src/Listbox/ListboxOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAA;IACnB,qEAAqE;IACrE,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,kEAAkE;IAClE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,CAAA;IAC5C,0DAA0D;IAC1D,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,CAAA;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GAAG,IAAI,KAC9B,IAAI,CAAA;CACV,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,GAAI,qGAS3B,kBAAkB,KAAG,SA0EvB,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
+
import { PANEL_ITEM_SIZE_CLASS } from "../controlStyles.js";
|
|
3
4
|
import { FOCUS_RING_CLASS } from "../intentStyles.js";
|
|
4
5
|
import { toClassName } from "../toClassName.js";
|
|
5
6
|
/**
|
|
@@ -23,7 +24,7 @@ import { toClassName } from "../toClassName.js";
|
|
|
23
24
|
* `<button>` with `role="option"` so it is natively focusable for the
|
|
24
25
|
* roving-tabindex move, the same shape `Menu` uses.
|
|
25
26
|
*/
|
|
26
|
-
export const ListboxOption = ({ isSelected, item, onSelect, registerFocus, registerSelection, tabIndex, trackElement, }) => {
|
|
27
|
+
export const ListboxOption = ({ isSelected, item, itemSize, onSelect, registerFocus, registerSelection, tabIndex, trackElement, }) => {
|
|
27
28
|
const { isDisabled = false, label, value } = item;
|
|
28
29
|
useEffect(() => registerSelection(value), [registerSelection, value]);
|
|
29
30
|
useEffect(() => {
|
|
@@ -37,7 +38,11 @@ export const ListboxOption = ({ isSelected, item, onSelect, registerFocus, regis
|
|
|
37
38
|
// and silently won at equal specificity, so the selected option's
|
|
38
39
|
// accent fill never showed (only its ✓ did). Default is
|
|
39
40
|
// transparent anyway; the tints below add a fill.
|
|
40
|
-
"flex w-full cursor-pointer items-center justify-between
|
|
41
|
+
"flex w-full cursor-pointer items-center justify-between rounded-sm text-start transition-colors duration-(--duration-fast) ease-standard",
|
|
42
|
+
// Height, inline padding, gap and type from the row-size system,
|
|
43
|
+
// so an option is at least as tall as the control that opened it
|
|
44
|
+
// and a rich two-line label still grows past that floor.
|
|
45
|
+
PANEL_ITEM_SIZE_CLASS[itemSize],
|
|
41
46
|
// The base sets no text colour: a plain `text-content-primary` in
|
|
42
47
|
// it clobbers a conditional `text-content-disabled` at equal
|
|
43
48
|
// specificity (Tailwind emits the base last), so a disabled option
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListboxOption.js","sourceRoot":"","sources":["../../src/Listbox/ListboxOption.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ListboxOption.js","sourceRoot":"","sources":["../../src/Listbox/ListboxOption.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAoB/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,YAAY,GACO,EAAa,EAAE;IAClC,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAEjD,SAAS,CACP,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC9B,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAC3B,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QAED,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAA;IAEtC,OAAO,CACL,mCACiB,UAAU,EACzB,SAAS,EAAE,WAAW;QACpB,gEAAgE;QAChE,kEAAkE;QAClE,wDAAwD;QACxD,kDAAkD;QAClD,0IAA0I;QAC1I,iEAAiE;QACjE,iEAAiE;QACjE,yDAAyD;QACzD,qBAAqB,CAAC,QAAQ,CAAC;QAC/B,kEAAkE;QAClE,6DAA6D;QAC7D,mEAAmE;QACnE,kEAAkE;QAClE,gEAAgE;QAChE,UAAU;YACR,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,sBAAsB;QAC1B,mEAAmE;QACnE,gEAAgE;QAChE,iEAAiE;QACjE,8DAA8D;QAC9D,mEAAmE;QACnE,yDAAyD;QACzD,CAAC,UAAU;YACT,6EAA6E,EAC/E,UAAU,IAAI,0BAA0B,EACxC,UAAU,IAAI,oBAAoB,EAClC,gBAAgB,CACjB,EACD,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE;YACZ,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,EACD,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;YACf,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC9B,CAAC,EACD,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,aAEZ,KAAK,EAEL,UAAU,CAAC,CAAC,CAAC,CACZ,8BAGc,MAAM,EAClB,SAAS,EAAC,qCAAqC,uBAG1C,CACR,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAA;AACH,CAAC,CAAA"}
|
package/dist/Menu/Menu.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ControlSize } from "@charcuterie/tokens";
|
|
1
2
|
import type { Placement } from "@floating-ui/react";
|
|
2
3
|
import type { ReactElement, ReactNode } from "react";
|
|
3
4
|
export type MenuItem = {
|
|
@@ -52,6 +53,19 @@ export type MenuProps = {
|
|
|
52
53
|
*/
|
|
53
54
|
emptyState?: ReactNode;
|
|
54
55
|
isVisible: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* How tall each item is, from the same density-aware tokens a
|
|
58
|
+
* `Button` reads — so a `md` item and a `md` `Button` measure the
|
|
59
|
+
* same.
|
|
60
|
+
*
|
|
61
|
+
* **Defaults to `lg`**, which no other component in the library does,
|
|
62
|
+
* and the asymmetry is the decision rather than an oversight. A menu
|
|
63
|
+
* item is a *pointer* target first: it is read once and then aimed
|
|
64
|
+
* at, often in a hurry, and there are rarely more than about eight of
|
|
65
|
+
* them — so the height a dense list cannot spare, a menu can. A short
|
|
66
|
+
* window steps it back down on its own (`usePanelItemSize`).
|
|
67
|
+
*/
|
|
68
|
+
itemSize?: ControlSize;
|
|
55
69
|
items: MenuEntry[];
|
|
56
70
|
/** Outside press, Escape, and choosing an item all land here. */
|
|
57
71
|
onDismiss: () => void;
|
|
@@ -135,5 +149,5 @@ export type MenuProps = {
|
|
|
135
149
|
* buffer and a timer in a component that currently has neither, for
|
|
136
150
|
* a menu you can cross in three arrow presses.
|
|
137
151
|
*/
|
|
138
|
-
export declare const Menu: ({ className, emptyState, isVisible, items, onDismiss, placement, trigger, }: MenuProps) => ReactNode;
|
|
152
|
+
export declare const Menu: ({ className, emptyState, isVisible, items, itemSize: requestedItemSize, onDismiss, placement, trigger, }: MenuProps) => ReactNode;
|
|
139
153
|
//# sourceMappingURL=Menu.d.ts.map
|
package/dist/Menu/Menu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAUpD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,CAAA;CAClB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAA;AAE5D,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,iEAAiE;IACjE,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,+DAA+D;IAC/D,OAAO,EAAE,YAAY,CAAA;CACtB,CAAA;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,eAAO,MAAM,IAAI,GAAI,0GASlB,SAAS,KAAG,SAqOd,CAAA"}
|
package/dist/Menu/Menu.js
CHANGED
|
@@ -2,10 +2,22 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { selectTabIndex, useRovingFocus, useUniqueId, } from "@charcuterie/logic";
|
|
3
3
|
import { FloatingFocusManager, FloatingPortal, } from "@floating-ui/react";
|
|
4
4
|
import { useEffect, useRef } from "react";
|
|
5
|
+
import { PANEL_ITEM_SIZE_CLASS } from "../controlStyles.js";
|
|
5
6
|
import { PANEL_SURFACE_CLASS } from "../Overlay/overlayPanelClass.js";
|
|
6
7
|
import { useAnchoredOverlay } from "../Overlay/useAnchoredOverlay.js";
|
|
8
|
+
import { usePanelItemSize } from "../Overlay/usePanelItemSize.js";
|
|
7
9
|
import { toClassName } from "../toClassName.js";
|
|
8
10
|
import { MenuAction } from "./MenuAction.js";
|
|
11
|
+
/**
|
|
12
|
+
* A group heading is not a row — it has no height of its own to take
|
|
13
|
+
* — so it borrows only the inline padding, which is the one thing it
|
|
14
|
+
* has to share with the items under it.
|
|
15
|
+
*/
|
|
16
|
+
const GROUP_HEADING_INSET_CLASS = {
|
|
17
|
+
sm: "px-(--control-padding-inline-sm)",
|
|
18
|
+
md: "px-(--control-padding-inline-md)",
|
|
19
|
+
lg: "px-(--control-padding-inline-lg)",
|
|
20
|
+
};
|
|
9
21
|
const isMenuItem = (entry) => entry.type === undefined || entry.type === "item";
|
|
10
22
|
const hasAnyItem = (items) => items.some((entry) => isMenuItem(entry) ||
|
|
11
23
|
(entry.type === "group" && entry.items.length > 0));
|
|
@@ -85,14 +97,28 @@ const hasAnyItem = (items) => items.some((entry) => isMenuItem(entry) ||
|
|
|
85
97
|
* buffer and a timer in a component that currently has neither, for
|
|
86
98
|
* a menu you can cross in three arrow presses.
|
|
87
99
|
*/
|
|
88
|
-
export const Menu = ({ className, emptyState, isVisible, items, onDismiss, placement = "bottom-start", trigger, }) => {
|
|
100
|
+
export const Menu = ({ className, emptyState, isVisible, items, itemSize: requestedItemSize = "lg", onDismiss, placement = "bottom-start", trigger, }) => {
|
|
101
|
+
const itemSize = usePanelItemSize(requestedItemSize);
|
|
89
102
|
const menuId = useUniqueId();
|
|
90
103
|
const itemElements = useRef(new Map());
|
|
91
104
|
const focus = useRovingFocus();
|
|
92
105
|
const { activeValue, registeredValues, setActiveValue } = focus;
|
|
93
106
|
const [firstValue] = registeredValues;
|
|
94
107
|
const { clonedTrigger, context, floatingStyles, getFloatingProps, setFloating, } = useAnchoredOverlay({
|
|
108
|
+
// A menu had no clamp at all, which was survivable while a row was
|
|
109
|
+
// 32px and is not now: nine `lg` rows are 400px, and on a short
|
|
110
|
+
// window the panel simply ran off the bottom of the screen with no
|
|
111
|
+
// way to reach the last item. It scrolls instead.
|
|
112
|
+
isHeightClamped: true,
|
|
95
113
|
isVisible,
|
|
114
|
+
// And the inline twin. A portalled panel is `position: fixed`, so
|
|
115
|
+
// its shrink-to-fit width stops at the *viewport* rather than at
|
|
116
|
+
// the space `shift` left it — measured at 390px, a menu holding
|
|
117
|
+
// Mail Sifter's "Lock unlocks — forget passcodes on this device"
|
|
118
|
+
// came out 390px wide at `left: 8`, hanging 8px off the right
|
|
119
|
+
// edge. Pre-existing and size-independent, but a `lg` row's larger
|
|
120
|
+
// type is what makes a real label reach it.
|
|
121
|
+
isWidthClamped: true,
|
|
96
122
|
offsetValue: 4,
|
|
97
123
|
onDismiss,
|
|
98
124
|
placement,
|
|
@@ -131,7 +157,7 @@ export const Menu = ({ className, emptyState, isVisible, items, onDismiss, place
|
|
|
131
157
|
// or inside a `group`. The registration lives in `MenuAction`'s
|
|
132
158
|
// effect, so an item nested in a group joins the same arrow-key
|
|
133
159
|
// sequence in DOM order — the heading above it registers nothing.
|
|
134
|
-
const renderItem = (item) => (_jsx(MenuAction, { item: item, onDismiss: onDismiss, register: focus.register, tabIndex: selectTabIndex(focus, item.key), trackElement: (key, element) => {
|
|
160
|
+
const renderItem = (item) => (_jsx(MenuAction, { item: item, itemSize: itemSize, onDismiss: onDismiss, register: focus.register, tabIndex: selectTabIndex(focus, item.key), trackElement: (key, element) => {
|
|
135
161
|
if (element) {
|
|
136
162
|
itemElements.current.set(key, element);
|
|
137
163
|
}
|
|
@@ -148,7 +174,11 @@ export const Menu = ({ className, emptyState, isVisible, items, onDismiss, place
|
|
|
148
174
|
}
|
|
149
175
|
if (entry.type === "group") {
|
|
150
176
|
const headingId = `${menuId}-${entry.key}`;
|
|
151
|
-
return (_jsxs("div", { "aria-labelledby": headingId, role: "group", children: [_jsx("div", {
|
|
177
|
+
return (_jsxs("div", { "aria-labelledby": headingId, role: "group", children: [_jsx("div", {
|
|
178
|
+
// The heading is inset to the items' own inline padding so
|
|
179
|
+
// its text starts where their labels do, which is why it
|
|
180
|
+
// reads the row-size tokens rather than a fixed `px-2`.
|
|
181
|
+
className: toClassName(GROUP_HEADING_INSET_CLASS[itemSize], "pt-1.5 pb-0.5 font-medium text-content-secondary text-xs"), id: headingId, children: entry.label }), entry.items.map(renderItem)] }, entry.key));
|
|
152
182
|
}
|
|
153
183
|
return renderItem(entry);
|
|
154
184
|
};
|
|
@@ -158,7 +188,7 @@ export const Menu = ({ className, emptyState, isVisible, items, onDismiss, place
|
|
|
158
188
|
// is announced ("No actions available, dimmed") but takes no tab
|
|
159
189
|
// stop and never joins the roving group. `null` when the consumer
|
|
160
190
|
// gave no `emptyState`, so an empty menu renders nothing.
|
|
161
|
-
const emptyElement = emptyState === undefined ? null : (_jsx("div", { "aria-disabled": "true", className: "
|
|
191
|
+
const emptyElement = emptyState === undefined ? null : (_jsx("div", { "aria-disabled": "true", className: toClassName("flex items-center text-content-disabled", PANEL_ITEM_SIZE_CLASS[itemSize]), role: "menuitem", tabIndex: -1, children: emptyState }));
|
|
162
192
|
return (_jsxs(_Fragment, { children: [clonedTrigger, isVisible ? (_jsx(FloatingPortal, { children: _jsx(FloatingFocusManager, { context: context,
|
|
163
193
|
// `false`, so Tab leaves the menu and lands on the next
|
|
164
194
|
// control in the page — which is what closes it, through
|
|
@@ -167,7 +197,11 @@ export const Menu = ({ className, emptyState, isVisible, items, onDismiss, place
|
|
|
167
197
|
// Focus is moved by the effect above, to whichever item
|
|
168
198
|
// `RovingFocus` made active. Letting the manager also aim
|
|
169
199
|
// it is two owners for one caret.
|
|
170
|
-
initialFocus: -1, children: _jsx("div", { ...getFloatingProps(), className: toClassName(PANEL_SURFACE_CLASS,
|
|
200
|
+
initialFocus: -1, children: _jsx("div", { ...getFloatingProps(), className: toClassName(PANEL_SURFACE_CLASS,
|
|
201
|
+
// The height is clamped to the space the viewport left,
|
|
202
|
+
// written straight onto the element by the `size`
|
|
203
|
+
// middleware; this scrolls inside it.
|
|
204
|
+
"charcuterie-scrollbar z-[var(--layer-modal)] flex min-w-48 flex-col gap-0.5 overflow-y-auto p-1", className), onKeyDown: (keyEvent) => {
|
|
171
205
|
const commands = {
|
|
172
206
|
ArrowDown: focus.next,
|
|
173
207
|
ArrowUp: focus.previous,
|
package/dist/Menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { ControlSize } from "@charcuterie/tokens";
|
|
1
2
|
import type { ReactNode } from "react";
|
|
2
3
|
import type { MenuItem } from "./Menu.tsx";
|
|
3
4
|
export type MenuActionProps = {
|
|
5
|
+
/** Already stepped down for a short window by `usePanelItemSize`. */
|
|
6
|
+
itemSize: ControlSize;
|
|
4
7
|
item: MenuItem;
|
|
5
8
|
onDismiss: () => void;
|
|
6
9
|
/** `RovingFocus.register` — membership of the arrow-key group. */
|
|
@@ -20,5 +23,5 @@ export type MenuActionProps = {
|
|
|
20
23
|
* difference between "you cannot do this right now" and "this does
|
|
21
24
|
* not exist".
|
|
22
25
|
*/
|
|
23
|
-
export declare const MenuAction: ({ item, onDismiss, register, tabIndex, trackElement, }: MenuActionProps) => ReactNode;
|
|
26
|
+
export declare const MenuAction: ({ item, itemSize, onDismiss, register, tabIndex, trackElement, }: MenuActionProps) => ReactNode;
|
|
24
27
|
//# sourceMappingURL=MenuAction.d.ts.map
|