@xeonr/platform-ui 1.6.2 → 1.7.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 (55) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +11 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/kit/Anchored.d.ts.map +1 -1
  6. package/dist/kit/Anchored.js +4 -1
  7. package/dist/kit/Anchored.js.map +1 -1
  8. package/dist/kit/Badge.d.ts +23 -0
  9. package/dist/kit/Badge.d.ts.map +1 -1
  10. package/dist/kit/Badge.js +53 -0
  11. package/dist/kit/Badge.js.map +1 -1
  12. package/dist/kit/Button.d.ts +13 -0
  13. package/dist/kit/Button.d.ts.map +1 -1
  14. package/dist/kit/Button.js +7 -3
  15. package/dist/kit/Button.js.map +1 -1
  16. package/dist/kit/Checkbox.d.ts +34 -0
  17. package/dist/kit/Checkbox.d.ts.map +1 -0
  18. package/dist/kit/Checkbox.js +52 -0
  19. package/dist/kit/Checkbox.js.map +1 -0
  20. package/dist/kit/Color.d.ts +8 -1
  21. package/dist/kit/Color.d.ts.map +1 -1
  22. package/dist/kit/Color.js +14 -5
  23. package/dist/kit/Color.js.map +1 -1
  24. package/dist/kit/Controls.d.ts +2 -33
  25. package/dist/kit/Controls.d.ts.map +1 -1
  26. package/dist/kit/Controls.js +3 -44
  27. package/dist/kit/Controls.js.map +1 -1
  28. package/dist/kit/DataGrid.d.ts +42 -2
  29. package/dist/kit/DataGrid.d.ts.map +1 -1
  30. package/dist/kit/DataGrid.js +98 -7
  31. package/dist/kit/DataGrid.js.map +1 -1
  32. package/dist/kit/Form.d.ts +7 -1
  33. package/dist/kit/Form.d.ts.map +1 -1
  34. package/dist/kit/Form.js +7 -4
  35. package/dist/kit/Form.js.map +1 -1
  36. package/dist/kit/LogView.d.ts.map +1 -1
  37. package/dist/kit/LogView.js +45 -6
  38. package/dist/kit/LogView.js.map +1 -1
  39. package/dist/kit/Menu.d.ts +13 -2
  40. package/dist/kit/Menu.d.ts.map +1 -1
  41. package/dist/kit/Menu.js +32 -6
  42. package/dist/kit/Menu.js.map +1 -1
  43. package/dist/kit/Spectrum.d.ts +40 -0
  44. package/dist/kit/Spectrum.d.ts.map +1 -0
  45. package/dist/kit/Spectrum.js +235 -0
  46. package/dist/kit/Spectrum.js.map +1 -0
  47. package/dist/kit/SplitButton.d.ts +43 -0
  48. package/dist/kit/SplitButton.d.ts.map +1 -0
  49. package/dist/kit/SplitButton.js +34 -0
  50. package/dist/kit/SplitButton.js.map +1 -0
  51. package/dist/theme/ThemeProvider.d.ts +21 -2
  52. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  53. package/dist/theme/ThemeProvider.js +21 -5
  54. package/dist/theme/ThemeProvider.js.map +1 -1
  55. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"LogView.d.ts","sourceRoot":"","sources":["../../src/kit/LogView.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,OAAO;IACtB,oGAAoG;IACpG,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,sEAAsE;IACtE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACzC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAClF,yGAAyG;IACzG,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AA+D3D,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAsB,EAAE,MAAa,EAAE,WAAmC,EAAE,WAAW,EAAE,YAAY,EAAE,UAAyB,EAAE,MAAM,EAAE,EAAE;IAC5L,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,uIAAuI;IACvI,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qHAAqH;IACrH,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,+FAA+F;IAC/F,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CACtC,+BA4BA;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;IAC3I,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qBAAqB;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CACtC,+BAmBA"}
1
+ {"version":3,"file":"LogView.d.ts","sourceRoot":"","sources":["../../src/kit/LogView.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState } from "react";
2
+ import { useEffect, useLayoutEffect, useRef, useState } from "react";
3
3
  import styled from "styled-components";
4
4
  import { v } from "../theme/tokens.js";
5
5
  import { PanelHead, PanelTitle, PanelActions, Panel } from "./Panel.js";
@@ -63,16 +63,55 @@ const Older = styled.button `
63
63
  &:disabled { cursor: default; opacity: 0.6; }
64
64
  `;
65
65
  const Foot = styled.div `margin-top: 8px; color: ${v.logDim}; font-size: 10.5px; text-align: center;`;
66
+ const useIsoLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
67
+ /** How close to the tail still counts as "at the tail", in px. */
68
+ const TAIL_SLACK = 24;
66
69
  export function LogSurface({ lines, height, flow, order = "oldest-first", follow = true, placeholder = "waiting for output…", onLoadOlder, loadingOlder, olderLabel = "Load older", footer }) {
67
70
  const ref = useRef(null);
68
71
  const newest = order === "newest-first";
69
72
  const shown = newest ? [...lines].reverse() : lines;
70
- const older = onLoadOlder ? _jsx(Older, { type: "button", disabled: loadingOlder, onClick: onLoadOlder, style: newest ? { margin: "8px 0 0" } : undefined, children: loadingOlder ? "Loading…" : olderLabel }) : null;
71
- useEffect(() => {
72
- if (follow && !flow && ref.current)
73
- ref.current.scrollTop = newest ? 0 : ref.current.scrollHeight;
73
+ // Following means "stay at the tail", not "go to the tail whenever anything
74
+ // changes": a reader who has scrolled away is reading, and new lines must
75
+ // not pull them back. And "Load older" grows the log at the far end from
76
+ // the tail, so the reader is held where they were rather than thrown to the
77
+ // tail (oldest-first) by the lines landing above them.
78
+ const pinned = useRef(true);
79
+ /** Set when older lines were asked for: the reader's distance from the bottom, to hold. */
80
+ const anchor = useRef(null);
81
+ const firstLine = useRef(undefined);
82
+ const wasFollowing = useRef(follow);
83
+ const onScroll = () => {
84
+ const el = ref.current;
85
+ if (!el)
86
+ return;
87
+ pinned.current = newest ? el.scrollTop <= TAIL_SLACK : el.scrollHeight - el.scrollTop - el.clientHeight <= TAIL_SLACK;
88
+ };
89
+ const loadOlder = () => {
90
+ const el = ref.current;
91
+ if (el && !newest && !flow)
92
+ anchor.current = el.scrollHeight - el.scrollTop;
93
+ onLoadOlder?.();
94
+ };
95
+ const older = onLoadOlder ? _jsx(Older, { type: "button", disabled: loadingOlder, onClick: loadOlder, style: newest ? { margin: "8px 0 0" } : undefined, children: loadingOlder ? "Loading…" : olderLabel }) : null;
96
+ useIsoLayoutEffect(() => {
97
+ const el = ref.current;
98
+ const prepended = firstLine.current !== undefined && lines[0] !== firstLine.current;
99
+ firstLine.current = lines[0];
100
+ // turning following back on is asking to be taken to the tail
101
+ if (follow && !wasFollowing.current)
102
+ pinned.current = true;
103
+ wasFollowing.current = follow;
104
+ if (!el || flow)
105
+ return;
106
+ if (anchor.current !== null && prepended) {
107
+ el.scrollTop = el.scrollHeight - anchor.current;
108
+ anchor.current = null;
109
+ return;
110
+ }
111
+ if (follow && pinned.current)
112
+ el.scrollTop = newest ? 0 : el.scrollHeight;
74
113
  }, [lines, follow, flow, newest]);
75
- return (_jsxs(Sur, { ref: ref, "$h": height, "$flow": flow, children: [newest ? null : older, lines.length === 0 ? _jsx(Ts, { children: placeholder }) : null, shown.map((l, i) => (l.boot ? _jsx(Boot, { children: l.text }, i) :
114
+ return (_jsxs(Sur, { ref: ref, "$h": height, "$flow": flow, onScroll: flow ? undefined : onScroll, children: [newest ? null : older, lines.length === 0 ? _jsx(Ts, { children: placeholder }) : null, shown.map((l, i) => (l.boot ? _jsx(Boot, { children: l.text }, i) :
76
115
  l.divider ? _jsx(Rule, { "$tone": l.tone, children: l.text }, i) : (_jsxs("div", { children: [l.at != null && l.at !== "" ? _jsxs(Ts, { children: [fmtAt(l.at), " "] }) : null, l.level ? _jsxs(_Fragment, { children: [_jsx(Lvl, { "$l": l.level, children: l.level }), " "] }) : null, l.source ? _jsxs(_Fragment, { children: [_jsx(Src, { children: l.source }), " "] }) : null, l.stderr ? _jsx(Err, { children: l.text }) : l.text, l.fields ? _jsx(Fields, { children: Object.entries(l.fields).filter(([, val]) => val != null).map(([k, val]) => `${k}=${String(val)}`).join(" ") }) : null] }, i)))), newest ? older : null, footer ? _jsx(Foot, { children: footer }) : null] }));
77
116
  }
78
117
  /** LogPanel: LogSurface inside a Panel with a follow toggle and status slot. */
@@ -1 +1 @@
1
- {"version":3,"file":"LogView.js","sourceRoot":"","sources":["../../src/kit/LogView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LogView.js","sourceRoot":"","sources":["../../src/kit/LogView.tsx"],"names":[],"mappings":"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"}
@@ -31,7 +31,12 @@ export declare function MenuItem({ icon, to, href, target, rel, external, downlo
31
31
  meta?: ReactNode | undefined;
32
32
  onClick?: (() => void) | undefined;
33
33
  danger?: boolean | undefined;
34
- disabled?: boolean | undefined;
34
+ /**
35
+ * Off: drawn dimmed, announced as disabled, skipped by the arrow keys, and a
36
+ * click on it does nothing (the menu stays open). A string is the reason,
37
+ * shown as a tooltip on the item — "Only one mipmap level" (1.7).
38
+ */
39
+ disabled?: boolean | string | undefined;
35
40
  children: ReactNode;
36
41
  }): import("react").JSX.Element;
37
42
  export interface MenuProps {
@@ -55,6 +60,12 @@ export interface MenuProps {
55
60
  label?: string | undefined;
56
61
  /** told whenever it opens or closes — a rail that stays expanded while its menu is open */
57
62
  onOpenChange?: ((open: boolean) => void) | undefined;
63
+ /**
64
+ * The menu cannot open: a click or ArrowDown on the trigger does nothing,
65
+ * and an open menu closes (1.7). Disable the trigger itself as well — this
66
+ * is what stops the menu, that is what shows it.
67
+ */
68
+ disabled?: boolean | undefined;
58
69
  }
59
70
  /**
60
71
  * Menu: click-to-open popover anchored to its trigger. It portals to
@@ -65,7 +76,7 @@ export interface MenuProps {
65
76
  * one outcome" is always the right behaviour. Arrow keys, Home and End move
66
77
  * between items.
67
78
  */
68
- export declare function Menu({ trigger, children, align, side, width, label, onOpenChange }: MenuProps): import("react").JSX.Element;
79
+ export declare function Menu({ trigger, children, align, side, width, label, onOpenChange, disabled }: MenuProps): import("react").JSX.Element;
69
80
  /**
70
81
  * OverflowMenu: the ⋯ button on a row or a card and the menu it opens.
71
82
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/kit/Menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/kit/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAI1H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkBjF,eAAO,MAAM,SAAS;;WAQrB,CAAC;AAEF,eAAO,MAAM,WAAW;;WAGvB,CAAC;AA+CF,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACvH,2FAA2F;IAC3F,IAAI,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7D,yBAAyB;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAuDA;AAOD,MAAM,WAAW,SAAS;IACxB,gFAAgF;IAChF,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,2FAA2F;IAC3F,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAe,EAAE,IAAe,EAAE,KAAW,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,SAAS,+BAyFlI;AAID;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAsB,EAAE,IAAa,EAAE,IAAI,EAAE,KAAe,EAAE,IAAe,EAAE,KAAK,EAAE,OAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;IAC7J,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5C,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,0CAA0C;IAC1C,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAsBA"}
package/dist/kit/Menu.js CHANGED
@@ -50,7 +50,7 @@ const RowButton = styled.button `
50
50
  ${rowCss}
51
51
  color: ${(p) => (p.$danger ? v.danger : v.muted)};
52
52
  &:hover { background: ${(p) => (p.$danger ? v.dangerBg : v.hover)}; color: ${(p) => (p.$danger ? v.danger : v.text)}; }
53
- &:disabled { opacity: 0.45; cursor: not-allowed; background: none; }
53
+ &:disabled, &[aria-disabled="true"] { opacity: 0.45; cursor: not-allowed; background: none; }
54
54
  `;
55
55
  const RowLink = styled(Link) `
56
56
  ${rowCss}
@@ -81,9 +81,20 @@ export function MenuItem({ icon, to, href, target, rel, external, download, meta
81
81
  ? _jsx(Icon, { name: icon })
82
82
  : _jsx(FontAwesomeIcon, { icon: icon, style: { width: "1em", height: "1em" } });
83
83
  const inner = _jsxs(_Fragment, { children: [glyph, children, trail] });
84
+ const why = typeof disabled === "string" && disabled ? disabled : undefined;
85
+ // swallowed, and kept from the panel, whose own click would close the menu
86
+ const swallow = (e) => { e.preventDefault(); e.stopPropagation(); };
84
87
  if ((to || href) && disabled) {
85
88
  // A link has no :disabled; off, it is a link to nowhere that says so.
86
- return _jsx(RowAnchor, { role: "menuitem", "aria-disabled": "true", tabIndex: -1, "$danger": danger, onClick: (e) => { e.preventDefault(); e.stopPropagation(); }, children: inner });
89
+ const off = _jsx(RowAnchor, { role: "menuitem", "aria-disabled": "true", "aria-description": why, tabIndex: -1, "$danger": danger, onClick: swallow, children: inner });
90
+ return why ? _jsx(Tooltip, { label: why, side: "right", style: REASON_ANCHOR, children: off }) : off;
91
+ }
92
+ if (why) {
93
+ // A native disabled button gets no pointer events, so its tooltip could
94
+ // never open: with a reason it is aria-disabled instead, out of the tab
95
+ // order and the arrow keys, and its click goes nowhere. The reason is also
96
+ // its aria-description, for a screen reader that never hovers.
97
+ return (_jsx(Tooltip, { label: why, side: "right", style: REASON_ANCHOR, children: _jsx(RowButton, { role: "menuitem", type: "button", "aria-disabled": "true", "aria-description": why, tabIndex: -1, "$danger": danger, onClick: swallow, children: inner }) }));
87
98
  }
88
99
  if (to) {
89
100
  return (_jsx(RowLink, { role: "menuitem", to: to, "$danger": danger, target: tgt, rel: linkRel, onClick: onClick, children: inner }));
@@ -91,8 +102,10 @@ export function MenuItem({ icon, to, href, target, rel, external, download, meta
91
102
  if (href) {
92
103
  return (_jsx(RowAnchor, { role: "menuitem", href: href, "$danger": danger, target: tgt, rel: linkRel, download: download === true ? "" : download || undefined, onClick: onClick, children: inner }));
93
104
  }
94
- return _jsx(RowButton, { role: "menuitem", type: "button", "$danger": danger, disabled: disabled, onClick: onClick, children: inner });
105
+ return _jsx(RowButton, { role: "menuitem", type: "button", "$danger": danger, disabled: !!disabled, onClick: onClick, children: inner });
95
106
  }
107
+ // the tooltip's anchor takes the row's full width, as the row did
108
+ const REASON_ANCHOR = { display: "flex", width: "100%" };
96
109
  const ITEMS = '[role="menuitem"]:not(:disabled):not([aria-disabled="true"])';
97
110
  /**
98
111
  * Menu: click-to-open popover anchored to its trigger. It portals to
@@ -103,7 +116,7 @@ const ITEMS = '[role="menuitem"]:not(:disabled):not([aria-disabled="true"])';
103
116
  * one outcome" is always the right behaviour. Arrow keys, Home and End move
104
117
  * between items.
105
118
  */
106
- export function Menu({ trigger, children, align = "right", side = "bottom", width = 220, label, onOpenChange }) {
119
+ export function Menu({ trigger, children, align = "right", side = "bottom", width = 220, label, onOpenChange, disabled }) {
107
120
  const [open, setOpenState] = useState(false);
108
121
  const ref = useRef(null);
109
122
  const layer = useRef(null);
@@ -126,6 +139,16 @@ export function Menu({ trigger, children, align = "right", side = "bottom", widt
126
139
  setOpen(false);
127
140
  ref.current?.querySelector("button, a, [tabindex]")?.focus();
128
141
  });
142
+ // Disabled while open: shut it, as if the outside had been clicked. The
143
+ // state is dropped during render; the listener is told after it.
144
+ if (disabled && open)
145
+ setOpenState(false);
146
+ useEffect(() => {
147
+ if (disabled && told.current) {
148
+ told.current = false;
149
+ changed.current?.(false);
150
+ }
151
+ }, [disabled]);
129
152
  useEffect(() => {
130
153
  if (!open)
131
154
  return;
@@ -162,7 +185,10 @@ export function Menu({ trigger, children, align = "right", side = "bottom", widt
162
185
  e.preventDefault();
163
186
  items[next].focus();
164
187
  };
165
- return (_jsxs(Wrap, { ref: ref, children: [_jsx("div", { onClick: () => setOpen(!open), onKeyDown: (e) => {
188
+ return (_jsxs(Wrap, { ref: ref, children: [_jsx("div", { onClick: () => { if (!disabled)
189
+ setOpen(!open); }, onKeyDown: (e) => {
190
+ if (disabled)
191
+ return;
166
192
  // ArrowDown on the trigger opens the menu with the first item focused
167
193
  if (e.key === "ArrowDown" && !open) {
168
194
  e.preventDefault();
@@ -171,7 +197,7 @@ export function Menu({ trigger, children, align = "right", side = "bottom", widt
171
197
  }
172
198
  else if (open)
173
199
  move(e);
174
- }, style: { display: "contents" }, children: trigger(open) }), open ? (_jsx(Anchored, { anchor: ref, align: align, side: side, layerRef: layer, children: _jsx(Dropdown, { role: "menu", "aria-label": label, "$width": width, onClick: () => setOpen(false), onKeyDown: move, children: children }) })) : null] }));
200
+ }, style: { display: "contents" }, children: trigger(open) }), open && !disabled ? (_jsx(Anchored, { anchor: ref, align: align, side: side, layerRef: layer, children: _jsx(Dropdown, { role: "menu", "aria-label": label, "$width": width, onClick: () => setOpen(false), onKeyDown: move, children: children }) })) : null] }));
175
201
  }
176
202
  const Isolate = styled.span `display: inline-flex;`;
177
203
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/kit/Menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/kit/Menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type CSSProperties } from "react";
2
+ /** Hue 0–360, saturation and value 0–1. */
3
+ export interface Hsv {
4
+ h: number;
5
+ s: number;
6
+ v: number;
7
+ }
8
+ /** `#rgb`, `#rrggbb`, with or without the `#`, any case → `#rrggbb`; anything else → null. */
9
+ export declare function normaliseHex(raw: string): string | null;
10
+ export declare function hsvToHex({ h, s, v: val }: Hsv): string;
11
+ /** A hex the picker can read, as HSV; null for anything else. */
12
+ export declare function hexToHsv(hex: string): Hsv | null;
13
+ export interface SpectrumPickerProps {
14
+ /** the colour, `#rrggbb` (a `#rgb` is read too); anything else shows the last colour picked */
15
+ value: string;
16
+ /** every change, as `#rrggbb` lower case — while dragging too */
17
+ onChange: (hex: string) => void;
18
+ /** once a drag or a key press ends: for an undo step or a save */
19
+ onCommit?: ((hex: string) => void) | undefined;
20
+ /** accessible name of the whole picker (default "Colour") */
21
+ label?: string | undefined;
22
+ /** show the hex field and preview under the strip (default true) */
23
+ hexInput?: boolean | undefined;
24
+ /** px (default 220) */
25
+ width?: number | undefined;
26
+ disabled?: boolean | undefined;
27
+ className?: string | undefined;
28
+ style?: CSSProperties | undefined;
29
+ }
30
+ /**
31
+ * SpectrumPicker: pick any colour inline. Drag (or click) the square for
32
+ * saturation (across) and brightness (up), the strip for hue, or type the hex.
33
+ * Keyboard: in the square the arrows move saturation and brightness, in the
34
+ * strip they move hue; Shift moves ten times as far, Home/End go to the ends.
35
+ * Reach for it where the colour is the person's own (a paint, a label colour);
36
+ * for a choice from a fixed set use `ColorPicker`, which can offer this too
37
+ * (`spectrum`).
38
+ */
39
+ export declare function SpectrumPicker({ value, onChange, onCommit, label, hexInput, width, disabled, className, style, }: SpectrumPickerProps): import("react").JSX.Element;
40
+ //# sourceMappingURL=Spectrum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spectrum.d.ts","sourceRoot":"","sources":["../../src/kit/Spectrum.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,aAAa,EAAyC,MAAM,OAAO,CAAC;AAc/G,2CAA2C;AAC3C,MAAM,WAAW,GAAG;IAAG,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;AAIxD,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvD;AAED,wBAAgB,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,CAOtD;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAiBhD;AAiED,MAAM,WAAW,mBAAmB;IAClC,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/C,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAgB,EAAE,QAAe,EAAE,KAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,GACtG,EAAE,mBAAmB,+BAyKrB"}
@@ -0,0 +1,235 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import styled, { css } from "styled-components";
4
+ import { v } from "../theme/tokens.js";
5
+ import { MonoInput } from "./Form.js";
6
+ const clamp = (n, lo, hi) => Math.min(hi, Math.max(lo, n));
7
+ /** `#rgb`, `#rrggbb`, with or without the `#`, any case → `#rrggbb`; anything else → null. */
8
+ export function normaliseHex(raw) {
9
+ const m = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(raw.trim());
10
+ if (!m)
11
+ return null;
12
+ const d = m[1].toLowerCase();
13
+ return `#${d.length === 3 ? d.split("").map((c) => c + c).join("") : d}`;
14
+ }
15
+ export function hsvToHex({ h, s, v: val }) {
16
+ const f = (n) => {
17
+ const k = (n + h / 60) % 6;
18
+ const c = val - val * s * Math.max(0, Math.min(k, 4 - k, 1));
19
+ return Math.round(c * 255).toString(16).padStart(2, "0");
20
+ };
21
+ return `#${f(5)}${f(3)}${f(1)}`;
22
+ }
23
+ /** A hex the picker can read, as HSV; null for anything else. */
24
+ export function hexToHsv(hex) {
25
+ const n = normaliseHex(hex);
26
+ if (!n)
27
+ return null;
28
+ const r = parseInt(n.slice(1, 3), 16) / 255;
29
+ const g = parseInt(n.slice(3, 5), 16) / 255;
30
+ const b = parseInt(n.slice(5, 7), 16) / 255;
31
+ const max = Math.max(r, g, b);
32
+ const d = max - Math.min(r, g, b);
33
+ let h = 0;
34
+ if (d) {
35
+ if (max === r)
36
+ h = ((g - b) / d) % 6;
37
+ else if (max === g)
38
+ h = (b - r) / d + 2;
39
+ else
40
+ h = (r - g) / d + 4;
41
+ h *= 60;
42
+ if (h < 0)
43
+ h += 360;
44
+ }
45
+ return { h, s: max ? d / max : 0, v: max };
46
+ }
47
+ // the ends of the square, computed rather than written down
48
+ const WHITE = hsvToHex({ h: 0, s: 0, v: 1 });
49
+ const BLACK = hsvToHex({ h: 0, s: 0, v: 0 });
50
+ const RAINBOW = [0, 60, 120, 180, 240, 300, 360].map((h) => hsvToHex({ h, s: 1, v: 1 })).join(", ");
51
+ const Root = styled.div `
52
+ display: grid;
53
+ gap: 10px;
54
+ width: ${(p) => p.$width}px;
55
+ max-width: 100%;
56
+ ${(p) => p.$disabled && css `opacity: 0.5; pointer-events: none;`}
57
+ `;
58
+ const Area = styled.div `
59
+ position: relative;
60
+ aspect-ratio: 4 / 3;
61
+ border-radius: ${v.rCtl};
62
+ border: 1px solid ${v.line2};
63
+ cursor: crosshair;
64
+ touch-action: none;
65
+ user-select: none;
66
+ `;
67
+ const Strip = styled.div `
68
+ position: relative;
69
+ height: 12px;
70
+ border-radius: 6px;
71
+ border: 1px solid ${v.line2};
72
+ cursor: pointer;
73
+ touch-action: none;
74
+ user-select: none;
75
+ `;
76
+ const thumb = css `
77
+ position: absolute;
78
+ width: 14px;
79
+ height: 14px;
80
+ border-radius: 50%;
81
+ transform: translate(-50%, -50%);
82
+ background: var(--x-swatch);
83
+ /* the ring is surface then ink, so it reads on any colour under it */
84
+ box-shadow: 0 0 0 2px ${v.surface}, 0 0 0 3px ${v.text};
85
+ outline: none;
86
+ &:focus-visible { box-shadow: 0 0 0 2px ${v.surface}, 0 0 0 3px ${v.text}, ${v.ring}; }
87
+ `;
88
+ const AreaThumb = styled.div `${thumb}`;
89
+ const StripThumb = styled.div `${thumb} top: 50%;`;
90
+ const HexRow = styled.div `
91
+ display: flex;
92
+ align-items: center;
93
+ gap: 8px;
94
+ > .preview {
95
+ flex: none;
96
+ width: 26px;
97
+ height: 26px;
98
+ border-radius: 50%;
99
+ border: 1px solid ${v.line2};
100
+ background: var(--x-swatch);
101
+ }
102
+ `;
103
+ /**
104
+ * SpectrumPicker: pick any colour inline. Drag (or click) the square for
105
+ * saturation (across) and brightness (up), the strip for hue, or type the hex.
106
+ * Keyboard: in the square the arrows move saturation and brightness, in the
107
+ * strip they move hue; Shift moves ten times as far, Home/End go to the ends.
108
+ * Reach for it where the colour is the person's own (a paint, a label colour);
109
+ * for a choice from a fixed set use `ColorPicker`, which can offer this too
110
+ * (`spectrum`).
111
+ */
112
+ export function SpectrumPicker({ value, onChange, onCommit, label = "Colour", hexInput = true, width = 220, disabled, className, style, }) {
113
+ // HSV is kept here rather than derived from the hex each render: a grey
114
+ // has no hue and black has no saturation, and the square should not jump
115
+ // back to red the moment the person drags through either.
116
+ const [hsv, setHsv] = useState(() => hexToHsv(value) ?? { h: 0, s: 0, v: 0 });
117
+ const hex = hsvToHex(hsv);
118
+ const [seen, setSeen] = useState(value);
119
+ if (seen !== value) {
120
+ setSeen(value);
121
+ const next = hexToHsv(value);
122
+ if (next && normaliseHex(value) !== hex)
123
+ setHsv(next);
124
+ }
125
+ const [draft, setDraft] = useState(null);
126
+ const latest = useRef(hex);
127
+ useEffect(() => { latest.current = hex; });
128
+ const set = (next) => {
129
+ const n = { h: clamp(next.h, 0, 360), s: clamp(next.s, 0, 1), v: clamp(next.v, 0, 1) };
130
+ setHsv(n);
131
+ const out = hsvToHex(n);
132
+ latest.current = out;
133
+ if (out !== hex)
134
+ onChange(out);
135
+ };
136
+ const area = useRef(null);
137
+ const strip = useRef(null);
138
+ const areaThumb = useRef(null);
139
+ const stripThumb = useRef(null);
140
+ const partOf = (el) => (el.dataset.part === "hue" ? "hue" : "area");
141
+ const fromPointer = (part, e) => {
142
+ const r = (part === "hue" ? strip : area).current.getBoundingClientRect();
143
+ if (part === "hue") {
144
+ if (r.width)
145
+ set({ ...hsv, h: ((e.clientX - r.left) / r.width) * 360 });
146
+ }
147
+ else if (r.width && r.height) {
148
+ set({ h: hsv.h, s: (e.clientX - r.left) / r.width, v: 1 - (e.clientY - r.top) / r.height });
149
+ }
150
+ };
151
+ const onPointerDown = (e) => {
152
+ if (disabled || e.button !== 0)
153
+ return;
154
+ e.preventDefault();
155
+ e.currentTarget.setPointerCapture?.(e.pointerId);
156
+ const part = partOf(e.currentTarget);
157
+ (part === "hue" ? stripThumb : areaThumb).current?.focus();
158
+ fromPointer(part, e);
159
+ };
160
+ const onPointerMove = (e) => {
161
+ if (e.currentTarget.hasPointerCapture?.(e.pointerId))
162
+ fromPointer(partOf(e.currentTarget), e);
163
+ };
164
+ const onPointerUp = (e) => {
165
+ if (!e.currentTarget.hasPointerCapture?.(e.pointerId))
166
+ return;
167
+ e.currentTarget.releasePointerCapture?.(e.pointerId);
168
+ onCommit?.(latest.current);
169
+ };
170
+ const pointer = { onPointerDown, onPointerMove, onPointerUp };
171
+ const onKeyDown = (e) => {
172
+ if (disabled)
173
+ return;
174
+ const hue = partOf(e.currentTarget) === "hue";
175
+ const big = e.shiftKey ? 10 : 1;
176
+ const d = hue ? big : big / 100;
177
+ let next = null;
178
+ if (hue) {
179
+ if (e.key === "ArrowRight" || e.key === "ArrowUp")
180
+ next = { ...hsv, h: hsv.h + d };
181
+ else if (e.key === "ArrowLeft" || e.key === "ArrowDown")
182
+ next = { ...hsv, h: hsv.h - d };
183
+ else if (e.key === "Home")
184
+ next = { ...hsv, h: 0 };
185
+ else if (e.key === "End")
186
+ next = { ...hsv, h: 360 };
187
+ }
188
+ else {
189
+ if (e.key === "ArrowRight")
190
+ next = { ...hsv, s: hsv.s + d };
191
+ else if (e.key === "ArrowLeft")
192
+ next = { ...hsv, s: hsv.s - d };
193
+ else if (e.key === "ArrowUp")
194
+ next = { ...hsv, v: hsv.v + d };
195
+ else if (e.key === "ArrowDown")
196
+ next = { ...hsv, v: hsv.v - d };
197
+ else if (e.key === "Home")
198
+ next = { ...hsv, s: 0 };
199
+ else if (e.key === "End")
200
+ next = { ...hsv, s: 1 };
201
+ }
202
+ if (!next)
203
+ return;
204
+ e.preventDefault();
205
+ set(next);
206
+ };
207
+ const commitKey = () => onCommit?.(latest.current);
208
+ const commitHex = () => {
209
+ if (draft === null)
210
+ return;
211
+ const n = normaliseHex(draft);
212
+ setDraft(null);
213
+ const next = n ? hexToHsv(n) : null;
214
+ if (n && next && n !== hex) {
215
+ setHsv(next);
216
+ latest.current = n;
217
+ onChange(n);
218
+ onCommit?.(n);
219
+ }
220
+ };
221
+ const pct = (n) => `${Math.round(n * 100)}%`;
222
+ const hueHex = hsvToHex({ h: hsv.h, s: 1, v: 1 });
223
+ const swatch = { "--x-swatch": hex };
224
+ return (_jsxs(Root, { role: "group", "aria-label": label, "$width": width, "$disabled": !!disabled, className: className, style: style, children: [_jsx(Area, { ref: area, style: { background: `linear-gradient(to top, ${BLACK}, transparent), linear-gradient(to right, ${WHITE}, transparent), ${hueHex}` }, "data-part": "area", ...pointer, children: _jsx(AreaThumb, { ref: areaThumb, role: "slider", tabIndex: disabled ? -1 : 0, "aria-label": `${label}: saturation and brightness`, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(hsv.s * 100), "aria-valuetext": `Saturation ${pct(hsv.s)}, brightness ${pct(hsv.v)}`, "aria-disabled": disabled || undefined, "data-part": "area", onKeyDown: onKeyDown, onKeyUp: commitKey, style: { ...swatch, left: pct(hsv.s), top: pct(1 - hsv.v) } }) }), _jsx(Strip, { ref: strip, style: { background: `linear-gradient(to right, ${RAINBOW})` }, "data-part": "hue", ...pointer, children: _jsx(StripThumb, { ref: stripThumb, role: "slider", tabIndex: disabled ? -1 : 0, "aria-label": `${label}: hue`, "aria-valuemin": 0, "aria-valuemax": 360, "aria-valuenow": Math.round(hsv.h), "aria-disabled": disabled || undefined, "data-part": "hue", onKeyDown: onKeyDown, onKeyUp: commitKey, style: { "--x-swatch": hueHex, left: `${(hsv.h / 360) * 100}%` } }) }), hexInput ? (_jsxs(HexRow, { children: [_jsx("span", { className: "preview", style: swatch, "aria-hidden": true }), _jsx(MonoInput, { "aria-label": `${label}: hex`, value: draft ?? hex, disabled: disabled, spellCheck: false, maxLength: 7, onChange: (e) => setDraft(e.target.value), onBlur: commitHex, onKeyDown: (e) => {
225
+ if (e.key === "Enter") {
226
+ e.preventDefault();
227
+ commitHex();
228
+ }
229
+ else if (e.key === "Escape" && draft !== null) {
230
+ e.stopPropagation();
231
+ setDraft(null);
232
+ }
233
+ } })] })) : null] }));
234
+ }
235
+ //# sourceMappingURL=Spectrum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spectrum.js","sourceRoot":"","sources":["../../src/kit/Spectrum.tsx"],"names":[],"mappings":"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"}