@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.
Files changed (69) hide show
  1. package/dist/Combobox/Combobox.d.ts +14 -1
  2. package/dist/Combobox/Combobox.d.ts.map +1 -1
  3. package/dist/Combobox/Combobox.js +32 -6
  4. package/dist/Combobox/Combobox.js.map +1 -1
  5. package/dist/Combobox/ComboboxOption.d.ts +4 -1
  6. package/dist/Combobox/ComboboxOption.d.ts.map +1 -1
  7. package/dist/Combobox/ComboboxOption.js +8 -2
  8. package/dist/Combobox/ComboboxOption.js.map +1 -1
  9. package/dist/Listbox/Listbox.d.ts +13 -1
  10. package/dist/Listbox/Listbox.d.ts.map +1 -1
  11. package/dist/Listbox/Listbox.js +4 -2
  12. package/dist/Listbox/Listbox.js.map +1 -1
  13. package/dist/Listbox/ListboxOption.d.ts +4 -1
  14. package/dist/Listbox/ListboxOption.d.ts.map +1 -1
  15. package/dist/Listbox/ListboxOption.js +7 -2
  16. package/dist/Listbox/ListboxOption.js.map +1 -1
  17. package/dist/Menu/Menu.d.ts +15 -1
  18. package/dist/Menu/Menu.d.ts.map +1 -1
  19. package/dist/Menu/Menu.js +39 -5
  20. package/dist/Menu/Menu.js.map +1 -1
  21. package/dist/Menu/MenuAction.d.ts +4 -1
  22. package/dist/Menu/MenuAction.d.ts.map +1 -1
  23. package/dist/Menu/MenuAction.js +22 -4
  24. package/dist/Menu/MenuAction.js.map +1 -1
  25. package/dist/Overlay/useAnchoredOverlay.d.ts +25 -1
  26. package/dist/Overlay/useAnchoredOverlay.d.ts.map +1 -1
  27. package/dist/Overlay/useAnchoredOverlay.js +8 -4
  28. package/dist/Overlay/useAnchoredOverlay.js.map +1 -1
  29. package/dist/Overlay/usePanelItemSize.d.ts +3 -0
  30. package/dist/Overlay/usePanelItemSize.d.ts.map +1 -0
  31. package/dist/Overlay/usePanelItemSize.js +59 -0
  32. package/dist/Overlay/usePanelItemSize.js.map +1 -0
  33. package/dist/controlStyles.d.ts +30 -0
  34. package/dist/controlStyles.d.ts.map +1 -1
  35. package/dist/controlStyles.js +34 -0
  36. package/dist/controlStyles.js.map +1 -1
  37. package/dist/markdownEditorCodeMirror/MarkdownEditorCodeMirror.d.ts.map +1 -1
  38. package/dist/markdownEditorCodeMirror/MarkdownEditorCodeMirror.js +1 -1
  39. package/dist/markdownEditorCodeMirror/MarkdownEditorCodeMirror.js.map +1 -1
  40. package/dist/markdownEditorCodeMirror/livePreview.d.ts.map +1 -1
  41. package/dist/markdownEditorCodeMirror/livePreview.js +22 -0
  42. package/dist/markdownEditorCodeMirror/livePreview.js.map +1 -1
  43. package/dist/viewport.testHelpers.d.ts +18 -4
  44. package/dist/viewport.testHelpers.d.ts.map +1 -1
  45. package/dist/viewport.testHelpers.js +18 -6
  46. package/dist/viewport.testHelpers.js.map +1 -1
  47. package/package.json +1 -1
  48. package/src/Combobox/Combobox.mdx +26 -0
  49. package/src/Combobox/Combobox.stories.tsx +65 -0
  50. package/src/Combobox/Combobox.test.tsx +46 -0
  51. package/src/Combobox/Combobox.tsx +76 -24
  52. package/src/Combobox/ComboboxOption.tsx +11 -1
  53. package/src/Listbox/Listbox.mdx +24 -0
  54. package/src/Listbox/Listbox.stories.tsx +81 -5
  55. package/src/Listbox/Listbox.tsx +17 -0
  56. package/src/Listbox/ListboxOption.tsx +10 -1
  57. package/src/Menu/Menu.mdx +49 -0
  58. package/src/Menu/Menu.stories.tsx +113 -2
  59. package/src/Menu/Menu.test.tsx +129 -0
  60. package/src/Menu/Menu.tsx +62 -3
  61. package/src/Menu/MenuAction.tsx +29 -4
  62. package/src/Overlay/useAnchoredOverlay.ts +33 -5
  63. package/src/Overlay/usePanelItemSize.ts +71 -0
  64. package/src/controlStyles.ts +38 -0
  65. package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.test.tsx +185 -0
  66. package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.tsx +42 -1
  67. package/src/markdownEditorCodeMirror/livePreview.ts +22 -0
  68. package/src/sourceRules.test.ts +9 -0
  69. 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":"AAKA,OAAO,KAAK,EACV,YAAY,EAEZ,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAMzD,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,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;AAmCD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,QAAQ,GAAI,4MAmBtB,aAAa,KAAG,SAixBlB,CAAA"}
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
- estimateSize: () => 36,
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: "flex items-center gap-1 border-border-subtle border-b px-3 py-2", children: _jsx("input", { "aria-activedescendant": activeDescendantId, "aria-autocomplete": "list", "aria-controls": listboxId, "aria-expanded": "true", "aria-labelledby": triggerId, className: "min-w-24 flex-1 bg-transparent text-content-primary text-sm outline-none placeholder:text-content-muted", onChange: (changeEvent) => {
478
- setQuery(changeEvent.target.value);
479
- }, 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: {
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;AAEtC,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,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,kEAQ5B,mBAAmB,KAAG,SA6ExB,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 gap-2 rounded-sm px-2 py-1.5 text-start text-sm",
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;AAkB/C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,EAAE,EACF,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,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,yGAAyG;QACzG,+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
+ {"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;AAQpD,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,+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,4FASrB,YAAY,KAAG,SA+MjB,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"}
@@ -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":"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"}
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;AAKtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAA;IACnB,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,2FAQ3B,kBAAkB,KAAG,SAsEvB,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 gap-2 rounded-sm px-2 py-1.5 text-start text-sm transition-colors duration-(--duration-fast) ease-standard",
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":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAkB/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,UAAU,EACV,IAAI,EACJ,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,oKAAoK;QACpK,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"}
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"}
@@ -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
@@ -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;AAQpD,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,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;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,eAAO,MAAM,IAAI,GAAI,6EAQlB,SAAS,KAAG,SAyMd,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", { className: "px-2 pt-1.5 pb-0.5 font-medium text-content-secondary text-xs", id: headingId, children: entry.label }), entry.items.map(renderItem)] }, entry.key));
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: "px-2 py-1.5 text-content-disabled text-sm", role: "menuitem", tabIndex: -1, children: emptyState }));
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, "z-[var(--layer-modal)] flex min-w-48 flex-col gap-0.5 p-1", className), onKeyDown: (keyEvent) => {
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,
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/Menu/Menu.tsx"],"names":[],"mappings":"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"}
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