@omerdlw/base-framework 1.0.3 → 1.0.4
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/index.js +5240 -5165
- package/dist/index.js.map +1 -1
- package/dist/kernel/compose.d.ts.map +1 -1
- package/dist/kernel/handlers.d.ts.map +1 -1
- package/dist/kernel/hooks.d.ts.map +1 -1
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/operations.d.ts.map +1 -1
- package/dist/kernel/schema.d.ts +0 -2
- package/dist/kernel/schema.d.ts.map +1 -1
- package/dist/kernel/store.d.ts.map +1 -1
- package/dist/kernel/types.d.ts.map +1 -1
- package/dist/kernel/utils.d.ts +0 -2
- package/dist/kernel/utils.d.ts.map +1 -1
- package/dist/modules/ambient/color.d.ts +16 -0
- package/dist/modules/ambient/color.d.ts.map +1 -0
- package/dist/modules/ambient/constants.d.ts +0 -17
- package/dist/modules/ambient/constants.d.ts.map +1 -1
- package/dist/modules/ambient/context.d.ts +1 -7
- package/dist/modules/ambient/context.d.ts.map +1 -1
- package/dist/modules/ambient/dom.d.ts +19 -0
- package/dist/modules/ambient/dom.d.ts.map +1 -0
- package/dist/modules/ambient/extractor.d.ts +5 -0
- package/dist/modules/ambient/extractor.d.ts.map +1 -0
- package/dist/modules/ambient/hooks.d.ts +9 -0
- package/dist/modules/ambient/hooks.d.ts.map +1 -0
- package/dist/modules/ambient/index.d.ts +7 -4
- package/dist/modules/ambient/index.d.ts.map +1 -1
- package/dist/modules/ambient/index.js +66 -60
- package/dist/modules/ambient/index.js.map +1 -1
- package/dist/modules/ambient/module.d.ts +5 -1
- package/dist/modules/ambient/module.d.ts.map +1 -1
- package/dist/modules/background/constants.d.ts +1 -10
- package/dist/modules/background/constants.d.ts.map +1 -1
- package/dist/modules/background/context.d.ts +1 -13
- package/dist/modules/background/context.d.ts.map +1 -1
- package/dist/modules/background/hooks.d.ts +13 -118
- package/dist/modules/background/hooks.d.ts.map +1 -1
- package/dist/modules/background/index.d.ts +8 -3
- package/dist/modules/background/index.d.ts.map +1 -1
- package/dist/modules/background/index.js +975 -991
- package/dist/modules/background/index.js.map +1 -1
- package/dist/modules/background/module.d.ts +1 -0
- package/dist/modules/background/module.d.ts.map +1 -1
- package/dist/modules/background/overlay.d.ts +93 -2
- package/dist/modules/background/overlay.d.ts.map +1 -1
- package/dist/modules/background/playback.d.ts +10 -0
- package/dist/modules/background/playback.d.ts.map +1 -0
- package/dist/modules/background/state.d.ts +9 -0
- package/dist/modules/background/state.d.ts.map +1 -0
- package/dist/modules/background/{utils.d.ts → visual.d.ts} +6 -14
- package/dist/modules/background/visual.d.ts.map +1 -0
- package/dist/modules/background/youtube/player.d.ts +28 -0
- package/dist/modules/background/youtube/player.d.ts.map +1 -0
- package/dist/modules/context-menu/context.d.ts +1 -10
- package/dist/modules/context-menu/context.d.ts.map +1 -1
- package/dist/modules/context-menu/dom.d.ts +8 -0
- package/dist/modules/context-menu/dom.d.ts.map +1 -0
- package/dist/modules/context-menu/hooks.d.ts +11 -11
- package/dist/modules/context-menu/hooks.d.ts.map +1 -1
- package/dist/modules/context-menu/index.d.ts +8 -3
- package/dist/modules/context-menu/index.d.ts.map +1 -1
- package/dist/modules/context-menu/index.js +97 -101
- package/dist/modules/context-menu/index.js.map +1 -1
- package/dist/modules/context-menu/{utils.d.ts → items.d.ts} +2 -9
- package/dist/modules/context-menu/items.d.ts.map +1 -0
- package/dist/modules/context-menu/module.d.ts.map +1 -1
- package/dist/modules/context-menu/overlay.d.ts +13 -1
- package/dist/modules/context-menu/overlay.d.ts.map +1 -1
- package/dist/modules/context-menu/state.d.ts +1 -0
- package/dist/modules/context-menu/state.d.ts.map +1 -1
- package/dist/modules/controls/{utils.d.ts → entries.d.ts} +6 -5
- package/dist/modules/controls/entries.d.ts.map +1 -0
- package/dist/modules/controls/hooks.d.ts +0 -7
- package/dist/modules/controls/hooks.d.ts.map +1 -1
- package/dist/modules/controls/index.d.ts +5 -3
- package/dist/modules/controls/index.d.ts.map +1 -1
- package/dist/modules/controls/index.js +66 -61
- package/dist/modules/controls/index.js.map +1 -1
- package/dist/modules/controls/layout.d.ts +7 -0
- package/dist/modules/controls/layout.d.ts.map +1 -0
- package/dist/modules/controls/overlay.d.ts +9 -0
- package/dist/modules/controls/overlay.d.ts.map +1 -1
- package/dist/modules/dock/cards.d.ts.map +1 -1
- package/dist/modules/dock/dom.d.ts +24 -0
- package/dist/modules/dock/dom.d.ts.map +1 -0
- package/dist/modules/dock/helpers.d.ts +25 -0
- package/dist/modules/dock/helpers.d.ts.map +1 -0
- package/dist/modules/dock/hooks.d.ts +3 -918
- package/dist/modules/dock/hooks.d.ts.map +1 -1
- package/dist/modules/dock/index.d.ts +3 -2
- package/dist/modules/dock/index.d.ts.map +1 -1
- package/dist/modules/dock/index.js +3091 -3079
- package/dist/modules/dock/index.js.map +1 -1
- package/dist/modules/dock/layout.d.ts +26 -0
- package/dist/modules/dock/layout.d.ts.map +1 -0
- package/dist/modules/dock/module.d.ts.map +1 -1
- package/dist/modules/dock/overlay.d.ts.map +1 -1
- package/dist/modules/dock/paths.d.ts +10 -0
- package/dist/modules/dock/paths.d.ts.map +1 -0
- package/dist/modules/dock/provider.d.ts.map +1 -1
- package/dist/modules/dock/runtime/display.d.ts.map +1 -1
- package/dist/modules/dock/runtime/dock.d.ts.map +1 -1
- package/dist/modules/dock/runtime/pipeline.d.ts +32 -0
- package/dist/modules/dock/runtime/pipeline.d.ts.map +1 -0
- package/dist/modules/dock/status/events.d.ts.map +1 -1
- package/dist/modules/dock/styles.d.ts +900 -0
- package/dist/modules/dock/styles.d.ts.map +1 -0
- package/dist/modules/dock/surface/context.d.ts +1 -2
- package/dist/modules/dock/surface/context.d.ts.map +1 -1
- package/dist/modules/dock/surface/definition.d.ts.map +1 -1
- package/dist/modules/dock/surface/helpers.d.ts +7 -0
- package/dist/modules/dock/surface/helpers.d.ts.map +1 -0
- package/dist/modules/dock/surface/hooks.d.ts.map +1 -1
- package/dist/modules/dock/surface/machine.d.ts.map +1 -1
- package/dist/modules/dock/surface/stack.d.ts.map +1 -1
- package/dist/modules/dock/surface/view-model.d.ts.map +1 -1
- package/dist/modules/dock/types.d.ts.map +1 -1
- package/dist/modules/index.js +4861 -4788
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/loading/context.d.ts +2 -13
- package/dist/modules/loading/context.d.ts.map +1 -1
- package/dist/modules/loading/hooks.d.ts +15 -2
- package/dist/modules/loading/hooks.d.ts.map +1 -1
- package/dist/modules/loading/index.d.ts +3 -2
- package/dist/modules/loading/index.d.ts.map +1 -1
- package/dist/modules/loading/index.js +38 -34
- package/dist/modules/loading/index.js.map +1 -1
- package/dist/modules/loading/module.d.ts.map +1 -1
- package/dist/modules/loading/state.d.ts +6 -0
- package/dist/modules/loading/state.d.ts.map +1 -0
- package/dist/modules/media/constants.d.ts +0 -1
- package/dist/modules/media/constants.d.ts.map +1 -1
- package/dist/modules/media/context.d.ts +2 -6
- package/dist/modules/media/context.d.ts.map +1 -1
- package/dist/modules/media/hooks.d.ts +6 -1
- package/dist/modules/media/hooks.d.ts.map +1 -1
- package/dist/modules/media/index.d.ts +4 -3
- package/dist/modules/media/index.d.ts.map +1 -1
- package/dist/modules/media/index.js +100 -98
- package/dist/modules/media/index.js.map +1 -1
- package/dist/modules/media/module.d.ts.map +1 -1
- package/dist/modules/media/overlay.d.ts +0 -5
- package/dist/modules/media/overlay.d.ts.map +1 -1
- package/dist/modules/media/playback.d.ts +5 -0
- package/dist/modules/media/playback.d.ts.map +1 -0
- package/dist/modules/media/session.d.ts +8 -0
- package/dist/modules/media/session.d.ts.map +1 -0
- package/dist/modules/media/types.d.ts +0 -1
- package/dist/modules/media/types.d.ts.map +1 -1
- package/dist/modules/modal/context.d.ts +1 -12
- package/dist/modules/modal/context.d.ts.map +1 -1
- package/dist/modules/modal/dom.d.ts +4 -0
- package/dist/modules/modal/dom.d.ts.map +1 -0
- package/dist/modules/modal/header.d.ts +7 -0
- package/dist/modules/modal/header.d.ts.map +1 -0
- package/dist/modules/modal/hooks.d.ts +12 -1
- package/dist/modules/modal/hooks.d.ts.map +1 -1
- package/dist/modules/modal/identity.d.ts +7 -0
- package/dist/modules/modal/identity.d.ts.map +1 -0
- package/dist/modules/modal/index.d.ts +9 -4
- package/dist/modules/modal/index.d.ts.map +1 -1
- package/dist/modules/modal/index.js +118 -86
- package/dist/modules/modal/index.js.map +1 -1
- package/dist/modules/modal/layout.d.ts +13 -0
- package/dist/modules/modal/layout.d.ts.map +1 -0
- package/dist/modules/modal/module.d.ts.map +1 -1
- package/dist/modules/modal/overlay.d.ts.map +1 -1
- package/dist/modules/modal/types.d.ts.map +1 -1
- package/dist/modules/notification/context.d.ts +2 -8
- package/dist/modules/notification/context.d.ts.map +1 -1
- package/dist/modules/notification/hooks.d.ts +8 -1
- package/dist/modules/notification/hooks.d.ts.map +1 -1
- package/dist/modules/notification/index.d.ts +4 -3
- package/dist/modules/notification/index.d.ts.map +1 -1
- package/dist/modules/notification/index.js +56 -46
- package/dist/modules/notification/index.js.map +1 -1
- package/dist/modules/notification/state.d.ts +17 -0
- package/dist/modules/notification/state.d.ts.map +1 -0
- package/dist/provider.js.map +1 -1
- package/docs/modules/ambient.md +12 -8
- package/docs/modules/background.md +15 -13
- package/docs/modules/context-menu.md +13 -13
- package/docs/modules/controls.md +4 -3
- package/docs/modules/dock.md +8 -2
- package/docs/modules/loading.md +11 -11
- package/docs/modules/media.md +8 -7
- package/docs/modules/modal.md +4 -1
- package/docs/modules/notification.md +4 -4
- package/package.json +1 -1
- package/dist/modules/ambient/utils.d.ts +0 -18
- package/dist/modules/ambient/utils.d.ts.map +0 -1
- package/dist/modules/background/utils.d.ts.map +0 -1
- package/dist/modules/context-menu/utils.d.ts.map +0 -1
- package/dist/modules/controls/utils.d.ts.map +0 -1
- package/dist/modules/dock/utils.d.ts +0 -93
- package/dist/modules/dock/utils.d.ts.map +0 -1
- package/dist/modules/loading/utils.d.ts +0 -4
- package/dist/modules/loading/utils.d.ts.map +0 -1
- package/dist/modules/media/utils.d.ts +0 -17
- package/dist/modules/media/utils.d.ts.map +0 -1
- package/dist/modules/modal/utils.d.ts +0 -31
- package/dist/modules/modal/utils.d.ts.map +0 -1
- package/dist/modules/notification/utils.d.ts +0 -9
- package/dist/modules/notification/utils.d.ts.map +0 -1
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import { type ContextMenuConfig, type ContextMenuContextValue, type ContextMenuPageMeta, type
|
|
2
|
-
export declare function joinClassNames(...classes: (string | boolean | null | undefined)[]): string;
|
|
3
|
-
export declare function isScrollLockKey(event: {
|
|
4
|
-
key: string;
|
|
5
|
-
}): boolean;
|
|
1
|
+
import { type ContextMenuConfig, type ContextMenuContextValue, type ContextMenuPageMeta, type ContextMenuResolvedHeader, type ContextMenuResolvedItem } from "./types";
|
|
6
2
|
export declare function extractNodeText(value: unknown): string;
|
|
7
3
|
export declare function resolveAsBoolean(value: unknown, context?: unknown, defaultValue?: boolean): boolean;
|
|
8
4
|
export declare function resolveAsValue<T = unknown>(value: unknown, context?: unknown, fallback?: T): T;
|
|
9
|
-
export declare function emitContextMenuVisibility(isOpen: boolean): void;
|
|
10
5
|
export declare function safeInvoke<T = unknown>(handler: unknown, ...args: unknown[]): T | undefined;
|
|
11
6
|
export declare function resolveContextMenuPageMeta(dockItem: unknown, pathname?: string): ContextMenuPageMeta | null;
|
|
12
|
-
export declare function positionMenu(menuElement: HTMLElement | null, position?: ContextMenuPosition | null): void;
|
|
13
7
|
export declare function resolveMenuItems(config: ContextMenuConfig | null | undefined, context: ContextMenuContextValue): ContextMenuResolvedItem[];
|
|
14
8
|
export declare function resolveMenuHeader(config: ContextMenuConfig | null | undefined, context: ContextMenuContextValue): ContextMenuResolvedHeader | null;
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
9
|
+
//# sourceMappingURL=items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../src/modules/context-menu/items.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAE5B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC7B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiBtD;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,OAAO,EACjB,YAAY,UAAO,GAClB,OAAO,CAYT;AAED,wBAAgB,cAAc,CAAC,CAAC,GAAG,OAAO,EACxC,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,CAAC,GACX,CAAC,CAUH;AAED,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EACpC,OAAO,EAAE,OAAO,EAChB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,CAAC,GAAG,SAAS,CAcf;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EACjB,QAAQ,SAAK,GACZ,mBAAmB,GAAG,IAAI,CA8B5B;AAmDD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAC5C,OAAO,EAAE,uBAAuB,GAC/B,uBAAuB,EAAE,CAmB3B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAC5C,OAAO,EAAE,uBAAuB,GAC/B,yBAAyB,GAAG,IAAI,CAyBlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/modules/context-menu/module.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/modules/context-menu/module.tsx"],"names":[],"mappings":"AAkBA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAuBjB,eAAO,MAAM,iBAAiB,2JAmB5B,CAAC;AAEH,OAAO,QAAQ,gCAAgC,CAAC;IAC9C,UAAU,WAAW;QACnB,WAAW,EAAE,OAAO,iBAAiB,CAAC;KACvC;IACD,UAAU,UAAU;QAClB,WAAW,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;KAC5C;CACF;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC1C,qBAAqB,CAQvB"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { type ContextMenuClasses, type ContextMenuResolvedHeader, type ContextMenuResolvedItem } from "./types";
|
|
1
|
+
import { type ContextMenuClasses, type ContextMenuConfig, type ContextMenuContextValue, type ContextMenuIcon, type ContextMenuPosition, type ContextMenuResolvedHeader, type ContextMenuResolvedItem } from "./types";
|
|
2
|
+
export declare function ContextMenuHeaderIcon({ classes, icon, }: {
|
|
3
|
+
classes: ContextMenuClasses;
|
|
4
|
+
icon: ContextMenuIcon;
|
|
5
|
+
}): import("react").JSX.Element;
|
|
2
6
|
export declare function ContextMenuHeader({ classes, header, }: {
|
|
3
7
|
classes: ContextMenuClasses;
|
|
4
8
|
header: ContextMenuResolvedHeader | null;
|
|
@@ -11,5 +15,13 @@ export declare function ContextMenuItem({ classes, isActive, item, onHover, onSe
|
|
|
11
15
|
onSelect: (item: ContextMenuResolvedItem, event: React.MouseEvent) => void;
|
|
12
16
|
setButtonRef: (node: HTMLButtonElement | null) => void;
|
|
13
17
|
}): import("react").JSX.Element;
|
|
18
|
+
export declare function ContextMenuContent({ config, items, menuContext, onClose, position, }: {
|
|
19
|
+
config: ContextMenuConfig;
|
|
20
|
+
items: ContextMenuResolvedItem[];
|
|
21
|
+
menuContext: ContextMenuContextValue;
|
|
22
|
+
onClose: () => void;
|
|
23
|
+
position: ContextMenuPosition;
|
|
24
|
+
}): import("react").JSX.Element;
|
|
25
|
+
export declare function ContextMenuRenderer(): import("react").ReactPortal | null;
|
|
14
26
|
export declare function ContextMenuGlobal(): import("react").JSX.Element;
|
|
15
27
|
//# sourceMappingURL=overlay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/modules/context-menu/overlay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/modules/context-menu/overlay.tsx"],"names":[],"mappings":"AAqBA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC7B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,IAAI,GACL,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,IAAI,EAAE,eAAe,CAAC;CACvB,+BAgBA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,MAAM,GACP,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC1C,sCAqBA;AAED,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,YAAY,GACb,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3E,YAAY,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;CACxD,+BAqCA;AAOD,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,WAAW,EAAE,uBAAuB,CAAC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,+BAiFA;AAID,wBAAgB,mBAAmB,uCA8BlC;AAED,wBAAgB,iBAAiB,gCAGhC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ContextMenuOpenInput, type ContextMenuState } from "./types";
|
|
2
2
|
export declare function createInitialMenuState(): ContextMenuState;
|
|
3
3
|
export declare function resolveNextOpenState({ config, context, items, position, }: ContextMenuOpenInput): ContextMenuState | null;
|
|
4
|
+
export declare function emitContextMenuVisibility(isOpen: boolean): void;
|
|
4
5
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/modules/context-menu/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3E,wBAAgB,sBAAsB,IAAI,gBAAgB,CAQzD;AAED,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAYhD"}
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/modules/context-menu/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3E,wBAAgB,sBAAsB,IAAI,gBAAgB,CAQzD;AAED,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAYhD;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAO/D"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
1
2
|
import { type ValidationResult } from "@/kernel";
|
|
2
|
-
import { type ControlEntry, type ControlSide, type
|
|
3
|
+
import { type ControlEntry, type ControlSide, type ControlSlot, type ControlsPageConfig, type PageControlEntry, type ResolvedControlsPairs } from "./types";
|
|
3
4
|
export declare function isControlSide(value: unknown): value is ControlSide;
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function getControlsLayout(dockRect: Pick<DOMRect, "bottom" | "height" | "left" | "right"> | null, viewport: ViewportDimensions): ControlsLayout | null;
|
|
6
|
-
export declare function areLayoutsEqual(a: ControlsLayout | null, b: ControlsLayout | null): boolean;
|
|
5
|
+
export declare function hasContent(content: unknown): boolean;
|
|
7
6
|
export declare function validateControlEntry(entry: unknown): ValidationResult;
|
|
7
|
+
export declare function resolveSlot(slot: ControlSlot | undefined, props: Record<string, unknown>): ReactNode;
|
|
8
8
|
export declare function normalizePageControls(controls: ControlsPageConfig | null | undefined): PageControlEntry[] | null;
|
|
9
|
-
|
|
9
|
+
export declare function resolveControlsPairs(entries: Record<string, ControlEntry> | ControlEntry[] | null | undefined, pathname: string): ResolvedControlsPairs;
|
|
10
|
+
//# sourceMappingURL=entries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/modules/controls/entries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEpD;AAcD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAkBrE;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,SAAS,CAKX;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,GAC9C,gBAAgB,EAAE,GAAG,IAAI,CAoB3B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,YAAY,EAAE,GAAG,IAAI,GAAG,SAAS,EACzE,QAAQ,EAAE,MAAM,GACf,qBAAqB,CAoCvB"}
|
|
@@ -5,11 +5,4 @@ export declare function useControlsRegistration(config: ControlsPageConfig | nul
|
|
|
5
5
|
enabled?: boolean;
|
|
6
6
|
}): void;
|
|
7
7
|
export declare function useControls(config?: DefineControlsOptions | ControlEntry | ControlEntry[] | null, options?: ControlsUseOptions): ControlsLayout | null;
|
|
8
|
-
export declare function useControlsModel(): {
|
|
9
|
-
portalTarget: HTMLElement | null;
|
|
10
|
-
layout: ControlsLayout | null;
|
|
11
|
-
left: import("./types").ControlsPairItem[];
|
|
12
|
-
right: import("./types").ControlsPairItem[];
|
|
13
|
-
theme: import("@/theme").ResolvedTheme<import("./types").ControlsThemeSlot>;
|
|
14
|
-
};
|
|
15
8
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/modules/controls/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/modules/controls/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAQjB,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAsDzD;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,EAC7C,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACjD,IAAI,CAEN;AAED,wBAAgB,WAAW,CACzB,MAAM,CAAC,EAAE,qBAAqB,GAAG,YAAY,GAAG,YAAY,EAAE,GAAG,IAAI,EACrE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,cAAc,GAAG,IAAI,CAoBvB"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
1
|
+
export type * from "./types";
|
|
2
|
+
export { Controls, ControlsSide } from "./overlay";
|
|
3
|
+
export { CONTROLS_EDGE_INSET, CONTROLS_DOCK_GAP, CONTROLS_DOCK_ELEMENT_ID, CONTROL_SIDE_NAMES, controlsTheme, } from "./constants";
|
|
3
4
|
export { useControls, useControlsLayout, useControlsRegistration, } from "./hooks";
|
|
5
|
+
export { areLayoutsEqual, getControlsLayout, getDockElement, getDockStackElement, measureLayout, } from "./layout";
|
|
6
|
+
export { hasContent, isControlSide, normalizePageControls, resolveControlsPairs, resolveSlot, validateControlEntry, } from "./entries";
|
|
4
7
|
export { controlsModule, defineControls } from "./module";
|
|
5
|
-
export * from "./types";
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/controls/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/controls/index.ts"],"names":[],"mappings":"AAEA,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { createContext, useState, useEffect, useMemo,
|
|
2
|
+
import { createContext, isValidElement, createElement, useState, useEffect, useMemo, Fragment, useSyncExternalStore, use, useId, useCallback, useContext, useRef, useLayoutEffect, cloneElement, Children } from 'react';
|
|
3
3
|
import { createPortal } from 'react-dom';
|
|
4
4
|
import { usePathname } from 'next/navigation';
|
|
5
|
-
import { jsxs, Fragment
|
|
5
|
+
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
// src/kernel/constants.ts
|
|
8
8
|
var DEFAULT_SOURCE = "dynamic";
|
|
@@ -746,8 +746,6 @@ function useModuleRegistration(id, value, options) {
|
|
|
746
746
|
const config = coreModule && options?.enabled !== false && value != null ? { [id]: value } : null;
|
|
747
747
|
useRegistry(config, pickRegistryMetadata(options));
|
|
748
748
|
}
|
|
749
|
-
|
|
750
|
-
// src/theme.tsx
|
|
751
749
|
function defineThemeSpec(id) {
|
|
752
750
|
return Object.freeze({ id });
|
|
753
751
|
}
|
|
@@ -778,6 +776,57 @@ function isControlSide(value) {
|
|
|
778
776
|
function hasContent(content) {
|
|
779
777
|
return content !== void 0 && content !== null && content !== false;
|
|
780
778
|
}
|
|
779
|
+
function isRenderable(value) {
|
|
780
|
+
if (value === null || value === void 0 || ["boolean", "number", "string"].includes(typeof value) || isValidElement(value)) {
|
|
781
|
+
return true;
|
|
782
|
+
}
|
|
783
|
+
return Array.isArray(value) && value.every(isRenderable);
|
|
784
|
+
}
|
|
785
|
+
function validateControlEntry(entry) {
|
|
786
|
+
if (!isPlainObject(entry)) {
|
|
787
|
+
return { issues: ["control must be a plain object"], valid: false };
|
|
788
|
+
}
|
|
789
|
+
const issues = [];
|
|
790
|
+
if (!trimToNull(entry.id)) {
|
|
791
|
+
issues.push("control id must be a non-empty string");
|
|
792
|
+
}
|
|
793
|
+
if (!isControlSide(entry.side)) {
|
|
794
|
+
issues.push("control side must be left or right");
|
|
795
|
+
}
|
|
796
|
+
if (!hasContent(entry.content) || !isRenderable(entry.content)) {
|
|
797
|
+
issues.push("control content must be renderable");
|
|
798
|
+
}
|
|
799
|
+
if (!Number.isFinite(Number(entry.order))) {
|
|
800
|
+
issues.push("control order must be a finite number");
|
|
801
|
+
}
|
|
802
|
+
return { issues, valid: issues.length === 0 };
|
|
803
|
+
}
|
|
804
|
+
function resolveSlot(slot, props) {
|
|
805
|
+
if (slot == null || slot === false) return null;
|
|
806
|
+
if (isValidElement(slot)) return slot;
|
|
807
|
+
if (typeof slot === "function") return createElement(slot, props);
|
|
808
|
+
return slot;
|
|
809
|
+
}
|
|
810
|
+
function normalizePageControls(controls) {
|
|
811
|
+
if (!controls) return null;
|
|
812
|
+
if (Array.isArray(controls)) return controls;
|
|
813
|
+
if ("side" in controls) return [controls];
|
|
814
|
+
const { id = "controls", order = 0, path, registry } = controls;
|
|
815
|
+
return CONTROL_SIDE_NAMES.flatMap((side) => {
|
|
816
|
+
const content = controls[side];
|
|
817
|
+
if (!hasContent(content)) return [];
|
|
818
|
+
return [
|
|
819
|
+
{
|
|
820
|
+
...registry ? { registry } : {},
|
|
821
|
+
content,
|
|
822
|
+
id: `${id}-${side}`,
|
|
823
|
+
order,
|
|
824
|
+
...path ? { path } : {},
|
|
825
|
+
side
|
|
826
|
+
}
|
|
827
|
+
];
|
|
828
|
+
});
|
|
829
|
+
}
|
|
781
830
|
function resolveControlsPairs(entries, pathname) {
|
|
782
831
|
const rows = /* @__PURE__ */ new Map();
|
|
783
832
|
for (const entry of Array.isArray(entries) ? entries : Object.values(entries || {})) {
|
|
@@ -800,6 +849,8 @@ function resolveControlsPairs(entries, pathname) {
|
|
|
800
849
|
right: pairs.map((row) => row.right)
|
|
801
850
|
};
|
|
802
851
|
}
|
|
852
|
+
|
|
853
|
+
// src/modules/controls/layout.ts
|
|
803
854
|
function getControlsLayout(dockRect, viewport) {
|
|
804
855
|
const { height, width } = viewport;
|
|
805
856
|
if (!dockRect || width <= 0 || height <= 0) return null;
|
|
@@ -826,53 +877,6 @@ function areLayoutsEqual(a, b) {
|
|
|
826
877
|
if (!a || !b) return false;
|
|
827
878
|
return a.bottom === b.bottom && a.height === b.height && a.isHidden === b.isHidden && a.left.maxWidth === b.left.maxWidth && a.left.right === b.left.right && a.right.left === b.right.left && a.right.maxWidth === b.right.maxWidth;
|
|
828
879
|
}
|
|
829
|
-
function isRenderable(value) {
|
|
830
|
-
if (value === null || value === void 0 || ["boolean", "number", "string"].includes(typeof value) || isValidElement(value)) {
|
|
831
|
-
return true;
|
|
832
|
-
}
|
|
833
|
-
return Array.isArray(value) && value.every(isRenderable);
|
|
834
|
-
}
|
|
835
|
-
function validateControlEntry(entry) {
|
|
836
|
-
if (!isPlainObject(entry)) {
|
|
837
|
-
return { issues: ["control must be a plain object"], valid: false };
|
|
838
|
-
}
|
|
839
|
-
const issues = [];
|
|
840
|
-
if (!trimToNull(entry.id)) {
|
|
841
|
-
issues.push("control id must be a non-empty string");
|
|
842
|
-
}
|
|
843
|
-
if (!isControlSide(entry.side)) {
|
|
844
|
-
issues.push("control side must be left or right");
|
|
845
|
-
}
|
|
846
|
-
if (!hasContent(entry.content) || !isRenderable(entry.content)) {
|
|
847
|
-
issues.push("control content must be renderable");
|
|
848
|
-
}
|
|
849
|
-
if (!Number.isFinite(Number(entry.order))) {
|
|
850
|
-
issues.push("control order must be a finite number");
|
|
851
|
-
}
|
|
852
|
-
return { issues, valid: issues.length === 0 };
|
|
853
|
-
}
|
|
854
|
-
function normalizePageControls(controls) {
|
|
855
|
-
if (!controls) return null;
|
|
856
|
-
if (Array.isArray(controls)) return controls;
|
|
857
|
-
if ("side" in controls) return [controls];
|
|
858
|
-
const { id = "controls", order = 0, path, registry } = controls;
|
|
859
|
-
return CONTROL_SIDE_NAMES.flatMap((side) => {
|
|
860
|
-
const content = controls[side];
|
|
861
|
-
if (!hasContent(content)) return [];
|
|
862
|
-
return [
|
|
863
|
-
{
|
|
864
|
-
...registry ? { registry } : {},
|
|
865
|
-
content,
|
|
866
|
-
id: `${id}-${side}`,
|
|
867
|
-
order,
|
|
868
|
-
...path ? { path } : {},
|
|
869
|
-
side
|
|
870
|
-
}
|
|
871
|
-
];
|
|
872
|
-
});
|
|
873
|
-
}
|
|
874
|
-
|
|
875
|
-
// src/modules/controls/hooks.ts
|
|
876
880
|
function getDockStackElement() {
|
|
877
881
|
return document.getElementById(CONTROLS_DOCK_ELEMENT_ID);
|
|
878
882
|
}
|
|
@@ -891,6 +895,8 @@ function measureLayout() {
|
|
|
891
895
|
isHidden: getDockStackElement()?.dataset.controlsHidden === "true"
|
|
892
896
|
};
|
|
893
897
|
}
|
|
898
|
+
|
|
899
|
+
// src/modules/controls/hooks.ts
|
|
894
900
|
function useControlsLayout() {
|
|
895
901
|
const [layout, setLayout] = useState(null);
|
|
896
902
|
useEffect(() => {
|
|
@@ -940,12 +946,6 @@ function useControlsLayout() {
|
|
|
940
946
|
}, []);
|
|
941
947
|
return layout;
|
|
942
948
|
}
|
|
943
|
-
function resolveSlot(slot, props) {
|
|
944
|
-
if (slot == null || slot === false) return null;
|
|
945
|
-
if (isValidElement(slot)) return slot;
|
|
946
|
-
if (typeof slot === "function") return createElement(slot, props);
|
|
947
|
-
return slot;
|
|
948
|
-
}
|
|
949
949
|
function useControlsRegistration(config, options) {
|
|
950
950
|
useModuleRegistration("controls", config, options);
|
|
951
951
|
}
|
|
@@ -986,7 +986,12 @@ function useControlsModel() {
|
|
|
986
986
|
const theme = useTheme(controlsTheme);
|
|
987
987
|
return { portalTarget, layout, left, right, theme };
|
|
988
988
|
}
|
|
989
|
-
function ControlsSide({
|
|
989
|
+
function ControlsSide({
|
|
990
|
+
controls,
|
|
991
|
+
geometry,
|
|
992
|
+
side,
|
|
993
|
+
theme
|
|
994
|
+
}) {
|
|
990
995
|
if (controls.length === 0 || !geometry.height || !geometry.maxWidth) {
|
|
991
996
|
return null;
|
|
992
997
|
}
|
|
@@ -1014,7 +1019,7 @@ function ControlsSide({ controls, geometry, side, theme }) {
|
|
|
1014
1019
|
...theme.styles.stack,
|
|
1015
1020
|
"--controls-height": `${geometry.height}px`
|
|
1016
1021
|
},
|
|
1017
|
-
children: controls.map(({ content, id }, index) => /* @__PURE__ */ jsx(Fragment
|
|
1022
|
+
children: controls.map(({ content, id }, index) => /* @__PURE__ */ jsx(Fragment, { children: content }, id || index))
|
|
1018
1023
|
}
|
|
1019
1024
|
)
|
|
1020
1025
|
}
|
|
@@ -1026,7 +1031,7 @@ function Controls() {
|
|
|
1026
1031
|
return null;
|
|
1027
1032
|
}
|
|
1028
1033
|
return createPortal(
|
|
1029
|
-
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1034
|
+
/* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
1030
1035
|
/* @__PURE__ */ jsx(
|
|
1031
1036
|
ControlsSide,
|
|
1032
1037
|
{
|
|
@@ -1103,6 +1108,6 @@ var controlsModule = defineModule({
|
|
|
1103
1108
|
}
|
|
1104
1109
|
});
|
|
1105
1110
|
|
|
1106
|
-
export { CONTROLS_DOCK_ELEMENT_ID, CONTROLS_DOCK_GAP, CONTROLS_EDGE_INSET, CONTROL_SIDE_NAMES, Controls, controlsModule, controlsTheme, defineControls, useControls, useControlsLayout, useControlsRegistration };
|
|
1111
|
+
export { CONTROLS_DOCK_ELEMENT_ID, CONTROLS_DOCK_GAP, CONTROLS_EDGE_INSET, CONTROL_SIDE_NAMES, Controls, ControlsSide, areLayoutsEqual, controlsModule, controlsTheme, defineControls, getControlsLayout, getDockElement, getDockStackElement, hasContent, isControlSide, measureLayout, normalizePageControls, resolveControlsPairs, resolveSlot, useControls, useControlsLayout, useControlsRegistration, validateControlEntry };
|
|
1107
1112
|
//# sourceMappingURL=index.js.map
|
|
1108
1113
|
//# sourceMappingURL=index.js.map
|