@optiaxiom/globals 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,11 +1,19 @@
1
- # `globals`
1
+ # `@optiaxiom/globals`
2
+
3
+ Design tokens and shared React contexts for Axiom.
2
4
 
3
5
  ## Installation
4
6
 
5
7
  ```sh
6
- $ npm install @optiaxiom/globals
8
+ npm install @optiaxiom/globals
7
9
  ```
8
10
 
9
11
  ## Usage
10
12
 
11
- This is an internal utility, not intended for public usage.
13
+ This package contains design tokens and shared React contexts used by `@optiaxiom/react`. It's primarily intended for advanced use cases like module federation, where the globals package should be shared across federated modules (similar to React itself).
14
+
15
+ **Note:** Most developers will never need to install or use this package directly. It's automatically included when you install `@optiaxiom/react`.
16
+
17
+ ### Module Federation
18
+
19
+ For module federation configuration, see our [Module Federation guide](https://optimizely-axiom.github.io/optiaxiom/guides/module-federation/).
package/dist/cjs/index.js CHANGED
@@ -8,6 +8,8 @@ const AxiomVersionContext = react.createContext(void 0);
8
8
 
9
9
  const [ModalProvider, useModalContext] = reactContext.createContext("@optiaxiom/react/Modal", { shardRef: { current: null } });
10
10
 
11
+ const [unstable_SurfaceProvider, unstable_useSurfaceContext] = reactContext.createContext("@optiaxiom/globals/Surface", null);
12
+
11
13
  var theme = {borderRadius:{xs:'var(--ax-borderRadius-xs)',sm:'var(--ax-borderRadius-sm)',md:'var(--ax-borderRadius-md)',lg:'var(--ax-borderRadius-lg)',xl:'var(--ax-borderRadius-xl)',full:'var(--ax-borderRadius-full)'},boxShadow:{sm:'var(--ax-boxShadow-sm)',md:'var(--ax-boxShadow-md)',lg:'var(--ax-boxShadow-lg)'},colors:{'bg.accent':'var(--ax-colors-bg-accent)','bg.accent.hovered':'var(--ax-colors-bg-accent-hovered)','bg.accent.light':'var(--ax-colors-bg-accent-light)','bg.accent.pressed':'var(--ax-colors-bg-accent-pressed)','bg.accent.subtle':'var(--ax-colors-bg-accent-subtle)','bg.avatar.neutral':'var(--ax-colors-bg-avatar-neutral)','bg.avatar.purple':'var(--ax-colors-bg-avatar-purple)','bg.default':'var(--ax-colors-bg-default)','bg.default.hovered':'var(--ax-colors-bg-default-hovered)','bg.default.inverse':'var(--ax-colors-bg-default-inverse)','bg.default.inverse.hovered':'var(--ax-colors-bg-default-inverse-hovered)','bg.default.inverse.pressed':'var(--ax-colors-bg-default-inverse-pressed)','bg.default.pressed':'var(--ax-colors-bg-default-pressed)','bg.error':'var(--ax-colors-bg-error)','bg.error.hovered':'var(--ax-colors-bg-error-hovered)','bg.error.light':'var(--ax-colors-bg-error-light)','bg.error.pressed':'var(--ax-colors-bg-error-pressed)','bg.error.subtle':'var(--ax-colors-bg-error-subtle)','bg.error.subtlest':'var(--ax-colors-bg-error-subtlest)','bg.information':'var(--ax-colors-bg-information)','bg.information.light':'var(--ax-colors-bg-information-light)','bg.information.subtle':'var(--ax-colors-bg-information-subtle)','bg.overlay':'var(--ax-colors-bg-overlay)','bg.page':'var(--ax-colors-bg-page)','bg.secondary':'var(--ax-colors-bg-secondary)','bg.secondary.hovered':'var(--ax-colors-bg-secondary-hovered)','bg.spinner.default':'var(--ax-colors-bg-spinner-default)','bg.spinner.inverse':'var(--ax-colors-bg-spinner-inverse)','bg.success':'var(--ax-colors-bg-success)','bg.success.hovered':'var(--ax-colors-bg-success-hovered)','bg.success.light':'var(--ax-colors-bg-success-light)','bg.success.subtle':'var(--ax-colors-bg-success-subtle)','bg.tertiary':'var(--ax-colors-bg-tertiary)','bg.tertiary.hovered':'var(--ax-colors-bg-tertiary-hovered)','bg.warning':'var(--ax-colors-bg-warning)','bg.warning.hovered':'var(--ax-colors-bg-warning-hovered)','bg.warning.light':'var(--ax-colors-bg-warning-light)','bg.warning.subtle':'var(--ax-colors-bg-warning-subtle)','border.accent':'var(--ax-colors-border-accent)','border.control':'var(--ax-colors-border-control)','border.control.hovered':'var(--ax-colors-border-control-hovered)','border.default':'var(--ax-colors-border-default)','border.disabled':'var(--ax-colors-border-disabled)','border.error':'var(--ax-colors-border-error)','border.focus':'var(--ax-colors-border-focus)','border.focus.error':'var(--ax-colors-border-focus-error)','border.secondary':'var(--ax-colors-border-secondary)','border.success':'var(--ax-colors-border-success)','border.tertiary':'var(--ax-colors-border-tertiary)','border.warning':'var(--ax-colors-border-warning)','fg.accent':'var(--ax-colors-fg-accent)','fg.accent.hovered':'var(--ax-colors-fg-accent-hovered)','fg.accent.strong':'var(--ax-colors-fg-accent-strong)','fg.avatar.neutral':'var(--ax-colors-fg-avatar-neutral)','fg.avatar.purple':'var(--ax-colors-fg-avatar-purple)','fg.default':'var(--ax-colors-fg-default)','fg.default.inverse':'var(--ax-colors-fg-default-inverse)','fg.disabled':'var(--ax-colors-fg-disabled)','fg.error':'var(--ax-colors-fg-error)','fg.error.hovered':'var(--ax-colors-fg-error-hovered)','fg.error.light':'var(--ax-colors-fg-error-light)','fg.error.strong':'var(--ax-colors-fg-error-strong)','fg.information':'var(--ax-colors-fg-information)','fg.information.light':'var(--ax-colors-fg-information-light)','fg.information.strong':'var(--ax-colors-fg-information-strong)','fg.link.default':'var(--ax-colors-fg-link-default)','fg.link.default.hovered':'var(--ax-colors-fg-link-default-hovered)','fg.link.inverse':'var(--ax-colors-fg-link-inverse)','fg.link.subtle':'var(--ax-colors-fg-link-subtle)','fg.link.visited':'var(--ax-colors-fg-link-visited)','fg.secondary':'var(--ax-colors-fg-secondary)','fg.spinner.default':'var(--ax-colors-fg-spinner-default)','fg.spinner.inverse':'var(--ax-colors-fg-spinner-inverse)','fg.success':'var(--ax-colors-fg-success)','fg.success.hovered':'var(--ax-colors-fg-success-hovered)','fg.success.light':'var(--ax-colors-fg-success-light)','fg.success.strong':'var(--ax-colors-fg-success-strong)','fg.tertiary':'var(--ax-colors-fg-tertiary)','fg.warning':'var(--ax-colors-fg-warning)','fg.warning.hovered':'var(--ax-colors-fg-warning-hovered)','fg.warning.inverse':'var(--ax-colors-fg-warning-inverse)','fg.warning.light':'var(--ax-colors-fg-warning-light)','fg.warning.strong':'var(--ax-colors-fg-warning-strong)','fg.white':'var(--ax-colors-fg-white)'},duration:{sm:'var(--ax-duration-sm)',md:'var(--ax-duration-md)',lg:'var(--ax-duration-lg)'},fontFamily:{mono:'var(--ax-fontFamily-mono)',sans:'var(--ax-fontFamily-sans)'},fontSize:{xs:{fontSize:'var(--ax-fontSize-xs-fontSize)',lineHeight:'var(--ax-fontSize-xs-lineHeight)'},sm:{fontSize:'var(--ax-fontSize-sm-fontSize)',lineHeight:'var(--ax-fontSize-sm-lineHeight)'},md:{fontSize:'var(--ax-fontSize-md-fontSize)',lineHeight:'var(--ax-fontSize-md-lineHeight)'},lg:{fontSize:'var(--ax-fontSize-lg-fontSize)',lineHeight:'var(--ax-fontSize-lg-lineHeight)'},xl:{fontSize:'var(--ax-fontSize-xl-fontSize)',lineHeight:'var(--ax-fontSize-xl-lineHeight)'},'2xl':{fontSize:'var(--ax-fontSize-2xl-fontSize)',lineHeight:'var(--ax-fontSize-2xl-lineHeight)'},'3xl':{fontSize:'var(--ax-fontSize-3xl-fontSize)',lineHeight:'var(--ax-fontSize-3xl-lineHeight)'},'4xl':{fontSize:'var(--ax-fontSize-4xl-fontSize)',lineHeight:'var(--ax-fontSize-4xl-lineHeight)'}},maxSize:{xs:'var(--ax-maxSize-xs)',sm:'var(--ax-maxSize-sm)',md:'var(--ax-maxSize-md)',lg:'var(--ax-maxSize-lg)'},screens:{sm:'var(--ax-screens-sm)',md:'var(--ax-screens-md)'},size:{'2xs':'var(--ax-size-2xs)',xs:'var(--ax-size-xs)',sm:'var(--ax-size-sm)',md:'var(--ax-size-md)',lg:'var(--ax-size-lg)',xl:'var(--ax-size-xl)','3xl':'var(--ax-size-3xl)'},zIndex:{popover:'var(--ax-zIndex-popover)',toast:'var(--ax-zIndex-toast)',tooltip:'var(--ax-zIndex-tooltip)'}};
12
14
 
13
15
  const [ToastProviderProvider, useToastProviderContext] = reactContext.createContext("@optiaxiom/react/ToastProvider");
@@ -361,5 +363,7 @@ exports.createToaster = createToaster;
361
363
  exports.theme = theme;
362
364
  exports.toaster = toaster;
363
365
  exports.tokens = tokens;
366
+ exports.unstable_SurfaceProvider = unstable_SurfaceProvider;
367
+ exports.unstable_useSurfaceContext = unstable_useSurfaceContext;
364
368
  exports.useModalContext = useModalContext;
365
369
  exports.useToastProviderContext = useToastProviderContext;
package/dist/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { AxiomAuthContext, AxiomVersionContext } from './context.js';
2
2
  export { ModalProvider, useModalContext } from './modal-context.js';
3
+ export { unstable_SurfaceProvider, unstable_useSurfaceContext } from './surface-context.js';
3
4
  export { theme } from './theme-css.js';
4
5
  export { ToastProviderProvider, useToastProviderContext } from './toast-context.js';
5
6
  export { createToaster, toaster } from './toaster.js';
@@ -0,0 +1,5 @@
1
+ import { createContext } from '@radix-ui/react-context';
2
+
3
+ const [unstable_SurfaceProvider, unstable_useSurfaceContext] = createContext("@optiaxiom/globals/Surface", null);
4
+
5
+ export { unstable_SurfaceProvider, unstable_useSurfaceContext };
package/dist/index.d.ts CHANGED
@@ -26,6 +26,88 @@ declare const useModalContext: (consumerName: string) => {
26
26
  shardRef: RefObject<HTMLElement>;
27
27
  };
28
28
 
29
+ type Surface<T extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
30
+ /**
31
+ * Optional data associated with this surface.
32
+ */
33
+ data?: T;
34
+ /**
35
+ * The surface name (used in surface path).
36
+ */
37
+ name: string;
38
+ /**
39
+ * The surface type.
40
+ */
41
+ type: "action" | "cards" | "collection" | "page" | "product" | "property" | "resource" | "tab";
42
+ };
43
+ type SurfaceContextValue = {
44
+ accept: (suggestionId: string) => void;
45
+ executeTool: (name: string, parameters: unknown) => Promise<void> | void;
46
+ metadata: Record<string, Omit<Surface, "name">>;
47
+ name: string;
48
+ pageViewId: string | undefined;
49
+ path: string;
50
+ reject: (suggestionId: string) => void;
51
+ renderSuggestionValue?: (value: unknown) => React.ReactNode;
52
+ suggestionPopover: {
53
+ register: () => () => void;
54
+ registered: boolean;
55
+ };
56
+ suggestions: SurfaceSuggestion[];
57
+ track: (interaction: SurfaceInteraction, metadata?: Record<string, Omit<Surface, "name">>) => void;
58
+ type: Surface["type"];
59
+ };
60
+ type SurfaceInteraction = {
61
+ id?: string;
62
+ } & ({
63
+ checked: boolean;
64
+ name: "toggled";
65
+ } | {
66
+ name: "added";
67
+ value: unknown;
68
+ } | {
69
+ name: "blurred";
70
+ } | {
71
+ name: "changed";
72
+ value: unknown;
73
+ } | {
74
+ name: "focused";
75
+ } | {
76
+ name: "invoked";
77
+ } | {
78
+ name: "removed";
79
+ value: unknown;
80
+ } | {
81
+ name: "viewed";
82
+ });
83
+ type SurfaceSuggestion = {
84
+ id: string;
85
+ surface: string;
86
+ } & ({
87
+ cards: Array<{
88
+ data: unknown;
89
+ id: string;
90
+ name: string;
91
+ reason: string;
92
+ }>;
93
+ type: "cards";
94
+ } | {
95
+ reason: string;
96
+ type: "value";
97
+ value: unknown;
98
+ } | {
99
+ text: string;
100
+ tool?: {
101
+ name: string;
102
+ parameters: unknown;
103
+ };
104
+ type: "message";
105
+ });
106
+ declare const unstable_SurfaceProvider: react.FC<SurfaceContextValue & {
107
+ children: React.ReactNode;
108
+ }>;
109
+ declare const unstable_useSurfaceContext: (consumerName: string) => SurfaceContextValue | null;
110
+
29
111
  declare const theme: MapLeafNodes<{
30
112
  readonly borderRadius: {
31
113
  readonly xs: "2px";
@@ -414,5 +496,5 @@ declare const tokens: {
414
496
  };
415
497
  };
416
498
 
417
- export { AxiomAuthContext, AxiomVersionContext, ModalProvider, ToastProviderProvider, createToaster, theme, toaster, tokens, useModalContext, useToastProviderContext };
499
+ export { AxiomAuthContext, AxiomVersionContext, ModalProvider, ToastProviderProvider, createToaster, theme, toaster, tokens, unstable_SurfaceProvider, unstable_useSurfaceContext, useModalContext, useToastProviderContext };
418
500
  export type { MapLeafNodes };
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "git+https://github.com/optimizely-axiom/optiaxiom.git"
8
8
  },
9
9
  "type": "module",
10
- "version": "1.1.0",
10
+ "version": "1.1.1",
11
11
  "files": [
12
12
  "dist/**",
13
13
  "LICENSE"