eleva 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +21 -10
  2. package/dist/{eleva-plugins.cjs.js → eleva-plugins.cjs} +1002 -292
  3. package/dist/eleva-plugins.cjs.map +1 -0
  4. package/dist/eleva-plugins.d.cts +1352 -0
  5. package/dist/eleva-plugins.d.cts.map +1 -0
  6. package/dist/eleva-plugins.d.ts +1352 -0
  7. package/dist/eleva-plugins.d.ts.map +1 -0
  8. package/dist/{eleva-plugins.esm.js → eleva-plugins.js} +1002 -292
  9. package/dist/eleva-plugins.js.map +1 -0
  10. package/dist/eleva-plugins.umd.js +1001 -291
  11. package/dist/eleva-plugins.umd.js.map +1 -1
  12. package/dist/eleva-plugins.umd.min.js +1 -1
  13. package/dist/eleva-plugins.umd.min.js.map +1 -1
  14. package/dist/{eleva.cjs.js → eleva.cjs} +421 -191
  15. package/dist/eleva.cjs.map +1 -0
  16. package/dist/eleva.d.cts +1329 -0
  17. package/dist/eleva.d.cts.map +1 -0
  18. package/dist/eleva.d.ts +473 -226
  19. package/dist/eleva.d.ts.map +1 -0
  20. package/dist/{eleva.esm.js → eleva.js} +422 -192
  21. package/dist/eleva.js.map +1 -0
  22. package/dist/eleva.umd.js +420 -190
  23. package/dist/eleva.umd.js.map +1 -1
  24. package/dist/eleva.umd.min.js +1 -1
  25. package/dist/eleva.umd.min.js.map +1 -1
  26. package/dist/plugins/attr.cjs +279 -0
  27. package/dist/plugins/attr.cjs.map +1 -0
  28. package/dist/plugins/attr.d.cts +101 -0
  29. package/dist/plugins/attr.d.cts.map +1 -0
  30. package/dist/plugins/attr.d.ts +101 -0
  31. package/dist/plugins/attr.d.ts.map +1 -0
  32. package/dist/plugins/attr.js +276 -0
  33. package/dist/plugins/attr.js.map +1 -0
  34. package/dist/plugins/attr.umd.js +111 -22
  35. package/dist/plugins/attr.umd.js.map +1 -1
  36. package/dist/plugins/attr.umd.min.js +1 -1
  37. package/dist/plugins/attr.umd.min.js.map +1 -1
  38. package/dist/plugins/router.cjs +1873 -0
  39. package/dist/plugins/router.cjs.map +1 -0
  40. package/dist/plugins/router.d.cts +1296 -0
  41. package/dist/plugins/router.d.cts.map +1 -0
  42. package/dist/plugins/router.d.ts +1296 -0
  43. package/dist/plugins/router.d.ts.map +1 -0
  44. package/dist/plugins/router.js +1870 -0
  45. package/dist/plugins/router.js.map +1 -0
  46. package/dist/plugins/router.umd.js +482 -186
  47. package/dist/plugins/router.umd.js.map +1 -1
  48. package/dist/plugins/router.umd.min.js +1 -1
  49. package/dist/plugins/router.umd.min.js.map +1 -1
  50. package/dist/plugins/store.cjs +920 -0
  51. package/dist/plugins/store.cjs.map +1 -0
  52. package/dist/plugins/store.d.cts +266 -0
  53. package/dist/plugins/store.d.cts.map +1 -0
  54. package/dist/plugins/store.d.ts +266 -0
  55. package/dist/plugins/store.d.ts.map +1 -0
  56. package/dist/plugins/store.js +917 -0
  57. package/dist/plugins/store.js.map +1 -0
  58. package/dist/plugins/store.umd.js +410 -85
  59. package/dist/plugins/store.umd.js.map +1 -1
  60. package/dist/plugins/store.umd.min.js +1 -1
  61. package/dist/plugins/store.umd.min.js.map +1 -1
  62. package/package.json +112 -68
  63. package/src/core/Eleva.js +195 -115
  64. package/src/index.cjs +10 -0
  65. package/src/index.js +11 -0
  66. package/src/modules/Emitter.js +68 -20
  67. package/src/modules/Renderer.js +82 -20
  68. package/src/modules/Signal.js +43 -15
  69. package/src/modules/TemplateEngine.js +50 -9
  70. package/src/plugins/Attr.js +121 -19
  71. package/src/plugins/Router.js +526 -181
  72. package/src/plugins/Store.js +448 -69
  73. package/src/plugins/index.js +1 -0
  74. package/types/core/Eleva.d.ts +263 -169
  75. package/types/core/Eleva.d.ts.map +1 -1
  76. package/types/index.d.cts +3 -0
  77. package/types/index.d.cts.map +1 -0
  78. package/types/index.d.ts +5 -0
  79. package/types/index.d.ts.map +1 -1
  80. package/types/modules/Emitter.d.ts +73 -30
  81. package/types/modules/Emitter.d.ts.map +1 -1
  82. package/types/modules/Renderer.d.ts +48 -18
  83. package/types/modules/Renderer.d.ts.map +1 -1
  84. package/types/modules/Signal.d.ts +44 -16
  85. package/types/modules/Signal.d.ts.map +1 -1
  86. package/types/modules/TemplateEngine.d.ts +46 -11
  87. package/types/modules/TemplateEngine.d.ts.map +1 -1
  88. package/types/plugins/Attr.d.ts +83 -16
  89. package/types/plugins/Attr.d.ts.map +1 -1
  90. package/types/plugins/Router.d.ts +498 -207
  91. package/types/plugins/Router.d.ts.map +1 -1
  92. package/types/plugins/Store.d.ts +211 -37
  93. package/types/plugins/Store.d.ts.map +1 -1
  94. package/dist/eleva-plugins.cjs.js.map +0 -1
  95. package/dist/eleva-plugins.esm.js.map +0 -1
  96. package/dist/eleva.cjs.js.map +0 -1
  97. package/dist/eleva.esm.js.map +0 -1
@@ -0,0 +1,266 @@
1
+ import * as eleva from 'eleva';
2
+
3
+ declare namespace StorePlugin {
4
+ let name: string;
5
+ let version: string;
6
+ let description: string;
7
+ /**
8
+ * Installs the plugin into the Eleva instance.
9
+ *
10
+ * @public
11
+ * @param {Eleva} eleva - The Eleva instance.
12
+ * @param {StoreOptions} options - Plugin configuration options.
13
+ * @param {Record<string, unknown>} [options.state={}] - Initial state object.
14
+ * @param {Record<string, ActionFunction>} [options.actions={}] - Action functions for state mutations.
15
+ * @param {Record<string, StoreModule>} [options.namespaces={}] - Namespaced modules for organizing store.
16
+ * @param {StorePersistenceOptions} [options.persistence] - Persistence configuration.
17
+ * @param {boolean} [options.persistence.enabled=false] - Enable state persistence.
18
+ * @param {string} [options.persistence.key="eleva-store"] - Storage key.
19
+ * @param {'localStorage' | 'sessionStorage'} [options.persistence.storage="localStorage"] - Storage type.
20
+ * @param {string[]} [options.persistence.include] - Dot-path prefixes to persist (e.g., "auth.user")
21
+ * @param {string[]} [options.persistence.exclude] - Dot-path prefixes to exclude (applies when include is empty).
22
+ * @param {boolean} [options.devTools=false] - Enable development tools integration.
23
+ * @param {(error: Error, context: string) => void} [options.onError=null] - Error handler function.
24
+ * @returns {void}
25
+ * @description
26
+ * Installs the store and injects `store` into component setup context by wrapping
27
+ * `eleva.mount` and `eleva._mountComponents`. Also exposes `eleva.store` and
28
+ * helper methods (`eleva.dispatch`, `eleva.getState`, `eleva.subscribe`, `eleva.createAction`).
29
+ * Uninstall restores the originals.
30
+ *
31
+ * @example
32
+ * // Basic installation
33
+ * app.use(StorePlugin, {
34
+ * state: { count: 0, user: null },
35
+ * actions: {
36
+ * increment: (state) => state.count.value++,
37
+ * setUser: (state, user) => state.user.value = user
38
+ * }
39
+ * });
40
+ *
41
+ * // Advanced installation with persistence and namespaces
42
+ * app.use(StorePlugin, {
43
+ * state: { theme: "light" },
44
+ * namespaces: {
45
+ * auth: {
46
+ * state: { user: null, token: null },
47
+ * actions: {
48
+ * login: (state, { user, token }) => {
49
+ * state.auth.user.value = user;
50
+ * state.auth.token.value = token;
51
+ * },
52
+ * logout: (state) => {
53
+ * state.auth.user.value = null;
54
+ * state.auth.token.value = null;
55
+ * }
56
+ * }
57
+ * }
58
+ * },
59
+ * persistence: {
60
+ * enabled: true,
61
+ * include: ["theme", "auth.user"]
62
+ * }
63
+ * });
64
+ */
65
+ function install(eleva: Eleva, options?: StoreOptions): void;
66
+ /**
67
+ * Uninstalls the plugin from the Eleva instance.
68
+ *
69
+ * @public
70
+ * @param {Eleva} eleva - The Eleva instance.
71
+ * @returns {void}
72
+ * @description
73
+ * Restores the original Eleva methods and removes all plugin-specific
74
+ * functionality. This method should be called when the plugin is no
75
+ * longer needed.
76
+ * Also removes `eleva.store` and top-level helpers (`eleva.dispatch`,
77
+ * `eleva.getState`, `eleva.subscribe`, `eleva.createAction`).
78
+ *
79
+ * @example
80
+ * // Uninstall the plugin
81
+ * StorePlugin.uninstall(app);
82
+ */
83
+ function uninstall(eleva: Eleva): void;
84
+ }
85
+
86
+ /**
87
+ * Type imports from the Eleva core library.
88
+ */
89
+ type Eleva = eleva.Eleva;
90
+ /**
91
+ * Type imports from the Eleva core library.
92
+ */
93
+ type ComponentDefinition = eleva.ComponentDefinition;
94
+ /**
95
+ * Type imports from the Eleva core library.
96
+ */
97
+ type ComponentContext = eleva.ComponentContext;
98
+ /**
99
+ * Type imports from the Eleva core library.
100
+ */
101
+ type SetupResult = eleva.SetupResult;
102
+ /**
103
+ * Type imports from the Eleva core library.
104
+ */
105
+ type ComponentProps = eleva.ComponentProps;
106
+ /**
107
+ * Type imports from the Eleva core library.
108
+ */
109
+ type ChildrenMap = eleva.ChildrenMap;
110
+ /**
111
+ * Type imports from the Eleva core library.
112
+ */
113
+ type MountResult = eleva.MountResult;
114
+ /**
115
+ * Generic type import.
116
+ */
117
+ type Signal<T> = eleva.Signal<T>;
118
+ /**
119
+ * Mutation record emitted to subscribers.
120
+ */
121
+ type StoreMutation = {
122
+ /**
123
+ * The action name that was dispatched.
124
+ */
125
+ type: string;
126
+ /**
127
+ * The payload passed to the action.
128
+ */
129
+ payload: unknown;
130
+ /**
131
+ * Unix timestamp of when the mutation occurred.
132
+ */
133
+ timestamp: number;
134
+ };
135
+ /**
136
+ * Store configuration options.
137
+ */
138
+ type StoreOptions = {
139
+ /**
140
+ * Initial state object.
141
+ */
142
+ state?: Record<string, unknown> | undefined;
143
+ /**
144
+ * Action functions for state mutations.
145
+ */
146
+ actions?: Record<string, ActionFunction> | undefined;
147
+ /**
148
+ * Namespaced modules for organizing store.
149
+ */
150
+ namespaces?: Record<string, StoreModule> | undefined;
151
+ /**
152
+ * Persistence configuration.
153
+ */
154
+ persistence?: StorePersistenceOptions | undefined;
155
+ /**
156
+ * Enable development tools integration.
157
+ */
158
+ devTools?: boolean | undefined;
159
+ /**
160
+ * Error handler function.
161
+ */
162
+ onError?: StoreErrorHandler | undefined;
163
+ };
164
+ /**
165
+ * Namespaced store module definition.
166
+ */
167
+ type StoreModule = {
168
+ /**
169
+ * Module state.
170
+ */
171
+ state: Record<string, unknown>;
172
+ /**
173
+ * Module actions.
174
+ */
175
+ actions?: Record<string, ActionFunction> | undefined;
176
+ };
177
+ /**
178
+ * Store persistence configuration.
179
+ */
180
+ type StorePersistenceOptions = {
181
+ /**
182
+ * Enable state persistence.
183
+ */
184
+ enabled?: boolean | undefined;
185
+ /**
186
+ * Storage key (default: "eleva-store").
187
+ */
188
+ key?: string | undefined;
189
+ /**
190
+ * Storage type.
191
+ */
192
+ storage?: "localStorage" | "sessionStorage" | undefined;
193
+ /**
194
+ * Dot-path prefixes to persist (e.g., "auth.user").
195
+ */
196
+ include?: string[] | undefined;
197
+ /**
198
+ * Dot-path prefixes to exclude.
199
+ */
200
+ exclude?: string[] | undefined;
201
+ };
202
+ /**
203
+ * Store error handler callback.
204
+ */
205
+ type StoreErrorHandler = (error: Error, context: string) => void;
206
+ /**
207
+ * Reactive state tree containing signals and nested namespaces.
208
+ */
209
+ type StoreState = Record<string, Signal<unknown> | Record<string, unknown>>;
210
+ /**
211
+ * Action function signature for store actions.
212
+ */
213
+ type ActionFunction = (state: StoreState, payload?: unknown) => unknown;
214
+ /**
215
+ * Dispatch function signature for triggering actions.
216
+ */
217
+ type DispatchFunction = (actionName: string, payload?: unknown) => Promise<unknown>;
218
+ /**
219
+ * Subscribe callback signature for mutation listeners.
220
+ */
221
+ type SubscribeCallback = (mutation: StoreMutation, state: StoreState) => void;
222
+ /**
223
+ * Store API exposed to components via ctx.store.
224
+ */
225
+ type StoreApi = {
226
+ /**
227
+ * Reactive state signals (supports nested modules).
228
+ */
229
+ state: StoreState;
230
+ /**
231
+ * Dispatch an action by name with optional payload.
232
+ */
233
+ dispatch: DispatchFunction;
234
+ /**
235
+ * Subscribe to state mutations. Returns unsubscribe function.
236
+ */
237
+ subscribe: (callback: SubscribeCallback) => () => void;
238
+ /**
239
+ * Get a snapshot of current state values.
240
+ */
241
+ getState: () => Record<string, unknown>;
242
+ /**
243
+ * Register a namespaced module dynamically.
244
+ */
245
+ registerModule: (namespace: string, module: StoreModule) => void;
246
+ /**
247
+ * Unregister a namespaced module.
248
+ */
249
+ unregisterModule: (namespace: string) => void;
250
+ /**
251
+ * Create a new state signal dynamically.
252
+ */
253
+ createState: (key: string, initialValue: unknown) => Signal<unknown>;
254
+ /**
255
+ * Register a new action dynamically.
256
+ */
257
+ createAction: (name: string, actionFn: ActionFunction) => void;
258
+ /**
259
+ * Signal class constructor for manual state creation.
260
+ */
261
+ signal: new <T>(value: T) => Signal<T>;
262
+ };
263
+
264
+ export { StorePlugin as Store, StorePlugin };
265
+ export type { ActionFunction, ChildrenMap, ComponentContext, ComponentDefinition, ComponentProps, DispatchFunction, Eleva, MountResult, SetupResult, Signal, StoreApi, StoreErrorHandler, StoreModule, StoreMutation, StoreOptions, StorePersistenceOptions, StoreState, SubscribeCallback };
266
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sources":["../../types/plugins/Store.d.ts"],"sourcesContent":["export namespace StorePlugin {\n let name: string;\n let version: string;\n let description: string;\n /**\n * Installs the plugin into the Eleva instance.\n *\n * @public\n * @param {Eleva} eleva - The Eleva instance.\n * @param {StoreOptions} options - Plugin configuration options.\n * @param {Record<string, unknown>} [options.state={}] - Initial state object.\n * @param {Record<string, ActionFunction>} [options.actions={}] - Action functions for state mutations.\n * @param {Record<string, StoreModule>} [options.namespaces={}] - Namespaced modules for organizing store.\n * @param {StorePersistenceOptions} [options.persistence] - Persistence configuration.\n * @param {boolean} [options.persistence.enabled=false] - Enable state persistence.\n * @param {string} [options.persistence.key=\"eleva-store\"] - Storage key.\n * @param {'localStorage' | 'sessionStorage'} [options.persistence.storage=\"localStorage\"] - Storage type.\n * @param {string[]} [options.persistence.include] - Dot-path prefixes to persist (e.g., \"auth.user\")\n * @param {string[]} [options.persistence.exclude] - Dot-path prefixes to exclude (applies when include is empty).\n * @param {boolean} [options.devTools=false] - Enable development tools integration.\n * @param {(error: Error, context: string) => void} [options.onError=null] - Error handler function.\n * @returns {void}\n * @description\n * Installs the store and injects `store` into component setup context by wrapping\n * `eleva.mount` and `eleva._mountComponents`. Also exposes `eleva.store` and\n * helper methods (`eleva.dispatch`, `eleva.getState`, `eleva.subscribe`, `eleva.createAction`).\n * Uninstall restores the originals.\n *\n * @example\n * // Basic installation\n * app.use(StorePlugin, {\n * state: { count: 0, user: null },\n * actions: {\n * increment: (state) => state.count.value++,\n * setUser: (state, user) => state.user.value = user\n * }\n * });\n *\n * // Advanced installation with persistence and namespaces\n * app.use(StorePlugin, {\n * state: { theme: \"light\" },\n * namespaces: {\n * auth: {\n * state: { user: null, token: null },\n * actions: {\n * login: (state, { user, token }) => {\n * state.auth.user.value = user;\n * state.auth.token.value = token;\n * },\n * logout: (state) => {\n * state.auth.user.value = null;\n * state.auth.token.value = null;\n * }\n * }\n * }\n * },\n * persistence: {\n * enabled: true,\n * include: [\"theme\", \"auth.user\"]\n * }\n * });\n */\n function install(eleva: Eleva, options?: StoreOptions): void;\n /**\n * Uninstalls the plugin from the Eleva instance.\n *\n * @public\n * @param {Eleva} eleva - The Eleva instance.\n * @returns {void}\n * @description\n * Restores the original Eleva methods and removes all plugin-specific\n * functionality. This method should be called when the plugin is no\n * longer needed.\n * Also removes `eleva.store` and top-level helpers (`eleva.dispatch`,\n * `eleva.getState`, `eleva.subscribe`, `eleva.createAction`).\n *\n * @example\n * // Uninstall the plugin\n * StorePlugin.uninstall(app);\n */\n function uninstall(eleva: Eleva): void;\n}\nexport { StorePlugin as Store };\n/**\n * Type imports from the Eleva core library.\n */\nexport type Eleva = import(\"eleva\").Eleva;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ComponentDefinition = import(\"eleva\").ComponentDefinition;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ComponentContext = import(\"eleva\").ComponentContext;\n/**\n * Type imports from the Eleva core library.\n */\nexport type SetupResult = import(\"eleva\").SetupResult;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ComponentProps = import(\"eleva\").ComponentProps;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ChildrenMap = import(\"eleva\").ChildrenMap;\n/**\n * Type imports from the Eleva core library.\n */\nexport type MountResult = import(\"eleva\").MountResult;\n/**\n * Generic type import.\n */\nexport type Signal<T> = import(\"eleva\").Signal<T>;\n/**\n * Mutation record emitted to subscribers.\n */\nexport type StoreMutation = {\n /**\n * The action name that was dispatched.\n */\n type: string;\n /**\n * The payload passed to the action.\n */\n payload: unknown;\n /**\n * Unix timestamp of when the mutation occurred.\n */\n timestamp: number;\n};\n/**\n * Store configuration options.\n */\nexport type StoreOptions = {\n /**\n * Initial state object.\n */\n state?: Record<string, unknown> | undefined;\n /**\n * Action functions for state mutations.\n */\n actions?: Record<string, ActionFunction> | undefined;\n /**\n * Namespaced modules for organizing store.\n */\n namespaces?: Record<string, StoreModule> | undefined;\n /**\n * Persistence configuration.\n */\n persistence?: StorePersistenceOptions | undefined;\n /**\n * Enable development tools integration.\n */\n devTools?: boolean | undefined;\n /**\n * Error handler function.\n */\n onError?: StoreErrorHandler | undefined;\n};\n/**\n * Namespaced store module definition.\n */\nexport type StoreModule = {\n /**\n * Module state.\n */\n state: Record<string, unknown>;\n /**\n * Module actions.\n */\n actions?: Record<string, ActionFunction> | undefined;\n};\n/**\n * Store persistence configuration.\n */\nexport type StorePersistenceOptions = {\n /**\n * Enable state persistence.\n */\n enabled?: boolean | undefined;\n /**\n * Storage key (default: \"eleva-store\").\n */\n key?: string | undefined;\n /**\n * Storage type.\n */\n storage?: \"localStorage\" | \"sessionStorage\" | undefined;\n /**\n * Dot-path prefixes to persist (e.g., \"auth.user\").\n */\n include?: string[] | undefined;\n /**\n * Dot-path prefixes to exclude.\n */\n exclude?: string[] | undefined;\n};\n/**\n * Store error handler callback.\n */\nexport type StoreErrorHandler = (error: Error, context: string) => void;\n/**\n * Reactive state tree containing signals and nested namespaces.\n */\nexport type StoreState = Record<string, Signal<unknown> | Record<string, unknown>>;\n/**\n * Action function signature for store actions.\n */\nexport type ActionFunction = (state: StoreState, payload?: unknown) => unknown;\n/**\n * Dispatch function signature for triggering actions.\n */\nexport type DispatchFunction = (actionName: string, payload?: unknown) => Promise<unknown>;\n/**\n * Subscribe callback signature for mutation listeners.\n */\nexport type SubscribeCallback = (mutation: StoreMutation, state: StoreState) => void;\n/**\n * Store API exposed to components via ctx.store.\n */\nexport type StoreApi = {\n /**\n * Reactive state signals (supports nested modules).\n */\n state: StoreState;\n /**\n * Dispatch an action by name with optional payload.\n */\n dispatch: DispatchFunction;\n /**\n * Subscribe to state mutations. Returns unsubscribe function.\n */\n subscribe: (callback: SubscribeCallback) => () => void;\n /**\n * Get a snapshot of current state values.\n */\n getState: () => Record<string, unknown>;\n /**\n * Register a namespaced module dynamically.\n */\n registerModule: (namespace: string, module: StoreModule) => void;\n /**\n * Unregister a namespaced module.\n */\n unregisterModule: (namespace: string) => void;\n /**\n * Create a new state signal dynamically.\n */\n createState: (key: string, initialValue: unknown) => Signal<unknown>;\n /**\n * Register a new action dynamically.\n */\n createAction: (name: string, actionFn: ActionFunction) => void;\n /**\n * Signal class constructor for manual state creation.\n */\n signal: new <T>(value: T) => Signal<T>;\n};\n//# sourceMappingURL=Store.d.ts.map"],"names":[],"mappings":";;AAAO,kBAAA,WAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAAA,KAAA,YAAA,YAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAAA,KAAA;AACA;;AAEA;AACA;AACA;AACO,KAAA,KAAA,GAAa,KAAe,CAAA,KAAA;AACnC;AACA;AACA;AACO,KAAA,mBAAA,GAA2B,KAAe,CAAA,mBAAA;AACjD;AACA;AACA;AACO,KAAA,gBAAA,GAAwB,KAAe,CAAA,gBAAA;AAC9C;AACA;AACA;AACO,KAAA,WAAA,GAAmB,KAAe,CAAA,WAAA;AACzC;AACA;AACA;AACO,KAAA,cAAA,GAAsB,KAAe,CAAA,cAAA;AAC5C;AACA;AACA;AACO,KAAA,WAAA,GAAmB,KAAe,CAAA,WAAA;AACzC;AACA;AACA;AACO,KAAA,WAAA,GAAmB,KAAe,CAAA,WAAA;AACzC;AACA;AACA;AACO,KAAA,MAAA,MAAiB,KAAe,CAAA,MAAA;AACvC;AACA;AACA;AACO,KAAA,aAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,YAAA;AACP;AACA;AACA;AACA,YAAA,MAAA;AACA;AACA;AACA;AACA,cAAA,MAAA,SAAA,cAAA;AACA;AACA;AACA;AACA,iBAAA,MAAA,SAAA,WAAA;AACA;AACA;AACA;AACA,kBAAA,uBAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAA,iBAAA;AACA;AACA;AACA;AACA;AACO,KAAA,WAAA;AACP;AACA;AACA;AACA,WAAA,MAAA;AACA;AACA;AACA;AACA,cAAA,MAAA,SAAA,cAAA;AACA;AACA;AACA;AACA;AACO,KAAA,uBAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,iBAAA,WAAA,KAAA;AACP;AACA;AACA;AACO,KAAA,UAAA,GAAA,MAAA,SAAA,MAAA,YAAA,MAAA;AACP;AACA;AACA;AACO,KAAA,cAAA,WAAA,UAAA;AACP;AACA;AACA;AACO,KAAA,gBAAA,8CAAA,OAAA;AACP;AACA;AACA;AACO,KAAA,iBAAA,cAAA,aAAA,SAAA,UAAA;AACP;AACA;AACA;AACO,KAAA,QAAA;AACP;AACA;AACA;AACA,WAAA,UAAA;AACA;AACA;AACA;AACA,cAAA,gBAAA;AACA;AACA;AACA;AACA,0BAAA,iBAAA;AACA;AACA;AACA;AACA,oBAAA,MAAA;AACA;AACA;AACA;AACA,gDAAA,WAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAA,MAAA;AACA;AACA;AACA;AACA,2CAAA,cAAA;AACA;AACA;AACA;AACA,iCAAA,MAAA;AACA;;;;"}