@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.
- package/dist/atoms/index.d.ts +0 -1
- package/dist/atoms/index.d.ts.map +1 -1
- package/dist/atoms/index.js +1 -64
- package/dist/atoms/index.js.map +1 -1
- package/dist/error/index.js +22 -25
- package/dist/error/index.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +97 -4
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/types.d.ts +11 -0
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/hooks/use-controllable-state.d.ts +1 -1
- package/dist/hooks/use-controllable-state.d.ts.map +1 -1
- package/dist/hooks/use-hotkey.d.ts +1 -1
- package/dist/hooks/use-hotkey.d.ts.map +1 -1
- package/dist/index.js +10811 -10696
- package/dist/index.js.map +1 -1
- package/dist/kernel/adapters.d.ts.map +1 -1
- package/dist/kernel/index.d.ts +1 -0
- package/dist/kernel/index.d.ts.map +1 -1
- package/dist/kernel/index.js +13 -84
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/installed.d.ts.map +1 -1
- package/dist/kernel/page-controller.d.ts.map +1 -1
- package/dist/kernel/provider.d.ts.map +1 -1
- package/dist/modules/ambient/constants.d.ts +1 -1
- package/dist/modules/ambient/constants.d.ts.map +1 -1
- package/dist/modules/ambient/index.js +180 -326
- package/dist/modules/ambient/index.js.map +1 -1
- package/dist/modules/ambient/module.d.ts.map +1 -1
- package/dist/modules/background/constants.d.ts +4 -2
- package/dist/modules/background/constants.d.ts.map +1 -1
- package/dist/modules/background/context.d.ts +3 -0
- package/dist/modules/background/context.d.ts.map +1 -1
- package/dist/modules/background/hooks.d.ts +1 -1
- package/dist/modules/background/index.d.ts +2 -2
- package/dist/modules/background/index.d.ts.map +1 -1
- package/dist/modules/background/index.js +1172 -1270
- package/dist/modules/background/index.js.map +1 -1
- package/dist/modules/background/overlay.d.ts +1 -1
- package/dist/modules/background/overlay.d.ts.map +1 -1
- package/dist/modules/background/types.d.ts +1 -1
- package/dist/modules/background/types.d.ts.map +1 -1
- package/dist/modules/context-menu/constants.d.ts +1 -1
- package/dist/modules/context-menu/constants.d.ts.map +1 -1
- package/dist/modules/context-menu/context.d.ts.map +1 -1
- package/dist/modules/context-menu/hooks.d.ts.map +1 -1
- package/dist/modules/context-menu/index.js +135 -240
- package/dist/modules/context-menu/index.js.map +1 -1
- package/dist/modules/controls/constants.d.ts +1 -1
- package/dist/modules/controls/constants.d.ts.map +1 -1
- package/dist/modules/controls/hooks.d.ts +1 -1
- package/dist/modules/controls/index.js +31 -165
- package/dist/modules/controls/index.js.map +1 -1
- package/dist/modules/controls/types.d.ts +1 -1
- package/dist/modules/controls/types.d.ts.map +1 -1
- package/dist/modules/dock/cards.d.ts +1 -1
- package/dist/modules/dock/constants.d.ts +1 -1
- package/dist/modules/dock/constants.d.ts.map +1 -1
- package/dist/modules/dock/context.d.ts +10 -6
- package/dist/modules/dock/context.d.ts.map +1 -1
- package/dist/modules/dock/hooks.d.ts +4 -4
- package/dist/modules/dock/hooks.d.ts.map +1 -1
- package/dist/modules/dock/index.d.ts +1 -1
- package/dist/modules/dock/index.d.ts.map +1 -1
- package/dist/modules/dock/index.js +2063 -2083
- package/dist/modules/dock/index.js.map +1 -1
- package/dist/modules/dock/runtime/dock.d.ts.map +1 -1
- package/dist/modules/dock/types.d.ts +1 -1
- package/dist/modules/dock/types.d.ts.map +1 -1
- package/dist/modules/index.js +10193 -10350
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/loading/constants.d.ts +4 -2
- package/dist/modules/loading/constants.d.ts.map +1 -1
- package/dist/modules/loading/context.d.ts +3 -0
- package/dist/modules/loading/context.d.ts.map +1 -1
- package/dist/modules/loading/hooks.d.ts +1 -1
- package/dist/modules/loading/hooks.d.ts.map +1 -1
- package/dist/modules/loading/index.d.ts +2 -2
- package/dist/modules/loading/index.d.ts.map +1 -1
- package/dist/modules/loading/index.js +121 -225
- package/dist/modules/loading/index.js.map +1 -1
- package/dist/modules/loading/types.d.ts +1 -1
- package/dist/modules/loading/types.d.ts.map +1 -1
- package/dist/modules/media/constants.d.ts +2 -1
- package/dist/modules/media/constants.d.ts.map +1 -1
- package/dist/modules/media/context.d.ts +3 -0
- package/dist/modules/media/context.d.ts.map +1 -1
- package/dist/modules/media/index.d.ts +2 -2
- package/dist/modules/media/index.d.ts.map +1 -1
- package/dist/modules/media/index.js +61 -218
- package/dist/modules/media/index.js.map +1 -1
- package/dist/modules/modal/constants.d.ts +1 -1
- package/dist/modules/modal/constants.d.ts.map +1 -1
- package/dist/modules/modal/context.d.ts.map +1 -1
- package/dist/modules/modal/hooks.d.ts +2 -2
- package/dist/modules/modal/index.js +31 -293
- package/dist/modules/modal/index.js.map +1 -1
- package/dist/modules/notification/constants.d.ts +4 -2
- package/dist/modules/notification/constants.d.ts.map +1 -1
- package/dist/modules/notification/context.d.ts +4 -0
- package/dist/modules/notification/context.d.ts.map +1 -1
- package/dist/modules/notification/hooks.d.ts +1 -1
- package/dist/modules/notification/index.d.ts +2 -3
- package/dist/modules/notification/index.d.ts.map +1 -1
- package/dist/modules/notification/index.js +65 -151
- package/dist/modules/notification/index.js.map +1 -1
- package/dist/modules/notification/module.d.ts.map +1 -1
- package/dist/provider.js +255 -257
- package/dist/provider.js.map +1 -1
- package/dist/theme.d.ts +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +2 -2
- package/dist/theme.js.map +1 -1
- package/dist/utils/dom.d.ts +2 -0
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +28 -19
- package/dist/utils/index.js.map +1 -1
- package/docs/modules/loading.md +1 -1
- package/package.json +48 -2
- package/dist/hooks/use-async-action.d.ts +0 -3
- package/dist/hooks/use-async-action.d.ts.map +0 -1
- package/dist/hooks/use-debounce.d.ts +0 -2
- package/dist/hooks/use-debounce.d.ts.map +0 -1
- package/dist/hooks/use-intersection-observer.d.ts +0 -4
- package/dist/hooks/use-intersection-observer.d.ts.map +0 -1
- package/dist/hooks/use-media-query.d.ts +0 -2
- package/dist/hooks/use-media-query.d.ts.map +0 -1
- package/dist/hooks/use-mounted.d.ts +0 -2
- package/dist/hooks/use-mounted.d.ts.map +0 -1
- package/dist/hooks/use-server-action.d.ts +0 -4
- package/dist/hooks/use-server-action.d.ts.map +0 -1
- package/dist/hooks/use-storage-state.d.ts +0 -5
- package/dist/hooks/use-storage-state.d.ts.map +0 -1
- package/dist/modules/theme.d.ts +0 -3
- package/dist/modules/theme.d.ts.map +0 -1
- package/dist/utils/json.d.ts +0 -3
- package/dist/utils/json.d.ts.map +0 -1
|
@@ -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,
|
|
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;
|
|
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":"
|
|
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,
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
205
|
-
var
|
|
206
|
-
|
|
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
|