@lark.js/mvc 0.0.14 → 0.0.15

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 (59) hide show
  1. package/README.md +4 -4
  2. package/dist/apply-style.d.ts +9 -0
  3. package/dist/cache.d.ts +69 -0
  4. package/dist/client.d.ts +87 -0
  5. package/dist/common.d.ts +64 -0
  6. package/dist/compiler/compile-template.d.ts +16 -0
  7. package/dist/compiler/compile-to-vdom-function.d.ts +13 -0
  8. package/dist/compiler/extract-global-vars.d.ts +17 -0
  9. package/dist/compiler/template-syntax.d.ts +61 -0
  10. package/dist/compiler.cjs +15847 -15482
  11. package/dist/compiler.js +15844 -15467
  12. package/dist/cross-site.d.ts +29 -0
  13. package/dist/devtool.cjs +4138 -3183
  14. package/dist/devtool.d.cts +2 -1
  15. package/dist/devtool.d.ts +2 -1
  16. package/dist/devtool.js +4164 -3125
  17. package/dist/dom.d.ts +45 -0
  18. package/dist/event-delegator.d.ts +28 -0
  19. package/dist/event-emitter.d.ts +38 -0
  20. package/dist/frame.d.ts +143 -0
  21. package/dist/framework.d.ts +9 -0
  22. package/dist/hmr.d.ts +53 -0
  23. package/dist/index.amd.js +6285 -0
  24. package/dist/index.cjs +5959 -4489
  25. package/dist/index.d.cts +9 -8
  26. package/dist/index.d.ts +9 -8
  27. package/dist/index.js +5920 -4425
  28. package/dist/index.umd.js +6272 -0
  29. package/dist/mark.d.ts +26 -0
  30. package/dist/module-loader.d.ts +20 -0
  31. package/dist/router.d.ts +14 -0
  32. package/dist/rspack.cjs +15931 -15553
  33. package/dist/rspack.d.cts +42 -5
  34. package/dist/rspack.d.ts +42 -5
  35. package/dist/rspack.js +15930 -15546
  36. package/dist/runtime.amd.js +94 -0
  37. package/dist/runtime.cjs +79 -82
  38. package/dist/runtime.js +85 -19
  39. package/dist/runtime.umd.js +98 -0
  40. package/dist/service.d.ts +173 -0
  41. package/dist/state.d.ts +8 -0
  42. package/dist/store.d.ts +60 -0
  43. package/dist/types.d.ts +1259 -0
  44. package/dist/updater.d.ts +90 -0
  45. package/dist/url-state.d.ts +32 -0
  46. package/dist/utils.d.ts +90 -0
  47. package/dist/vdom.d.ts +45 -0
  48. package/dist/view-registry.d.ts +20 -0
  49. package/dist/view.d.ts +214 -0
  50. package/dist/vite.cjs +15944 -15582
  51. package/dist/vite.d.cts +2 -1
  52. package/dist/vite.d.ts +2 -1
  53. package/dist/vite.js +15941 -15574
  54. package/dist/webpack.cjs +15981 -15553
  55. package/dist/webpack.d.cts +32 -4
  56. package/dist/webpack.d.ts +32 -4
  57. package/dist/webpack.js +15980 -15546
  58. package/package.json +2 -2
  59. package/dist/chunk-66OZBBSP.js +0 -108
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @lark.js/mvc Store
3
+ *
4
+ * Zustand-aligned state management for Lark MVC.
5
+ *
6
+ * Core API:
7
+ * - create(name, creator): define a store with (set, get) => initialState
8
+ * - store.getState(): read current state snapshot
9
+ * - store.setState(partial | updater): shallow-merge state and notify listeners
10
+ * - store.subscribe(listener): listen for state changes
11
+ * - store.destroy(): tear down the store
12
+ * - computed(deps, fn): derived state that auto-recomputes when deps change
13
+ * - bindStore(view, store, selector?): Lark View lifecycle binding
14
+ */
15
+ type Listener<T> = (state: T, prevState: T) => void;
16
+ export interface StoreApi<T = Record<string, unknown>> {
17
+ getState(): T;
18
+ setState(partial: Partial<T> | ((prev: T) => Partial<T>)): void;
19
+ subscribe(listener: Listener<T>): () => void;
20
+ destroy(): void;
21
+ }
22
+ type StateCreator<T> = (set: (partial: Partial<T> | ((prev: T) => Partial<T>)) => void, get: () => T) => T;
23
+ /**
24
+ * Declare a derived (computed) store property.
25
+ *
26
+ * Usage inside a `create` creator:
27
+ * ```ts
28
+ * const store = create("counter", (set, get) => ({
29
+ * count: 0,
30
+ * doubled: computed(["count"], () => get().count * 2),
31
+ * }));
32
+ * ```
33
+ *
34
+ * `deps` lists the state keys the computed reads. Whenever any dep changes
35
+ * via `setState`, the computed re-evaluates before listeners are notified.
36
+ * Writes to a computed key via `setState` are silently ignored.
37
+ */
38
+ export declare function computed<T>(deps: readonly string[], fn: () => T): T;
39
+ export declare function create<T>(name: string, creator: StateCreator<T>): StoreApi<T>;
40
+ /**
41
+ * Bind a store to a Lark View. Subscribes to state changes and auto-unsubscribes
42
+ * when the view is destroyed.
43
+ *
44
+ * @param view - Lark View instance (must have updater.set/digest and on("destroy"))
45
+ * @param store - Store created via `create()`
46
+ * @param selector - Optional function to pick a subset of state for the updater.
47
+ * If omitted, only non-function state keys are forwarded.
48
+ * @returns unsubscribe function
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * // Observe all state
53
+ * bindStore(this, useCountStore);
54
+ *
55
+ * // Observe with selector
56
+ * bindStore(this, useCountStore, (s) => ({ count: s.count }));
57
+ * ```
58
+ */
59
+ export declare function bindStore<T>(view: unknown, store: StoreApi<T>, selector?: (state: T) => Record<string, unknown>): () => void;
60
+ export {};