@fluixi/core 1.0.0-alpha.92 → 1.0.0-alpha.93

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 (113) hide show
  1. package/dist/cdn/core.global.js +2 -2
  2. package/dist/src/cdn/{chunk-MDJLC3PE.mjs → chunk-7XM7Q5VR.mjs} +271 -229
  3. package/dist/src/cdn/core.cjs +360 -253
  4. package/dist/src/cdn/core.mjs +92 -20
  5. package/dist/src/cdn/{router-JYFZP3EZ.mjs → router-VOY43YNM.mjs} +7 -3
  6. package/dist/src/index.cjs +547 -232
  7. package/dist/src/index.mjs +547 -223
  8. package/dist/src/lib/client/chunk-QT3RFKH6.mjs +53 -0
  9. package/dist/src/lib/client/index.cjs +310 -176
  10. package/dist/src/lib/client/index.d.ts.map +1 -1
  11. package/dist/src/lib/client/index.js +33 -18
  12. package/dist/src/lib/client/index.mjs +86 -15
  13. package/dist/src/lib/client/{router-PHLUYVQU.mjs → router-ADTS55OP.mjs} +244 -99
  14. package/dist/src/lib/context/context.cjs +35 -72
  15. package/dist/src/lib/context/context.d.ts +45 -291
  16. package/dist/src/lib/context/context.d.ts.map +1 -1
  17. package/dist/src/lib/context/context.js +65 -397
  18. package/dist/src/lib/context/context.mjs +38 -73
  19. package/dist/src/lib/context/index.cjs +35 -72
  20. package/dist/src/lib/context/index.d.ts +2 -2
  21. package/dist/src/lib/context/index.d.ts.map +1 -1
  22. package/dist/src/lib/context/index.js +1 -5
  23. package/dist/src/lib/context/index.mjs +38 -73
  24. package/dist/src/lib/core.cjs +546 -231
  25. package/dist/src/lib/core.d.ts +3 -1
  26. package/dist/src/lib/core.d.ts.map +1 -1
  27. package/dist/src/lib/core.js +5 -3
  28. package/dist/src/lib/core.mjs +546 -222
  29. package/dist/src/lib/env/index.cjs +1 -17
  30. package/dist/src/lib/env/index.d.ts +2 -14
  31. package/dist/src/lib/env/index.d.ts.map +1 -1
  32. package/dist/src/lib/env/index.js +2 -26
  33. package/dist/src/lib/env/index.mjs +1 -17
  34. package/dist/src/lib/i18n/index.cjs +17 -2
  35. package/dist/src/lib/i18n/index.d.ts +10 -0
  36. package/dist/src/lib/i18n/index.d.ts.map +1 -1
  37. package/dist/src/lib/i18n/index.js +17 -1
  38. package/dist/src/lib/i18n/index.mjs +17 -2
  39. package/dist/src/lib/index.cjs +64 -99
  40. package/dist/src/lib/index.mjs +43 -76
  41. package/dist/src/lib/isomorphic.cjs +9 -4
  42. package/dist/src/lib/isomorphic.d.ts +9 -2
  43. package/dist/src/lib/isomorphic.d.ts.map +1 -1
  44. package/dist/src/lib/isomorphic.js +11 -4
  45. package/dist/src/lib/isomorphic.mjs +9 -4
  46. package/dist/src/lib/jsx-runtime/index.cjs +1 -1
  47. package/dist/src/lib/jsx-runtime/index.mjs +1 -1
  48. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.cjs +1 -1
  49. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.mjs +1 -1
  50. package/dist/src/lib/plugins/fluixi-routes-plugin.cjs +2 -2
  51. package/dist/src/lib/plugins/fluixi-routes-plugin.mjs +2 -2
  52. package/dist/src/lib/plugins/index.cjs +3 -3
  53. package/dist/src/lib/plugins/index.mjs +3 -3
  54. package/dist/src/lib/plugins/route-codegen.cjs +2 -2
  55. package/dist/src/lib/plugins/route-codegen.js +1 -1
  56. package/dist/src/lib/plugins/route-codegen.mjs +2 -2
  57. package/dist/src/lib/render/index.cjs +1 -1
  58. package/dist/src/lib/render/index.mjs +1 -1
  59. package/dist/src/lib/render/versions.cjs +1 -1
  60. package/dist/src/lib/render/versions.mjs +1 -1
  61. package/dist/src/lib/router/data.cjs +113 -115
  62. package/dist/src/lib/router/data.d.ts +63 -10
  63. package/dist/src/lib/router/data.d.ts.map +1 -1
  64. package/dist/src/lib/router/data.js +158 -68
  65. package/dist/src/lib/router/data.mjs +112 -112
  66. package/dist/src/lib/router/index.cjs +260 -163
  67. package/dist/src/lib/router/index.d.ts +22 -2
  68. package/dist/src/lib/router/index.d.ts.map +1 -1
  69. package/dist/src/lib/router/index.js +165 -22
  70. package/dist/src/lib/router/index.mjs +244 -143
  71. package/dist/src/lib/server/index.cjs +1 -1
  72. package/dist/src/lib/server/index.mjs +1 -1
  73. package/dist/src/lib/storage/cache.cjs +51 -0
  74. package/dist/src/lib/storage/cache.d.ts +18 -0
  75. package/dist/src/lib/storage/cache.d.ts.map +1 -0
  76. package/dist/src/lib/storage/cache.js +42 -0
  77. package/dist/src/lib/storage/cache.mjs +30 -0
  78. package/dist/src/lib/storage/index.cjs +246 -0
  79. package/dist/src/lib/storage/index.d.ts +83 -0
  80. package/dist/src/lib/storage/index.d.ts.map +1 -0
  81. package/dist/src/lib/storage/index.js +179 -0
  82. package/dist/src/lib/storage/index.mjs +231 -0
  83. package/dist/src/lib/storage/persisted.cjs +91 -0
  84. package/dist/src/lib/storage/persisted.d.ts +53 -0
  85. package/dist/src/lib/storage/persisted.d.ts.map +1 -0
  86. package/dist/src/lib/storage/persisted.js +75 -0
  87. package/dist/src/lib/storage/persisted.mjs +70 -0
  88. package/dist/src/lib/theme/color-scheme.cjs +281 -0
  89. package/dist/src/lib/theme/color-scheme.d.ts +61 -0
  90. package/dist/src/lib/theme/color-scheme.d.ts.map +1 -0
  91. package/dist/src/lib/theme/color-scheme.js +120 -0
  92. package/dist/src/lib/theme/color-scheme.mjs +265 -0
  93. package/dist/src/lib/theme/index.cjs +194 -37
  94. package/dist/src/lib/theme/index.d.ts +23 -11
  95. package/dist/src/lib/theme/index.d.ts.map +1 -1
  96. package/dist/src/lib/theme/index.js +73 -32
  97. package/dist/src/lib/theme/index.mjs +197 -35
  98. package/dist/src/lib/theme/provider.cjs +346 -0
  99. package/dist/src/lib/theme/provider.d.ts +34 -0
  100. package/dist/src/lib/theme/provider.d.ts.map +1 -0
  101. package/dist/src/lib/theme/provider.js +60 -0
  102. package/dist/src/lib/theme/provider.mjs +332 -0
  103. package/dist/src/routes.cjs +1 -1
  104. package/dist/src/routes.mjs +1 -1
  105. package/dist/src/utils.cjs +1 -1
  106. package/dist/src/utils.mjs +1 -1
  107. package/dist/src/version.generated.cjs +1 -1
  108. package/dist/src/version.generated.d.ts +1 -1
  109. package/dist/src/version.generated.js +1 -1
  110. package/dist/src/version.generated.mjs +1 -1
  111. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  112. package/package.json +18 -11
  113. package/dist/src/lib/client/chunk-VB567ABU.mjs +0 -133
@@ -21,93 +21,30 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  composeProviders: () => composeProviders,
24
- createConsumer: () => createConsumer,
25
24
  createContext: () => createContext,
26
- createContextWithProvider: () => createContextWithProvider,
27
25
  createProvider: () => createProvider,
28
- useContext: () => useContext,
29
- useProvide: () => useProvide
26
+ requireContext: () => requireContext,
27
+ useContext: () => useContext
30
28
  });
31
29
  module.exports = __toCommonJS(index_exports);
32
30
 
33
31
  // src/lib/context/context.ts
34
32
  var import_dom = require("@fluixi/dom");
35
33
  var import_signal = require("@fluixi/reactive/signal");
36
- var import_signal2 = require("@fluixi/reactive/signal");
37
- var _warnedEagerProvider = false;
38
- function warnEagerProvider() {
39
- if (_warnedEagerProvider) return;
40
- _warnedEagerProvider = true;
41
- if (typeof process !== "undefined" && true) return;
42
- console.warn(
43
- "[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={...}>{props.children}</Context.Provider>"
44
- );
45
- }
46
- function createProvider(a, value, childProps) {
47
- const isLazyForm = !!a?.Provider;
48
- const context = isLazyForm ? a : a.context;
49
- const rawValue = isLazyForm ? value : a.value;
50
- const debug = isLazyForm ? false : a.debug ?? false;
51
- if (!isLazyForm) warnEagerProvider();
52
- const resolvedValue = typeof rawValue === "function" ? rawValue() : rawValue;
53
- const sourceProps = isLazyForm ? childProps : a;
54
- return context.Provider({
55
- value: resolvedValue,
56
- get children() {
57
- return sourceProps?.children;
58
- },
59
- debug
60
- });
61
- }
62
- function createContextWithProvider(defaultValue) {
63
- const context = createContext(defaultValue);
64
- const provider = (props) => {
65
- return createProvider(context, props.value, props);
66
- };
67
- return [context, provider];
68
- }
69
- function composeProviders(contexts, children) {
70
- if (contexts.length === 0) {
71
- return (0, import_signal2.readChildren)(() => children);
72
- }
73
- const [context, value] = contexts[0];
74
- const remaining = contexts.slice(1);
75
- return createProvider(context, value, {
76
- get children() {
77
- return composeProviders(remaining, children);
78
- }
79
- });
80
- }
81
- function createConsumer(context) {
82
- return (props) => {
83
- const value = useContext(context);
84
- return props.children(value);
85
- };
86
- }
87
- function useProvide(context, factory) {
88
- const existing = useContext(context);
89
- if (existing === context.defaultValue) {
90
- return factory();
91
- }
92
- return existing;
93
- }
94
34
  function createContext(defaultValue, name) {
95
35
  const context = (0, import_signal.createContext)(defaultValue, name);
96
- const Provider = (props) => {
97
- if (props.debug === true) {
98
- }
99
- return context.Provider({
36
+ const Provider = (props) => (
37
+ // Children stay a getter: the reactive Provider reads them after stamping the value on
38
+ // its owner. Reading `props.children` here would render them, and any <Outlet/> in them,
39
+ // before the context exists.
40
+ context.Provider({
100
41
  value: props.value,
101
42
  get children() {
102
43
  return props.children;
103
44
  },
104
45
  debug: props.debug
105
- });
106
- };
107
- if (typeof Symbol !== "undefined" && Symbol.for) {
108
- Provider.$$typeof = /* @__PURE__ */ Symbol.for("react.provider");
109
- }
110
- Provider.$$typeof = /* @__PURE__ */ Symbol.for("react.provider");
46
+ })
47
+ );
111
48
  return {
112
49
  id: context.id,
113
50
  Provider: (0, import_dom.asProvider)(Provider),
@@ -118,3 +55,29 @@ function useContext(context) {
118
55
  const value = (0, import_signal.useContext)(context);
119
56
  return value !== void 0 ? value : context.defaultValue;
120
57
  }
58
+ function createProvider(context, value, props) {
59
+ const resolved = typeof value === "function" ? value() : value;
60
+ return context.Provider({
61
+ value: resolved,
62
+ get children() {
63
+ return props.children;
64
+ }
65
+ });
66
+ }
67
+ function composeProviders(providers, props) {
68
+ const outermost = providers.reduceRight(
69
+ (inner, [context, value]) => ({
70
+ get children() {
71
+ return createProvider(context, value, inner);
72
+ }
73
+ }),
74
+ props
75
+ );
76
+ return outermost.children;
77
+ }
78
+ function requireContext(context, message) {
79
+ for (let owner = (0, import_signal.getOwner)(); owner; owner = owner.parent) {
80
+ if (owner.contexts?.has(context.id)) return useContext(context);
81
+ }
82
+ throw new Error(message ?? `[fluixi] No Provider for ${context.id.description ?? "this context"} above this component.`);
83
+ }
@@ -1,3 +1,3 @@
1
- export { createContext, useContext, createProvider, createConsumer, createContextWithProvider, composeProviders, useProvide, } from './context.js';
2
- export type { Context, ProviderProps } from './context.js';
1
+ export { createContext, useContext, createProvider, composeProviders, requireContext } from './context.js';
2
+ export type { Context } from './context.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/context/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3G,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -1,5 +1 @@
1
- // /**
2
- // * @fileoverview Context API exports for Fluixi framework
3
- // * @module @fluixi/core/context
4
- // */
5
- export { createContext, useContext, createProvider, createConsumer, createContextWithProvider, composeProviders, useProvide, } from './context.js';
1
+ export { createContext, useContext, createProvider, composeProviders, requireContext } from './context.js';
@@ -1,83 +1,24 @@
1
1
  // src/lib/context/context.ts
2
2
  import { asProvider } from "@fluixi/dom";
3
- import { createContext as createReactiveContext, useContext as useReactiveContext } from "@fluixi/reactive/signal";
4
3
  import {
5
- readChildren
4
+ createContext as createReactiveContext,
5
+ getOwner,
6
+ useContext as useReactiveContext
6
7
  } from "@fluixi/reactive/signal";
7
- var _warnedEagerProvider = false;
8
- function warnEagerProvider() {
9
- if (_warnedEagerProvider) return;
10
- _warnedEagerProvider = true;
11
- if (typeof process !== "undefined" && true) return;
12
- console.warn(
13
- "[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={...}>{props.children}</Context.Provider>"
14
- );
15
- }
16
- function createProvider(a, value, childProps) {
17
- const isLazyForm = !!a?.Provider;
18
- const context = isLazyForm ? a : a.context;
19
- const rawValue = isLazyForm ? value : a.value;
20
- const debug = isLazyForm ? false : a.debug ?? false;
21
- if (!isLazyForm) warnEagerProvider();
22
- const resolvedValue = typeof rawValue === "function" ? rawValue() : rawValue;
23
- const sourceProps = isLazyForm ? childProps : a;
24
- return context.Provider({
25
- value: resolvedValue,
26
- get children() {
27
- return sourceProps?.children;
28
- },
29
- debug
30
- });
31
- }
32
- function createContextWithProvider(defaultValue) {
33
- const context = createContext(defaultValue);
34
- const provider = (props) => {
35
- return createProvider(context, props.value, props);
36
- };
37
- return [context, provider];
38
- }
39
- function composeProviders(contexts, children) {
40
- if (contexts.length === 0) {
41
- return readChildren(() => children);
42
- }
43
- const [context, value] = contexts[0];
44
- const remaining = contexts.slice(1);
45
- return createProvider(context, value, {
46
- get children() {
47
- return composeProviders(remaining, children);
48
- }
49
- });
50
- }
51
- function createConsumer(context) {
52
- return (props) => {
53
- const value = useContext(context);
54
- return props.children(value);
55
- };
56
- }
57
- function useProvide(context, factory) {
58
- const existing = useContext(context);
59
- if (existing === context.defaultValue) {
60
- return factory();
61
- }
62
- return existing;
63
- }
64
8
  function createContext(defaultValue, name) {
65
9
  const context = createReactiveContext(defaultValue, name);
66
- const Provider = (props) => {
67
- if (props.debug === true) {
68
- }
69
- return context.Provider({
10
+ const Provider = (props) => (
11
+ // Children stay a getter: the reactive Provider reads them after stamping the value on
12
+ // its owner. Reading `props.children` here would render them, and any <Outlet/> in them,
13
+ // before the context exists.
14
+ context.Provider({
70
15
  value: props.value,
71
16
  get children() {
72
17
  return props.children;
73
18
  },
74
19
  debug: props.debug
75
- });
76
- };
77
- if (typeof Symbol !== "undefined" && Symbol.for) {
78
- Provider.$$typeof = /* @__PURE__ */ Symbol.for("react.provider");
79
- }
80
- Provider.$$typeof = /* @__PURE__ */ Symbol.for("react.provider");
20
+ })
21
+ );
81
22
  return {
82
23
  id: context.id,
83
24
  Provider: asProvider(Provider),
@@ -88,12 +29,36 @@ function useContext(context) {
88
29
  const value = useReactiveContext(context);
89
30
  return value !== void 0 ? value : context.defaultValue;
90
31
  }
32
+ function createProvider(context, value, props) {
33
+ const resolved = typeof value === "function" ? value() : value;
34
+ return context.Provider({
35
+ value: resolved,
36
+ get children() {
37
+ return props.children;
38
+ }
39
+ });
40
+ }
41
+ function composeProviders(providers, props) {
42
+ const outermost = providers.reduceRight(
43
+ (inner, [context, value]) => ({
44
+ get children() {
45
+ return createProvider(context, value, inner);
46
+ }
47
+ }),
48
+ props
49
+ );
50
+ return outermost.children;
51
+ }
52
+ function requireContext(context, message) {
53
+ for (let owner = getOwner(); owner; owner = owner.parent) {
54
+ if (owner.contexts?.has(context.id)) return useContext(context);
55
+ }
56
+ throw new Error(message ?? `[fluixi] No Provider for ${context.id.description ?? "this context"} above this component.`);
57
+ }
91
58
  export {
92
59
  composeProviders,
93
- createConsumer,
94
60
  createContext,
95
- createContextWithProvider,
96
61
  createProvider,
97
- useContext,
98
- useProvide
62
+ requireContext,
63
+ useContext
99
64
  };