@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,82 @@
1
+ export type ThemeSetting = 'night' | 'day' | 'system';
2
+ export type ResolvedTheme = 'night' | 'day';
3
+ export type Density = 'compact' | 'default' | 'comfortable';
4
+ /** Surface material. `glass` is liquid glass (refraction on Chromium, blur and specular elsewhere); it falls back to solid on its own. */
5
+ export type Material = 'solid' | 'glass';
6
+ /**
7
+ * Button finish. `spin` (default) is machined metal: a conic sweep under a
8
+ * fine concentric grain, Glacier-anodized on primary. `soft` is the tonal
9
+ * fill with the tactile texture.
10
+ */
11
+ export type ButtonFinish = 'spin' | 'soft';
12
+ /** Every user-visible string the basic components render. English is the default. */
13
+ export interface Messages {
14
+ close: string;
15
+ dismiss: string;
16
+ loading: string;
17
+ clear: string;
18
+ search: string;
19
+ increment: string;
20
+ decrement: string;
21
+ breadcrumbs: string;
22
+ pagination: string;
23
+ previousPage: string;
24
+ nextPage: string;
25
+ page: (n: number) => string;
26
+ noResults: string;
27
+ stale: string;
28
+ notifications: string;
29
+ remove: (label: string) => string;
30
+ sidebar: string;
31
+ flowSteps: string;
32
+ flowProgress: string;
33
+ flowComplete: string;
34
+ step: (n: number, total: number) => string;
35
+ flowNext: (step: string) => string;
36
+ flowBack: string;
37
+ flowFinish: string;
38
+ }
39
+ export declare const en: Messages;
40
+ export interface NorthstarContextValue {
41
+ theme: ThemeSetting;
42
+ resolvedTheme: ResolvedTheme;
43
+ density: Density;
44
+ messages: Messages;
45
+ /** Default material for overlays, toasts and surfaces that do not set their own. */
46
+ material: Material;
47
+ /** Default finish for buttons that do not set their own. */
48
+ buttonFinish: ButtonFinish;
49
+ setTheme: (theme: ThemeSetting) => void;
50
+ }
51
+ /** Theme, density and messages. Works without a provider (Night, default, English). */
52
+ export declare function useNorthstar(): NorthstarContextValue;
53
+ export interface NorthstarProviderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
54
+ theme?: ThemeSetting;
55
+ density?: Density;
56
+ messages?: Partial<Messages>;
57
+ /** Default material for overlays, toasts and surfaces. Default `solid`. */
58
+ material?: Material;
59
+ /**
60
+ * Default button finish. `spin` (default) or `soft`. Buttons that set
61
+ * `finish` keep their own. Also written as `data-button-finish` on the root,
62
+ * so plain `.ns-button` elements inside follow it too.
63
+ */
64
+ buttonFinish?: ButtonFinish;
65
+ /** Also write data-theme/data-density on <html> (for full-page apps). */
66
+ applyToDocument?: boolean;
67
+ /** Insert the shared liquid-glass filter defs (once per document). Default true. */
68
+ liquidGlass?: boolean;
69
+ onThemeChange?: (theme: ThemeSetting) => void;
70
+ children?: React.ReactNode;
71
+ }
72
+ /**
73
+ * Sets `data-theme` and `data-density` on its root element. For an explicit
74
+ * theme the attribute is in the server HTML, so there is no flash. For
75
+ * `system` the server omits it and tokens.css follows prefers-color-scheme.
76
+ */
77
+ export declare function NorthstarProvider({ theme: themeProp, density, messages, material, buttonFinish, applyToDocument, liquidGlass, onThemeChange, className, children, ...rest }: NorthstarProviderProps): import("react/jsx-runtime").JSX.Element;
78
+ /** Renders into document.body, carrying the provider's theme, density and button finish. */
79
+ export declare function Portal({ children }: {
80
+ children: React.ReactNode;
81
+ }): import("react").ReactPortal | null;
82
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useEffect, useLayoutEffect, useMemo, useState } from 'react';
4
+ import { createPortal } from 'react-dom';
5
+ import { cx } from './internal/util.js';
6
+ import { useLiquidDefs } from './glass.js';
7
+ const useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;
8
+ export const en = {
9
+ close: 'Close',
10
+ dismiss: 'Dismiss',
11
+ loading: 'Loading',
12
+ clear: 'Clear',
13
+ search: 'Search',
14
+ increment: 'Increase',
15
+ decrement: 'Decrease',
16
+ breadcrumbs: 'Breadcrumbs',
17
+ pagination: 'Pagination',
18
+ previousPage: 'Previous page',
19
+ nextPage: 'Next page',
20
+ page: (n) => `Page ${n}`,
21
+ noResults: 'No results',
22
+ stale: 'Stale',
23
+ notifications: 'Notifications',
24
+ remove: (label) => `Remove ${label}`,
25
+ sidebar: 'Sidebar',
26
+ flowSteps: 'Steps',
27
+ flowProgress: 'Progress',
28
+ flowComplete: 'complete',
29
+ step: (n, total) => `Step ${n} of ${total}`,
30
+ flowNext: (step) => `Continue to ${step}`,
31
+ flowBack: 'Back',
32
+ flowFinish: 'Finish',
33
+ };
34
+ const fallback = {
35
+ theme: 'night',
36
+ resolvedTheme: 'night',
37
+ density: 'default',
38
+ messages: en,
39
+ material: 'solid',
40
+ buttonFinish: 'spin',
41
+ setTheme: () => { },
42
+ };
43
+ const NorthstarContext = createContext(fallback);
44
+ /** Theme, density and messages. Works without a provider (Night, default, English). */
45
+ export function useNorthstar() {
46
+ return useContext(NorthstarContext);
47
+ }
48
+ function systemTheme() {
49
+ if (typeof window === 'undefined' || !window.matchMedia)
50
+ return 'night';
51
+ return window.matchMedia('(prefers-color-scheme: light)').matches ? 'day' : 'night';
52
+ }
53
+ /**
54
+ * Sets `data-theme` and `data-density` on its root element. For an explicit
55
+ * theme the attribute is in the server HTML, so there is no flash. For
56
+ * `system` the server omits it and tokens.css follows prefers-color-scheme.
57
+ */
58
+ export function NorthstarProvider({ theme: themeProp = 'system', density = 'default', messages, material = 'solid', buttonFinish = 'spin', applyToDocument = false, liquidGlass = true, onThemeChange, className, children, ...rest }) {
59
+ const [theme, setThemeState] = useState(themeProp);
60
+ useEffect(() => setThemeState(themeProp), [themeProp]);
61
+ const [system, setSystem] = useState(null);
62
+ useLiquidDefs(liquidGlass);
63
+ useEffect(() => {
64
+ if (theme !== 'system' || typeof window === 'undefined' || !window.matchMedia)
65
+ return;
66
+ const mq = window.matchMedia('(prefers-color-scheme: light)');
67
+ const update = () => setSystem(mq.matches ? 'day' : 'night');
68
+ update();
69
+ mq.addEventListener?.('change', update);
70
+ return () => mq.removeEventListener?.('change', update);
71
+ }, [theme]);
72
+ const resolvedTheme = theme === 'system' ? (system ?? systemTheme()) : theme;
73
+ const attrTheme = theme === 'system' ? (system ?? undefined) : theme;
74
+ useEffect(() => {
75
+ if (!applyToDocument)
76
+ return;
77
+ const html = document.documentElement;
78
+ if (attrTheme)
79
+ html.setAttribute('data-theme', attrTheme);
80
+ else
81
+ html.removeAttribute('data-theme');
82
+ html.setAttribute('data-density', density);
83
+ }, [applyToDocument, attrTheme, density]);
84
+ const value = useMemo(() => ({
85
+ theme,
86
+ resolvedTheme,
87
+ density,
88
+ messages: { ...en, ...messages },
89
+ material,
90
+ buttonFinish,
91
+ setTheme: (t) => {
92
+ setThemeState(t);
93
+ onThemeChange?.(t);
94
+ },
95
+ }), [theme, resolvedTheme, density, messages, material, buttonFinish, onThemeChange]);
96
+ return (_jsx(NorthstarContext.Provider, { value: value, children: _jsx("div", { ...rest, className: cx('ns-root', className), "data-theme": attrTheme, "data-density": density, "data-button-finish": buttonFinish, children: children }) }));
97
+ }
98
+ /** Renders into document.body, carrying the provider's theme, density and button finish. */
99
+ export function Portal({ children }) {
100
+ const { theme, resolvedTheme, density, buttonFinish } = useNorthstar();
101
+ // The host exists from the first client render and is attached in a layout
102
+ // effect, so by the time any passive effect (focus trap, initial focus) runs
103
+ // the content is in the document. On the server nothing is rendered.
104
+ const [host] = useState(() => {
105
+ if (typeof document === 'undefined')
106
+ return null;
107
+ const el = document.createElement('div');
108
+ el.className = 'ns-root ns-portal';
109
+ return el;
110
+ });
111
+ useIsoLayoutEffect(() => {
112
+ if (!host)
113
+ return;
114
+ host.setAttribute('data-theme', theme === 'system' ? resolvedTheme : theme);
115
+ host.setAttribute('data-density', density);
116
+ host.setAttribute('data-button-finish', buttonFinish);
117
+ }, [host, theme, resolvedTheme, density, buttonFinish]);
118
+ useIsoLayoutEffect(() => {
119
+ if (!host)
120
+ return;
121
+ document.body.appendChild(host);
122
+ return () => {
123
+ host.remove();
124
+ };
125
+ }, [host]);
126
+ return host ? createPortal(children, host) : null;
127
+ }
128
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}