@northstar-js/react 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/LICENSE +21 -0
  2. package/dist/actions.d.ts +99 -0
  3. package/dist/actions.d.ts.map +1 -0
  4. package/dist/actions.js +61 -0
  5. package/dist/actions.js.map +1 -0
  6. package/dist/backdrops/StarBackdrop.d.ts +31 -0
  7. package/dist/backdrops/StarBackdrop.d.ts.map +1 -0
  8. package/dist/backdrops/StarBackdrop.js +84 -0
  9. package/dist/backdrops/StarBackdrop.js.map +1 -0
  10. package/dist/backdrops/index.d.ts +7 -0
  11. package/dist/backdrops/index.d.ts.map +1 -0
  12. package/dist/backdrops/index.js +8 -0
  13. package/dist/backdrops/index.js.map +1 -0
  14. package/dist/backdrops/math.d.ts +39 -0
  15. package/dist/backdrops/math.d.ts.map +1 -0
  16. package/dist/backdrops/math.js +44 -0
  17. package/dist/backdrops/math.js.map +1 -0
  18. package/dist/backdrops/scenes.d.ts +20 -0
  19. package/dist/backdrops/scenes.d.ts.map +1 -0
  20. package/dist/backdrops/scenes.js +417 -0
  21. package/dist/backdrops/scenes.js.map +1 -0
  22. package/dist/backdrops.css +141 -0
  23. package/dist/data.d.ts +91 -0
  24. package/dist/data.d.ts.map +1 -0
  25. package/dist/data.js +69 -0
  26. package/dist/data.js.map +1 -0
  27. package/dist/effects/actions.d.ts +48 -0
  28. package/dist/effects/actions.d.ts.map +1 -0
  29. package/dist/effects/actions.js +80 -0
  30. package/dist/effects/actions.js.map +1 -0
  31. package/dist/effects/controls.d.ts +84 -0
  32. package/dist/effects/controls.d.ts.map +1 -0
  33. package/dist/effects/controls.js +121 -0
  34. package/dist/effects/controls.js.map +1 -0
  35. package/dist/effects/display.d.ts +92 -0
  36. package/dist/effects/display.d.ts.map +1 -0
  37. package/dist/effects/display.js +138 -0
  38. package/dist/effects/display.js.map +1 -0
  39. package/dist/effects/hooks.d.ts +13 -0
  40. package/dist/effects/hooks.d.ts.map +1 -0
  41. package/dist/effects/hooks.js +68 -0
  42. package/dist/effects/hooks.js.map +1 -0
  43. package/dist/effects/index.d.ts +14 -0
  44. package/dist/effects/index.d.ts.map +1 -0
  45. package/dist/effects/index.js +12 -0
  46. package/dist/effects/index.js.map +1 -0
  47. package/dist/effects/loaders.d.ts +67 -0
  48. package/dist/effects/loaders.d.ts.map +1 -0
  49. package/dist/effects/loaders.js +73 -0
  50. package/dist/effects/loaders.js.map +1 -0
  51. package/dist/effects/math.d.ts +23 -0
  52. package/dist/effects/math.d.ts.map +1 -0
  53. package/dist/effects/math.js +56 -0
  54. package/dist/effects/math.js.map +1 -0
  55. package/dist/effects/navigation.d.ts +55 -0
  56. package/dist/effects/navigation.d.ts.map +1 -0
  57. package/dist/effects/navigation.js +103 -0
  58. package/dist/effects/navigation.js.map +1 -0
  59. package/dist/effects/overlays.d.ts +34 -0
  60. package/dist/effects/overlays.d.ts.map +1 -0
  61. package/dist/effects/overlays.js +56 -0
  62. package/dist/effects/overlays.js.map +1 -0
  63. package/dist/effects.css +1659 -0
  64. package/dist/feedback.d.ts +55 -0
  65. package/dist/feedback.d.ts.map +1 -0
  66. package/dist/feedback.js +60 -0
  67. package/dist/feedback.js.map +1 -0
  68. package/dist/flow.d.ts +70 -0
  69. package/dist/flow.d.ts.map +1 -0
  70. package/dist/flow.js +118 -0
  71. package/dist/flow.js.map +1 -0
  72. package/dist/forms.d.ts +130 -0
  73. package/dist/forms.d.ts.map +1 -0
  74. package/dist/forms.js +241 -0
  75. package/dist/forms.js.map +1 -0
  76. package/dist/glass.d.ts +74 -0
  77. package/dist/glass.d.ts.map +1 -0
  78. package/dist/glass.js +139 -0
  79. package/dist/glass.js.map +1 -0
  80. package/dist/illustrations/data.d.ts +103 -0
  81. package/dist/illustrations/data.d.ts.map +1 -0
  82. package/dist/illustrations/data.js +3 -0
  83. package/dist/illustrations/data.js.map +1 -0
  84. package/dist/illustrations/index.d.ts +110 -0
  85. package/dist/illustrations/index.d.ts.map +1 -0
  86. package/dist/illustrations/index.js +54 -0
  87. package/dist/illustrations/index.js.map +1 -0
  88. package/dist/illustrations/types.d.ts +30 -0
  89. package/dist/illustrations/types.d.ts.map +1 -0
  90. package/dist/illustrations/types.js +2 -0
  91. package/dist/illustrations/types.js.map +1 -0
  92. package/dist/index.d.ts +27 -0
  93. package/dist/index.d.ts.map +1 -0
  94. package/dist/index.js +13 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/internal/expand.d.ts +17 -0
  97. package/dist/internal/expand.d.ts.map +1 -0
  98. package/dist/internal/expand.js +23 -0
  99. package/dist/internal/expand.js.map +1 -0
  100. package/dist/internal/icons.d.ts +9 -0
  101. package/dist/internal/icons.d.ts.map +1 -0
  102. package/dist/internal/icons.js +12 -0
  103. package/dist/internal/icons.js.map +1 -0
  104. package/dist/internal/interaction.d.ts +21 -0
  105. package/dist/internal/interaction.d.ts.map +1 -0
  106. package/dist/internal/interaction.js +129 -0
  107. package/dist/internal/interaction.js.map +1 -0
  108. package/dist/internal/layers.d.ts +12 -0
  109. package/dist/internal/layers.d.ts.map +1 -0
  110. package/dist/internal/layers.js +108 -0
  111. package/dist/internal/layers.js.map +1 -0
  112. package/dist/internal/util.d.ts +9 -0
  113. package/dist/internal/util.d.ts.map +1 -0
  114. package/dist/internal/util.js +33 -0
  115. package/dist/internal/util.js.map +1 -0
  116. package/dist/layout.d.ts +34 -0
  117. package/dist/layout.d.ts.map +1 -0
  118. package/dist/layout.js +27 -0
  119. package/dist/layout.js.map +1 -0
  120. package/dist/motion.d.ts +36 -0
  121. package/dist/motion.d.ts.map +1 -0
  122. package/dist/motion.js +80 -0
  123. package/dist/motion.js.map +1 -0
  124. package/dist/navigation.d.ts +100 -0
  125. package/dist/navigation.d.ts.map +1 -0
  126. package/dist/navigation.js +154 -0
  127. package/dist/navigation.js.map +1 -0
  128. package/dist/northstar/BriefForm.d.ts +23 -0
  129. package/dist/northstar/BriefForm.d.ts.map +1 -0
  130. package/dist/northstar/BriefForm.js +40 -0
  131. package/dist/northstar/BriefForm.js.map +1 -0
  132. package/dist/northstar/ExportMenu.d.ts +16 -0
  133. package/dist/northstar/ExportMenu.d.ts.map +1 -0
  134. package/dist/northstar/ExportMenu.js +11 -0
  135. package/dist/northstar/ExportMenu.js.map +1 -0
  136. package/dist/northstar/PopulationPanel.d.ts +30 -0
  137. package/dist/northstar/PopulationPanel.d.ts.map +1 -0
  138. package/dist/northstar/PopulationPanel.js +18 -0
  139. package/dist/northstar/PopulationPanel.js.map +1 -0
  140. package/dist/northstar/ResearchBuilder.d.ts +26 -0
  141. package/dist/northstar/ResearchBuilder.d.ts.map +1 -0
  142. package/dist/northstar/ResearchBuilder.js +81 -0
  143. package/dist/northstar/ResearchBuilder.js.map +1 -0
  144. package/dist/northstar/ResponsesView.d.ts +20 -0
  145. package/dist/northstar/ResponsesView.d.ts.map +1 -0
  146. package/dist/northstar/ResponsesView.js +42 -0
  147. package/dist/northstar/ResponsesView.js.map +1 -0
  148. package/dist/northstar/Run.d.ts +37 -0
  149. package/dist/northstar/Run.d.ts.map +1 -0
  150. package/dist/northstar/Run.js +32 -0
  151. package/dist/northstar/Run.js.map +1 -0
  152. package/dist/northstar/StudyShell.d.ts +50 -0
  153. package/dist/northstar/StudyShell.d.ts.map +1 -0
  154. package/dist/northstar/StudyShell.js +18 -0
  155. package/dist/northstar/StudyShell.js.map +1 -0
  156. package/dist/northstar/StudyStatus.d.ts +17 -0
  157. package/dist/northstar/StudyStatus.d.ts.map +1 -0
  158. package/dist/northstar/StudyStatus.js +26 -0
  159. package/dist/northstar/StudyStatus.js.map +1 -0
  160. package/dist/northstar/index.d.ts +10 -0
  161. package/dist/northstar/index.d.ts.map +1 -0
  162. package/dist/northstar/index.js +10 -0
  163. package/dist/northstar/index.js.map +1 -0
  164. package/dist/northstar/messages.d.ts +84 -0
  165. package/dist/northstar/messages.d.ts.map +1 -0
  166. package/dist/northstar/messages.js +107 -0
  167. package/dist/northstar/messages.js.map +1 -0
  168. package/dist/overlays.d.ts +136 -0
  169. package/dist/overlays.d.ts.map +1 -0
  170. package/dist/overlays.js +447 -0
  171. package/dist/overlays.js.map +1 -0
  172. package/dist/provider.d.ts +82 -0
  173. package/dist/provider.d.ts.map +1 -0
  174. package/dist/provider.js +128 -0
  175. package/dist/provider.js.map +1 -0
  176. package/dist/styles.css +2033 -0
  177. package/dist/surface.d.ts +58 -0
  178. package/dist/surface.d.ts.map +1 -0
  179. package/dist/surface.js +39 -0
  180. package/dist/surface.js.map +1 -0
  181. package/package.json +81 -3
  182. package/README.md +0 -3
@@ -0,0 +1,136 @@
1
+ import { type ButtonFinish, type Material } from './provider.js';
2
+ import { type Expand } from './internal/expand.js';
3
+ interface OpenProps {
4
+ open?: boolean;
5
+ defaultOpen?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ children?: React.ReactNode;
8
+ }
9
+ type TriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
10
+ /** Render the single child element as the trigger instead of a <button>. */
11
+ asChild?: boolean;
12
+ ref?: React.Ref<HTMLButtonElement>;
13
+ };
14
+ declare function DialogRoot(props: OpenProps): import("react/jsx-runtime").JSX.Element;
15
+ declare function DialogTrigger(props: TriggerProps): import("react/jsx-runtime").JSX.Element;
16
+ export interface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ /** Close when the overlay is pressed. Default true. */
18
+ dismissOnOutside?: boolean;
19
+ size?: 'sm' | 'md' | 'lg';
20
+ /** `glass` or `solid`. Defaults to the provider's material. */
21
+ material?: Material;
22
+ }
23
+ declare function DialogContent(props: DialogContentProps): import("react/jsx-runtime").JSX.Element;
24
+ declare function Footer({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
25
+ declare function Body({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
26
+ declare function Header({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
27
+ /** Modal dialog: focus trap, Escape and overlay dismiss, focus restored to the trigger. */
28
+ export declare const Dialog: {
29
+ Root: typeof DialogRoot;
30
+ Trigger: typeof DialogTrigger;
31
+ Content: typeof DialogContent;
32
+ Header: typeof Header;
33
+ Title: ({ className, ...rest }: React.HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
34
+ Description: ({ className, ...rest }: React.HTMLAttributes<HTMLParagraphElement>) => import("react/jsx-runtime").JSX.Element;
35
+ Body: typeof Body;
36
+ Footer: typeof Footer;
37
+ Close: (props: TriggerProps) => import("react/jsx-runtime").JSX.Element;
38
+ };
39
+ declare function SheetRoot(props: OpenProps): import("react/jsx-runtime").JSX.Element;
40
+ declare function SheetTrigger(props: TriggerProps): import("react/jsx-runtime").JSX.Element;
41
+ export interface SheetContentProps extends Omit<DialogContentProps, 'size'> {
42
+ side?: 'right' | 'left' | 'bottom';
43
+ }
44
+ declare function SheetContent(props: SheetContentProps): import("react/jsx-runtime").JSX.Element;
45
+ /** A modal panel from the edge of the screen. Same behaviour as Dialog. */
46
+ export declare const Sheet: {
47
+ Root: typeof SheetRoot;
48
+ Trigger: typeof SheetTrigger;
49
+ Content: typeof SheetContent;
50
+ Header: typeof Header;
51
+ Title: ({ className, ...rest }: React.HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
52
+ Description: ({ className, ...rest }: React.HTMLAttributes<HTMLParagraphElement>) => import("react/jsx-runtime").JSX.Element;
53
+ Body: typeof Body;
54
+ Footer: typeof Footer;
55
+ Close: (props: TriggerProps) => import("react/jsx-runtime").JSX.Element;
56
+ };
57
+ export type Side = 'top' | 'bottom' | 'left' | 'right';
58
+ export type Align = 'start' | 'center' | 'end';
59
+ declare function PopoverRoot(props: OpenProps): import("react/jsx-runtime").JSX.Element;
60
+ declare function PopoverTrigger(props: TriggerProps): import("react/jsx-runtime").JSX.Element;
61
+ export interface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {
62
+ side?: Side;
63
+ align?: Align;
64
+ /** Accessible name when the popover has no Popover.Title. */
65
+ label?: string;
66
+ /** `glass` or `solid`. Defaults to the provider's material. */
67
+ material?: Material;
68
+ }
69
+ declare function PopoverContent({ side, align, label, material, className, style, children, ...rest }: PopoverContentProps): import("react/jsx-runtime").JSX.Element | null;
70
+ /** Non-modal floating panel anchored to its trigger. */
71
+ export declare const Popover: {
72
+ Root: typeof PopoverRoot;
73
+ Trigger: typeof PopoverTrigger;
74
+ Content: typeof PopoverContent;
75
+ Title: ({ className, ...rest }: React.HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
76
+ Description: ({ className, ...rest }: React.HTMLAttributes<HTMLParagraphElement>) => import("react/jsx-runtime").JSX.Element;
77
+ Close: (props: TriggerProps) => import("react/jsx-runtime").JSX.Element;
78
+ };
79
+ declare function MenuRoot(props: OpenProps): import("react/jsx-runtime").JSX.Element;
80
+ export type MenuTriggerProps = TriggerProps & {
81
+ /** Leading icon (decorative). Ignored with `asChild`. */
82
+ icon?: React.ReactNode;
83
+ /**
84
+ * Icon-first trigger: with `icon`, `true` shows the icon and eases the label
85
+ * open on hover, keyboard focus and while the menu is open (always on
86
+ * touch). `always` keeps it open. Default false.
87
+ */
88
+ expand?: Expand;
89
+ /**
90
+ * Button finish when the trigger is styled as a button (`ns-button`):
91
+ * `spin` or `soft`. Default: the provider's `buttonFinish`.
92
+ */
93
+ finish?: ButtonFinish;
94
+ };
95
+ declare function MenuTrigger({ icon, expand, finish, ...triggerProps }: MenuTriggerProps): import("react/jsx-runtime").JSX.Element;
96
+ export interface MenuContentProps extends React.HTMLAttributes<HTMLDivElement> {
97
+ side?: Side;
98
+ align?: Align;
99
+ /** `glass` or `solid`. Defaults to the provider's material. */
100
+ material?: Material;
101
+ }
102
+ declare function MenuContent({ side, align, material, className, style, children, ...rest }: MenuContentProps): import("react/jsx-runtime").JSX.Element | null;
103
+ export interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
104
+ onSelect?: () => void;
105
+ disabled?: boolean;
106
+ /** Keyboard hint shown at the end (e.g. "⌘K"). */
107
+ shortcut?: React.ReactNode;
108
+ icon?: React.ReactNode;
109
+ }
110
+ declare function MenuItem({ onSelect, disabled, shortcut, icon, className, children, ...rest }: MenuItemProps): import("react/jsx-runtime").JSX.Element;
111
+ declare function MenuSeparator({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
112
+ declare function MenuLabel({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
113
+ /** Action menu: arrow keys, Home/End, typeahead, Enter/Space to select, Escape to close. */
114
+ export declare const Menu: {
115
+ Root: typeof MenuRoot;
116
+ Trigger: typeof MenuTrigger;
117
+ Content: typeof MenuContent;
118
+ Item: typeof MenuItem;
119
+ Separator: typeof MenuSeparator;
120
+ Label: typeof MenuLabel;
121
+ };
122
+ export interface TooltipProps {
123
+ content: React.ReactNode;
124
+ /** A single focusable element. */
125
+ children: React.ReactElement;
126
+ side?: Side;
127
+ align?: Align;
128
+ /** Hover delay in ms. Focus shows immediately. */
129
+ delay?: number;
130
+ /** `glass` or `solid`. Defaults to the provider's material. */
131
+ material?: Material;
132
+ }
133
+ /** Supplementary text on hover and focus; Escape hides it. Never the only label of a control. */
134
+ export declare function Tooltip({ content, children, side, align, delay, material }: TooltipProps): import("react/jsx-runtime").JSX.Element;
135
+ export {};
136
+ //# sourceMappingURL=overlays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlays.d.ts","sourceRoot":"","sources":["../src/overlays.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,447 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { cloneElement, createContext, isValidElement, useContext, useEffect, useId, useLayoutEffect, useRef, useState } from 'react';
4
+ import { Portal, useNorthstar } from './provider.js';
5
+ import { usePresence } from './internal/interaction.js';
6
+ import { useDismiss, useFocusTrap, rovingKeyDown } from './internal/layers.js';
7
+ import { cx, mergeRefs, useControllable } from './internal/util.js';
8
+ import { Close as CloseGlyph } from './internal/icons.js';
9
+ import { ExpandIcon, ExpandLabel, expandHost } from './internal/expand.js';
10
+ const useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;
11
+ function useLayerState({ open, defaultOpen, onOpenChange }) {
12
+ const [isOpen, setOpen] = useControllable(open, defaultOpen ?? false, onOpenChange);
13
+ const id = useId().replace(/:/g, '');
14
+ const [described, setDescribed] = useState(false);
15
+ return {
16
+ described,
17
+ setDescribed,
18
+ open: isOpen,
19
+ setOpen,
20
+ triggerRef: useRef(null),
21
+ contentRef: useRef(null),
22
+ contentId: `ns-layer-${id}`,
23
+ titleId: `ns-layer-${id}-title`,
24
+ descriptionId: `ns-layer-${id}-desc`,
25
+ };
26
+ }
27
+ function useLayer(ctx, name) {
28
+ const v = useContext(ctx);
29
+ if (!v)
30
+ throw new Error(`<${name}> must be used inside its Root`);
31
+ return v;
32
+ }
33
+ function renderTrigger(props, extra, ref) {
34
+ const { asChild, children, ...rest } = props;
35
+ if (asChild && isValidElement(children)) {
36
+ const child = children;
37
+ const childOnClick = child.props.onClick;
38
+ const extraOnClick = extra.onClick;
39
+ return cloneElement(child, {
40
+ ...rest,
41
+ ...extra,
42
+ ref,
43
+ onClick: (e) => {
44
+ childOnClick?.(e);
45
+ extraOnClick?.(e);
46
+ },
47
+ });
48
+ }
49
+ return (_jsx("button", { type: "button", ...rest, ...extra, ref: ref, children: children }));
50
+ }
51
+ /* ----------------------------------------------------------------- Dialog */
52
+ const DialogContext = createContext(null);
53
+ function DialogRoot(props) {
54
+ const state = useLayerState(props);
55
+ return _jsx(DialogContext.Provider, { value: state, children: props.children });
56
+ }
57
+ function DialogTrigger(props) {
58
+ const ctx = useLayer(DialogContext, 'Dialog.Trigger');
59
+ return renderTrigger(props, {
60
+ 'aria-haspopup': 'dialog',
61
+ 'aria-expanded': ctx.open,
62
+ 'aria-controls': ctx.open ? ctx.contentId : undefined,
63
+ onClick: (e) => {
64
+ props.onClick?.(e);
65
+ ctx.setOpen(true);
66
+ },
67
+ }, mergeRefs(props.ref, ctx.triggerRef));
68
+ }
69
+ /** Material class for a layer: the prop wins, then the provider. */
70
+ function useMaterial(material) {
71
+ const ns = useNorthstar();
72
+ return `ns-material--${material ?? ns.material}`;
73
+ }
74
+ function ModalSurface({ ctx, kind, side = 'right', dismissOnOutside = true, size = 'md', material, className, children, ...rest }) {
75
+ const materialClass = useMaterial(material);
76
+ const mounted = usePresence(ctx.open, ctx.contentRef);
77
+ const state = ctx.open ? 'open' : 'closed';
78
+ useDismiss(ctx.open, [ctx.contentRef], () => ctx.setOpen(false), { outside: dismissOnOutside });
79
+ useFocusTrap(ctx.open, ctx.contentRef);
80
+ useEffect(() => {
81
+ if (!ctx.open)
82
+ return;
83
+ const prev = document.body.style.overflow;
84
+ document.body.style.overflow = 'hidden';
85
+ return () => {
86
+ document.body.style.overflow = prev;
87
+ };
88
+ }, [ctx.open]);
89
+ if (!mounted)
90
+ return null;
91
+ return (_jsxs(Portal, { children: [_jsx("div", { className: cx('ns-overlay', `ns-overlay--${kind}`), "aria-hidden": "true", "data-state": state }), _jsx("div", { role: "dialog", "aria-modal": "true", "aria-labelledby": ctx.titleId, "aria-describedby": ctx.described ? ctx.descriptionId : undefined, tabIndex: -1, id: ctx.contentId, ...rest, ref: ctx.contentRef, "data-state": state, inert: !ctx.open || undefined, className: cx(kind === 'dialog' ? 'ns-dialog' : 'ns-sheet', kind === 'dialog' ? `ns-dialog--${size}` : `ns-sheet--${side}`, materialClass, className), children: children })] }));
92
+ }
93
+ function DialogContent(props) {
94
+ const ctx = useLayer(DialogContext, 'Dialog.Content');
95
+ return _jsx(ModalSurface, { ...props, ctx: ctx, kind: "dialog" });
96
+ }
97
+ function makeTitle(context, name) {
98
+ return function Title({ className, ...rest }) {
99
+ const ctx = useLayer(context, name);
100
+ return _jsx("h2", { id: ctx.titleId, ...rest, className: cx('ns-layer__title', className) });
101
+ };
102
+ }
103
+ function makeDescription(context, name) {
104
+ return function Description({ className, ...rest }) {
105
+ const ctx = useLayer(context, name);
106
+ const { setDescribed } = ctx;
107
+ useEffect(() => {
108
+ setDescribed(true);
109
+ return () => setDescribed(false);
110
+ }, [setDescribed]);
111
+ return _jsx("p", { id: ctx.descriptionId, ...rest, className: cx('ns-layer__description', className) });
112
+ };
113
+ }
114
+ function makeClose(context, name) {
115
+ return function Close(props) {
116
+ const ctx = useLayer(context, name);
117
+ const { messages } = useNorthstar();
118
+ const { children, className, ...rest } = props;
119
+ if (children === undefined) {
120
+ return (_jsx("button", { type: "button", "aria-label": messages.close, ...rest, className: cx('ns-layer__close ns-button ns-button--ghost ns-size-sm ns-icon-button', className), onClick: (e) => {
121
+ props.onClick?.(e);
122
+ ctx.setOpen(false);
123
+ }, children: _jsx(CloseGlyph, {}) }));
124
+ }
125
+ return renderTrigger({ ...rest, className, children }, {
126
+ onClick: (e) => {
127
+ props.onClick?.(e);
128
+ ctx.setOpen(false);
129
+ },
130
+ }, props.ref ?? null);
131
+ };
132
+ }
133
+ function Footer({ className, ...rest }) {
134
+ return _jsx("div", { ...rest, className: cx('ns-layer__footer', className) });
135
+ }
136
+ function Body({ className, ...rest }) {
137
+ return _jsx("div", { ...rest, className: cx('ns-layer__body', className) });
138
+ }
139
+ function Header({ className, ...rest }) {
140
+ return _jsx("div", { ...rest, className: cx('ns-layer__header', className) });
141
+ }
142
+ /** Modal dialog: focus trap, Escape and overlay dismiss, focus restored to the trigger. */
143
+ export const Dialog = {
144
+ Root: DialogRoot,
145
+ Trigger: DialogTrigger,
146
+ Content: DialogContent,
147
+ Header,
148
+ Title: makeTitle(DialogContext, 'Dialog.Title'),
149
+ Description: makeDescription(DialogContext, 'Dialog.Description'),
150
+ Body,
151
+ Footer,
152
+ Close: makeClose(DialogContext, 'Dialog.Close'),
153
+ };
154
+ /* ------------------------------------------------------------------ Sheet */
155
+ const SheetContext = createContext(null);
156
+ function SheetRoot(props) {
157
+ const state = useLayerState(props);
158
+ return _jsx(SheetContext.Provider, { value: state, children: props.children });
159
+ }
160
+ function SheetTrigger(props) {
161
+ const ctx = useLayer(SheetContext, 'Sheet.Trigger');
162
+ return renderTrigger(props, {
163
+ 'aria-haspopup': 'dialog',
164
+ 'aria-expanded': ctx.open,
165
+ onClick: (e) => {
166
+ props.onClick?.(e);
167
+ ctx.setOpen(true);
168
+ },
169
+ }, mergeRefs(props.ref, ctx.triggerRef));
170
+ }
171
+ function SheetContent(props) {
172
+ const ctx = useLayer(SheetContext, 'Sheet.Content');
173
+ return _jsx(ModalSurface, { ...props, ctx: ctx, kind: "sheet" });
174
+ }
175
+ /** A modal panel from the edge of the screen. Same behaviour as Dialog. */
176
+ export const Sheet = {
177
+ Root: SheetRoot,
178
+ Trigger: SheetTrigger,
179
+ Content: SheetContent,
180
+ Header,
181
+ Title: makeTitle(SheetContext, 'Sheet.Title'),
182
+ Description: makeDescription(SheetContext, 'Sheet.Description'),
183
+ Body,
184
+ Footer,
185
+ Close: makeClose(SheetContext, 'Sheet.Close'),
186
+ };
187
+ function usePosition(open, anchor, floating, side, align, offset = 6) {
188
+ const [pos, setPos] = useState(null);
189
+ useIsoLayoutEffect(() => {
190
+ if (!open)
191
+ return;
192
+ const update = () => {
193
+ const a = anchor.current?.getBoundingClientRect();
194
+ const f = floating.current?.getBoundingClientRect();
195
+ if (!a || !f)
196
+ return;
197
+ let top = 0;
198
+ let left = 0;
199
+ const vertical = side === 'top' || side === 'bottom';
200
+ if (vertical) {
201
+ top = side === 'bottom' ? a.bottom + offset : a.top - f.height - offset;
202
+ left = align === 'start' ? a.left : align === 'end' ? a.right - f.width : a.left + (a.width - f.width) / 2;
203
+ }
204
+ else {
205
+ left = side === 'right' ? a.right + offset : a.left - f.width - offset;
206
+ top = align === 'start' ? a.top : align === 'end' ? a.bottom - f.height : a.top + (a.height - f.height) / 2;
207
+ }
208
+ const vw = window.innerWidth;
209
+ const vh = window.innerHeight;
210
+ left = Math.max(8, Math.min(left, vw - f.width - 8));
211
+ top = Math.max(8, Math.min(top, vh - f.height - 8));
212
+ setPos({ top, left });
213
+ };
214
+ update();
215
+ window.addEventListener('resize', update);
216
+ window.addEventListener('scroll', update, true);
217
+ return () => {
218
+ window.removeEventListener('resize', update);
219
+ window.removeEventListener('scroll', update, true);
220
+ };
221
+ }, [open, side, align, offset]);
222
+ return pos;
223
+ }
224
+ /* ---------------------------------------------------------------- Popover */
225
+ const PopoverContext = createContext(null);
226
+ function PopoverRoot(props) {
227
+ const state = useLayerState(props);
228
+ return _jsx(PopoverContext.Provider, { value: state, children: props.children });
229
+ }
230
+ function PopoverTrigger(props) {
231
+ const ctx = useLayer(PopoverContext, 'Popover.Trigger');
232
+ return renderTrigger(props, {
233
+ 'aria-haspopup': 'dialog',
234
+ 'aria-expanded': ctx.open,
235
+ 'aria-controls': ctx.open ? ctx.contentId : undefined,
236
+ onClick: (e) => {
237
+ props.onClick?.(e);
238
+ ctx.setOpen(!ctx.open);
239
+ },
240
+ }, mergeRefs(props.ref, ctx.triggerRef));
241
+ }
242
+ function PopoverContent({ side = 'bottom', align = 'start', label, material, className, style, children, ...rest }) {
243
+ const ctx = useLayer(PopoverContext, 'Popover.Content');
244
+ const materialClass = useMaterial(material);
245
+ const mounted = usePresence(ctx.open, ctx.contentRef);
246
+ const close = () => {
247
+ ctx.setOpen(false);
248
+ ctx.triggerRef.current?.focus();
249
+ };
250
+ useDismiss(ctx.open, [ctx.contentRef, ctx.triggerRef], close);
251
+ const pos = usePosition(ctx.open, ctx.triggerRef, ctx.contentRef, side, align);
252
+ useEffect(() => {
253
+ if (!ctx.open)
254
+ return;
255
+ const el = ctx.contentRef.current;
256
+ (el?.querySelector('[data-autofocus]') ?? el)?.focus();
257
+ }, [ctx.open]);
258
+ if (!mounted)
259
+ return null;
260
+ return (_jsx(Portal, { children: _jsx("div", { role: "dialog", "aria-label": label, "aria-labelledby": label ? undefined : ctx.titleId, tabIndex: -1, id: ctx.contentId, ...rest, ref: ctx.contentRef, "data-side": side, "data-state": ctx.open ? 'open' : 'closed', inert: !ctx.open || undefined, className: cx('ns-popover ns-pop', materialClass, className), style: { ...style, top: pos?.top ?? 0, left: pos?.left ?? 0, visibility: pos ? undefined : 'hidden' }, onKeyDown: (e) => {
261
+ rest.onKeyDown?.(e);
262
+ // Tabbing out of a non-modal popover closes it.
263
+ if (e.key === 'Tab') {
264
+ const items = Array.from(e.currentTarget.querySelectorAll('a[href],button:not([disabled]),input,select,textarea,[tabindex="0"]'));
265
+ const last = items[items.length - 1];
266
+ if ((!e.shiftKey && document.activeElement === last) || items.length === 0) {
267
+ e.preventDefault();
268
+ close();
269
+ }
270
+ }
271
+ }, children: children }) }));
272
+ }
273
+ /** Non-modal floating panel anchored to its trigger. */
274
+ export const Popover = {
275
+ Root: PopoverRoot,
276
+ Trigger: PopoverTrigger,
277
+ Content: PopoverContent,
278
+ Title: makeTitle(PopoverContext, 'Popover.Title'),
279
+ Description: makeDescription(PopoverContext, 'Popover.Description'),
280
+ Close: makeClose(PopoverContext, 'Popover.Close'),
281
+ };
282
+ /* ------------------------------------------------------------------- Menu */
283
+ const MenuContext = createContext(null);
284
+ const ITEM = '[role="menuitem"],[role="menuitemcheckbox"],[role="menuitemradio"]';
285
+ function MenuRoot(props) {
286
+ const state = useLayerState(props);
287
+ return _jsx(MenuContext.Provider, { value: state, children: props.children });
288
+ }
289
+ // Which item gets focus when the menu opens.
290
+ let openFocus = 'first';
291
+ function MenuTrigger({ icon, expand = false, finish, ...triggerProps }) {
292
+ const ctx = useLayer(MenuContext, 'Menu.Trigger');
293
+ let props = finish ? { ...triggerProps, 'data-finish': finish } : triggerProps;
294
+ if (!triggerProps.asChild && icon !== undefined && icon !== null && icon !== false) {
295
+ const host = expandHost(expand);
296
+ props = {
297
+ ...props,
298
+ className: cx(triggerProps.className, host.className && 'ns-button--expand', host.className),
299
+ ...(host['data-expand'] ? { 'data-expand': host['data-expand'] } : {}),
300
+ children: (_jsxs(_Fragment, { children: [_jsx(ExpandIcon, { className: "ns-button__icon", children: icon }), host.className ? _jsx(ExpandLabel, { className: "ns-button__label", children: triggerProps.children }) : _jsx("span", { className: "ns-button__label", children: triggerProps.children })] })),
301
+ };
302
+ }
303
+ return renderTrigger(props, {
304
+ 'aria-haspopup': 'menu',
305
+ 'aria-expanded': ctx.open,
306
+ 'aria-controls': ctx.open ? ctx.contentId : undefined,
307
+ onClick: (e) => {
308
+ props.onClick?.(e);
309
+ openFocus = 'first';
310
+ ctx.setOpen(!ctx.open);
311
+ },
312
+ onKeyDown: (e) => {
313
+ props.onKeyDown?.(e);
314
+ if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
315
+ e.preventDefault();
316
+ openFocus = e.key === 'ArrowUp' ? 'last' : 'first';
317
+ ctx.setOpen(true);
318
+ }
319
+ },
320
+ }, mergeRefs(props.ref, ctx.triggerRef));
321
+ }
322
+ function MenuContent({ side = 'bottom', align = 'start', material, className, style, children, ...rest }) {
323
+ const ctx = useLayer(MenuContext, 'Menu.Content');
324
+ const materialClass = useMaterial(material);
325
+ const mounted = usePresence(ctx.open, ctx.contentRef);
326
+ const close = () => {
327
+ ctx.setOpen(false);
328
+ ctx.triggerRef.current?.focus();
329
+ };
330
+ useDismiss(ctx.open, [ctx.contentRef, ctx.triggerRef], close);
331
+ const pos = usePosition(ctx.open, ctx.triggerRef, ctx.contentRef, side, align, 4);
332
+ const typed = useRef({ text: '', at: 0 });
333
+ useEffect(() => {
334
+ if (!ctx.open)
335
+ return;
336
+ const items = Array.from(ctx.contentRef.current?.querySelectorAll(ITEM) ?? []).filter((el) => el.getAttribute('aria-disabled') !== 'true');
337
+ const which = openFocus;
338
+ openFocus = 'first';
339
+ (which === 'last' ? items[items.length - 1] : items[0])?.focus();
340
+ }, [ctx.open]);
341
+ if (!mounted)
342
+ return null;
343
+ return (_jsx(Portal, { children: _jsx("div", { role: "menu", "aria-labelledby": ctx.triggerRef.current?.id || undefined, "aria-orientation": "vertical", id: ctx.contentId, tabIndex: -1, ...rest, ref: ctx.contentRef, "data-side": side, "data-state": ctx.open ? 'open' : 'closed', inert: !ctx.open || undefined, className: cx('ns-menu ns-pop', materialClass, className), style: { ...style, top: pos?.top ?? 0, left: pos?.left ?? 0, visibility: pos ? undefined : 'hidden' }, onKeyDown: (e) => {
344
+ rest.onKeyDown?.(e);
345
+ if (rovingKeyDown(e, ITEM, 'vertical'))
346
+ return;
347
+ if (e.key === 'Tab') {
348
+ e.preventDefault();
349
+ close();
350
+ return;
351
+ }
352
+ if (e.key.length === 1 && /\S/.test(e.key)) {
353
+ const now = Date.now();
354
+ typed.current.text = now - typed.current.at > 600 ? e.key : typed.current.text + e.key;
355
+ typed.current.at = now;
356
+ const q = typed.current.text.toLowerCase();
357
+ const items = Array.from(e.currentTarget.querySelectorAll(ITEM));
358
+ items.find((el) => el.getAttribute('aria-disabled') !== 'true' && (el.textContent ?? '').trim().toLowerCase().startsWith(q))?.focus();
359
+ }
360
+ }, children: children }) }));
361
+ }
362
+ function MenuItem({ onSelect, disabled = false, shortcut, icon, className, children, ...rest }) {
363
+ const ctx = useLayer(MenuContext, 'Menu.Item');
364
+ const select = () => {
365
+ if (disabled)
366
+ return;
367
+ onSelect?.();
368
+ ctx.setOpen(false);
369
+ ctx.triggerRef.current?.focus();
370
+ };
371
+ return (_jsxs("div", { role: "menuitem", tabIndex: -1, "aria-disabled": disabled || undefined, ...rest, className: cx('ns-menu__item', className), onClick: (e) => {
372
+ rest.onClick?.(e);
373
+ select();
374
+ }, onKeyDown: (e) => {
375
+ rest.onKeyDown?.(e);
376
+ if (e.key === 'Enter' || e.key === ' ') {
377
+ e.preventDefault();
378
+ select();
379
+ }
380
+ }, onPointerMove: (e) => {
381
+ if (!disabled && document.activeElement !== e.currentTarget)
382
+ e.currentTarget.focus();
383
+ }, children: [icon && _jsx("span", { className: "ns-menu__icon", "aria-hidden": "true", children: icon }), _jsx("span", { className: "ns-menu__text", children: children }), shortcut && _jsx("span", { className: "ns-menu__shortcut", children: shortcut })] }));
384
+ }
385
+ function MenuSeparator({ className, ...rest }) {
386
+ return _jsx("div", { role: "separator", ...rest, className: cx('ns-menu__separator', className) });
387
+ }
388
+ function MenuLabel({ className, ...rest }) {
389
+ return _jsx("div", { role: "presentation", ...rest, className: cx('ns-menu__label', className) });
390
+ }
391
+ /** Action menu: arrow keys, Home/End, typeahead, Enter/Space to select, Escape to close. */
392
+ export const Menu = {
393
+ Root: MenuRoot,
394
+ Trigger: MenuTrigger,
395
+ Content: MenuContent,
396
+ Item: MenuItem,
397
+ Separator: MenuSeparator,
398
+ Label: MenuLabel,
399
+ };
400
+ /** Supplementary text on hover and focus; Escape hides it. Never the only label of a control. */
401
+ export function Tooltip({ content, children, side = 'top', align = 'center', delay = 400, material }) {
402
+ const [open, setOpen] = useState(false);
403
+ const anchor = useRef(null);
404
+ const floating = useRef(null);
405
+ const materialClass = useMaterial(material);
406
+ const mounted = usePresence(open, floating);
407
+ const timer = useRef(undefined);
408
+ const id = `ns-tooltip-${useId().replace(/:/g, '')}`;
409
+ const pos = usePosition(open, anchor, floating, side, align);
410
+ useDismiss(open, [], () => setOpen(false), { outside: false });
411
+ useEffect(() => () => clearTimeout(timer.current), []);
412
+ const show = (wait) => {
413
+ clearTimeout(timer.current);
414
+ if (wait <= 0)
415
+ setOpen(true);
416
+ else
417
+ timer.current = setTimeout(() => setOpen(true), wait);
418
+ };
419
+ const hide = () => {
420
+ clearTimeout(timer.current);
421
+ setOpen(false);
422
+ };
423
+ const child = children;
424
+ const p = child.props;
425
+ const call = (name, e) => p[name]?.(e);
426
+ return (_jsxs(_Fragment, { children: [cloneElement(child, {
427
+ ref: mergeRefs(p.ref, anchor),
428
+ 'aria-describedby': [p['aria-describedby'], open ? id : undefined].filter(Boolean).join(' ') || undefined,
429
+ onPointerEnter: (e) => {
430
+ call('onPointerEnter', e);
431
+ show(delay);
432
+ },
433
+ onPointerLeave: (e) => {
434
+ call('onPointerLeave', e);
435
+ hide();
436
+ },
437
+ onFocus: (e) => {
438
+ call('onFocus', e);
439
+ show(0);
440
+ },
441
+ onBlur: (e) => {
442
+ call('onBlur', e);
443
+ hide();
444
+ },
445
+ }), mounted && (_jsx(Portal, { children: _jsx("div", { id: open ? id : undefined, role: "tooltip", ref: floating, className: cx('ns-tooltip', materialClass), "data-side": side, "data-state": open ? 'open' : 'closed', style: { top: pos?.top ?? 0, left: pos?.left ?? 0, visibility: pos ? undefined : 'hidden' }, children: content }) }))] }));
446
+ }
447
+ //# sourceMappingURL=overlays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlays.js","sourceRoot":"","sources":["../src/overlays.tsx"],"names":[],"mappings":"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"}