@almadar/ui 2.15.7 → 2.15.10

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 (127) hide show
  1. package/dist/components/atoms/ContentSection.d.ts +16 -0
  2. package/dist/components/atoms/SectionHeader.d.ts +14 -0
  3. package/dist/components/atoms/StatCard.d.ts +13 -0
  4. package/dist/components/atoms/index.d.ts +3 -0
  5. package/dist/components/atoms/svg/SvgBranch.d.ts +12 -0
  6. package/dist/components/atoms/svg/SvgConnection.d.ts +13 -0
  7. package/dist/components/atoms/svg/SvgFlow.d.ts +10 -0
  8. package/dist/components/atoms/svg/SvgGrid.d.ts +14 -0
  9. package/dist/components/atoms/svg/SvgLobe.d.ts +13 -0
  10. package/dist/components/atoms/svg/SvgMesh.d.ts +12 -0
  11. package/dist/components/atoms/svg/SvgMorph.d.ts +11 -0
  12. package/dist/components/atoms/svg/SvgNode.d.ts +12 -0
  13. package/dist/components/atoms/svg/SvgPulse.d.ts +12 -0
  14. package/dist/components/atoms/svg/SvgRing.d.ts +13 -0
  15. package/dist/components/atoms/svg/SvgShield.d.ts +11 -0
  16. package/dist/components/atoms/svg/SvgStack.d.ts +13 -0
  17. package/dist/components/atoms/svg/index.d.ts +12 -0
  18. package/dist/{chunk-K43H3ZDY.js → components/index.cjs} +24780 -16651
  19. package/dist/components/index.js +37757 -889
  20. package/dist/components/molecules/AnimatedCounter.d.ts +18 -0
  21. package/dist/components/molecules/ArticleSection.d.ts +18 -0
  22. package/dist/components/molecules/CTABanner.d.ts +31 -0
  23. package/dist/components/molecules/CaseStudyCard.d.ts +24 -0
  24. package/dist/components/molecules/CodeExample.d.ts +23 -0
  25. package/dist/components/molecules/CommunityLinks.d.ts +25 -0
  26. package/dist/components/molecules/DocBreadcrumb.d.ts +20 -0
  27. package/dist/components/molecules/DocCodeBlock.d.ts +13 -0
  28. package/dist/components/molecules/DocPagination.d.ts +14 -0
  29. package/dist/components/molecules/DocSearch.d.ts +15 -0
  30. package/dist/components/molecules/DocSidebar.d.ts +24 -0
  31. package/dist/components/molecules/DocTOC.d.ts +24 -0
  32. package/dist/components/molecules/FeatureCard.d.ts +26 -0
  33. package/dist/components/molecules/FeatureGrid.d.ts +19 -0
  34. package/dist/components/molecules/GradientDivider.d.ts +14 -0
  35. package/dist/components/molecules/HeroSection.d.ts +36 -0
  36. package/dist/components/molecules/InstallBox.d.ts +16 -0
  37. package/dist/components/molecules/MarketingFooter.d.ts +27 -0
  38. package/dist/components/molecules/PricingCard.d.ts +21 -0
  39. package/dist/components/molecules/PricingGrid.d.ts +13 -0
  40. package/dist/components/molecules/PullQuote.d.ts +14 -0
  41. package/dist/components/molecules/ServiceCatalog.d.ts +19 -0
  42. package/dist/components/molecules/ShowcaseCard.d.ts +20 -0
  43. package/dist/components/molecules/SocialProof.d.ts +25 -0
  44. package/dist/components/molecules/SplitSection.d.ts +21 -0
  45. package/dist/components/molecules/StatsGrid.d.ts +17 -0
  46. package/dist/components/molecules/StepFlow.d.ts +20 -0
  47. package/dist/components/molecules/TagCloud.d.ts +18 -0
  48. package/dist/components/molecules/TeamCard.d.ts +18 -0
  49. package/dist/components/molecules/index.d.ts +19 -0
  50. package/dist/components/molecules/svg/AIGenerates.d.ts +7 -0
  51. package/dist/components/molecules/svg/ClosedCircuit.d.ts +7 -0
  52. package/dist/components/molecules/svg/CommunityOwnership.d.ts +7 -0
  53. package/dist/components/molecules/svg/CompileAnywhere.d.ts +7 -0
  54. package/dist/components/molecules/svg/ComposableModels.d.ts +7 -0
  55. package/dist/components/molecules/svg/DescribeProveDeploy.d.ts +7 -0
  56. package/dist/components/molecules/svg/DomainGrid.d.ts +7 -0
  57. package/dist/components/molecules/svg/EventBus.d.ts +7 -0
  58. package/dist/components/molecules/svg/OrbitalUnit.d.ts +7 -0
  59. package/dist/components/molecules/svg/PlanVerifyRemember.d.ts +7 -0
  60. package/dist/components/molecules/svg/ProveCorrect.d.ts +7 -0
  61. package/dist/components/molecules/svg/ServiceLayers.d.ts +7 -0
  62. package/dist/components/molecules/svg/SharedReality.d.ts +7 -0
  63. package/dist/components/molecules/svg/StandardLibrary.d.ts +7 -0
  64. package/dist/components/molecules/svg/StateMachine.d.ts +7 -0
  65. package/dist/components/molecules/svg/WorldModel.d.ts +7 -0
  66. package/dist/components/molecules/svg/index.d.ts +16 -0
  67. package/dist/components/organisms/CaseStudyOrganism.d.ts +19 -0
  68. package/dist/components/organisms/FeatureGridOrganism.d.ts +20 -0
  69. package/dist/components/organisms/HeroOrganism.d.ts +18 -0
  70. package/dist/components/organisms/PricingOrganism.d.ts +19 -0
  71. package/dist/components/organisms/ShowcaseOrganism.d.ts +20 -0
  72. package/dist/components/organisms/StatsOrganism.d.ts +17 -0
  73. package/dist/components/organisms/StepFlowOrganism.d.ts +20 -0
  74. package/dist/components/organisms/TeamOrganism.d.ts +18 -0
  75. package/dist/components/organisms/UISlotRenderer.d.ts +1 -0
  76. package/dist/components/organisms/game/three/index.cjs +2525 -0
  77. package/dist/components/organisms/game/three/index.js +1795 -50
  78. package/dist/components/organisms/index.d.ts +9 -0
  79. package/dist/components/organisms/marketing-types.d.ts +87 -0
  80. package/dist/components/templates/AboutPageTemplate.d.ts +26 -0
  81. package/dist/components/templates/DashboardLayout.d.ts +2 -1
  82. package/dist/components/templates/FeatureDetailPageTemplate.d.ts +27 -0
  83. package/dist/components/templates/LandingPageTemplate.d.ts +31 -0
  84. package/dist/components/templates/PricingPageTemplate.d.ts +26 -0
  85. package/dist/components/templates/index.d.ts +4 -0
  86. package/dist/context/index.cjs +550 -0
  87. package/dist/context/index.js +420 -6
  88. package/dist/docs/index.cjs +4015 -0
  89. package/dist/docs/index.d.cts +412 -0
  90. package/dist/docs/index.d.ts +29 -0
  91. package/dist/docs/index.js +3977 -0
  92. package/dist/hooks/index.cjs +2606 -0
  93. package/dist/hooks/index.js +2535 -8
  94. package/dist/illustrations/index.cjs +3004 -0
  95. package/dist/illustrations/index.d.cts +261 -0
  96. package/dist/illustrations/index.d.ts +35 -0
  97. package/dist/illustrations/index.js +2971 -0
  98. package/dist/{chunk-XL7WB2O5.js → lib/index.cjs} +454 -274
  99. package/dist/lib/index.js +1407 -3
  100. package/dist/locales/index.cjs +340 -0
  101. package/dist/locales/index.js +105 -2
  102. package/dist/marketing/index.cjs +4683 -0
  103. package/dist/marketing/index.d.cts +831 -0
  104. package/dist/marketing/index.d.ts +62 -0
  105. package/dist/marketing/index.js +4626 -0
  106. package/dist/providers/index.cjs +4811 -0
  107. package/dist/providers/index.js +4765 -11
  108. package/dist/{chunk-K2D5D3WK.js → renderer/index.cjs} +101 -42
  109. package/dist/renderer/index.js +1036 -2
  110. package/dist/runtime/index.cjs +4400 -0
  111. package/dist/runtime/index.js +3615 -19
  112. package/dist/{chunk-N7MVUW4R.js → stores/index.cjs} +24 -1
  113. package/dist/stores/index.js +194 -2
  114. package/dist/tsup.config.d.ts +2 -1
  115. package/package.json +27 -12
  116. package/tailwind-preset.cjs +27 -2
  117. package/themes/index.css +22 -20
  118. package/dist/chunk-3HJHHULT.js +0 -93
  119. package/dist/chunk-3JGAROCW.js +0 -149
  120. package/dist/chunk-4N3BAPDB.js +0 -1667
  121. package/dist/chunk-CDIOHSKG.js +0 -661
  122. package/dist/chunk-DKQN5FVU.js +0 -279
  123. package/dist/chunk-GF6RQBO7.js +0 -375
  124. package/dist/chunk-PKBMQBKP.js +0 -5
  125. package/dist/chunk-QIABKRCN.js +0 -107
  126. package/dist/chunk-SD3KVCY6.js +0 -1465
  127. package/dist/chunk-YXZM3WCF.js +0 -222
@@ -1,279 +0,0 @@
1
- import { useUISlotManager } from './chunk-3JGAROCW.js';
2
- import { createContext, useMemo, useState, useEffect, useCallback, useContext } from 'react';
3
- import { jsx } from 'react/jsx-runtime';
4
-
5
- var BUILT_IN_THEMES = [
6
- {
7
- name: "wireframe",
8
- displayName: "Wireframe",
9
- hasLightMode: true,
10
- hasDarkMode: true
11
- },
12
- {
13
- name: "minimalist",
14
- displayName: "Minimalist",
15
- hasLightMode: true,
16
- hasDarkMode: true
17
- },
18
- {
19
- name: "almadar",
20
- displayName: "Almadar",
21
- hasLightMode: true,
22
- hasDarkMode: true
23
- },
24
- {
25
- name: "trait-wars",
26
- displayName: "Trait Wars",
27
- hasLightMode: false,
28
- hasDarkMode: true
29
- },
30
- // Extended themes
31
- {
32
- name: "ocean",
33
- displayName: "Ocean",
34
- hasLightMode: true,
35
- hasDarkMode: true
36
- },
37
- {
38
- name: "forest",
39
- displayName: "Forest",
40
- hasLightMode: true,
41
- hasDarkMode: true
42
- },
43
- {
44
- name: "sunset",
45
- displayName: "Sunset",
46
- hasLightMode: true,
47
- hasDarkMode: true
48
- },
49
- {
50
- name: "lavender",
51
- displayName: "Lavender",
52
- hasLightMode: true,
53
- hasDarkMode: true
54
- },
55
- {
56
- name: "rose",
57
- displayName: "Rose",
58
- hasLightMode: true,
59
- hasDarkMode: true
60
- },
61
- {
62
- name: "slate",
63
- displayName: "Slate",
64
- hasLightMode: true,
65
- hasDarkMode: true
66
- },
67
- {
68
- name: "ember",
69
- displayName: "Ember",
70
- hasLightMode: true,
71
- hasDarkMode: true
72
- },
73
- {
74
- name: "midnight",
75
- displayName: "Midnight",
76
- hasLightMode: true,
77
- hasDarkMode: true
78
- },
79
- {
80
- name: "sand",
81
- displayName: "Sand",
82
- hasLightMode: true,
83
- hasDarkMode: true
84
- },
85
- {
86
- name: "neon",
87
- displayName: "Neon",
88
- hasLightMode: true,
89
- hasDarkMode: true
90
- },
91
- {
92
- name: "arctic",
93
- displayName: "Arctic",
94
- hasLightMode: true,
95
- hasDarkMode: true
96
- },
97
- {
98
- name: "copper",
99
- displayName: "Copper",
100
- hasLightMode: true,
101
- hasDarkMode: true
102
- }
103
- ];
104
- var ThemeContext = createContext(void 0);
105
- var THEME_STORAGE_KEY = "theme";
106
- var MODE_STORAGE_KEY = "theme-mode";
107
- function getSystemMode() {
108
- if (typeof window === "undefined") return "light";
109
- return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
110
- }
111
- function resolveMode(mode) {
112
- if (mode === "system") {
113
- return getSystemMode();
114
- }
115
- return mode;
116
- }
117
- var ThemeProvider = ({
118
- children,
119
- themes = [],
120
- defaultTheme = "wireframe",
121
- defaultMode = "system",
122
- targetRef
123
- }) => {
124
- const availableThemes = useMemo(() => {
125
- const themeMap = /* @__PURE__ */ new Map();
126
- BUILT_IN_THEMES.forEach((t) => themeMap.set(t.name, t));
127
- themes.forEach((t) => themeMap.set(t.name, t));
128
- return Array.from(themeMap.values());
129
- }, [themes]);
130
- const isScoped = !!targetRef;
131
- const [theme, setThemeState] = useState(() => {
132
- if (isScoped || typeof window === "undefined") return defaultTheme;
133
- const stored = localStorage.getItem(THEME_STORAGE_KEY);
134
- const validThemes = [
135
- ...BUILT_IN_THEMES.map((t) => t.name),
136
- ...themes.map((t) => t.name)
137
- ];
138
- if (stored && validThemes.includes(stored)) {
139
- return stored;
140
- }
141
- return defaultTheme;
142
- });
143
- const [mode, setModeState] = useState(() => {
144
- if (isScoped || typeof window === "undefined") return defaultMode;
145
- const stored = localStorage.getItem(MODE_STORAGE_KEY);
146
- if (stored === "light" || stored === "dark" || stored === "system") {
147
- return stored;
148
- }
149
- return defaultMode;
150
- });
151
- const [resolvedMode, setResolvedMode] = useState(
152
- () => resolveMode(mode)
153
- );
154
- const appliedTheme = useMemo(
155
- () => `${theme}-${resolvedMode}`,
156
- [theme, resolvedMode]
157
- );
158
- useEffect(() => {
159
- const updateResolved = () => {
160
- setResolvedMode(resolveMode(mode));
161
- };
162
- updateResolved();
163
- if (mode === "system") {
164
- const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
165
- const handleChange = () => updateResolved();
166
- mediaQuery.addEventListener("change", handleChange);
167
- return () => mediaQuery.removeEventListener("change", handleChange);
168
- }
169
- return void 0;
170
- }, [mode]);
171
- useEffect(() => {
172
- if (isScoped) {
173
- if (targetRef?.current) {
174
- targetRef.current.setAttribute("data-theme", appliedTheme);
175
- targetRef.current.classList.remove("light", "dark");
176
- targetRef.current.classList.add(resolvedMode);
177
- }
178
- return;
179
- }
180
- const root = document.documentElement;
181
- root.setAttribute("data-theme", appliedTheme);
182
- root.classList.remove("light", "dark");
183
- root.classList.add(resolvedMode);
184
- }, [appliedTheme, resolvedMode, targetRef, isScoped]);
185
- const setTheme = useCallback(
186
- (newTheme) => {
187
- const validTheme = availableThemes.find((t) => t.name === newTheme);
188
- if (validTheme) {
189
- setThemeState(newTheme);
190
- if (!isScoped && typeof window !== "undefined") {
191
- localStorage.setItem(THEME_STORAGE_KEY, newTheme);
192
- }
193
- } else {
194
- console.warn(
195
- `Theme "${newTheme}" not found. Available: ${availableThemes.map((t) => t.name).join(", ")}`
196
- );
197
- }
198
- },
199
- [availableThemes]
200
- );
201
- const setMode = useCallback((newMode) => {
202
- setModeState(newMode);
203
- if (!isScoped && typeof window !== "undefined") {
204
- localStorage.setItem(MODE_STORAGE_KEY, newMode);
205
- }
206
- }, []);
207
- const toggleMode = useCallback(() => {
208
- const newMode = resolvedMode === "dark" ? "light" : "dark";
209
- setMode(newMode);
210
- }, [resolvedMode, setMode]);
211
- const contextValue = useMemo(
212
- () => ({
213
- theme,
214
- mode,
215
- resolvedMode,
216
- setTheme,
217
- setMode,
218
- toggleMode,
219
- availableThemes,
220
- appliedTheme
221
- }),
222
- [
223
- theme,
224
- mode,
225
- resolvedMode,
226
- setTheme,
227
- setMode,
228
- toggleMode,
229
- availableThemes,
230
- appliedTheme
231
- ]
232
- );
233
- return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: contextValue, children });
234
- };
235
- function useTheme() {
236
- const context = useContext(ThemeContext);
237
- if (context === void 0) {
238
- return {
239
- theme: "wireframe",
240
- mode: "light",
241
- resolvedMode: "light",
242
- setTheme: () => {
243
- },
244
- setMode: () => {
245
- },
246
- toggleMode: () => {
247
- },
248
- availableThemes: BUILT_IN_THEMES,
249
- appliedTheme: "wireframe-light"
250
- };
251
- }
252
- return context;
253
- }
254
- var ThemeContext_default = ThemeContext;
255
- var UISlotContext = createContext(null);
256
- function UISlotProvider({ children }) {
257
- const slotManager = useUISlotManager();
258
- const contextValue = useMemo(() => slotManager, [slotManager]);
259
- return /* @__PURE__ */ jsx(UISlotContext.Provider, { value: contextValue, children });
260
- }
261
- function useUISlots() {
262
- const context = useContext(UISlotContext);
263
- if (!context) {
264
- throw new Error(
265
- "useUISlots must be used within a UISlotProvider. Make sure your component tree is wrapped with <UISlotProvider>."
266
- );
267
- }
268
- return context;
269
- }
270
- function useSlotContent(slot) {
271
- const { getContent } = useUISlots();
272
- return getContent(slot);
273
- }
274
- function useSlotHasContent(slot) {
275
- const { hasContent } = useUISlots();
276
- return hasContent(slot);
277
- }
278
-
279
- export { BUILT_IN_THEMES, ThemeContext_default, ThemeProvider, UISlotContext, UISlotProvider, useSlotContent, useSlotHasContent, useTheme, useUISlots };
@@ -1,375 +0,0 @@
1
- import { SuspenseConfigProvider } from './chunk-K43H3ZDY.js';
2
- import { ThemeProvider } from './chunk-DKQN5FVU.js';
3
- import { SelectionProvider, EntityDataProvider } from './chunk-CDIOHSKG.js';
4
- import { useEventBus, EventBusProvider } from './chunk-YXZM3WCF.js';
5
- import { recordTransition, registerCheck, bindEventBus, bindTraitStateGetter } from './chunk-XL7WB2O5.js';
6
- import { useOfflineExecutor } from './chunk-K2D5D3WK.js';
7
- import { createContext, useState, useCallback, useMemo, useContext, useRef, useEffect } from 'react';
8
- import { jsx, Fragment } from 'react/jsx-runtime';
9
-
10
- var FetchedDataContext = createContext(null);
11
- function FetchedDataProvider({
12
- initialData,
13
- children
14
- }) {
15
- const [state, setState] = useState(() => ({
16
- data: initialData || {},
17
- fetchedAt: {},
18
- loading: false,
19
- error: null
20
- }));
21
- const getData = useCallback(
22
- (entityName) => {
23
- return state.data[entityName] || [];
24
- },
25
- [state.data]
26
- );
27
- const getById = useCallback(
28
- (entityName, id) => {
29
- const records = state.data[entityName];
30
- return records?.find((r) => r.id === id);
31
- },
32
- [state.data]
33
- );
34
- const hasData = useCallback(
35
- (entityName) => {
36
- return entityName in state.data && state.data[entityName].length > 0;
37
- },
38
- [state.data]
39
- );
40
- const getFetchedAt = useCallback(
41
- (entityName) => {
42
- return state.fetchedAt[entityName];
43
- },
44
- [state.fetchedAt]
45
- );
46
- const setData = useCallback((data) => {
47
- const now = Date.now();
48
- setState((prev) => ({
49
- ...prev,
50
- data: {
51
- ...prev.data,
52
- ...data
53
- },
54
- fetchedAt: {
55
- ...prev.fetchedAt,
56
- ...Object.keys(data).reduce(
57
- (acc, key) => ({ ...acc, [key]: now }),
58
- {}
59
- )
60
- },
61
- loading: false,
62
- error: null
63
- }));
64
- }, []);
65
- const clearData = useCallback(() => {
66
- setState((prev) => ({
67
- ...prev,
68
- data: {},
69
- fetchedAt: {}
70
- }));
71
- }, []);
72
- const clearEntity = useCallback((entityName) => {
73
- setState((prev) => {
74
- const newData = { ...prev.data };
75
- const newFetchedAt = { ...prev.fetchedAt };
76
- delete newData[entityName];
77
- delete newFetchedAt[entityName];
78
- return {
79
- ...prev,
80
- data: newData,
81
- fetchedAt: newFetchedAt
82
- };
83
- });
84
- }, []);
85
- const setLoading = useCallback((loading) => {
86
- setState((prev) => ({ ...prev, loading }));
87
- }, []);
88
- const setError = useCallback((error) => {
89
- setState((prev) => ({ ...prev, error, loading: false }));
90
- }, []);
91
- const contextValue = useMemo(
92
- () => ({
93
- getData,
94
- getById,
95
- hasData,
96
- getFetchedAt,
97
- setData,
98
- clearData,
99
- clearEntity,
100
- loading: state.loading,
101
- setLoading,
102
- error: state.error,
103
- setError
104
- }),
105
- [
106
- getData,
107
- getById,
108
- hasData,
109
- getFetchedAt,
110
- setData,
111
- clearData,
112
- clearEntity,
113
- state.loading,
114
- setLoading,
115
- state.error,
116
- setError
117
- ]
118
- );
119
- return /* @__PURE__ */ jsx(FetchedDataContext.Provider, { value: contextValue, children });
120
- }
121
- function useFetchedDataContext() {
122
- return useContext(FetchedDataContext);
123
- }
124
- function useFetchedData() {
125
- const context = useContext(FetchedDataContext);
126
- if (!context) {
127
- return {
128
- getData: () => [],
129
- getById: () => void 0,
130
- hasData: () => false,
131
- getFetchedAt: () => void 0,
132
- setData: () => {
133
- },
134
- clearData: () => {
135
- },
136
- clearEntity: () => {
137
- },
138
- loading: false,
139
- setLoading: () => {
140
- },
141
- error: null,
142
- setError: () => {
143
- }
144
- };
145
- }
146
- return context;
147
- }
148
- function useFetchedEntity(entityName) {
149
- const context = useFetchedData();
150
- return {
151
- /** All fetched records for this entity */
152
- records: context.getData(entityName),
153
- /** Get a record by ID */
154
- getById: (id) => context.getById(entityName, id),
155
- /** Whether data has been fetched for this entity */
156
- hasData: context.hasData(entityName),
157
- /** When data was last fetched */
158
- fetchedAt: context.getFetchedAt(entityName),
159
- /** Whether data is loading */
160
- loading: context.loading,
161
- /** Current error */
162
- error: context.error
163
- };
164
- }
165
- var DISPATCH_SUFFIX = ":DISPATCH";
166
- var SUCCESS_SUFFIX = ":SUCCESS";
167
- var ERROR_SUFFIX = ":ERROR";
168
- function parseLifecycleEvent(type) {
169
- if (type.endsWith(DISPATCH_SUFFIX)) {
170
- const traitName = type.slice(0, -DISPATCH_SUFFIX.length);
171
- if (traitName) return { kind: "dispatch", traitName };
172
- } else if (type.endsWith(SUCCESS_SUFFIX)) {
173
- const rest = type.slice(0, -SUCCESS_SUFFIX.length);
174
- const colonIdx = rest.indexOf(":");
175
- if (colonIdx > 0) {
176
- return {
177
- kind: "success",
178
- traitName: rest.slice(0, colonIdx),
179
- event: rest.slice(colonIdx + 1)
180
- };
181
- }
182
- } else if (type.endsWith(ERROR_SUFFIX)) {
183
- const rest = type.slice(0, -ERROR_SUFFIX.length);
184
- const colonIdx = rest.indexOf(":");
185
- if (colonIdx > 0) {
186
- return {
187
- kind: "error",
188
- traitName: rest.slice(0, colonIdx),
189
- event: rest.slice(colonIdx + 1)
190
- };
191
- }
192
- }
193
- return null;
194
- }
195
- function VerificationProvider({
196
- children,
197
- enabled,
198
- runtimeManager,
199
- traitStateGetter
200
- }) {
201
- const isEnabled = enabled ?? (typeof process !== "undefined" && process.env?.NODE_ENV !== "production");
202
- const eventBus = useEventBus();
203
- const pendingRef = useRef(/* @__PURE__ */ new Map());
204
- useEffect(() => {
205
- if (!isEnabled) return;
206
- if (!eventBus.onAny) return;
207
- const unsub = eventBus.onAny((evt) => {
208
- const parsed = parseLifecycleEvent(evt.type);
209
- if (!parsed) return;
210
- const payload = evt.payload ?? {};
211
- if (parsed.kind === "dispatch") {
212
- const key = `${parsed.traitName}:${String(payload["event"] ?? "")}`;
213
- pendingRef.current.set(key, {
214
- traitName: parsed.traitName,
215
- event: String(payload["event"] ?? ""),
216
- from: payload["currentState"],
217
- timestamp: evt.timestamp
218
- });
219
- } else if (parsed.kind === "success" && parsed.event) {
220
- const key = `${parsed.traitName}:${parsed.event}`;
221
- const pending = pendingRef.current.get(key);
222
- pendingRef.current.delete(key);
223
- const newState = payload["newState"] ?? payload["state"] ?? "unknown";
224
- const effects = Array.isArray(payload["clientEffects"]) ? payload["clientEffects"].map((e) => ({
225
- type: String(e["type"] ?? "unknown"),
226
- args: Array.isArray(e["args"]) ? e["args"] : [],
227
- status: "executed"
228
- })) : [];
229
- recordTransition({
230
- traitName: parsed.traitName,
231
- from: pending?.from ?? "unknown",
232
- to: newState,
233
- event: parsed.event,
234
- effects,
235
- timestamp: Date.now()
236
- });
237
- } else if (parsed.kind === "error" && parsed.event) {
238
- const key = `${parsed.traitName}:${parsed.event}`;
239
- const pending = pendingRef.current.get(key);
240
- pendingRef.current.delete(key);
241
- const errorMsg = payload["error"] ?? "Unknown error";
242
- recordTransition({
243
- traitName: parsed.traitName,
244
- from: pending?.from ?? "unknown",
245
- to: pending?.from ?? "unknown",
246
- // state didn't change on error
247
- event: parsed.event,
248
- effects: [{
249
- type: "server-call",
250
- args: [],
251
- status: "failed",
252
- error: errorMsg
253
- }],
254
- timestamp: Date.now()
255
- });
256
- }
257
- });
258
- registerCheck(
259
- "verification-provider",
260
- "VerificationProvider active (compiled path)",
261
- "pass"
262
- );
263
- return unsub;
264
- }, [isEnabled, eventBus]);
265
- useEffect(() => {
266
- if (!isEnabled) return;
267
- if (!runtimeManager) return;
268
- runtimeManager.setObserver({
269
- onTransition(trace) {
270
- recordTransition({
271
- traitName: trace.traitName,
272
- from: trace.from,
273
- to: trace.to,
274
- event: trace.event,
275
- guardResult: trace.guardResult,
276
- effects: trace.effects,
277
- timestamp: Date.now()
278
- });
279
- }
280
- });
281
- registerCheck(
282
- "verification-provider",
283
- "VerificationProvider active (runtime path)",
284
- "pass"
285
- );
286
- }, [isEnabled, runtimeManager]);
287
- useEffect(() => {
288
- if (!isEnabled) return;
289
- bindEventBus(eventBus);
290
- }, [isEnabled, eventBus]);
291
- useEffect(() => {
292
- if (!isEnabled) return;
293
- if (traitStateGetter) {
294
- bindTraitStateGetter(traitStateGetter);
295
- } else if (runtimeManager?.getState) {
296
- const mgr = runtimeManager;
297
- bindTraitStateGetter((traitName) => mgr.getState(traitName));
298
- }
299
- }, [isEnabled, traitStateGetter, runtimeManager]);
300
- return /* @__PURE__ */ jsx(Fragment, { children });
301
- }
302
- VerificationProvider.displayName = "VerificationProvider";
303
- function FetchedDataBridge({ children }) {
304
- const fetchedData = useFetchedData();
305
- const adapter = useMemo(() => ({
306
- getData: (entity) => fetchedData.getData(entity),
307
- getById: (entity, id) => fetchedData.getById(entity, id),
308
- isLoading: fetchedData.loading,
309
- error: fetchedData.error
310
- }), [fetchedData.getData, fetchedData.getById, fetchedData.loading, fetchedData.error]);
311
- return /* @__PURE__ */ jsx(EntityDataProvider, { adapter, children });
312
- }
313
- function OrbitalProvider({
314
- children,
315
- themes,
316
- defaultTheme = "wireframe",
317
- defaultMode = "system",
318
- targetRef,
319
- skipTheme = false,
320
- debug = false,
321
- initialData,
322
- suspense = false,
323
- verification
324
- }) {
325
- const suspenseConfig = useMemo(
326
- () => ({ enabled: suspense }),
327
- [suspense]
328
- );
329
- const inner = /* @__PURE__ */ jsx(FetchedDataProvider, { initialData, children: /* @__PURE__ */ jsx(FetchedDataBridge, { children: /* @__PURE__ */ jsx(EventBusProvider, { debug, children: /* @__PURE__ */ jsx(VerificationProvider, { enabled: verification, children: /* @__PURE__ */ jsx(SelectionProvider, { debug, children: /* @__PURE__ */ jsx(SuspenseConfigProvider, { config: suspenseConfig, children }) }) }) }) }) });
330
- if (skipTheme) {
331
- return inner;
332
- }
333
- return /* @__PURE__ */ jsx(
334
- ThemeProvider,
335
- {
336
- themes,
337
- defaultTheme,
338
- defaultMode,
339
- targetRef,
340
- children: inner
341
- }
342
- );
343
- }
344
- OrbitalProvider.displayName = "OrbitalProvider";
345
- var OfflineModeContext = createContext(null);
346
- function OfflineModeProvider({
347
- children,
348
- ...executorOptions
349
- }) {
350
- const [forceOffline, setForceOffline] = useState(false);
351
- const executor = useOfflineExecutor(executorOptions);
352
- const effectivelyOffline = executor.isOffline || forceOffline;
353
- const contextValue = useMemo(
354
- () => ({
355
- ...executor,
356
- forceOffline,
357
- setForceOffline,
358
- effectivelyOffline
359
- }),
360
- [executor, forceOffline, effectivelyOffline]
361
- );
362
- return /* @__PURE__ */ jsx(OfflineModeContext.Provider, { value: contextValue, children });
363
- }
364
- function useOfflineMode() {
365
- const context = useContext(OfflineModeContext);
366
- if (!context) {
367
- throw new Error("useOfflineMode must be used within OfflineModeProvider");
368
- }
369
- return context;
370
- }
371
- function useOptionalOfflineMode() {
372
- return useContext(OfflineModeContext);
373
- }
374
-
375
- export { FetchedDataContext, FetchedDataProvider, OfflineModeProvider, OrbitalProvider, VerificationProvider, useFetchedData, useFetchedDataContext, useFetchedEntity, useOfflineMode, useOptionalOfflineMode };
@@ -1,5 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
-
5
- export { __publicField };