@intlayer/design-system 3.5.4 → 3.5.5

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 (224) hide show
  1. package/dist/.vite/manifest.json +112 -45
  2. package/dist/CopyButton-Cxu3goRg.cjs +59 -0
  3. package/dist/CopyButton-Cxu3goRg.cjs.map +1 -0
  4. package/dist/CopyButton-DlcDlf6U.js +60 -0
  5. package/dist/CopyButton-DlcDlf6U.js.map +1 -0
  6. package/dist/components/Auth/SignUpForm/signUpForm.content.d.ts +11 -11
  7. package/dist/components/Auth/useAuth/useSession.cjs +1 -0
  8. package/dist/components/Auth/useAuth/useSession.cjs.map +1 -1
  9. package/dist/components/Auth/useAuth/useSession.mjs +1 -0
  10. package/dist/components/Auth/useAuth/useSession.mjs.map +1 -1
  11. package/dist/components/Breadcrumb/breadcrumb.content.cjs +26 -0
  12. package/dist/components/Breadcrumb/breadcrumb.content.cjs.map +1 -0
  13. package/dist/components/Breadcrumb/breadcrumb.content.d.ts +8 -0
  14. package/dist/components/Breadcrumb/breadcrumb.content.d.ts.map +1 -0
  15. package/dist/components/Breadcrumb/breadcrumb.content.mjs +26 -0
  16. package/dist/components/Breadcrumb/breadcrumb.content.mjs.map +1 -0
  17. package/dist/components/Breadcrumb/index.cjs +103 -34
  18. package/dist/components/Breadcrumb/index.cjs.map +1 -1
  19. package/dist/components/Breadcrumb/index.d.ts +6 -2
  20. package/dist/components/Breadcrumb/index.d.ts.map +1 -1
  21. package/dist/components/Breadcrumb/index.mjs +103 -34
  22. package/dist/components/Breadcrumb/index.mjs.map +1 -1
  23. package/dist/components/Button/Button.cjs +7 -8
  24. package/dist/components/Button/Button.cjs.map +1 -1
  25. package/dist/components/Button/Button.d.ts.map +1 -1
  26. package/dist/components/Button/Button.mjs +7 -8
  27. package/dist/components/Button/Button.mjs.map +1 -1
  28. package/dist/components/Container/index.cjs +2 -2
  29. package/dist/components/Container/index.cjs.map +1 -1
  30. package/dist/components/Container/index.mjs +2 -2
  31. package/dist/components/Container/index.mjs.map +1 -1
  32. package/dist/components/DictionaryEditor/index.cjs +4 -0
  33. package/dist/components/DictionaryEditor/index.cjs.map +1 -1
  34. package/dist/components/DictionaryEditor/index.mjs +4 -0
  35. package/dist/components/DictionaryEditor/index.mjs.map +1 -1
  36. package/dist/components/DictionaryEditor/useEditedContentStore.cjs +3 -0
  37. package/dist/components/DictionaryEditor/useEditedContentStore.cjs.map +1 -1
  38. package/dist/components/DictionaryEditor/useEditedContentStore.d.ts +2 -2
  39. package/dist/components/DictionaryEditor/useEditedContentStore.d.ts.map +1 -1
  40. package/dist/components/DictionaryEditor/useEditedContentStore.mjs +3 -0
  41. package/dist/components/DictionaryEditor/useEditedContentStore.mjs.map +1 -1
  42. package/dist/components/DictionaryEditor/useEditionPanelStore.cjs.map +1 -1
  43. package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts +1 -1
  44. package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts.map +1 -1
  45. package/dist/components/DictionaryEditor/useEditionPanelStore.mjs.map +1 -1
  46. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +7 -5
  47. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
  48. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +1 -0
  49. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
  50. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +7 -5
  51. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
  52. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +6 -3
  53. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  54. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +1 -0
  55. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  56. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +6 -3
  57. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  58. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +20 -18
  59. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
  60. package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts +1 -0
  61. package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts.map +1 -1
  62. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +20 -18
  63. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  64. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs +10 -2
  65. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs.map +1 -1
  66. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts +2 -0
  67. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts.map +1 -1
  68. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs +10 -2
  69. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
  70. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +10 -14
  71. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
  72. package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts.map +1 -1
  73. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +10 -14
  74. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
  75. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +60 -17
  76. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  77. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  78. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +63 -20
  79. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  80. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +32 -0
  81. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  82. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +4 -0
  83. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  84. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +32 -0
  85. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  86. package/dist/components/DropDown/index.cjs.map +1 -1
  87. package/dist/components/DropDown/index.d.ts +18 -1
  88. package/dist/components/DropDown/index.d.ts.map +1 -1
  89. package/dist/components/DropDown/index.mjs.map +1 -1
  90. package/dist/components/Headers/index.cjs +1 -1
  91. package/dist/components/Headers/index.cjs.map +1 -1
  92. package/dist/components/Headers/index.mjs +1 -1
  93. package/dist/components/Headers/index.mjs.map +1 -1
  94. package/dist/components/IDE/CodeRender copy.cjs +141 -0
  95. package/dist/components/IDE/CodeRender copy.cjs.map +1 -0
  96. package/dist/components/IDE/CodeRender copy.d.ts +14 -0
  97. package/dist/components/IDE/CodeRender copy.d.ts.map +1 -0
  98. package/dist/components/IDE/CodeRender copy.mjs +141 -0
  99. package/dist/components/IDE/CodeRender copy.mjs.map +1 -0
  100. package/dist/components/IDE/CodeRender.cjs +39 -625
  101. package/dist/components/IDE/CodeRender.cjs.map +1 -1
  102. package/dist/components/IDE/CodeRender.d.ts +4 -5
  103. package/dist/components/IDE/CodeRender.d.ts.map +1 -1
  104. package/dist/components/IDE/CodeRender.mjs +40 -604
  105. package/dist/components/IDE/CodeRender.mjs.map +1 -1
  106. package/dist/components/IDE/CopyButton.cjs +40 -0
  107. package/dist/components/IDE/CopyButton.cjs.map +1 -0
  108. package/dist/components/IDE/CopyButton.content.cjs +26 -0
  109. package/dist/components/IDE/CopyButton.content.cjs.map +1 -0
  110. package/dist/components/IDE/CopyButton.content.d.ts +8 -0
  111. package/dist/components/IDE/CopyButton.content.d.ts.map +1 -0
  112. package/dist/components/IDE/CopyButton.content.mjs +26 -0
  113. package/dist/components/IDE/CopyButton.content.mjs.map +1 -0
  114. package/dist/components/IDE/CopyButton.d.ts +7 -0
  115. package/dist/components/IDE/CopyButton.d.ts.map +1 -0
  116. package/dist/components/IDE/CopyButton.mjs +40 -0
  117. package/dist/components/IDE/CopyButton.mjs.map +1 -0
  118. package/dist/components/IDE/IDE.cjs +1 -1
  119. package/dist/components/IDE/IDE.cjs.map +1 -1
  120. package/dist/components/IDE/IDE.mjs +1 -1
  121. package/dist/components/IDE/IDE.mjs.map +1 -1
  122. package/dist/components/IDE/MarkDownRender.cjs +10 -2
  123. package/dist/components/IDE/MarkDownRender.cjs.map +1 -1
  124. package/dist/components/IDE/MarkDownRender.d.ts.map +1 -1
  125. package/dist/components/IDE/MarkDownRender.mjs +10 -2
  126. package/dist/components/IDE/MarkDownRender.mjs.map +1 -1
  127. package/dist/components/IDE/MonacoCode.cjs +129 -0
  128. package/dist/components/IDE/MonacoCode.cjs.map +1 -0
  129. package/dist/components/IDE/MonacoCode.d.ts +14 -0
  130. package/dist/components/IDE/MonacoCode.d.ts.map +1 -0
  131. package/dist/components/IDE/MonacoCode.mjs +129 -0
  132. package/dist/components/IDE/MonacoCode.mjs.map +1 -0
  133. package/dist/components/Link/Link.cjs +50 -31
  134. package/dist/components/Link/Link.cjs.map +1 -1
  135. package/dist/components/Link/Link.d.ts +3 -0
  136. package/dist/components/Link/Link.d.ts.map +1 -1
  137. package/dist/components/Link/Link.mjs +51 -32
  138. package/dist/components/Link/Link.mjs.map +1 -1
  139. package/dist/components/Link/index.cjs +1 -0
  140. package/dist/components/Link/index.cjs.map +1 -1
  141. package/dist/components/Link/index.mjs +3 -2
  142. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +118 -34
  143. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
  144. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts +2 -0
  145. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
  146. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +119 -35
  147. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  148. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs +63 -1
  149. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs.map +1 -1
  150. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +6 -0
  151. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
  152. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs +63 -1
  153. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
  154. package/dist/components/MarkDownRender/index.cjs +4 -2
  155. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  156. package/dist/components/MarkDownRender/index.d.ts +3 -1
  157. package/dist/components/MarkDownRender/index.d.ts.map +1 -1
  158. package/dist/components/MarkDownRender/index.mjs +4 -2
  159. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  160. package/dist/components/Modal/Modal.cjs +8 -10
  161. package/dist/components/Modal/Modal.cjs.map +1 -1
  162. package/dist/components/Modal/Modal.d.ts.map +1 -1
  163. package/dist/components/Modal/Modal.mjs +8 -10
  164. package/dist/components/Modal/Modal.mjs.map +1 -1
  165. package/dist/components/Navbar/DesktopNavbar.cjs +1 -1
  166. package/dist/components/Navbar/DesktopNavbar.cjs.map +1 -1
  167. package/dist/components/Navbar/DesktopNavbar.mjs +1 -1
  168. package/dist/components/Navbar/DesktopNavbar.mjs.map +1 -1
  169. package/dist/components/index.cjs +5 -0
  170. package/dist/components/index.cjs.map +1 -1
  171. package/dist/components/index.mjs +6 -1
  172. package/dist/components/index.mjs.map +1 -1
  173. package/dist/design-system.css +235 -0
  174. package/dist/hooks/index.cjs +6 -0
  175. package/dist/hooks/index.cjs.map +1 -1
  176. package/dist/hooks/index.d.ts +1 -0
  177. package/dist/hooks/index.d.ts.map +1 -1
  178. package/dist/hooks/index.mjs +7 -1
  179. package/dist/hooks/index.mjs.map +1 -1
  180. package/dist/hooks/intlayerAPIHooks.cjs +8 -2
  181. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  182. package/dist/hooks/intlayerAPIHooks.d.ts +4 -0
  183. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  184. package/dist/hooks/intlayerAPIHooks.mjs +8 -2
  185. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  186. package/dist/hooks/useAsync/index.cjs +3 -0
  187. package/dist/hooks/useAsync/index.cjs.map +1 -1
  188. package/dist/hooks/useAsync/index.d.ts +1 -0
  189. package/dist/hooks/useAsync/index.d.ts.map +1 -1
  190. package/dist/hooks/useAsync/index.mjs +4 -1
  191. package/dist/hooks/useAsync/index.mjs.map +1 -1
  192. package/dist/hooks/useAsync/useAsync.cjs +2 -9
  193. package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
  194. package/dist/hooks/useAsync/useAsync.d.ts.map +1 -1
  195. package/dist/hooks/useAsync/useAsync.mjs +3 -10
  196. package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
  197. package/dist/hooks/useAsync/useAsyncStateStore.cjs +123 -69
  198. package/dist/hooks/useAsync/useAsyncStateStore.cjs.map +1 -1
  199. package/dist/hooks/useAsync/useAsyncStateStore.d.ts +35 -11
  200. package/dist/hooks/useAsync/useAsyncStateStore.d.ts.map +1 -1
  201. package/dist/hooks/useAsync/useAsyncStateStore.mjs +123 -69
  202. package/dist/hooks/useAsync/useAsyncStateStore.mjs.map +1 -1
  203. package/dist/hooks/useIntlayerAPI.d.ts +3 -0
  204. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  205. package/dist/hooks/useIsDarkMode.cjs +15 -0
  206. package/dist/hooks/useIsDarkMode.cjs.map +1 -0
  207. package/dist/hooks/useIsDarkMode.d.ts +2 -0
  208. package/dist/hooks/useIsDarkMode.d.ts.map +1 -0
  209. package/dist/hooks/useIsDarkMode.mjs +15 -0
  210. package/dist/hooks/useIsDarkMode.mjs.map +1 -0
  211. package/dist/libs/intlayer-api/ai.cjs +24 -0
  212. package/dist/libs/intlayer-api/ai.cjs.map +1 -0
  213. package/dist/libs/intlayer-api/ai.d.ts +10 -0
  214. package/dist/libs/intlayer-api/ai.d.ts.map +1 -0
  215. package/dist/libs/intlayer-api/ai.mjs +24 -0
  216. package/dist/libs/intlayer-api/ai.mjs.map +1 -0
  217. package/dist/libs/intlayer-api/index.cjs +3 -1
  218. package/dist/libs/intlayer-api/index.cjs.map +1 -1
  219. package/dist/libs/intlayer-api/index.d.ts +6 -0
  220. package/dist/libs/intlayer-api/index.d.ts.map +1 -1
  221. package/dist/libs/intlayer-api/index.mjs +3 -1
  222. package/dist/libs/intlayer-api/index.mjs.map +1 -1
  223. package/dist/tailwind.css +1 -1
  224. package/package.json +19 -16
@@ -1,6 +1,8 @@
1
+ "use client";
1
2
  "use strict";
2
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const zustand = require("zustand");
4
+ const jsxRuntime = require("../../jsx-runtime-XHKiWCTo.cjs");
5
+ const require$$0 = require("react");
4
6
  const createDefaultStates = () => ({
5
7
  isFetched: false,
6
8
  fetchedDateTime: null,
@@ -21,86 +23,138 @@ const ensureArray = (value) => {
21
23
  return [value];
22
24
  };
23
25
  const getMatchKeys = (selectorsKeys, keysWithArgs) => {
24
- const matchedKeys = keysWithArgs.filter(
26
+ return keysWithArgs.filter(
25
27
  (key) => selectorsKeys.includes(key.split("/")[0])
26
28
  );
27
- return matchedKeys;
28
29
  };
29
- const useAsyncStateStore = zustand.create((set, get) => ({
30
- states: {},
31
- getStates: (key) => get().states[key] ?? createDefaultStates(),
32
- setQueryState: (key, value) => set((state) => ({
33
- states: {
34
- ...state.states,
35
- [key]: {
36
- ...state.states[key] ?? createDefaultStates(),
37
- ...value
38
- }
39
- }
40
- })),
41
- makeQueryInError: (key, error) => set((state) => ({
42
- states: {
43
- ...state.states,
44
- [key]: {
45
- ...state.states[key] ?? createDefaultStates(),
46
- error,
47
- isFetched: true,
48
- isSuccess: false,
49
- retryCount: (state.states[key]?.retryCount ?? 0) + 1,
50
- isLoading: false,
51
- isInvalidated: false
52
- }
53
- }
54
- })),
55
- setQueriesState: (keys, value) => {
56
- const keyArray = ensureArray(keys);
57
- if (keyArray.length === 0) return;
58
- set((state) => ({
59
- states: {
60
- ...state.states,
61
- ...keyArray.reduce((acc, key) => {
62
- acc[key] = {
30
+ const reducer = (state, action) => {
31
+ switch (action.type) {
32
+ case "SET_QUERY_STATE": {
33
+ const { key, value } = action;
34
+ return {
35
+ ...state,
36
+ states: {
37
+ ...state.states,
38
+ [key]: {
39
+ // Merge existing state for the key or default state if not present
63
40
  ...state.states[key] ?? createDefaultStates(),
64
41
  ...value
65
- };
66
- return acc;
67
- }, {})
68
- }
69
- }));
70
- },
71
- resetKeyState: (keys) => {
72
- const keyArray = ensureArray(keys);
73
- if (keyArray.length === 0) return;
74
- set((state) => {
75
- const allKeys = Object.keys(state.states);
76
- const matchedKeys = getMatchKeys(keyArray, allKeys);
77
- if (matchedKeys.length === 0) return {};
78
- const resetStates = matchedKeys.reduce((acc, key) => {
79
- acc[key] = createDefaultStates();
80
- return acc;
81
- }, {});
42
+ }
43
+ }
44
+ };
45
+ }
46
+ case "MAKE_QUERY_IN_ERROR": {
47
+ const { key, error } = action;
82
48
  return {
49
+ ...state,
83
50
  states: {
84
51
  ...state.states,
85
- ...resetStates
52
+ [key]: {
53
+ // Merge existing state or default if not found
54
+ ...state.states[key] ?? createDefaultStates(),
55
+ // Explicitly set error and related flags
56
+ error,
57
+ isFetched: true,
58
+ isSuccess: false,
59
+ retryCount: (state.states[key]?.retryCount ?? 0) + 1,
60
+ isLoading: false,
61
+ isInvalidated: false
62
+ }
86
63
  }
87
64
  };
88
- });
89
- },
90
- resetState: (excludedKeys) => {
91
- const excludeArray = ensureArray(excludedKeys);
92
- const allKeys = Object.keys(get().states);
93
- const matchedKeys = getMatchKeys(excludeArray, allKeys);
94
- set((state) => {
95
- const newStates = allKeys.reduce((acc, key) => {
96
- acc[key] = matchedKeys.includes(key) ? state.states[key] : createDefaultStates();
97
- return acc;
98
- }, {});
65
+ }
66
+ case "SET_QUERIES_STATE": {
67
+ const { keys, value } = action;
68
+ const keyArray = ensureArray(keys);
69
+ if (keyArray.length === 0) return state;
70
+ const updatedStates = { ...state.states };
71
+ keyArray.forEach((key) => {
72
+ updatedStates[key] = {
73
+ ...state.states[key] ?? createDefaultStates(),
74
+ ...value
75
+ };
76
+ });
77
+ return {
78
+ ...state,
79
+ states: updatedStates
80
+ };
81
+ }
82
+ case "RESET_KEY_STATE": {
83
+ const { keys } = action;
84
+ const keyArray = ensureArray(keys);
85
+ if (keyArray.length === 0) return state;
86
+ const allKeys = Object.keys(state.states);
87
+ const matchedKeys = getMatchKeys(keyArray, allKeys);
88
+ if (matchedKeys.length === 0) return state;
89
+ const resetStates = { ...state.states };
90
+ matchedKeys.forEach((key) => {
91
+ resetStates[key] = createDefaultStates();
92
+ });
93
+ return {
94
+ ...state,
95
+ states: resetStates
96
+ };
97
+ }
98
+ case "RESET_STATE": {
99
+ const excludeArray = ensureArray(action.excludeKeys);
100
+ const allKeys = Object.keys(state.states);
101
+ const matchedKeys = getMatchKeys(excludeArray, allKeys);
102
+ const newStates = {};
103
+ allKeys.forEach((key) => {
104
+ newStates[key] = matchedKeys.includes(key) ? state.states[key] : createDefaultStates();
105
+ });
99
106
  return {
107
+ ...state,
100
108
  states: newStates
101
109
  };
102
- });
110
+ }
111
+ default:
112
+ return state;
103
113
  }
104
- }));
105
- exports.useAsyncStateStore = useAsyncStateStore;
114
+ };
115
+ const AsyncStateContext = require$$0.createContext(
116
+ null
117
+ );
118
+ const AsyncStateProvider = ({ children }) => {
119
+ const [asyncState, dispatch] = require$$0.useReducer(reducer, { states: {} });
120
+ const getStates = (key) => asyncState.states[key] ?? createDefaultStates();
121
+ const setQueryState = (key, value) => {
122
+ dispatch({ type: "SET_QUERY_STATE", key, value });
123
+ };
124
+ const setQueriesState = (keys, value) => {
125
+ dispatch({ type: "SET_QUERIES_STATE", keys, value });
126
+ };
127
+ const makeQueryInError = (key, error) => {
128
+ dispatch({ type: "MAKE_QUERY_IN_ERROR", key, error });
129
+ };
130
+ const resetKeyState = (keys) => {
131
+ dispatch({ type: "RESET_KEY_STATE", keys });
132
+ };
133
+ const resetState = (excludedKeys) => {
134
+ dispatch({ type: "RESET_STATE", excludeKeys: excludedKeys });
135
+ };
136
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
137
+ AsyncStateContext.Provider,
138
+ {
139
+ value: {
140
+ getStates,
141
+ setQueryState,
142
+ setQueriesState,
143
+ makeQueryInError,
144
+ resetKeyState,
145
+ resetState
146
+ },
147
+ children
148
+ }
149
+ );
150
+ };
151
+ const useAsyncState = () => {
152
+ const context = require$$0.useContext(AsyncStateContext);
153
+ if (!context) {
154
+ throw new Error("useAsyncState must be used within an AsyncStateProvider");
155
+ }
156
+ return context;
157
+ };
158
+ exports.AsyncStateProvider = AsyncStateProvider;
159
+ exports.useAsyncState = useAsyncState;
106
160
  //# sourceMappingURL=useAsyncStateStore.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAsyncStateStore.cjs","sources":["../../../src/hooks/useAsync/useAsyncStateStore.ts"],"sourcesContent":["import { create } from 'zustand';\n\ntype States<T> = {\n isLoading: boolean;\n isFetched: boolean;\n isInvalidated: boolean;\n fetchedDateTime: null | Date;\n error: string | null;\n isSuccess: boolean;\n data: T | null;\n retryCount: number;\n isEnabled: boolean;\n};\n\ntype StateSlice<T> = {\n [key: string]: States<T>;\n};\n\ntype Actions<T> = {\n getStates: (key: string) => States<T>;\n setQueryState: (key: string, value: Partial<States<T>>) => void;\n setQueriesState: (key: string[], value: Partial<States<T>>) => void;\n makeQueryInError: (key: string, error: string) => void;\n resetKeyState: (key: string[]) => void;\n resetState: (excludedKey: string[]) => void;\n};\n\ntype AsyncState<T> = {\n states: StateSlice<T>;\n} & Actions<T>;\n\nconst createDefaultStates = <T>(): States<T> => ({\n isFetched: false,\n fetchedDateTime: null,\n isLoading: false,\n isInvalidated: false,\n error: null,\n isSuccess: false,\n data: null,\n retryCount: 0,\n isEnabled: true,\n});\n\n/**\n * If the value is not an array. Transform it en array\n *\n * @param value value to transform en array if not array\n * @returns array\n */\nconst ensureArray = <T>(value?: T | T[]): T[] => {\n if (!value) {\n return [];\n } else if (Array.isArray(value)) {\n return value;\n }\n\n return [value];\n};\n\n/**\n * Return all keys that match\n *\n * @param {string[]} selectorsKeys - List of key to check - example: ['getProducts']\n * @param {string[]} keysWithArgs - List of keys that can includes args - example: [\"getProducts\", \"getProducts/{'ids':['id1','id2']}\", \"getUsers\", \"getUsers/{'ids':['id1','id2']}\" ]\n * @returns {string[]} - key that match the selectors - example: [\"getProducts\", \"getProducts/{'ids':['id1','id2']}\" ]\n */\nconst getMatchKeys = (\n selectorsKeys: string[],\n keysWithArgs: string[]\n): string[] => {\n const matchedKeys: string[] = keysWithArgs.filter((key) =>\n selectorsKeys.includes(key.split('/')[0])\n );\n\n return matchedKeys;\n};\n\nexport const useAsyncStateStore = create<AsyncState<unknown>>((set, get) => ({\n states: {},\n\n getStates: (key) => get().states[key] ?? createDefaultStates<unknown>(),\n\n setQueryState: (key, value) =>\n set((state) => ({\n states: {\n ...state.states,\n [key]: {\n ...(state.states[key] ?? createDefaultStates<unknown>()),\n ...value,\n },\n },\n })),\n\n makeQueryInError: (key, error) =>\n set((state) => ({\n states: {\n ...state.states,\n [key]: {\n ...(state.states[key] ?? createDefaultStates<unknown>()),\n error: error,\n isFetched: true,\n isSuccess: false,\n retryCount: (state.states[key]?.retryCount ?? 0) + 1,\n isLoading: false,\n isInvalidated: false,\n },\n },\n })),\n\n setQueriesState: (keys, value) => {\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return;\n\n set((state) => ({\n states: {\n ...state.states,\n ...keyArray.reduce((acc, key) => {\n acc[key] = {\n ...(state.states[key] ?? createDefaultStates<unknown>()),\n ...value,\n };\n return acc;\n }, {} as StateSlice<unknown>),\n },\n }));\n },\n\n resetKeyState: (keys) => {\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return;\n\n set((state) => {\n const allKeys = Object.keys(state.states);\n const matchedKeys = getMatchKeys(keyArray, allKeys);\n\n if (matchedKeys.length === 0) return {};\n\n const resetStates = matchedKeys.reduce((acc, key) => {\n acc[key] = createDefaultStates<unknown>();\n return acc;\n }, {} as StateSlice<unknown>);\n\n return {\n states: {\n ...state.states,\n ...resetStates,\n },\n };\n });\n },\n\n resetState: (excludedKeys) => {\n const excludeArray = ensureArray(excludedKeys);\n const allKeys = Object.keys(get().states);\n const matchedKeys = getMatchKeys(excludeArray, allKeys);\n\n set((state) => {\n const newStates = allKeys.reduce((acc, key) => {\n acc[key] = matchedKeys.includes(key)\n ? state.states[key]\n : createDefaultStates<unknown>();\n return acc;\n }, {} as StateSlice<unknown>);\n\n return {\n states: newStates,\n };\n });\n },\n}));\n"],"names":["create"],"mappings":"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"}
1
+ {"version":3,"file":"useAsyncStateStore.cjs","sources":["../../../src/hooks/useAsync/useAsyncStateStore.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n useContext,\n useReducer,\n PropsWithChildren,\n} from 'react';\n\n/**\n * Represents the states for a given key in the asynchronous state management.\n * This includes flags for loading, fetched, invalidation, and success/error status.\n * It also keeps track of the fetched datetime, retry counts, the data itself, and whether queries are enabled.\n */\ntype States<T> = {\n isLoading: boolean;\n isFetched: boolean;\n isInvalidated: boolean;\n fetchedDateTime: null | Date;\n error: string | null;\n isSuccess: boolean;\n data: T | null;\n retryCount: number;\n isEnabled: boolean;\n};\n\n/**\n * Holds a mapping from a key (string) to its associated state.\n */\ntype StateSlice<T> = {\n [key: string]: States<T>;\n};\n\n/**\n * Describes all the possible actions that can be dispatched to the reducer.\n * These actions allow setting or updating states for specific keys or multiple keys at once,\n * handling errors, and resetting states.\n */\ntype Actions<T> =\n | { type: 'SET_QUERY_STATE'; key: string; value: Partial<States<T>> }\n | { type: 'MAKE_QUERY_IN_ERROR'; key: string; error: string }\n | { type: 'SET_QUERIES_STATE'; keys: string[]; value: Partial<States<T>> }\n | { type: 'RESET_KEY_STATE'; keys: string[] }\n | { type: 'RESET_STATE'; excludeKeys: string[] };\n\n/**\n * The shape of the entire asynchronous state, holding all states in a single object.\n */\ntype AsyncState<T> = {\n states: StateSlice<T>;\n};\n\n/**\n * Creates a default state object with initial values. This is useful when a key\n * has not been initialized yet or when resetting a state back to defaults.\n */\nconst createDefaultStates = <T,>(): States<T> => ({\n isFetched: false,\n fetchedDateTime: null,\n isLoading: false,\n isInvalidated: false,\n error: null,\n isSuccess: false,\n data: null,\n retryCount: 0,\n isEnabled: true,\n});\n\n/**\n * Ensures that a given value is returned as an array.\n * If the value is undefined or null, returns an empty array.\n * If the value is not already an array, wraps it in one.\n */\nconst ensureArray = <T,>(value?: T | T[]): T[] => {\n if (!value) {\n // If no value is provided, return an empty array\n return [];\n } else if (Array.isArray(value)) {\n // If it's already an array, just return it\n return value;\n }\n // If it's a single value, wrap it in an array\n return [value];\n};\n\n/**\n * Given a list of selector keys and a list of keys that may contain arguments,\n * this function returns all keys that match the selectors. Matching is determined\n * by comparing the initial part (split by \"/\") of the key.\n *\n * For example:\n * selectorsKeys = [\"user\", \"posts\"]\n * keysWithArgs = [\"user/123\", \"posts/active\", \"comments/42\"]\n * Result = [\"user/123\", \"posts/active\"]\n */\nconst getMatchKeys = (\n selectorsKeys: string[],\n keysWithArgs: string[]\n): string[] => {\n return keysWithArgs.filter((key) =>\n selectorsKeys.includes(key.split('/')[0])\n );\n};\n\n/**\n * The reducer function handling all state transitions. It takes the current state and an action,\n * and returns a new state based on the type of the action.\n *\n * Actions include:\n * - SET_QUERY_STATE: Update a single key with partial new state.\n * - MAKE_QUERY_IN_ERROR: Mark a single key as errored and update related flags.\n * - SET_QUERIES_STATE: Update multiple keys at once with partial new state.\n * - RESET_KEY_STATE: Reset certain keys to their default states.\n * - RESET_STATE: Reset all keys to their default states except those excluded.\n */\nconst reducer = <T,>(\n state: AsyncState<T>,\n action: Actions<T>\n): AsyncState<T> => {\n switch (action.type) {\n case 'SET_QUERY_STATE': {\n const { key, value } = action;\n return {\n ...state,\n states: {\n ...state.states,\n [key]: {\n // Merge existing state for the key or default state if not present\n ...(state.states[key] ?? createDefaultStates<T>()),\n ...value,\n },\n },\n };\n }\n case 'MAKE_QUERY_IN_ERROR': {\n const { key, error } = action;\n return {\n ...state,\n states: {\n ...state.states,\n [key]: {\n // Merge existing state or default if not found\n ...(state.states[key] ?? createDefaultStates<T>()),\n // Explicitly set error and related flags\n error,\n isFetched: true,\n isSuccess: false,\n retryCount: (state.states[key]?.retryCount ?? 0) + 1,\n isLoading: false,\n isInvalidated: false,\n },\n },\n };\n }\n case 'SET_QUERIES_STATE': {\n const { keys, value } = action;\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return state;\n\n // Update multiple keys in a single action\n const updatedStates = { ...state.states };\n keyArray.forEach((key) => {\n updatedStates[key] = {\n ...(state.states[key] ?? createDefaultStates<T>()),\n ...value,\n };\n });\n\n return {\n ...state,\n states: updatedStates,\n };\n }\n case 'RESET_KEY_STATE': {\n const { keys } = action;\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return state;\n\n // Find all keys that match the given selectors\n const allKeys = Object.keys(state.states);\n const matchedKeys = getMatchKeys(keyArray, allKeys);\n if (matchedKeys.length === 0) return state;\n\n // Reset the matched keys back to default states\n const resetStates = { ...state.states };\n matchedKeys.forEach((key) => {\n resetStates[key] = createDefaultStates<T>();\n });\n\n return {\n ...state,\n states: resetStates,\n };\n }\n case 'RESET_STATE': {\n const excludeArray = ensureArray(action.excludeKeys);\n const allKeys = Object.keys(state.states);\n const matchedKeys = getMatchKeys(excludeArray, allKeys);\n\n // Reset all states except those that match the exclude keys\n const newStates: StateSlice<T> = {};\n allKeys.forEach((key) => {\n newStates[key] = matchedKeys.includes(key)\n ? state.states[key]\n : createDefaultStates<T>();\n });\n\n return {\n ...state,\n states: newStates,\n };\n }\n default:\n return state;\n }\n};\n\n/**\n * The context type that will be provided to consumers.\n * It exposes a set of functions for interacting with the asynchronous state:\n * - getStates: Retrieve the current state for a given key.\n * - setQueryState: Partially update a single key's state.\n * - setQueriesState: Partially update multiple keys' states.\n * - makeQueryInError: Set a particular key into an error state.\n * - resetKeyState: Reset certain keys to their default states.\n * - resetState: Reset all keys to their default states except a set of excluded ones.\n */\ntype AsyncStateContextType<T> = {\n getStates: (key: string) => States<T>;\n setQueryState: (key: string, value: Partial<States<T>>) => void;\n setQueriesState: (keys: string[], value: Partial<States<T>>) => void;\n makeQueryInError: (key: string, error: string) => void;\n resetKeyState: (keys: string[]) => void;\n resetState: (excludedKeys: string[]) => void;\n};\n\n/**\n * Creates a React context for asynchronous state management.\n * This context will be provided by the AsyncStateProvider and consumed by hooks like useAsyncState.\n */\nconst AsyncStateContext = createContext<AsyncStateContextType<unknown> | null>(\n null\n);\n\n/**\n * A provider component that wraps its children and provides the asynchronous\n * state context. It uses the reducer to manage states and dispatch actions\n * based on consumer interactions.\n *\n * @param children The React children elements that should have access to this context.\n */\nexport const AsyncStateProvider = ({ children }: PropsWithChildren<{}>) => {\n // Initialize the reducer with an empty state object\n const [asyncState, dispatch] = useReducer(reducer, { states: {} });\n\n /**\n * Retrieve the state associated with a given key. If no state exists for that key,\n * return a default state.\n *\n * @param key The key for which to retrieve the state.\n */\n const getStates = (key: string) =>\n asyncState.states[key] ?? createDefaultStates<unknown>();\n\n /**\n * Partially update the state for a given key.\n *\n * @param key The key to update.\n * @param value A partial state object to merge with the existing state.\n */\n const setQueryState = (key: string, value: Partial<States<unknown>>) => {\n dispatch({ type: 'SET_QUERY_STATE', key, value });\n };\n\n /**\n * Partially update the state for multiple keys at once.\n *\n * @param keys An array of keys to update.\n * @param value A partial state object to merge with each key's existing state.\n */\n const setQueriesState = (keys: string[], value: Partial<States<unknown>>) => {\n dispatch({ type: 'SET_QUERIES_STATE', keys, value });\n };\n\n /**\n * Mark a given query as having encountered an error.\n *\n * @param key The key associated with the query.\n * @param error The error message to set.\n */\n const makeQueryInError = (key: string, error: string) => {\n dispatch({ type: 'MAKE_QUERY_IN_ERROR', key, error });\n };\n\n /**\n * Reset certain keys back to their default states.\n *\n * @param keys The keys to reset.\n */\n const resetKeyState = (keys: string[]) => {\n dispatch({ type: 'RESET_KEY_STATE', keys });\n };\n\n /**\n * Reset the entire state back to defaults, except for keys that match the excluded ones.\n *\n * @param excludedKeys Keys that should not be reset.\n */\n const resetState = (excludedKeys: string[]) => {\n dispatch({ type: 'RESET_STATE', excludeKeys: excludedKeys });\n };\n\n return (\n <AsyncStateContext.Provider\n value={{\n getStates,\n setQueryState,\n setQueriesState,\n makeQueryInError,\n resetKeyState,\n resetState,\n }}\n >\n {children}\n </AsyncStateContext.Provider>\n );\n};\n\n/**\n * A custom hook for accessing the asynchronous state context. It throws an error if used\n * outside of a provider.\n *\n * @returns The asynchronous state context value.\n */\nexport const useAsyncState = () => {\n const context = useContext(AsyncStateContext);\n if (!context) {\n throw new Error('useAsyncState must be used within an AsyncStateProvider');\n }\n return context;\n};\n"],"names":["createContext","useReducer","jsx","useContext"],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ import { PropsWithChildren } from 'react';
2
+ /**
3
+ * Represents the states for a given key in the asynchronous state management.
4
+ * This includes flags for loading, fetched, invalidation, and success/error status.
5
+ * It also keeps track of the fetched datetime, retry counts, the data itself, and whether queries are enabled.
6
+ */
1
7
  type States<T> = {
2
8
  isLoading: boolean;
3
9
  isFetched: boolean;
@@ -9,20 +15,38 @@ type States<T> = {
9
15
  retryCount: number;
10
16
  isEnabled: boolean;
11
17
  };
12
- type StateSlice<T> = {
13
- [key: string]: States<T>;
14
- };
15
- type Actions<T> = {
18
+ /**
19
+ * The context type that will be provided to consumers.
20
+ * It exposes a set of functions for interacting with the asynchronous state:
21
+ * - getStates: Retrieve the current state for a given key.
22
+ * - setQueryState: Partially update a single key's state.
23
+ * - setQueriesState: Partially update multiple keys' states.
24
+ * - makeQueryInError: Set a particular key into an error state.
25
+ * - resetKeyState: Reset certain keys to their default states.
26
+ * - resetState: Reset all keys to their default states except a set of excluded ones.
27
+ */
28
+ type AsyncStateContextType<T> = {
16
29
  getStates: (key: string) => States<T>;
17
30
  setQueryState: (key: string, value: Partial<States<T>>) => void;
18
- setQueriesState: (key: string[], value: Partial<States<T>>) => void;
31
+ setQueriesState: (keys: string[], value: Partial<States<T>>) => void;
19
32
  makeQueryInError: (key: string, error: string) => void;
20
- resetKeyState: (key: string[]) => void;
21
- resetState: (excludedKey: string[]) => void;
33
+ resetKeyState: (keys: string[]) => void;
34
+ resetState: (excludedKeys: string[]) => void;
22
35
  };
23
- type AsyncState<T> = {
24
- states: StateSlice<T>;
25
- } & Actions<T>;
26
- export declare const useAsyncStateStore: import('zustand').UseBoundStore<import('zustand').StoreApi<AsyncState<unknown>>>;
36
+ /**
37
+ * A provider component that wraps its children and provides the asynchronous
38
+ * state context. It uses the reducer to manage states and dispatch actions
39
+ * based on consumer interactions.
40
+ *
41
+ * @param children The React children elements that should have access to this context.
42
+ */
43
+ export declare const AsyncStateProvider: ({ children }: PropsWithChildren<{}>) => import("react/jsx-runtime").JSX.Element;
44
+ /**
45
+ * A custom hook for accessing the asynchronous state context. It throws an error if used
46
+ * outside of a provider.
47
+ *
48
+ * @returns The asynchronous state context value.
49
+ */
50
+ export declare const useAsyncState: () => AsyncStateContextType<unknown>;
27
51
  export {};
28
52
  //# sourceMappingURL=useAsyncStateStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAsyncStateStore.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAsync/useAsyncStateStore.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,CAAC,CAAC,IAAI;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CAC1B,CAAC;AAEF,KAAK,OAAO,CAAC,CAAC,IAAI;IAChB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpE,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACvB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAgDf,eAAO,MAAM,kBAAkB,kFA4F5B,CAAC"}
1
+ {"version":3,"file":"useAsyncStateStore.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAsync/useAsyncStateStore.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAEf;;;;GAIG;AACH,KAAK,MAAM,CAAC,CAAC,IAAI;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAiMF;;;;;;;;;GASG;AACH,KAAK,qBAAqB,CAAC,CAAC,IAAI;IAC9B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrE,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC9C,CAAC;AAUF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,iBAAkB,iBAAiB,CAAC,EAAE,CAAC,4CA2ErE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,sCAMzB,CAAC"}
@@ -1,4 +1,6 @@
1
- import { create } from "zustand";
1
+ "use client";
2
+ import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
3
+ import { createContext, useReducer, useContext } from "react";
2
4
  const createDefaultStates = () => ({
3
5
  isFetched: false,
4
6
  fetchedDateTime: null,
@@ -19,88 +21,140 @@ const ensureArray = (value) => {
19
21
  return [value];
20
22
  };
21
23
  const getMatchKeys = (selectorsKeys, keysWithArgs) => {
22
- const matchedKeys = keysWithArgs.filter(
24
+ return keysWithArgs.filter(
23
25
  (key) => selectorsKeys.includes(key.split("/")[0])
24
26
  );
25
- return matchedKeys;
26
27
  };
27
- const useAsyncStateStore = create((set, get) => ({
28
- states: {},
29
- getStates: (key) => get().states[key] ?? createDefaultStates(),
30
- setQueryState: (key, value) => set((state) => ({
31
- states: {
32
- ...state.states,
33
- [key]: {
34
- ...state.states[key] ?? createDefaultStates(),
35
- ...value
36
- }
37
- }
38
- })),
39
- makeQueryInError: (key, error) => set((state) => ({
40
- states: {
41
- ...state.states,
42
- [key]: {
43
- ...state.states[key] ?? createDefaultStates(),
44
- error,
45
- isFetched: true,
46
- isSuccess: false,
47
- retryCount: (state.states[key]?.retryCount ?? 0) + 1,
48
- isLoading: false,
49
- isInvalidated: false
50
- }
51
- }
52
- })),
53
- setQueriesState: (keys, value) => {
54
- const keyArray = ensureArray(keys);
55
- if (keyArray.length === 0) return;
56
- set((state) => ({
57
- states: {
58
- ...state.states,
59
- ...keyArray.reduce((acc, key) => {
60
- acc[key] = {
28
+ const reducer = (state, action) => {
29
+ switch (action.type) {
30
+ case "SET_QUERY_STATE": {
31
+ const { key, value } = action;
32
+ return {
33
+ ...state,
34
+ states: {
35
+ ...state.states,
36
+ [key]: {
37
+ // Merge existing state for the key or default state if not present
61
38
  ...state.states[key] ?? createDefaultStates(),
62
39
  ...value
63
- };
64
- return acc;
65
- }, {})
66
- }
67
- }));
68
- },
69
- resetKeyState: (keys) => {
70
- const keyArray = ensureArray(keys);
71
- if (keyArray.length === 0) return;
72
- set((state) => {
73
- const allKeys = Object.keys(state.states);
74
- const matchedKeys = getMatchKeys(keyArray, allKeys);
75
- if (matchedKeys.length === 0) return {};
76
- const resetStates = matchedKeys.reduce((acc, key) => {
77
- acc[key] = createDefaultStates();
78
- return acc;
79
- }, {});
40
+ }
41
+ }
42
+ };
43
+ }
44
+ case "MAKE_QUERY_IN_ERROR": {
45
+ const { key, error } = action;
80
46
  return {
47
+ ...state,
81
48
  states: {
82
49
  ...state.states,
83
- ...resetStates
50
+ [key]: {
51
+ // Merge existing state or default if not found
52
+ ...state.states[key] ?? createDefaultStates(),
53
+ // Explicitly set error and related flags
54
+ error,
55
+ isFetched: true,
56
+ isSuccess: false,
57
+ retryCount: (state.states[key]?.retryCount ?? 0) + 1,
58
+ isLoading: false,
59
+ isInvalidated: false
60
+ }
84
61
  }
85
62
  };
86
- });
87
- },
88
- resetState: (excludedKeys) => {
89
- const excludeArray = ensureArray(excludedKeys);
90
- const allKeys = Object.keys(get().states);
91
- const matchedKeys = getMatchKeys(excludeArray, allKeys);
92
- set((state) => {
93
- const newStates = allKeys.reduce((acc, key) => {
94
- acc[key] = matchedKeys.includes(key) ? state.states[key] : createDefaultStates();
95
- return acc;
96
- }, {});
63
+ }
64
+ case "SET_QUERIES_STATE": {
65
+ const { keys, value } = action;
66
+ const keyArray = ensureArray(keys);
67
+ if (keyArray.length === 0) return state;
68
+ const updatedStates = { ...state.states };
69
+ keyArray.forEach((key) => {
70
+ updatedStates[key] = {
71
+ ...state.states[key] ?? createDefaultStates(),
72
+ ...value
73
+ };
74
+ });
75
+ return {
76
+ ...state,
77
+ states: updatedStates
78
+ };
79
+ }
80
+ case "RESET_KEY_STATE": {
81
+ const { keys } = action;
82
+ const keyArray = ensureArray(keys);
83
+ if (keyArray.length === 0) return state;
84
+ const allKeys = Object.keys(state.states);
85
+ const matchedKeys = getMatchKeys(keyArray, allKeys);
86
+ if (matchedKeys.length === 0) return state;
87
+ const resetStates = { ...state.states };
88
+ matchedKeys.forEach((key) => {
89
+ resetStates[key] = createDefaultStates();
90
+ });
91
+ return {
92
+ ...state,
93
+ states: resetStates
94
+ };
95
+ }
96
+ case "RESET_STATE": {
97
+ const excludeArray = ensureArray(action.excludeKeys);
98
+ const allKeys = Object.keys(state.states);
99
+ const matchedKeys = getMatchKeys(excludeArray, allKeys);
100
+ const newStates = {};
101
+ allKeys.forEach((key) => {
102
+ newStates[key] = matchedKeys.includes(key) ? state.states[key] : createDefaultStates();
103
+ });
97
104
  return {
105
+ ...state,
98
106
  states: newStates
99
107
  };
100
- });
108
+ }
109
+ default:
110
+ return state;
101
111
  }
102
- }));
112
+ };
113
+ const AsyncStateContext = createContext(
114
+ null
115
+ );
116
+ const AsyncStateProvider = ({ children }) => {
117
+ const [asyncState, dispatch] = useReducer(reducer, { states: {} });
118
+ const getStates = (key) => asyncState.states[key] ?? createDefaultStates();
119
+ const setQueryState = (key, value) => {
120
+ dispatch({ type: "SET_QUERY_STATE", key, value });
121
+ };
122
+ const setQueriesState = (keys, value) => {
123
+ dispatch({ type: "SET_QUERIES_STATE", keys, value });
124
+ };
125
+ const makeQueryInError = (key, error) => {
126
+ dispatch({ type: "MAKE_QUERY_IN_ERROR", key, error });
127
+ };
128
+ const resetKeyState = (keys) => {
129
+ dispatch({ type: "RESET_KEY_STATE", keys });
130
+ };
131
+ const resetState = (excludedKeys) => {
132
+ dispatch({ type: "RESET_STATE", excludeKeys: excludedKeys });
133
+ };
134
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
135
+ AsyncStateContext.Provider,
136
+ {
137
+ value: {
138
+ getStates,
139
+ setQueryState,
140
+ setQueriesState,
141
+ makeQueryInError,
142
+ resetKeyState,
143
+ resetState
144
+ },
145
+ children
146
+ }
147
+ );
148
+ };
149
+ const useAsyncState = () => {
150
+ const context = useContext(AsyncStateContext);
151
+ if (!context) {
152
+ throw new Error("useAsyncState must be used within an AsyncStateProvider");
153
+ }
154
+ return context;
155
+ };
103
156
  export {
104
- useAsyncStateStore
157
+ AsyncStateProvider,
158
+ useAsyncState
105
159
  };
106
160
  //# sourceMappingURL=useAsyncStateStore.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAsyncStateStore.mjs","sources":["../../../src/hooks/useAsync/useAsyncStateStore.ts"],"sourcesContent":["import { create } from 'zustand';\n\ntype States<T> = {\n isLoading: boolean;\n isFetched: boolean;\n isInvalidated: boolean;\n fetchedDateTime: null | Date;\n error: string | null;\n isSuccess: boolean;\n data: T | null;\n retryCount: number;\n isEnabled: boolean;\n};\n\ntype StateSlice<T> = {\n [key: string]: States<T>;\n};\n\ntype Actions<T> = {\n getStates: (key: string) => States<T>;\n setQueryState: (key: string, value: Partial<States<T>>) => void;\n setQueriesState: (key: string[], value: Partial<States<T>>) => void;\n makeQueryInError: (key: string, error: string) => void;\n resetKeyState: (key: string[]) => void;\n resetState: (excludedKey: string[]) => void;\n};\n\ntype AsyncState<T> = {\n states: StateSlice<T>;\n} & Actions<T>;\n\nconst createDefaultStates = <T>(): States<T> => ({\n isFetched: false,\n fetchedDateTime: null,\n isLoading: false,\n isInvalidated: false,\n error: null,\n isSuccess: false,\n data: null,\n retryCount: 0,\n isEnabled: true,\n});\n\n/**\n * If the value is not an array. Transform it en array\n *\n * @param value value to transform en array if not array\n * @returns array\n */\nconst ensureArray = <T>(value?: T | T[]): T[] => {\n if (!value) {\n return [];\n } else if (Array.isArray(value)) {\n return value;\n }\n\n return [value];\n};\n\n/**\n * Return all keys that match\n *\n * @param {string[]} selectorsKeys - List of key to check - example: ['getProducts']\n * @param {string[]} keysWithArgs - List of keys that can includes args - example: [\"getProducts\", \"getProducts/{'ids':['id1','id2']}\", \"getUsers\", \"getUsers/{'ids':['id1','id2']}\" ]\n * @returns {string[]} - key that match the selectors - example: [\"getProducts\", \"getProducts/{'ids':['id1','id2']}\" ]\n */\nconst getMatchKeys = (\n selectorsKeys: string[],\n keysWithArgs: string[]\n): string[] => {\n const matchedKeys: string[] = keysWithArgs.filter((key) =>\n selectorsKeys.includes(key.split('/')[0])\n );\n\n return matchedKeys;\n};\n\nexport const useAsyncStateStore = create<AsyncState<unknown>>((set, get) => ({\n states: {},\n\n getStates: (key) => get().states[key] ?? createDefaultStates<unknown>(),\n\n setQueryState: (key, value) =>\n set((state) => ({\n states: {\n ...state.states,\n [key]: {\n ...(state.states[key] ?? createDefaultStates<unknown>()),\n ...value,\n },\n },\n })),\n\n makeQueryInError: (key, error) =>\n set((state) => ({\n states: {\n ...state.states,\n [key]: {\n ...(state.states[key] ?? createDefaultStates<unknown>()),\n error: error,\n isFetched: true,\n isSuccess: false,\n retryCount: (state.states[key]?.retryCount ?? 0) + 1,\n isLoading: false,\n isInvalidated: false,\n },\n },\n })),\n\n setQueriesState: (keys, value) => {\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return;\n\n set((state) => ({\n states: {\n ...state.states,\n ...keyArray.reduce((acc, key) => {\n acc[key] = {\n ...(state.states[key] ?? createDefaultStates<unknown>()),\n ...value,\n };\n return acc;\n }, {} as StateSlice<unknown>),\n },\n }));\n },\n\n resetKeyState: (keys) => {\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return;\n\n set((state) => {\n const allKeys = Object.keys(state.states);\n const matchedKeys = getMatchKeys(keyArray, allKeys);\n\n if (matchedKeys.length === 0) return {};\n\n const resetStates = matchedKeys.reduce((acc, key) => {\n acc[key] = createDefaultStates<unknown>();\n return acc;\n }, {} as StateSlice<unknown>);\n\n return {\n states: {\n ...state.states,\n ...resetStates,\n },\n };\n });\n },\n\n resetState: (excludedKeys) => {\n const excludeArray = ensureArray(excludedKeys);\n const allKeys = Object.keys(get().states);\n const matchedKeys = getMatchKeys(excludeArray, allKeys);\n\n set((state) => {\n const newStates = allKeys.reduce((acc, key) => {\n acc[key] = matchedKeys.includes(key)\n ? state.states[key]\n : createDefaultStates<unknown>();\n return acc;\n }, {} as StateSlice<unknown>);\n\n return {\n states: newStates,\n };\n });\n },\n}));\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAsyncStateStore.mjs","sources":["../../../src/hooks/useAsync/useAsyncStateStore.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n useContext,\n useReducer,\n PropsWithChildren,\n} from 'react';\n\n/**\n * Represents the states for a given key in the asynchronous state management.\n * This includes flags for loading, fetched, invalidation, and success/error status.\n * It also keeps track of the fetched datetime, retry counts, the data itself, and whether queries are enabled.\n */\ntype States<T> = {\n isLoading: boolean;\n isFetched: boolean;\n isInvalidated: boolean;\n fetchedDateTime: null | Date;\n error: string | null;\n isSuccess: boolean;\n data: T | null;\n retryCount: number;\n isEnabled: boolean;\n};\n\n/**\n * Holds a mapping from a key (string) to its associated state.\n */\ntype StateSlice<T> = {\n [key: string]: States<T>;\n};\n\n/**\n * Describes all the possible actions that can be dispatched to the reducer.\n * These actions allow setting or updating states for specific keys or multiple keys at once,\n * handling errors, and resetting states.\n */\ntype Actions<T> =\n | { type: 'SET_QUERY_STATE'; key: string; value: Partial<States<T>> }\n | { type: 'MAKE_QUERY_IN_ERROR'; key: string; error: string }\n | { type: 'SET_QUERIES_STATE'; keys: string[]; value: Partial<States<T>> }\n | { type: 'RESET_KEY_STATE'; keys: string[] }\n | { type: 'RESET_STATE'; excludeKeys: string[] };\n\n/**\n * The shape of the entire asynchronous state, holding all states in a single object.\n */\ntype AsyncState<T> = {\n states: StateSlice<T>;\n};\n\n/**\n * Creates a default state object with initial values. This is useful when a key\n * has not been initialized yet or when resetting a state back to defaults.\n */\nconst createDefaultStates = <T,>(): States<T> => ({\n isFetched: false,\n fetchedDateTime: null,\n isLoading: false,\n isInvalidated: false,\n error: null,\n isSuccess: false,\n data: null,\n retryCount: 0,\n isEnabled: true,\n});\n\n/**\n * Ensures that a given value is returned as an array.\n * If the value is undefined or null, returns an empty array.\n * If the value is not already an array, wraps it in one.\n */\nconst ensureArray = <T,>(value?: T | T[]): T[] => {\n if (!value) {\n // If no value is provided, return an empty array\n return [];\n } else if (Array.isArray(value)) {\n // If it's already an array, just return it\n return value;\n }\n // If it's a single value, wrap it in an array\n return [value];\n};\n\n/**\n * Given a list of selector keys and a list of keys that may contain arguments,\n * this function returns all keys that match the selectors. Matching is determined\n * by comparing the initial part (split by \"/\") of the key.\n *\n * For example:\n * selectorsKeys = [\"user\", \"posts\"]\n * keysWithArgs = [\"user/123\", \"posts/active\", \"comments/42\"]\n * Result = [\"user/123\", \"posts/active\"]\n */\nconst getMatchKeys = (\n selectorsKeys: string[],\n keysWithArgs: string[]\n): string[] => {\n return keysWithArgs.filter((key) =>\n selectorsKeys.includes(key.split('/')[0])\n );\n};\n\n/**\n * The reducer function handling all state transitions. It takes the current state and an action,\n * and returns a new state based on the type of the action.\n *\n * Actions include:\n * - SET_QUERY_STATE: Update a single key with partial new state.\n * - MAKE_QUERY_IN_ERROR: Mark a single key as errored and update related flags.\n * - SET_QUERIES_STATE: Update multiple keys at once with partial new state.\n * - RESET_KEY_STATE: Reset certain keys to their default states.\n * - RESET_STATE: Reset all keys to their default states except those excluded.\n */\nconst reducer = <T,>(\n state: AsyncState<T>,\n action: Actions<T>\n): AsyncState<T> => {\n switch (action.type) {\n case 'SET_QUERY_STATE': {\n const { key, value } = action;\n return {\n ...state,\n states: {\n ...state.states,\n [key]: {\n // Merge existing state for the key or default state if not present\n ...(state.states[key] ?? createDefaultStates<T>()),\n ...value,\n },\n },\n };\n }\n case 'MAKE_QUERY_IN_ERROR': {\n const { key, error } = action;\n return {\n ...state,\n states: {\n ...state.states,\n [key]: {\n // Merge existing state or default if not found\n ...(state.states[key] ?? createDefaultStates<T>()),\n // Explicitly set error and related flags\n error,\n isFetched: true,\n isSuccess: false,\n retryCount: (state.states[key]?.retryCount ?? 0) + 1,\n isLoading: false,\n isInvalidated: false,\n },\n },\n };\n }\n case 'SET_QUERIES_STATE': {\n const { keys, value } = action;\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return state;\n\n // Update multiple keys in a single action\n const updatedStates = { ...state.states };\n keyArray.forEach((key) => {\n updatedStates[key] = {\n ...(state.states[key] ?? createDefaultStates<T>()),\n ...value,\n };\n });\n\n return {\n ...state,\n states: updatedStates,\n };\n }\n case 'RESET_KEY_STATE': {\n const { keys } = action;\n const keyArray = ensureArray(keys);\n if (keyArray.length === 0) return state;\n\n // Find all keys that match the given selectors\n const allKeys = Object.keys(state.states);\n const matchedKeys = getMatchKeys(keyArray, allKeys);\n if (matchedKeys.length === 0) return state;\n\n // Reset the matched keys back to default states\n const resetStates = { ...state.states };\n matchedKeys.forEach((key) => {\n resetStates[key] = createDefaultStates<T>();\n });\n\n return {\n ...state,\n states: resetStates,\n };\n }\n case 'RESET_STATE': {\n const excludeArray = ensureArray(action.excludeKeys);\n const allKeys = Object.keys(state.states);\n const matchedKeys = getMatchKeys(excludeArray, allKeys);\n\n // Reset all states except those that match the exclude keys\n const newStates: StateSlice<T> = {};\n allKeys.forEach((key) => {\n newStates[key] = matchedKeys.includes(key)\n ? state.states[key]\n : createDefaultStates<T>();\n });\n\n return {\n ...state,\n states: newStates,\n };\n }\n default:\n return state;\n }\n};\n\n/**\n * The context type that will be provided to consumers.\n * It exposes a set of functions for interacting with the asynchronous state:\n * - getStates: Retrieve the current state for a given key.\n * - setQueryState: Partially update a single key's state.\n * - setQueriesState: Partially update multiple keys' states.\n * - makeQueryInError: Set a particular key into an error state.\n * - resetKeyState: Reset certain keys to their default states.\n * - resetState: Reset all keys to their default states except a set of excluded ones.\n */\ntype AsyncStateContextType<T> = {\n getStates: (key: string) => States<T>;\n setQueryState: (key: string, value: Partial<States<T>>) => void;\n setQueriesState: (keys: string[], value: Partial<States<T>>) => void;\n makeQueryInError: (key: string, error: string) => void;\n resetKeyState: (keys: string[]) => void;\n resetState: (excludedKeys: string[]) => void;\n};\n\n/**\n * Creates a React context for asynchronous state management.\n * This context will be provided by the AsyncStateProvider and consumed by hooks like useAsyncState.\n */\nconst AsyncStateContext = createContext<AsyncStateContextType<unknown> | null>(\n null\n);\n\n/**\n * A provider component that wraps its children and provides the asynchronous\n * state context. It uses the reducer to manage states and dispatch actions\n * based on consumer interactions.\n *\n * @param children The React children elements that should have access to this context.\n */\nexport const AsyncStateProvider = ({ children }: PropsWithChildren<{}>) => {\n // Initialize the reducer with an empty state object\n const [asyncState, dispatch] = useReducer(reducer, { states: {} });\n\n /**\n * Retrieve the state associated with a given key. If no state exists for that key,\n * return a default state.\n *\n * @param key The key for which to retrieve the state.\n */\n const getStates = (key: string) =>\n asyncState.states[key] ?? createDefaultStates<unknown>();\n\n /**\n * Partially update the state for a given key.\n *\n * @param key The key to update.\n * @param value A partial state object to merge with the existing state.\n */\n const setQueryState = (key: string, value: Partial<States<unknown>>) => {\n dispatch({ type: 'SET_QUERY_STATE', key, value });\n };\n\n /**\n * Partially update the state for multiple keys at once.\n *\n * @param keys An array of keys to update.\n * @param value A partial state object to merge with each key's existing state.\n */\n const setQueriesState = (keys: string[], value: Partial<States<unknown>>) => {\n dispatch({ type: 'SET_QUERIES_STATE', keys, value });\n };\n\n /**\n * Mark a given query as having encountered an error.\n *\n * @param key The key associated with the query.\n * @param error The error message to set.\n */\n const makeQueryInError = (key: string, error: string) => {\n dispatch({ type: 'MAKE_QUERY_IN_ERROR', key, error });\n };\n\n /**\n * Reset certain keys back to their default states.\n *\n * @param keys The keys to reset.\n */\n const resetKeyState = (keys: string[]) => {\n dispatch({ type: 'RESET_KEY_STATE', keys });\n };\n\n /**\n * Reset the entire state back to defaults, except for keys that match the excluded ones.\n *\n * @param excludedKeys Keys that should not be reset.\n */\n const resetState = (excludedKeys: string[]) => {\n dispatch({ type: 'RESET_STATE', excludeKeys: excludedKeys });\n };\n\n return (\n <AsyncStateContext.Provider\n value={{\n getStates,\n setQueryState,\n setQueriesState,\n makeQueryInError,\n resetKeyState,\n resetState,\n }}\n >\n {children}\n </AsyncStateContext.Provider>\n );\n};\n\n/**\n * A custom hook for accessing the asynchronous state context. It throws an error if used\n * outside of a provider.\n *\n * @returns The asynchronous state context value.\n */\nexport const useAsyncState = () => {\n const context = useContext(AsyncStateContext);\n if (!context) {\n throw new Error('useAsyncState must be used within an AsyncStateProvider');\n }\n return context;\n};\n"],"names":["jsx"],"mappings":"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"}
@@ -62,5 +62,8 @@ export declare const useIntlayerAuth: (options?: FetcherOptions) => {
62
62
  getSubscription: (body?: import('@intlayer/backend').GetCheckoutSessionBody, otherOptions?: FetcherOptions) => Promise<import('@intlayer/backend').GetCheckoutSessionResult>;
63
63
  cancelSubscription: (otherOptions?: FetcherOptions) => Promise<import('@intlayer/backend').GetCheckoutSessionResult>;
64
64
  };
65
+ ai: {
66
+ auditFile: (body?: import('@intlayer/backend').AuditFileBody, otherOptions?: FetcherOptions) => Promise<import('@intlayer/backend').AuditFileResult>;
67
+ };
65
68
  };
66
69
  //# sourceMappingURL=useIntlayerAPI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIntlayerAPI.d.ts","sourceRoot":"","sources":["../../src/hooks/useIntlayerAPI.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAO,MAAM,eAAe,aAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvD,CAAC"}
1
+ {"version":3,"file":"useIntlayerAPI.d.ts","sourceRoot":"","sources":["../../src/hooks/useIntlayerAPI.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAO,MAAM,eAAe,aAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvD,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const require$$0 = require("react");
5
+ const useIsDarkMode = () => {
6
+ const [isDarkMode, setIsDarkMode] = require$$0.useState(false);
7
+ require$$0.useEffect(() => {
8
+ const htmlElement = document.querySelector("html");
9
+ const isDarkMode2 = htmlElement?.getAttribute("data-theme") === "dark";
10
+ setIsDarkMode(isDarkMode2);
11
+ }, []);
12
+ return isDarkMode;
13
+ };
14
+ exports.useIsDarkMode = useIsDarkMode;
15
+ //# sourceMappingURL=useIsDarkMode.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsDarkMode.cjs","sources":["../../src/hooks/useIsDarkMode.ts"],"sourcesContent":["'use client';\n\nimport { useState, useEffect } from 'react';\n\nexport const useIsDarkMode = () => {\n const [isDarkMode, setIsDarkMode] = useState(false);\n\n useEffect(() => {\n const htmlElement = document.querySelector('html');\n const isDarkMode = htmlElement?.getAttribute('data-theme') === 'dark';\n setIsDarkMode(isDarkMode);\n }, []);\n\n return isDarkMode;\n};\n"],"names":["useState","useEffect","isDarkMode"],"mappings":";;;;AAIO,MAAM,gBAAgB,MAAM;AACjC,QAAM,CAAC,YAAY,aAAa,IAAIA,WAAAA,SAAS,KAAK;AAElDC,aAAAA,UAAU,MAAM;AACR,UAAA,cAAc,SAAS,cAAc,MAAM;AACjD,UAAMC,cAAa,aAAa,aAAa,YAAY,MAAM;AAC/D,kBAAcA,WAAU;AAAA,EAC1B,GAAG,EAAE;AAEE,SAAA;AACT;;"}
@@ -0,0 +1,2 @@
1
+ export declare const useIsDarkMode: () => boolean;
2
+ //# sourceMappingURL=useIsDarkMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsDarkMode.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsDarkMode.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,eAUzB,CAAC"}