@omerdlw/base-framework 1.0.3 → 1.0.5

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 (204) hide show
  1. package/dist/index.js +5415 -5319
  2. package/dist/index.js.map +1 -1
  3. package/dist/kernel/compose.d.ts.map +1 -1
  4. package/dist/kernel/handlers.d.ts.map +1 -1
  5. package/dist/kernel/hooks.d.ts.map +1 -1
  6. package/dist/kernel/index.js.map +1 -1
  7. package/dist/kernel/operations.d.ts.map +1 -1
  8. package/dist/kernel/schema.d.ts +0 -2
  9. package/dist/kernel/schema.d.ts.map +1 -1
  10. package/dist/kernel/store.d.ts.map +1 -1
  11. package/dist/kernel/types.d.ts.map +1 -1
  12. package/dist/kernel/utils.d.ts +0 -2
  13. package/dist/kernel/utils.d.ts.map +1 -1
  14. package/dist/modules/ambient/color.d.ts +16 -0
  15. package/dist/modules/ambient/color.d.ts.map +1 -0
  16. package/dist/modules/ambient/constants.d.ts +0 -17
  17. package/dist/modules/ambient/constants.d.ts.map +1 -1
  18. package/dist/modules/ambient/context.d.ts +1 -7
  19. package/dist/modules/ambient/context.d.ts.map +1 -1
  20. package/dist/modules/ambient/dom.d.ts +19 -0
  21. package/dist/modules/ambient/dom.d.ts.map +1 -0
  22. package/dist/modules/ambient/extractor.d.ts +5 -0
  23. package/dist/modules/ambient/extractor.d.ts.map +1 -0
  24. package/dist/modules/ambient/hooks.d.ts +9 -0
  25. package/dist/modules/ambient/hooks.d.ts.map +1 -0
  26. package/dist/modules/ambient/index.d.ts +7 -4
  27. package/dist/modules/ambient/index.d.ts.map +1 -1
  28. package/dist/modules/ambient/index.js +66 -60
  29. package/dist/modules/ambient/index.js.map +1 -1
  30. package/dist/modules/ambient/module.d.ts +5 -1
  31. package/dist/modules/ambient/module.d.ts.map +1 -1
  32. package/dist/modules/background/constants.d.ts +1 -10
  33. package/dist/modules/background/constants.d.ts.map +1 -1
  34. package/dist/modules/background/context.d.ts +1 -13
  35. package/dist/modules/background/context.d.ts.map +1 -1
  36. package/dist/modules/background/hooks.d.ts +13 -118
  37. package/dist/modules/background/hooks.d.ts.map +1 -1
  38. package/dist/modules/background/index.d.ts +8 -3
  39. package/dist/modules/background/index.d.ts.map +1 -1
  40. package/dist/modules/background/index.js +975 -991
  41. package/dist/modules/background/index.js.map +1 -1
  42. package/dist/modules/background/module.d.ts +1 -0
  43. package/dist/modules/background/module.d.ts.map +1 -1
  44. package/dist/modules/background/overlay.d.ts +93 -2
  45. package/dist/modules/background/overlay.d.ts.map +1 -1
  46. package/dist/modules/background/playback.d.ts +10 -0
  47. package/dist/modules/background/playback.d.ts.map +1 -0
  48. package/dist/modules/background/state.d.ts +9 -0
  49. package/dist/modules/background/state.d.ts.map +1 -0
  50. package/dist/modules/background/{utils.d.ts → visual.d.ts} +6 -14
  51. package/dist/modules/background/visual.d.ts.map +1 -0
  52. package/dist/modules/background/youtube/player.d.ts +28 -0
  53. package/dist/modules/background/youtube/player.d.ts.map +1 -0
  54. package/dist/modules/context-menu/context.d.ts +1 -10
  55. package/dist/modules/context-menu/context.d.ts.map +1 -1
  56. package/dist/modules/context-menu/dom.d.ts +8 -0
  57. package/dist/modules/context-menu/dom.d.ts.map +1 -0
  58. package/dist/modules/context-menu/hooks.d.ts +11 -11
  59. package/dist/modules/context-menu/hooks.d.ts.map +1 -1
  60. package/dist/modules/context-menu/index.d.ts +8 -3
  61. package/dist/modules/context-menu/index.d.ts.map +1 -1
  62. package/dist/modules/context-menu/index.js +97 -101
  63. package/dist/modules/context-menu/index.js.map +1 -1
  64. package/dist/modules/context-menu/{utils.d.ts → items.d.ts} +2 -9
  65. package/dist/modules/context-menu/items.d.ts.map +1 -0
  66. package/dist/modules/context-menu/module.d.ts.map +1 -1
  67. package/dist/modules/context-menu/overlay.d.ts +13 -1
  68. package/dist/modules/context-menu/overlay.d.ts.map +1 -1
  69. package/dist/modules/context-menu/state.d.ts +1 -0
  70. package/dist/modules/context-menu/state.d.ts.map +1 -1
  71. package/dist/modules/controls/{utils.d.ts → entries.d.ts} +6 -5
  72. package/dist/modules/controls/entries.d.ts.map +1 -0
  73. package/dist/modules/controls/hooks.d.ts +0 -7
  74. package/dist/modules/controls/hooks.d.ts.map +1 -1
  75. package/dist/modules/controls/index.d.ts +5 -3
  76. package/dist/modules/controls/index.d.ts.map +1 -1
  77. package/dist/modules/controls/index.js +66 -61
  78. package/dist/modules/controls/index.js.map +1 -1
  79. package/dist/modules/controls/layout.d.ts +7 -0
  80. package/dist/modules/controls/layout.d.ts.map +1 -0
  81. package/dist/modules/controls/overlay.d.ts +9 -0
  82. package/dist/modules/controls/overlay.d.ts.map +1 -1
  83. package/dist/modules/dock/cards.d.ts.map +1 -1
  84. package/dist/modules/dock/dom.d.ts +24 -0
  85. package/dist/modules/dock/dom.d.ts.map +1 -0
  86. package/dist/modules/dock/helpers.d.ts +25 -0
  87. package/dist/modules/dock/helpers.d.ts.map +1 -0
  88. package/dist/modules/dock/hooks.d.ts +3 -918
  89. package/dist/modules/dock/hooks.d.ts.map +1 -1
  90. package/dist/modules/dock/index.d.ts +3 -2
  91. package/dist/modules/dock/index.d.ts.map +1 -1
  92. package/dist/modules/dock/index.js +2372 -2330
  93. package/dist/modules/dock/index.js.map +1 -1
  94. package/dist/modules/dock/layout.d.ts +26 -0
  95. package/dist/modules/dock/layout.d.ts.map +1 -0
  96. package/dist/modules/dock/module.d.ts.map +1 -1
  97. package/dist/modules/dock/overlay.d.ts.map +1 -1
  98. package/dist/modules/dock/paths.d.ts +10 -0
  99. package/dist/modules/dock/paths.d.ts.map +1 -0
  100. package/dist/modules/dock/provider.d.ts.map +1 -1
  101. package/dist/modules/dock/runtime/display.d.ts.map +1 -1
  102. package/dist/modules/dock/runtime/dock.d.ts.map +1 -1
  103. package/dist/modules/dock/runtime/pipeline.d.ts +32 -0
  104. package/dist/modules/dock/runtime/pipeline.d.ts.map +1 -0
  105. package/dist/modules/dock/status/events.d.ts.map +1 -1
  106. package/dist/modules/dock/styles.d.ts +900 -0
  107. package/dist/modules/dock/styles.d.ts.map +1 -0
  108. package/dist/modules/dock/surface/context.d.ts +1 -2
  109. package/dist/modules/dock/surface/context.d.ts.map +1 -1
  110. package/dist/modules/dock/surface/definition.d.ts.map +1 -1
  111. package/dist/modules/dock/surface/helpers.d.ts +7 -0
  112. package/dist/modules/dock/surface/helpers.d.ts.map +1 -0
  113. package/dist/modules/dock/surface/hooks.d.ts.map +1 -1
  114. package/dist/modules/dock/surface/machine.d.ts.map +1 -1
  115. package/dist/modules/dock/surface/stack.d.ts.map +1 -1
  116. package/dist/modules/dock/surface/view-model.d.ts.map +1 -1
  117. package/dist/modules/dock/types.d.ts.map +1 -1
  118. package/dist/modules/index.js +5010 -4916
  119. package/dist/modules/index.js.map +1 -1
  120. package/dist/modules/loading/context.d.ts +2 -13
  121. package/dist/modules/loading/context.d.ts.map +1 -1
  122. package/dist/modules/loading/hooks.d.ts +15 -2
  123. package/dist/modules/loading/hooks.d.ts.map +1 -1
  124. package/dist/modules/loading/index.d.ts +3 -2
  125. package/dist/modules/loading/index.d.ts.map +1 -1
  126. package/dist/modules/loading/index.js +38 -34
  127. package/dist/modules/loading/index.js.map +1 -1
  128. package/dist/modules/loading/module.d.ts.map +1 -1
  129. package/dist/modules/loading/state.d.ts +6 -0
  130. package/dist/modules/loading/state.d.ts.map +1 -0
  131. package/dist/modules/media/constants.d.ts +0 -1
  132. package/dist/modules/media/constants.d.ts.map +1 -1
  133. package/dist/modules/media/context.d.ts +2 -6
  134. package/dist/modules/media/context.d.ts.map +1 -1
  135. package/dist/modules/media/hooks.d.ts +6 -1
  136. package/dist/modules/media/hooks.d.ts.map +1 -1
  137. package/dist/modules/media/index.d.ts +4 -3
  138. package/dist/modules/media/index.d.ts.map +1 -1
  139. package/dist/modules/media/index.js +100 -98
  140. package/dist/modules/media/index.js.map +1 -1
  141. package/dist/modules/media/module.d.ts.map +1 -1
  142. package/dist/modules/media/overlay.d.ts +0 -5
  143. package/dist/modules/media/overlay.d.ts.map +1 -1
  144. package/dist/modules/media/playback.d.ts +5 -0
  145. package/dist/modules/media/playback.d.ts.map +1 -0
  146. package/dist/modules/media/session.d.ts +8 -0
  147. package/dist/modules/media/session.d.ts.map +1 -0
  148. package/dist/modules/media/types.d.ts +0 -1
  149. package/dist/modules/media/types.d.ts.map +1 -1
  150. package/dist/modules/modal/context.d.ts +1 -12
  151. package/dist/modules/modal/context.d.ts.map +1 -1
  152. package/dist/modules/modal/dom.d.ts +4 -0
  153. package/dist/modules/modal/dom.d.ts.map +1 -0
  154. package/dist/modules/modal/header.d.ts +7 -0
  155. package/dist/modules/modal/header.d.ts.map +1 -0
  156. package/dist/modules/modal/hooks.d.ts +12 -1
  157. package/dist/modules/modal/hooks.d.ts.map +1 -1
  158. package/dist/modules/modal/identity.d.ts +7 -0
  159. package/dist/modules/modal/identity.d.ts.map +1 -0
  160. package/dist/modules/modal/index.d.ts +9 -4
  161. package/dist/modules/modal/index.d.ts.map +1 -1
  162. package/dist/modules/modal/index.js +118 -86
  163. package/dist/modules/modal/index.js.map +1 -1
  164. package/dist/modules/modal/layout.d.ts +13 -0
  165. package/dist/modules/modal/layout.d.ts.map +1 -0
  166. package/dist/modules/modal/module.d.ts.map +1 -1
  167. package/dist/modules/modal/overlay.d.ts.map +1 -1
  168. package/dist/modules/modal/types.d.ts.map +1 -1
  169. package/dist/modules/notification/context.d.ts +2 -8
  170. package/dist/modules/notification/context.d.ts.map +1 -1
  171. package/dist/modules/notification/hooks.d.ts +8 -1
  172. package/dist/modules/notification/hooks.d.ts.map +1 -1
  173. package/dist/modules/notification/index.d.ts +4 -3
  174. package/dist/modules/notification/index.d.ts.map +1 -1
  175. package/dist/modules/notification/index.js +56 -46
  176. package/dist/modules/notification/index.js.map +1 -1
  177. package/dist/modules/notification/state.d.ts +17 -0
  178. package/dist/modules/notification/state.d.ts.map +1 -0
  179. package/dist/provider.js.map +1 -1
  180. package/docs/modules/ambient.md +12 -8
  181. package/docs/modules/background.md +15 -13
  182. package/docs/modules/context-menu.md +13 -13
  183. package/docs/modules/controls.md +4 -3
  184. package/docs/modules/dock.md +8 -2
  185. package/docs/modules/loading.md +11 -11
  186. package/docs/modules/media.md +8 -7
  187. package/docs/modules/modal.md +4 -1
  188. package/docs/modules/notification.md +4 -4
  189. package/package.json +4 -4
  190. package/dist/modules/ambient/utils.d.ts +0 -18
  191. package/dist/modules/ambient/utils.d.ts.map +0 -1
  192. package/dist/modules/background/utils.d.ts.map +0 -1
  193. package/dist/modules/context-menu/utils.d.ts.map +0 -1
  194. package/dist/modules/controls/utils.d.ts.map +0 -1
  195. package/dist/modules/dock/utils.d.ts +0 -93
  196. package/dist/modules/dock/utils.d.ts.map +0 -1
  197. package/dist/modules/loading/utils.d.ts +0 -4
  198. package/dist/modules/loading/utils.d.ts.map +0 -1
  199. package/dist/modules/media/utils.d.ts +0 -17
  200. package/dist/modules/media/utils.d.ts.map +0 -1
  201. package/dist/modules/modal/utils.d.ts +0 -31
  202. package/dist/modules/modal/utils.d.ts.map +0 -1
  203. package/dist/modules/notification/utils.d.ts +0 -9
  204. package/dist/modules/notification/utils.d.ts.map +0 -1
@@ -1,16 +1,9 @@
1
- import { type ContextMenuConfig, type ContextMenuContextValue, type ContextMenuPageMeta, type ContextMenuPosition, type ContextMenuResolvedHeader, type ContextMenuResolvedItem } from "./types";
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
- export declare function getNextActiveIndex(items: ContextMenuResolvedItem[], current: number, direction: 1 | -1): number;
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":"AAgBA,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
+ {"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":"AAcA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAI7B,MAAM,SAAS,CAAC;AA+BjB,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;AA8HD,wBAAgB,iBAAiB,gCAGhC"}
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 ControlsLayout, type ControlsPageConfig, type PageControlEntry, type ResolvedControlsPairs, type ViewportDimensions } from "./types";
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 resolveControlsPairs(entries: Record<string, ControlEntry> | ControlEntry[] | null | undefined, pathname: string): ResolvedControlsPairs;
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
- //# sourceMappingURL=utils.d.ts.map
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":"AAaA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAkCjB,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAsDzD;AAYD,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;AAID,wBAAgB,gBAAgB;;;;;;EAiB/B"}
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 { Controls } from "./overlay";
2
- export { CONTROLS_EDGE_INSET, CONTROLS_DOCK_GAP, CONTROLS_DOCK_ELEMENT_ID, controlsTheme, CONTROL_SIDE_NAMES, } from "./constants";
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;AACrC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,cAAc,SAAS,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, isValidElement, createElement, useSyncExternalStore, Fragment as Fragment$1, use, useId, useCallback, useContext, useRef, useLayoutEffect, cloneElement, Children } from 'react';
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, jsx } from 'react/jsx-runtime';
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({ controls, geometry, side, theme }) {
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$1, { children: content }, id || index))
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