@omerdlw/base-framework 1.0.1 → 1.0.2

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 (141) hide show
  1. package/dist/atoms/index.d.ts +0 -1
  2. package/dist/atoms/index.d.ts.map +1 -1
  3. package/dist/atoms/index.js +1 -64
  4. package/dist/atoms/index.js.map +1 -1
  5. package/dist/error/index.js +22 -25
  6. package/dist/error/index.js.map +1 -1
  7. package/dist/hooks/index.d.ts +2 -0
  8. package/dist/hooks/index.d.ts.map +1 -1
  9. package/dist/hooks/index.js +97 -4
  10. package/dist/hooks/index.js.map +1 -1
  11. package/dist/hooks/types.d.ts +11 -0
  12. package/dist/hooks/types.d.ts.map +1 -1
  13. package/dist/hooks/use-controllable-state.d.ts +1 -1
  14. package/dist/hooks/use-controllable-state.d.ts.map +1 -1
  15. package/dist/hooks/use-hotkey.d.ts +1 -1
  16. package/dist/hooks/use-hotkey.d.ts.map +1 -1
  17. package/dist/index.js +10811 -10696
  18. package/dist/index.js.map +1 -1
  19. package/dist/kernel/adapters.d.ts.map +1 -1
  20. package/dist/kernel/index.d.ts +1 -0
  21. package/dist/kernel/index.d.ts.map +1 -1
  22. package/dist/kernel/index.js +13 -84
  23. package/dist/kernel/index.js.map +1 -1
  24. package/dist/kernel/installed.d.ts.map +1 -1
  25. package/dist/kernel/page-controller.d.ts.map +1 -1
  26. package/dist/kernel/provider.d.ts.map +1 -1
  27. package/dist/modules/ambient/constants.d.ts +1 -1
  28. package/dist/modules/ambient/constants.d.ts.map +1 -1
  29. package/dist/modules/ambient/index.js +180 -326
  30. package/dist/modules/ambient/index.js.map +1 -1
  31. package/dist/modules/ambient/module.d.ts.map +1 -1
  32. package/dist/modules/background/constants.d.ts +4 -2
  33. package/dist/modules/background/constants.d.ts.map +1 -1
  34. package/dist/modules/background/context.d.ts +3 -0
  35. package/dist/modules/background/context.d.ts.map +1 -1
  36. package/dist/modules/background/hooks.d.ts +1 -1
  37. package/dist/modules/background/index.d.ts +2 -2
  38. package/dist/modules/background/index.d.ts.map +1 -1
  39. package/dist/modules/background/index.js +1172 -1270
  40. package/dist/modules/background/index.js.map +1 -1
  41. package/dist/modules/background/overlay.d.ts +1 -1
  42. package/dist/modules/background/overlay.d.ts.map +1 -1
  43. package/dist/modules/background/types.d.ts +1 -1
  44. package/dist/modules/background/types.d.ts.map +1 -1
  45. package/dist/modules/context-menu/constants.d.ts +1 -1
  46. package/dist/modules/context-menu/constants.d.ts.map +1 -1
  47. package/dist/modules/context-menu/context.d.ts.map +1 -1
  48. package/dist/modules/context-menu/hooks.d.ts.map +1 -1
  49. package/dist/modules/context-menu/index.js +135 -240
  50. package/dist/modules/context-menu/index.js.map +1 -1
  51. package/dist/modules/controls/constants.d.ts +1 -1
  52. package/dist/modules/controls/constants.d.ts.map +1 -1
  53. package/dist/modules/controls/hooks.d.ts +1 -1
  54. package/dist/modules/controls/index.js +31 -165
  55. package/dist/modules/controls/index.js.map +1 -1
  56. package/dist/modules/controls/types.d.ts +1 -1
  57. package/dist/modules/controls/types.d.ts.map +1 -1
  58. package/dist/modules/dock/cards.d.ts +1 -1
  59. package/dist/modules/dock/constants.d.ts +1 -1
  60. package/dist/modules/dock/constants.d.ts.map +1 -1
  61. package/dist/modules/dock/context.d.ts +10 -6
  62. package/dist/modules/dock/context.d.ts.map +1 -1
  63. package/dist/modules/dock/hooks.d.ts +4 -4
  64. package/dist/modules/dock/hooks.d.ts.map +1 -1
  65. package/dist/modules/dock/index.d.ts +1 -1
  66. package/dist/modules/dock/index.d.ts.map +1 -1
  67. package/dist/modules/dock/index.js +2063 -2083
  68. package/dist/modules/dock/index.js.map +1 -1
  69. package/dist/modules/dock/runtime/dock.d.ts.map +1 -1
  70. package/dist/modules/dock/types.d.ts +1 -1
  71. package/dist/modules/dock/types.d.ts.map +1 -1
  72. package/dist/modules/index.js +10193 -10350
  73. package/dist/modules/index.js.map +1 -1
  74. package/dist/modules/loading/constants.d.ts +4 -2
  75. package/dist/modules/loading/constants.d.ts.map +1 -1
  76. package/dist/modules/loading/context.d.ts +3 -0
  77. package/dist/modules/loading/context.d.ts.map +1 -1
  78. package/dist/modules/loading/hooks.d.ts +1 -1
  79. package/dist/modules/loading/hooks.d.ts.map +1 -1
  80. package/dist/modules/loading/index.d.ts +2 -2
  81. package/dist/modules/loading/index.d.ts.map +1 -1
  82. package/dist/modules/loading/index.js +121 -225
  83. package/dist/modules/loading/index.js.map +1 -1
  84. package/dist/modules/loading/types.d.ts +1 -1
  85. package/dist/modules/loading/types.d.ts.map +1 -1
  86. package/dist/modules/media/constants.d.ts +2 -1
  87. package/dist/modules/media/constants.d.ts.map +1 -1
  88. package/dist/modules/media/context.d.ts +3 -0
  89. package/dist/modules/media/context.d.ts.map +1 -1
  90. package/dist/modules/media/index.d.ts +2 -2
  91. package/dist/modules/media/index.d.ts.map +1 -1
  92. package/dist/modules/media/index.js +61 -218
  93. package/dist/modules/media/index.js.map +1 -1
  94. package/dist/modules/modal/constants.d.ts +1 -1
  95. package/dist/modules/modal/constants.d.ts.map +1 -1
  96. package/dist/modules/modal/context.d.ts.map +1 -1
  97. package/dist/modules/modal/hooks.d.ts +2 -2
  98. package/dist/modules/modal/index.js +31 -293
  99. package/dist/modules/modal/index.js.map +1 -1
  100. package/dist/modules/notification/constants.d.ts +4 -2
  101. package/dist/modules/notification/constants.d.ts.map +1 -1
  102. package/dist/modules/notification/context.d.ts +4 -0
  103. package/dist/modules/notification/context.d.ts.map +1 -1
  104. package/dist/modules/notification/hooks.d.ts +1 -1
  105. package/dist/modules/notification/index.d.ts +2 -3
  106. package/dist/modules/notification/index.d.ts.map +1 -1
  107. package/dist/modules/notification/index.js +65 -151
  108. package/dist/modules/notification/index.js.map +1 -1
  109. package/dist/modules/notification/module.d.ts.map +1 -1
  110. package/dist/provider.js +255 -257
  111. package/dist/provider.js.map +1 -1
  112. package/dist/theme.d.ts +1 -0
  113. package/dist/theme.d.ts.map +1 -1
  114. package/dist/theme.js +2 -2
  115. package/dist/theme.js.map +1 -1
  116. package/dist/utils/dom.d.ts +2 -0
  117. package/dist/utils/dom.d.ts.map +1 -1
  118. package/dist/utils/index.d.ts +1 -1
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/index.js +28 -19
  121. package/dist/utils/index.js.map +1 -1
  122. package/docs/modules/loading.md +1 -1
  123. package/package.json +48 -2
  124. package/dist/hooks/use-async-action.d.ts +0 -3
  125. package/dist/hooks/use-async-action.d.ts.map +0 -1
  126. package/dist/hooks/use-debounce.d.ts +0 -2
  127. package/dist/hooks/use-debounce.d.ts.map +0 -1
  128. package/dist/hooks/use-intersection-observer.d.ts +0 -4
  129. package/dist/hooks/use-intersection-observer.d.ts.map +0 -1
  130. package/dist/hooks/use-media-query.d.ts +0 -2
  131. package/dist/hooks/use-media-query.d.ts.map +0 -1
  132. package/dist/hooks/use-mounted.d.ts +0 -2
  133. package/dist/hooks/use-mounted.d.ts.map +0 -1
  134. package/dist/hooks/use-server-action.d.ts +0 -4
  135. package/dist/hooks/use-server-action.d.ts.map +0 -1
  136. package/dist/hooks/use-storage-state.d.ts +0 -5
  137. package/dist/hooks/use-storage-state.d.ts.map +0 -1
  138. package/dist/modules/theme.d.ts +0 -3
  139. package/dist/modules/theme.d.ts.map +0 -1
  140. package/dist/utils/json.d.ts +0 -3
  141. package/dist/utils/json.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import { type ResolvedTheme } from "../theme";
2
+ import { type ResolvedTheme } from "@/theme";
3
3
  import { type ModuleRuntime, type RegistryMetadata } from "@/kernel";
4
4
  export interface LoadingState {
5
5
  isLoading: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/loading/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,eAAe,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,EACb,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,KAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,CACH,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,GAAG,MAAM,EAC7C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,oBAAoB,GAAG,cAAc,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAC7C,oBAAoB,EACpB,cAAc,CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAC3B,OAAO,GAAG,MAAM,GAAG,CAAC,cAAc,GAAG;IAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,GAAG,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/loading/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,eAAe,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,EACb,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,KAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,CACH,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,GAAG,MAAM,EAC7C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,oBAAoB,GAAG,cAAc,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAC7C,oBAAoB,EACpB,cAAc,CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAC3B,OAAO,GAAG,MAAM,GAAG,CAAC,cAAc,GAAG;IAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,GAAG,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
- import { type MediaState } from "./types";
1
+ import { type MediaActions, type MediaState } from "./types";
2
2
  export declare const DEFAULT_MEDIA_STATE: MediaState;
3
+ export declare const INERT_MEDIA_ACTIONS: MediaActions;
3
4
  export declare const MEDIA_SYNC_DRIFT_SECONDS = 0.3;
4
5
  export declare const MEDIA_REGISTRY_KEY = "page-media";
5
6
  /** Id of the audio source registered through `usePage({ media })`. */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/modules/media/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,mBAAmB,EAAE,UAQhC,CAAC;AAEH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,aAAa,SAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/modules/media/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE7D,eAAO,MAAM,mBAAmB,EAAE,UAQhC,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,YAMhC,CAAC;AAGH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,aAAa,SAAS,CAAC"}
@@ -3,4 +3,7 @@ export declare const MediaContext: import("react").Context<MediaContextValue | n
3
3
  export declare function MediaProvider({ children }: MediaProviderProps): import("react").JSX.Element;
4
4
  export declare function useMediaState(): MediaState;
5
5
  export declare function useMediaActions(): MediaActions;
6
+ export declare function useOptionalMediaState(): MediaState;
7
+ export declare function useOptionalMediaState<T>(selector: (state: MediaState) => T, isEqual?: (a: T, b: T) => boolean): T;
8
+ export declare function useOptionalMediaActions(): MediaActions;
6
9
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/modules/media/context.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGvB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAajB,eAAO,MAAM,YAAY,mDAGxB,CAAC;AAQF,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,+BAmH7D;AAED,wBAAgB,aAAa,IAAI,UAAU,CAO1C;AAED,wBAAgB,eAAe,IAAI,YAAY,CAG9C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/modules/media/context.tsx"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGvB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAYjB,eAAO,MAAM,YAAY,mDAIxB,CAAC;AAQF,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,+BAmH7D;AAED,wBAAgB,aAAa,IAAI,UAAU,CAO1C;AAED,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAID,wBAAgB,qBAAqB,IAAI,UAAU,CAAC;AACpD,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,EAClC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAChC,CAAC,CAAC;AAaL,wBAAgB,uBAAuB,IAAI,YAAY,CAGtD"}
@@ -1,8 +1,8 @@
1
- export { MediaContext, MediaProvider, useMediaActions, useMediaState, } from "./context";
1
+ export { MediaContext, MediaProvider, useMediaActions, useMediaState, useOptionalMediaActions, useOptionalMediaState, } from "./context";
2
2
  export { useMedia } from "./hooks";
3
3
  export { mediaModule } from "./module";
4
4
  export { MediaOverlay, MediaSource } from "./overlay";
5
- export { DEFAULT_MEDIA_STATE, MEDIA_REGISTRY_KEY, MEDIA_SYNC_DRIFT_SECONDS, PAGE_MEDIA_ID, } from "./constants";
5
+ export { DEFAULT_MEDIA_STATE, INERT_MEDIA_ACTIONS, MEDIA_REGISTRY_KEY, MEDIA_SYNC_DRIFT_SECONDS, PAGE_MEDIA_ID, } from "./constants";
6
6
  export { bindFollowers, createMediaState, resolveMediaSession, selectPageMedia, } from "./utils";
7
7
  export type * from "./types";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/media/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,mBAAmB,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/media/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,mBAAmB,SAAS,CAAC"}
@@ -1,9 +1,6 @@
1
1
  "use client";
2
- import { createContext, useState, useRef, useMemo, useEffect, useId, useCallback, use, useSyncExternalStore } from 'react';
3
- import 'clsx';
4
- import 'tailwind-merge';
2
+ import { createContext, useState, useRef, useMemo, useEffect, useContext, useId, useCallback, use, useSyncExternalStore } from 'react';
5
3
  import { jsx } from 'react/jsx-runtime';
6
- import 'next/navigation';
7
4
 
8
5
  function useRequiredContext(context, hookName, providerName) {
9
6
  const value = use(context);
@@ -135,75 +132,41 @@ function createStore(initialState, { freezeSnapshots = true } = {}) {
135
132
  }
136
133
  });
137
134
  }
138
- var EventEmitter = class {
139
- events = /* @__PURE__ */ new Map();
140
- debounceTimers = /* @__PURE__ */ new Map();
141
- subscribe(event, callback) {
142
- if (typeof event !== "string" || !event || typeof callback !== "function") {
143
- return () => {
144
- };
145
- }
146
- const listeners = this.events.get(event) || /* @__PURE__ */ new Set();
147
- listeners.add(callback);
148
- this.events.set(event, listeners);
149
- return () => {
150
- listeners.delete(callback);
151
- if (listeners.size === 0) this.events.delete(event);
152
- };
153
- }
154
- emit(event, payload) {
155
- const listeners = this.events.get(event);
156
- if (!listeners || listeners.size === 0) return;
157
- const snapshot = Array.from(listeners);
158
- for (const callback of snapshot) {
159
- try {
160
- callback(payload);
161
- } catch (error) {
162
- report(`Event listener (${String(event)})`, error);
163
- }
164
- }
165
- }
166
- emitDebounced(event, payload, waitMs = 100) {
167
- const existing = this.debounceTimers.get(event);
168
- if (existing) clearTimeout(existing);
169
- const timer = setTimeout(() => {
170
- this.debounceTimers.delete(event);
171
- this.emit(event, payload);
172
- }, waitMs);
173
- this.debounceTimers.set(event, timer);
174
- }
175
- cancelDebounced(event) {
176
- if (event) {
177
- const timer = this.debounceTimers.get(event);
178
- if (timer) {
179
- clearTimeout(timer);
180
- this.debounceTimers.delete(event);
181
- }
182
- } else {
183
- for (const timer of this.debounceTimers.values()) {
184
- clearTimeout(timer);
185
- }
186
- this.debounceTimers.clear();
187
- }
188
- }
189
- unsubscribeAll(event) {
190
- this.cancelDebounced(event);
191
- if (event) this.events.delete(event);
192
- else this.events.clear();
193
- }
194
- hasListeners(event) {
195
- return Boolean(this.events.get(event)?.size);
196
- }
197
- getListenerCount(event) {
198
- return this.events.get(event)?.size || 0;
199
- }
200
- getAllEvents() {
201
- return [...this.events.keys()];
135
+ function getOrCreateGlobalContext(name, defaultValue) {
136
+ const sym = /* @__PURE__ */ Symbol.for(`@omerdlw/base-framework/context/${name}`);
137
+ const store = globalThis;
138
+ if (!store[sym]) {
139
+ store[sym] = createContext(defaultValue);
202
140
  }
203
- };
204
- var GLOBAL_EVENTS_KEY = /* @__PURE__ */ Symbol.for("__base_framework_global_events__");
205
- var _global = globalThis;
206
- _global[GLOBAL_EVENTS_KEY] ?? (_global[GLOBAL_EVENTS_KEY] = new EventEmitter());
141
+ return store[sym];
142
+ }
143
+ var RegistryContext = getOrCreateGlobalContext(
144
+ "RegistryContext",
145
+ null
146
+ );
147
+ function useRegistrySubscription() {
148
+ return useRequiredContext(
149
+ RegistryContext,
150
+ "useRegistrySubscription",
151
+ "RegistryProvider"
152
+ ).subscription;
153
+ }
154
+ function useRegistryValue(type, key) {
155
+ const { getSnapshot, subscribe } = useRegistrySubscription();
156
+ const subscribeToKey = useCallback(
157
+ (listener) => subscribe(type, key, listener),
158
+ [key, subscribe, type]
159
+ );
160
+ const getValue = useCallback(
161
+ () => getSnapshot(type, key),
162
+ [getSnapshot, key, type]
163
+ );
164
+ return useSyncExternalStore(subscribeToKey, getValue, getValue);
165
+ }
166
+ function defineModule(coreModule) {
167
+ return Object.freeze({ ...coreModule });
168
+ }
169
+ createStore(void 0);
207
170
 
208
171
  // src/modules/media/constants.ts
209
172
  var DEFAULT_MEDIA_STATE = Object.freeze({
@@ -215,6 +178,18 @@ var DEFAULT_MEDIA_STATE = Object.freeze({
215
178
  loop: false,
216
179
  sourceId: null
217
180
  });
181
+ var INERT_MEDIA_ACTIONS = Object.freeze({
182
+ removeSource: () => {
183
+ },
184
+ setMuted: () => {
185
+ },
186
+ toggle: () => {
187
+ },
188
+ toggleLoop: () => {
189
+ },
190
+ upsertSource: () => {
191
+ }
192
+ });
218
193
  var MEDIA_SYNC_DRIFT_SECONDS = 0.3;
219
194
  var MEDIA_REGISTRY_KEY = "page-media";
220
195
  var PAGE_MEDIA_ID = "page";
@@ -345,14 +320,6 @@ function findDisplacedAudio(entries, session, newId) {
345
320
  (entry) => entry.id !== newId && !followerIds.has(entry.id) && entry.kind === "audio" && entry.element !== null && !entry.element.paused
346
321
  );
347
322
  }
348
- function getOrCreateGlobalContext(name, defaultValue) {
349
- const sym = /* @__PURE__ */ Symbol.for(`@omerdlw/base-framework/context/${name}`);
350
- const store = globalThis;
351
- if (!store[sym]) {
352
- store[sym] = createContext(defaultValue);
353
- }
354
- return store[sym];
355
- }
356
323
  var MediaContext = getOrCreateGlobalContext(
357
324
  "MediaContext",
358
325
  null
@@ -472,6 +439,19 @@ function useMediaState() {
472
439
  function useMediaActions() {
473
440
  return useRequiredContext(MediaContext, "useMediaActions", "MediaProvider").actions;
474
441
  }
442
+ var NOOP_MEDIA_STORE = createStore(DEFAULT_MEDIA_STATE);
443
+ function useOptionalMediaState(selector, isEqual) {
444
+ const ctx = useContext(MediaContext);
445
+ return useStore(
446
+ ctx?.store ?? NOOP_MEDIA_STORE,
447
+ selector,
448
+ isEqual
449
+ );
450
+ }
451
+ function useOptionalMediaActions() {
452
+ const ctx = useContext(MediaContext);
453
+ return ctx?.actions ?? INERT_MEDIA_ACTIONS;
454
+ }
475
455
  function useMedia(options) {
476
456
  const generatedId = useId();
477
457
  const id = options.id ?? `media-${generatedId}`;
@@ -541,143 +521,6 @@ function useMedia(options) {
541
521
  );
542
522
  }
543
523
 
544
- // src/kernel/constants.ts
545
- var REGISTRY_SOURCES = Object.freeze({
546
- STATIC: "static",
547
- DYNAMIC: "dynamic",
548
- USER: "user"
549
- });
550
- var REGISTRY_LIFECYCLES = Object.freeze({
551
- IMMEDIATE: "immediate",
552
- GRACEFUL: "graceful",
553
- PERSISTENT: "persistent",
554
- ROUTE: "route"
555
- });
556
- var REGISTRY_METADATA_KEYS = Object.freeze([
557
- "cleanup",
558
- "cleanupDelayMs",
559
- "instanceId",
560
- "lifecycle",
561
- "priority",
562
- "source",
563
- "scope",
564
- "validation"
565
- ]);
566
- Object.freeze({
567
- [REGISTRY_SOURCES.STATIC]: 100,
568
- [REGISTRY_SOURCES.DYNAMIC]: 200,
569
- [REGISTRY_SOURCES.USER]: 300
570
- });
571
- Object.freeze({
572
- [REGISTRY_SOURCES.STATIC]: 10,
573
- [REGISTRY_SOURCES.DYNAMIC]: 20,
574
- [REGISTRY_SOURCES.USER]: 30
575
- });
576
- new Set(
577
- Object.values(REGISTRY_LIFECYCLES)
578
- );
579
- new Set(
580
- REGISTRY_METADATA_KEYS
581
- );
582
- var REGISTRY_SCOPE_KINDS = Object.freeze({
583
- APP: "app",
584
- SESSION: "session",
585
- ROUTE: "route",
586
- INSTANCE: "instance",
587
- WORKSPACE: "workspace"
588
- });
589
- REGISTRY_SCOPE_KINDS.APP;
590
- function createNoopHandle(status = "rejected", reason = "unknown") {
591
- const handle = Object.assign(() => false, {
592
- active: false,
593
- dispose: () => false,
594
- instanceId: null,
595
- key: "",
596
- priority: 0,
597
- reason,
598
- source: "",
599
- status,
600
- type: "",
601
- update: () => handle,
602
- updatedAt: 0,
603
- validation: "warn"
604
- });
605
- return handle;
606
- }
607
- createNoopHandle();
608
- var RegistryContext = getOrCreateGlobalContext(
609
- "RegistryContext",
610
- null
611
- );
612
- function useRegistrySubscription() {
613
- return useRequiredContext(
614
- RegistryContext,
615
- "useRegistrySubscription",
616
- "RegistryProvider"
617
- ).subscription;
618
- }
619
- function useRegistryValue(type, key) {
620
- const { getSnapshot, subscribe } = useRegistrySubscription();
621
- const subscribeToKey = useCallback(
622
- (listener) => subscribe(type, key, listener),
623
- [key, subscribe, type]
624
- );
625
- const getValue = useCallback(
626
- () => getSnapshot(type, key),
627
- [getSnapshot, key, type]
628
- );
629
- return useSyncExternalStore(subscribeToKey, getValue, getValue);
630
- }
631
- getOrCreateGlobalContext("ModuleHostContext", null);
632
- function createPageControllerStore() {
633
- const listeners = /* @__PURE__ */ new Set();
634
- let stack = [];
635
- const notify = () => {
636
- listeners.forEach((listener) => {
637
- try {
638
- listener();
639
- } catch (error) {
640
- report("Page controller listener", error);
641
- }
642
- });
643
- };
644
- return {
645
- getSnapshot() {
646
- const top = stack[stack.length - 1];
647
- return top?.controllerRef?.current || null;
648
- },
649
- notify,
650
- register(id, controllerRef) {
651
- stack = stack.filter((item) => item.id !== id);
652
- stack.push({ controllerRef, id });
653
- notify();
654
- },
655
- subscribe(listener) {
656
- listeners.add(listener);
657
- return () => {
658
- listeners.delete(listener);
659
- };
660
- },
661
- unregister(id) {
662
- stack = stack.filter((item) => item.id !== id);
663
- notify();
664
- }
665
- };
666
- }
667
- var fallbackStandaloneStore = createPageControllerStore();
668
- getOrCreateGlobalContext(
669
- "PageControllerContext",
670
- null
671
- );
672
- getOrCreateGlobalContext(
673
- "PageControllerStoreContext",
674
- fallbackStandaloneStore
675
- );
676
- function defineModule(coreModule) {
677
- return Object.freeze({ ...coreModule });
678
- }
679
- createStore(void 0);
680
-
681
524
  // src/modules/media/overlay.tsx
682
525
  function MediaSource(props) {
683
526
  useMedia(props);
@@ -723,6 +566,6 @@ var mediaModule = defineModule({
723
566
  }
724
567
  });
725
568
 
726
- export { DEFAULT_MEDIA_STATE, MEDIA_REGISTRY_KEY, MEDIA_SYNC_DRIFT_SECONDS, MediaContext, MediaOverlay, MediaProvider, MediaSource, PAGE_MEDIA_ID, bindFollowers, createMediaState, mediaModule, resolveMediaSession, selectPageMedia, useMedia, useMediaActions, useMediaState };
569
+ export { DEFAULT_MEDIA_STATE, INERT_MEDIA_ACTIONS, MEDIA_REGISTRY_KEY, MEDIA_SYNC_DRIFT_SECONDS, MediaContext, MediaOverlay, MediaProvider, MediaSource, PAGE_MEDIA_ID, bindFollowers, createMediaState, mediaModule, resolveMediaSession, selectPageMedia, useMedia, useMediaActions, useMediaState, useOptionalMediaActions, useOptionalMediaState };
727
570
  //# sourceMappingURL=index.js.map
728
571
  //# sourceMappingURL=index.js.map