@chayns-components/navigation 5.0.65 → 5.1.0

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 (186) hide show
  1. package/lib/cjs/components/navigation-layout/NavigationLayout.constants.js +14 -0
  2. package/lib/cjs/components/navigation-layout/NavigationLayout.constants.js.map +1 -0
  3. package/lib/cjs/components/navigation-layout/NavigationLayout.context.js +26 -0
  4. package/lib/cjs/components/navigation-layout/NavigationLayout.context.js.map +1 -0
  5. package/lib/cjs/components/navigation-layout/NavigationLayout.js +105 -0
  6. package/lib/cjs/components/navigation-layout/NavigationLayout.js.map +1 -0
  7. package/lib/cjs/components/navigation-layout/NavigationLayout.styles.js +74 -0
  8. package/lib/cjs/components/navigation-layout/NavigationLayout.styles.js.map +1 -0
  9. package/lib/cjs/components/navigation-layout/NavigationLayout.types.js +6 -0
  10. package/lib/cjs/components/navigation-layout/NavigationLayout.types.js.map +1 -0
  11. package/lib/cjs/components/navigation-layout/NavigationLayout.utils.js +261 -0
  12. package/lib/cjs/components/navigation-layout/NavigationLayout.utils.js.map +1 -0
  13. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.js +31 -0
  14. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.js.map +1 -0
  15. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.styles.js +30 -0
  16. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.styles.js.map +1 -0
  17. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.types.js +6 -0
  18. package/lib/cjs/components/navigation-layout/navigation-header/NavigationHeader.types.js.map +1 -0
  19. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js +71 -0
  20. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js.map +1 -0
  21. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js +19 -0
  22. package/lib/cjs/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js.map +1 -0
  23. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js +26 -0
  24. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js.map +1 -0
  25. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.js +140 -0
  26. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.js.map +1 -0
  27. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js +89 -0
  28. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js.map +1 -0
  29. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js +6 -0
  30. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js.map +1 -0
  31. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js +83 -0
  32. package/lib/cjs/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js.map +1 -0
  33. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js +17 -0
  34. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js.map +1 -0
  35. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js +19 -0
  36. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js.map +1 -0
  37. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js +26 -0
  38. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js.map +1 -0
  39. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js +129 -0
  40. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js.map +1 -0
  41. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js +79 -0
  42. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js.map +1 -0
  43. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js +69 -0
  44. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js.map +1 -0
  45. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js +265 -0
  46. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js.map +1 -0
  47. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js +193 -0
  48. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js.map +1 -0
  49. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js +132 -0
  50. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js.map +1 -0
  51. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js +78 -0
  52. package/lib/cjs/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js.map +1 -0
  53. package/lib/cjs/components/split-layout/SplitLayout.js +90 -0
  54. package/lib/cjs/components/split-layout/SplitLayout.js.map +1 -0
  55. package/lib/cjs/components/split-layout/SplitLayout.styles.js +44 -0
  56. package/lib/cjs/components/split-layout/SplitLayout.styles.js.map +1 -0
  57. package/lib/cjs/components/split-layout/SplitLayout.types.js +12 -0
  58. package/lib/cjs/components/split-layout/SplitLayout.types.js.map +1 -0
  59. package/lib/cjs/components/split-layout/SplitLayout.utils.js +25 -0
  60. package/lib/cjs/components/split-layout/SplitLayout.utils.js.map +1 -0
  61. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.hooks.js +63 -0
  62. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.hooks.js.map +1 -0
  63. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.js +34 -0
  64. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.js.map +1 -0
  65. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.styles.js +58 -0
  66. package/lib/cjs/components/split-layout/resize-handle/ResizeHandle.styles.js.map +1 -0
  67. package/lib/cjs/components/user-image/UserImage.js +38 -0
  68. package/lib/cjs/components/user-image/UserImage.js.map +1 -0
  69. package/lib/cjs/components/user-image/UserImage.types.js +6 -0
  70. package/lib/cjs/components/user-image/UserImage.types.js.map +1 -0
  71. package/lib/cjs/components/user-image/userImage.styles.js +27 -0
  72. package/lib/cjs/components/user-image/userImage.styles.js.map +1 -0
  73. package/lib/cjs/index.js +49 -1
  74. package/lib/cjs/index.js.map +1 -1
  75. package/lib/esm/components/navigation-layout/NavigationLayout.constants.js +8 -0
  76. package/lib/esm/components/navigation-layout/NavigationLayout.constants.js.map +1 -0
  77. package/lib/esm/components/navigation-layout/NavigationLayout.context.js +17 -0
  78. package/lib/esm/components/navigation-layout/NavigationLayout.context.js.map +1 -0
  79. package/lib/esm/components/navigation-layout/NavigationLayout.js +97 -0
  80. package/lib/esm/components/navigation-layout/NavigationLayout.js.map +1 -0
  81. package/lib/esm/components/navigation-layout/NavigationLayout.styles.js +67 -0
  82. package/lib/esm/components/navigation-layout/NavigationLayout.styles.js.map +1 -0
  83. package/lib/esm/components/navigation-layout/NavigationLayout.types.js +2 -0
  84. package/lib/esm/components/navigation-layout/NavigationLayout.types.js.map +1 -0
  85. package/lib/esm/components/navigation-layout/NavigationLayout.utils.js +251 -0
  86. package/lib/esm/components/navigation-layout/NavigationLayout.utils.js.map +1 -0
  87. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.js +24 -0
  88. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.js.map +1 -0
  89. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.styles.js +23 -0
  90. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.styles.js.map +1 -0
  91. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.types.js +2 -0
  92. package/lib/esm/components/navigation-layout/navigation-header/NavigationHeader.types.js.map +1 -0
  93. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js +64 -0
  94. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.js.map +1 -0
  95. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js +12 -0
  96. package/lib/esm/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.js.map +1 -0
  97. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js +17 -0
  98. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.js.map +1 -0
  99. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.js +132 -0
  100. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.js.map +1 -0
  101. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js +82 -0
  102. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.js.map +1 -0
  103. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js +2 -0
  104. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.js.map +1 -0
  105. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js +73 -0
  106. package/lib/esm/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.js.map +1 -0
  107. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js +10 -0
  108. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.js.map +1 -0
  109. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js +12 -0
  110. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.js.map +1 -0
  111. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js +17 -0
  112. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.js.map +1 -0
  113. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js +119 -0
  114. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.js.map +1 -0
  115. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js +71 -0
  116. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.js.map +1 -0
  117. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js +62 -0
  118. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.js.map +1 -0
  119. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js +257 -0
  120. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.js.map +1 -0
  121. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js +186 -0
  122. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.js.map +1 -0
  123. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js +126 -0
  124. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.js.map +1 -0
  125. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js +67 -0
  126. package/lib/esm/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.js.map +1 -0
  127. package/lib/esm/components/split-layout/SplitLayout.js +80 -0
  128. package/lib/esm/components/split-layout/SplitLayout.js.map +1 -0
  129. package/lib/esm/components/split-layout/SplitLayout.styles.js +37 -0
  130. package/lib/esm/components/split-layout/SplitLayout.styles.js.map +1 -0
  131. package/lib/esm/components/split-layout/SplitLayout.types.js +6 -0
  132. package/lib/esm/components/split-layout/SplitLayout.types.js.map +1 -0
  133. package/lib/esm/components/split-layout/SplitLayout.utils.js +17 -0
  134. package/lib/esm/components/split-layout/SplitLayout.utils.js.map +1 -0
  135. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.hooks.js +54 -0
  136. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.hooks.js.map +1 -0
  137. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.js +27 -0
  138. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.js.map +1 -0
  139. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.styles.js +52 -0
  140. package/lib/esm/components/split-layout/resize-handle/ResizeHandle.styles.js.map +1 -0
  141. package/lib/esm/components/user-image/UserImage.js +31 -0
  142. package/lib/esm/components/user-image/UserImage.js.map +1 -0
  143. package/lib/esm/components/user-image/UserImage.types.js +2 -0
  144. package/lib/esm/components/user-image/UserImage.types.js.map +1 -0
  145. package/lib/esm/components/user-image/userImage.styles.js +20 -0
  146. package/lib/esm/components/user-image/userImage.styles.js.map +1 -0
  147. package/lib/esm/index.js +15 -1
  148. package/lib/esm/index.js.map +1 -1
  149. package/lib/types/components/navigation-layout/NavigationLayout.constants.d.ts +7 -0
  150. package/lib/types/components/navigation-layout/NavigationLayout.context.d.ts +15 -0
  151. package/lib/types/components/navigation-layout/NavigationLayout.d.ts +4 -0
  152. package/lib/types/components/navigation-layout/NavigationLayout.styles.d.ts +19 -0
  153. package/lib/types/components/navigation-layout/NavigationLayout.types.d.ts +125 -0
  154. package/lib/types/components/navigation-layout/NavigationLayout.utils.d.ts +22 -0
  155. package/lib/types/components/navigation-layout/navigation-header/NavigationHeader.d.ts +4 -0
  156. package/lib/types/components/navigation-layout/navigation-header/NavigationHeader.styles.d.ts +9 -0
  157. package/lib/types/components/navigation-layout/navigation-header/NavigationHeader.types.d.ts +10 -0
  158. package/lib/types/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.d.ts +8 -0
  159. package/lib/types/components/navigation-layout/navigation-header/menu-toggle/MenuToggle.styles.d.ts +3 -0
  160. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.context.d.ts +19 -0
  161. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.d.ts +4 -0
  162. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.styles.d.ts +27 -0
  163. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.types.d.ts +54 -0
  164. package/lib/types/components/navigation-layout/navigation-sidebar/NavigationSidebar.utils.d.ts +22 -0
  165. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.d.ts +6 -0
  166. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-divider/SidebarDivider.styles.d.ts +6 -0
  167. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.d.ts +22 -0
  168. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.d.ts +9 -0
  169. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.d.ts +26 -0
  170. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.d.ts +9 -0
  171. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.d.ts +10 -0
  172. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.hooks.d.ts +51 -0
  173. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.styles.d.ts +24 -0
  174. package/lib/types/components/navigation-layout/navigation-sidebar/sidebar-group/sidebar-item/SidebarItem.utils.d.ts +23 -0
  175. package/lib/types/components/split-layout/SplitLayout.d.ts +4 -0
  176. package/lib/types/components/split-layout/SplitLayout.styles.d.ts +12 -0
  177. package/lib/types/components/split-layout/SplitLayout.types.d.ts +19 -0
  178. package/lib/types/components/split-layout/SplitLayout.utils.d.ts +8 -0
  179. package/lib/types/components/split-layout/resize-handle/ResizeHandle.d.ts +11 -0
  180. package/lib/types/components/split-layout/resize-handle/ResizeHandle.hooks.d.ts +9 -0
  181. package/lib/types/components/split-layout/resize-handle/ResizeHandle.styles.d.ts +15 -0
  182. package/lib/types/components/user-image/UserImage.d.ts +4 -0
  183. package/lib/types/components/user-image/UserImage.types.d.ts +8 -0
  184. package/lib/types/components/user-image/userImage.styles.d.ts +10 -0
  185. package/lib/types/index.d.ts +10 -2
  186. package/package.json +3 -3
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSidebarGroupReorderContext = exports.SidebarGroupReorderProvider = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
9
+ const SidebarGroupReorderContext = /*#__PURE__*/(0, _react.createContext)(null);
10
+ const SidebarGroupReorderProvider = ({
11
+ children,
12
+ value
13
+ }) => /*#__PURE__*/_react.default.createElement(SidebarGroupReorderContext.Provider, {
14
+ value: value
15
+ }, children);
16
+ exports.SidebarGroupReorderProvider = SidebarGroupReorderProvider;
17
+ SidebarGroupReorderProvider.displayName = 'SidebarGroupReorderProvider';
18
+ const useSidebarGroupReorderContext = () => {
19
+ const context = (0, _react.useContext)(SidebarGroupReorderContext);
20
+ if (!context) {
21
+ throw new Error('useSidebarGroupReorderContext must be used within SidebarGroupReorderProvider.');
22
+ }
23
+ return context;
24
+ };
25
+ exports.useSidebarGroupReorderContext = useSidebarGroupReorderContext;
26
+ //# sourceMappingURL=SidebarGroup.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarGroup.context.js","names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SidebarGroupReorderContext","createContext","SidebarGroupReorderProvider","children","value","createElement","Provider","exports","displayName","useSidebarGroupReorderContext","context","useContext","Error"],"sources":["../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.context.tsx"],"sourcesContent":["import React, { ReactNode, createContext, useContext } from 'react';\nimport {\n NavigationLayoutItem,\n NavigationLayoutItemReorderSource,\n NavigationLayoutItemReorderTarget,\n} from '../../NavigationLayout.types';\n\ninterface SidebarGroupReorderContextValue {\n draggedItemId?: NavigationLayoutItem['id'];\n dropTarget: NavigationLayoutItemReorderTarget | null;\n isDragging: boolean;\n isReorderEnabled: boolean;\n onDragEnd: VoidFunction;\n onDragStart: (\n event: React.DragEvent<HTMLDivElement>,\n item: NavigationLayoutItemReorderSource,\n ) => void;\n onDrop: (target: NavigationLayoutItemReorderTarget) => void;\n onDropTargetChange: (target: NavigationLayoutItemReorderTarget) => void;\n}\n\ninterface SidebarGroupReorderProviderProps {\n children: ReactNode;\n value: SidebarGroupReorderContextValue;\n}\n\nconst SidebarGroupReorderContext = createContext<SidebarGroupReorderContextValue | null>(null);\n\nexport const SidebarGroupReorderProvider = ({\n children,\n value,\n}: SidebarGroupReorderProviderProps) => (\n <SidebarGroupReorderContext.Provider value={value}>\n {children}\n </SidebarGroupReorderContext.Provider>\n);\n\nSidebarGroupReorderProvider.displayName = 'SidebarGroupReorderProvider';\n\nexport const useSidebarGroupReorderContext = (): SidebarGroupReorderContextValue => {\n const context = useContext(SidebarGroupReorderContext);\n\n if (!context) {\n throw new Error(\n 'useSidebarGroupReorderContext must be used within SidebarGroupReorderProvider.',\n );\n }\n\n return context;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAoE,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AA0BpE,MAAMkB,0BAA0B,gBAAG,IAAAC,oBAAa,EAAyC,IAAI,CAAC;AAEvF,MAAMC,2BAA2B,GAAGA,CAAC;EACxCC,QAAQ;EACRC;AAC8B,CAAC,kBAC/B1B,MAAA,CAAAa,OAAA,CAAAc,aAAA,CAACL,0BAA0B,CAACM,QAAQ;EAACF,KAAK,EAAEA;AAAM,GAC7CD,QACgC,CACxC;AAACI,OAAA,CAAAL,2BAAA,GAAAA,2BAAA;AAEFA,2BAA2B,CAACM,WAAW,GAAG,6BAA6B;AAEhE,MAAMC,6BAA6B,GAAGA,CAAA,KAAuC;EAChF,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACX,0BAA0B,CAAC;EAEtD,IAAI,CAACU,OAAO,EAAE;IACV,MAAM,IAAIE,KAAK,CACX,gFACJ,CAAC;EACL;EAEA,OAAOF,OAAO;AAClB,CAAC;AAACH,OAAA,CAAAE,6BAAA,GAAAA,6BAAA","ignoreList":[]}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSidebarGroupReorder = void 0;
7
+ var _react = require("react");
8
+ var _NavigationLayout = require("../../NavigationLayout.utils");
9
+ const setDragMoveEffect = event => {
10
+ const {
11
+ dataTransfer
12
+ } = event;
13
+ dataTransfer.dropEffect = 'move';
14
+ };
15
+ const useSidebarGroupReorder = ({
16
+ groupId,
17
+ isCompact,
18
+ isReorderable,
19
+ items,
20
+ onItemReorder
21
+ }) => {
22
+ const [draggedItem, setDraggedItem] = (0, _react.useState)(null);
23
+ const [dropTarget, setDropTarget] = (0, _react.useState)(null);
24
+ const isReorderEnabled = (0, _react.useMemo)(() => Boolean(isReorderable && !isCompact && typeof onItemReorder === 'function'), [isCompact, isReorderable, onItemReorder]);
25
+ const resetDragState = (0, _react.useCallback)(() => {
26
+ setDraggedItem(null);
27
+ setDropTarget(null);
28
+ }, []);
29
+ const createReorderEvent = (0, _react.useCallback)(target => {
30
+ if (!draggedItem) {
31
+ return null;
32
+ }
33
+ return {
34
+ groupId,
35
+ itemId: draggedItem.itemId,
36
+ source: draggedItem,
37
+ target
38
+ };
39
+ }, [draggedItem, groupId]);
40
+ const handleDragStart = (0, _react.useCallback)((event, item) => {
41
+ if (!isReorderEnabled) {
42
+ return;
43
+ }
44
+ const {
45
+ dataTransfer
46
+ } = event;
47
+ dataTransfer.effectAllowed = 'move';
48
+ dataTransfer.setData('text/plain', item.itemId);
49
+ setDraggedItem(item);
50
+ setDropTarget(null);
51
+ }, [isReorderEnabled]);
52
+ const handleDropTargetChange = (0, _react.useCallback)(target => {
53
+ const nextEvent = createReorderEvent(target);
54
+ if (!nextEvent || !(0, _NavigationLayout.isNavigationLayoutItemReorderEventValid)({
55
+ items,
56
+ event: nextEvent
57
+ })) {
58
+ setDropTarget(null);
59
+ return;
60
+ }
61
+ setDropTarget(target);
62
+ }, [createReorderEvent, items]);
63
+ const handleDrop = (0, _react.useCallback)(target => {
64
+ const nextEvent = createReorderEvent(target);
65
+ if (!nextEvent || typeof onItemReorder !== 'function' || !(0, _NavigationLayout.isNavigationLayoutItemReorderEventValid)({
66
+ items,
67
+ event: nextEvent
68
+ })) {
69
+ resetDragState();
70
+ return;
71
+ }
72
+ onItemReorder(nextEvent);
73
+ resetDragState();
74
+ }, [createReorderEvent, items, onItemReorder, resetDragState]);
75
+ const groupEndTarget = (0, _react.useMemo)(() => {
76
+ var _items;
77
+ return {
78
+ itemId: (_items = items[items.length - 1]) === null || _items === void 0 ? void 0 : _items.id,
79
+ parentIds: [],
80
+ index: items.length,
81
+ placement: 'after'
82
+ };
83
+ }, [items]);
84
+ const isGroupEndTargetActive = (0, _react.useMemo)(() => (0, _NavigationLayout.isNavigationLayoutReorderTargetEqual)({
85
+ targetA: dropTarget,
86
+ targetB: groupEndTarget
87
+ }), [dropTarget, groupEndTarget]);
88
+ const handleGroupEndDragOver = (0, _react.useCallback)(event => {
89
+ event.preventDefault();
90
+ setDragMoveEffect(event);
91
+ handleDropTargetChange(groupEndTarget);
92
+ }, [groupEndTarget, handleDropTargetChange]);
93
+ const handleGroupEndDrop = (0, _react.useCallback)(event => {
94
+ event.preventDefault();
95
+ event.stopPropagation();
96
+ handleDrop(groupEndTarget);
97
+ }, [groupEndTarget, handleDrop]);
98
+ const handleGroupDragOver = (0, _react.useCallback)(event => {
99
+ if (!dropTarget) {
100
+ return;
101
+ }
102
+ event.preventDefault();
103
+ setDragMoveEffect(event);
104
+ }, [dropTarget]);
105
+ const handleGroupDrop = (0, _react.useCallback)(event => {
106
+ if (!dropTarget) {
107
+ return;
108
+ }
109
+ event.preventDefault();
110
+ handleDrop(dropTarget);
111
+ }, [dropTarget, handleDrop]);
112
+ return {
113
+ draggedItemId: draggedItem === null || draggedItem === void 0 ? void 0 : draggedItem.itemId,
114
+ dropTarget,
115
+ isDragging: draggedItem !== null,
116
+ isGroupEndTargetActive,
117
+ isReorderEnabled,
118
+ handleDragEnd: resetDragState,
119
+ handleDragStart,
120
+ handleDrop,
121
+ handleDropTargetChange,
122
+ handleGroupDragOver,
123
+ handleGroupDrop,
124
+ handleGroupEndDragOver,
125
+ handleGroupEndDrop
126
+ };
127
+ };
128
+ exports.useSidebarGroupReorder = useSidebarGroupReorder;
129
+ //# sourceMappingURL=SidebarGroup.hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarGroup.hooks.js","names":["_react","require","_NavigationLayout","setDragMoveEffect","event","dataTransfer","dropEffect","useSidebarGroupReorder","groupId","isCompact","isReorderable","items","onItemReorder","draggedItem","setDraggedItem","useState","dropTarget","setDropTarget","isReorderEnabled","useMemo","Boolean","resetDragState","useCallback","createReorderEvent","target","itemId","source","handleDragStart","item","effectAllowed","setData","handleDropTargetChange","nextEvent","isNavigationLayoutItemReorderEventValid","handleDrop","groupEndTarget","_items","length","id","parentIds","index","placement","isGroupEndTargetActive","isNavigationLayoutReorderTargetEqual","targetA","targetB","handleGroupEndDragOver","preventDefault","handleGroupEndDrop","stopPropagation","handleGroupDragOver","handleGroupDrop","draggedItemId","isDragging","handleDragEnd","exports"],"sources":["../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.hooks.ts"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport {\n NavigationLayoutGroup,\n NavigationLayoutItem,\n NavigationLayoutItemReorderEvent,\n NavigationLayoutItemReorderSource,\n NavigationLayoutItemReorderTarget,\n NavigationLayoutProps,\n} from '../../NavigationLayout.types';\nimport {\n isNavigationLayoutItemReorderEventValid,\n isNavigationLayoutReorderTargetEqual,\n} from '../../NavigationLayout.utils';\n\ninterface UseSidebarGroupReorderOptions {\n groupId: NavigationLayoutGroup['id'];\n isCompact: boolean;\n isReorderable?: NavigationLayoutGroup['isReorderable'];\n items: NavigationLayoutItem[];\n onItemReorder?: NavigationLayoutProps['onItemReorder'];\n}\n\ninterface UseSidebarGroupReorderResult {\n draggedItemId?: NavigationLayoutItem['id'];\n dropTarget: NavigationLayoutItemReorderTarget | null;\n isDragging: boolean;\n isGroupEndTargetActive: boolean;\n isReorderEnabled: boolean;\n handleDragEnd: VoidFunction;\n handleDragStart: (\n event: React.DragEvent<HTMLDivElement>,\n item: NavigationLayoutItemReorderSource,\n ) => void;\n handleDrop: (target: NavigationLayoutItemReorderTarget) => void;\n handleDropTargetChange: (target: NavigationLayoutItemReorderTarget) => void;\n handleGroupDragOver: (event: React.DragEvent<HTMLDivElement>) => void;\n handleGroupDrop: (event: React.DragEvent<HTMLDivElement>) => void;\n handleGroupEndDragOver: (event: React.DragEvent<HTMLDivElement>) => void;\n handleGroupEndDrop: (event: React.DragEvent<HTMLDivElement>) => void;\n}\n\nconst setDragMoveEffect = (event: React.DragEvent<HTMLDivElement>): void => {\n const { dataTransfer } = event;\n\n dataTransfer.dropEffect = 'move';\n};\n\nexport const useSidebarGroupReorder = ({\n groupId,\n isCompact,\n isReorderable,\n items,\n onItemReorder,\n}: UseSidebarGroupReorderOptions): UseSidebarGroupReorderResult => {\n const [draggedItem, setDraggedItem] = useState<NavigationLayoutItemReorderSource | null>(null);\n const [dropTarget, setDropTarget] = useState<NavigationLayoutItemReorderTarget | null>(null);\n\n const isReorderEnabled = useMemo(\n () => Boolean(isReorderable && !isCompact && typeof onItemReorder === 'function'),\n [isCompact, isReorderable, onItemReorder],\n );\n\n const resetDragState = useCallback((): void => {\n setDraggedItem(null);\n setDropTarget(null);\n }, []);\n\n const createReorderEvent = useCallback(\n (target: NavigationLayoutItemReorderTarget): NavigationLayoutItemReorderEvent | null => {\n if (!draggedItem) {\n return null;\n }\n\n return {\n groupId,\n itemId: draggedItem.itemId,\n source: draggedItem,\n target,\n };\n },\n [draggedItem, groupId],\n );\n\n const handleDragStart = useCallback(\n (event: React.DragEvent<HTMLDivElement>, item: NavigationLayoutItemReorderSource): void => {\n if (!isReorderEnabled) {\n return;\n }\n\n const { dataTransfer } = event;\n\n dataTransfer.effectAllowed = 'move';\n dataTransfer.setData('text/plain', item.itemId);\n\n setDraggedItem(item);\n setDropTarget(null);\n },\n [isReorderEnabled],\n );\n\n const handleDropTargetChange = useCallback(\n (target: NavigationLayoutItemReorderTarget): void => {\n const nextEvent = createReorderEvent(target);\n\n if (\n !nextEvent ||\n !isNavigationLayoutItemReorderEventValid({ items, event: nextEvent })\n ) {\n setDropTarget(null);\n\n return;\n }\n\n setDropTarget(target);\n },\n [createReorderEvent, items],\n );\n\n const handleDrop = useCallback(\n (target: NavigationLayoutItemReorderTarget): void => {\n const nextEvent = createReorderEvent(target);\n\n if (\n !nextEvent ||\n typeof onItemReorder !== 'function' ||\n !isNavigationLayoutItemReorderEventValid({ items, event: nextEvent })\n ) {\n resetDragState();\n\n return;\n }\n\n onItemReorder(nextEvent);\n resetDragState();\n },\n [createReorderEvent, items, onItemReorder, resetDragState],\n );\n\n const groupEndTarget = useMemo<NavigationLayoutItemReorderTarget>(\n () => ({\n itemId: items[items.length - 1]?.id,\n parentIds: [],\n index: items.length,\n placement: 'after',\n }),\n [items],\n );\n\n const isGroupEndTargetActive = useMemo(\n () =>\n isNavigationLayoutReorderTargetEqual({\n targetA: dropTarget,\n targetB: groupEndTarget,\n }),\n [dropTarget, groupEndTarget],\n );\n\n const handleGroupEndDragOver = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n event.preventDefault();\n setDragMoveEffect(event);\n handleDropTargetChange(groupEndTarget);\n },\n [groupEndTarget, handleDropTargetChange],\n );\n\n const handleGroupEndDrop = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n event.preventDefault();\n event.stopPropagation();\n handleDrop(groupEndTarget);\n },\n [groupEndTarget, handleDrop],\n );\n\n const handleGroupDragOver = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n if (!dropTarget) {\n return;\n }\n\n event.preventDefault();\n setDragMoveEffect(event);\n },\n [dropTarget],\n );\n\n const handleGroupDrop = useCallback(\n (event: React.DragEvent<HTMLDivElement>): void => {\n if (!dropTarget) {\n return;\n }\n\n event.preventDefault();\n handleDrop(dropTarget);\n },\n [dropTarget, handleDrop],\n );\n\n return {\n draggedItemId: draggedItem?.itemId,\n dropTarget,\n isDragging: draggedItem !== null,\n isGroupEndTargetActive,\n isReorderEnabled,\n handleDragEnd: resetDragState,\n handleDragStart,\n handleDrop,\n handleDropTargetChange,\n handleGroupDragOver,\n handleGroupDrop,\n handleGroupEndDragOver,\n handleGroupEndDrop,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _SidebarGroup = require("./SidebarGroup.styles");
9
+ var _SidebarItem = _interopRequireDefault(require("./sidebar-item/SidebarItem"));
10
+ var _SidebarGroup2 = require("./SidebarGroup.context");
11
+ var _SidebarGroup3 = require("./SidebarGroup.hooks");
12
+ var _NavigationSidebar = require("../NavigationSidebar.context");
13
+ var _NavigationLayout = require("../../NavigationLayout.context");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
+ const SidebarGroup = ({
17
+ groupId,
18
+ items,
19
+ isReorderable
20
+ }) => {
21
+ const {
22
+ isCompact
23
+ } = (0, _NavigationSidebar.useNavigationSidebarContext)();
24
+ const {
25
+ onItemReorder
26
+ } = (0, _NavigationLayout.useNavigationLayoutContext)();
27
+ const {
28
+ draggedItemId,
29
+ dropTarget,
30
+ isDragging,
31
+ isGroupEndTargetActive,
32
+ isReorderEnabled,
33
+ handleDragEnd,
34
+ handleDragStart,
35
+ handleDrop,
36
+ handleDropTargetChange,
37
+ handleGroupDragOver,
38
+ handleGroupDrop,
39
+ handleGroupEndDragOver,
40
+ handleGroupEndDrop
41
+ } = (0, _SidebarGroup3.useSidebarGroupReorder)({
42
+ groupId,
43
+ isCompact,
44
+ isReorderable,
45
+ items,
46
+ onItemReorder
47
+ });
48
+ const contextValue = (0, _react.useMemo)(() => ({
49
+ draggedItemId,
50
+ dropTarget,
51
+ isDragging,
52
+ isReorderEnabled,
53
+ onDragEnd: handleDragEnd,
54
+ onDragStart: handleDragStart,
55
+ onDrop: handleDrop,
56
+ onDropTargetChange: handleDropTargetChange
57
+ }), [draggedItemId, dropTarget, handleDragEnd, handleDragStart, handleDrop, handleDropTargetChange, isDragging, isReorderEnabled]);
58
+ const content = (0, _react.useMemo)(() => items.map((item, index) => /*#__PURE__*/_react.default.createElement(_SidebarItem.default, {
59
+ key: item.id,
60
+ item: item,
61
+ index: index,
62
+ parentIds: []
63
+ })), [items]);
64
+ return /*#__PURE__*/_react.default.createElement(_SidebarGroup2.SidebarGroupReorderProvider, {
65
+ value: contextValue
66
+ }, /*#__PURE__*/_react.default.createElement(_SidebarGroup.StyledSidebarGroup, {
67
+ onDragOver: handleGroupDragOver,
68
+ onDrop: handleGroupDrop
69
+ }, content, isReorderEnabled && /*#__PURE__*/_react.default.createElement(_SidebarGroup.StyledSidebarDropZone, {
70
+ $isActive: isGroupEndTargetActive,
71
+ $isDragging: isDragging,
72
+ $placement: "after",
73
+ onDragOver: handleGroupEndDragOver,
74
+ onDrop: handleGroupEndDrop
75
+ })));
76
+ };
77
+ SidebarGroup.displayName = 'SidebarGroup';
78
+ var _default = exports.default = /*#__PURE__*/(0, _react.memo)(SidebarGroup);
79
+ //# sourceMappingURL=SidebarGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarGroup.js","names":["_react","_interopRequireWildcard","require","_SidebarGroup","_SidebarItem","_interopRequireDefault","_SidebarGroup2","_SidebarGroup3","_NavigationSidebar","_NavigationLayout","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SidebarGroup","groupId","items","isReorderable","isCompact","useNavigationSidebarContext","onItemReorder","useNavigationLayoutContext","draggedItemId","dropTarget","isDragging","isGroupEndTargetActive","isReorderEnabled","handleDragEnd","handleDragStart","handleDrop","handleDropTargetChange","handleGroupDragOver","handleGroupDrop","handleGroupEndDragOver","handleGroupEndDrop","useSidebarGroupReorder","contextValue","useMemo","onDragEnd","onDragStart","onDrop","onDropTargetChange","content","map","item","index","createElement","key","id","parentIds","SidebarGroupReorderProvider","value","StyledSidebarGroup","onDragOver","StyledSidebarDropZone","$isActive","$isDragging","$placement","displayName","_default","exports","memo"],"sources":["../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.tsx"],"sourcesContent":["import React, { FC, memo, useMemo } from 'react';\nimport { StyledSidebarDropZone, StyledSidebarGroup } from './SidebarGroup.styles';\nimport { NavigationLayoutGroup, NavigationLayoutItem } from '../../NavigationLayout.types';\nimport SidebarItem from './sidebar-item/SidebarItem';\nimport { SidebarGroupReorderProvider } from './SidebarGroup.context';\nimport { useSidebarGroupReorder } from './SidebarGroup.hooks';\nimport { useNavigationSidebarContext } from '../NavigationSidebar.context';\nimport { useNavigationLayoutContext } from '../../NavigationLayout.context';\n\ninterface SidebarGroupProps {\n groupId: NavigationLayoutGroup['id'];\n items: NavigationLayoutItem[];\n isReorderable?: NavigationLayoutGroup['isReorderable'];\n}\n\nconst SidebarGroup: FC<SidebarGroupProps> = ({ groupId, items, isReorderable }) => {\n const { isCompact } = useNavigationSidebarContext();\n const { onItemReorder } = useNavigationLayoutContext();\n const {\n draggedItemId,\n dropTarget,\n isDragging,\n isGroupEndTargetActive,\n isReorderEnabled,\n handleDragEnd,\n handleDragStart,\n handleDrop,\n handleDropTargetChange,\n handleGroupDragOver,\n handleGroupDrop,\n handleGroupEndDragOver,\n handleGroupEndDrop,\n } = useSidebarGroupReorder({\n groupId,\n isCompact,\n isReorderable,\n items,\n onItemReorder,\n });\n\n const contextValue = useMemo(\n () => ({\n draggedItemId,\n dropTarget,\n isDragging,\n isReorderEnabled,\n onDragEnd: handleDragEnd,\n onDragStart: handleDragStart,\n onDrop: handleDrop,\n onDropTargetChange: handleDropTargetChange,\n }),\n [\n draggedItemId,\n dropTarget,\n handleDragEnd,\n handleDragStart,\n handleDrop,\n handleDropTargetChange,\n isDragging,\n isReorderEnabled,\n ],\n );\n\n const content = useMemo(\n () =>\n items.map((item, index) => (\n <SidebarItem key={item.id} item={item} index={index} parentIds={[]} />\n )),\n [items],\n );\n\n return (\n <SidebarGroupReorderProvider value={contextValue}>\n <StyledSidebarGroup onDragOver={handleGroupDragOver} onDrop={handleGroupDrop}>\n {content}\n {isReorderEnabled && (\n <StyledSidebarDropZone\n $isActive={isGroupEndTargetActive}\n $isDragging={isDragging}\n $placement=\"after\"\n onDragOver={handleGroupEndDragOver}\n onDrop={handleGroupEndDrop}\n />\n )}\n </StyledSidebarGroup>\n </SidebarGroupReorderProvider>\n );\n};\n\nSidebarGroup.displayName = 'SidebarGroup';\n\nexport default memo(SidebarGroup);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledSidebarGroup = exports.StyledSidebarDropZone = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const StyledSidebarGroup = exports.StyledSidebarGroup = _styledComponents.default.div`
10
+ position: relative;
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 2px;
14
+ `;
15
+ const StyledSidebarDropZone = exports.StyledSidebarDropZone = _styledComponents.default.div`
16
+ position: absolute;
17
+ left: ${({
18
+ $depth = 0
19
+ }) => $depth * 8}px;
20
+ right: 0;
21
+ height: 24px;
22
+ z-index: 1;
23
+ pointer-events: ${({
24
+ $isDragging
25
+ }) => $isDragging ? 'auto' : 'none'};
26
+
27
+ ${({
28
+ $placement = 'before'
29
+ }) => {
30
+ if ($placement === 'after') {
31
+ return `
32
+ top: 100%;
33
+ transform: translateY(-50%);
34
+ `;
35
+ }
36
+ if ($placement === 'inside') {
37
+ return `
38
+ top: 42px;
39
+ transform: translateY(-50%);
40
+ `;
41
+ }
42
+ return `
43
+ top: 0;
44
+ transform: translateY(-50%);
45
+ `;
46
+ }}
47
+
48
+ &::after {
49
+ content: '';
50
+ position: absolute;
51
+ left: 0;
52
+ right: 0;
53
+ top: 50%;
54
+ height: 2px;
55
+ transform: translateY(-50%);
56
+ border-radius: 999px;
57
+ background-color: ${({
58
+ $isActive
59
+ }) => $isActive ? 'rgba(255, 255, 255, 0.9)' : 'transparent'};
60
+ box-shadow: ${({
61
+ $isActive
62
+ }) => $isActive ? '0 0 0 1px rgba(255, 255, 255, 0.25)' : 'none'};
63
+ opacity: ${({
64
+ $isActive
65
+ }) => $isActive ? 1 : 0};
66
+ transition: opacity 0.15s ease;
67
+ }
68
+ `;
69
+ //# sourceMappingURL=SidebarGroup.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarGroup.styles.js","names":["_styledComponents","_interopRequireDefault","require","e","__esModule","default","StyledSidebarGroup","exports","styled","div","StyledSidebarDropZone","$depth","$isDragging","$placement","$isActive"],"sources":["../../../../../../src/components/navigation-layout/navigation-sidebar/sidebar-group/SidebarGroup.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledSidebarGroup = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 2px;\n`;\n\ninterface StyledSidebarDropZoneProps {\n $depth?: number;\n $isActive: boolean;\n $isDragging: boolean;\n $placement?: 'before' | 'after' | 'inside';\n}\n\nexport const StyledSidebarDropZone = styled.div<StyledSidebarDropZoneProps>`\n position: absolute;\n left: ${({ $depth = 0 }) => $depth * 8}px;\n right: 0;\n height: 24px;\n z-index: 1;\n pointer-events: ${({ $isDragging }) => ($isDragging ? 'auto' : 'none')};\n\n ${({ $placement = 'before' }) => {\n if ($placement === 'after') {\n return `\n top: 100%;\n transform: translateY(-50%);\n `;\n }\n\n if ($placement === 'inside') {\n return `\n top: 42px;\n transform: translateY(-50%);\n `;\n }\n\n return `\n top: 0;\n transform: translateY(-50%);\n `;\n }}\n\n &::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 50%;\n height: 2px;\n transform: translateY(-50%);\n border-radius: 999px;\n background-color: ${({ $isActive }) =>\n $isActive ? 'rgba(255, 255, 255, 0.9)' : 'transparent'};\n box-shadow: ${({ $isActive }) =>\n $isActive ? '0 0 0 1px rgba(255, 255, 255, 0.25)' : 'none'};\n opacity: ${({ $isActive }) => ($isActive ? 1 : 0)};\n transition: opacity 0.15s ease;\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhC,MAAMG,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,yBAAM,CAACC,GAAG;AAC5C;AACA;AACA;AACA;AACA,CAAC;AASM,MAAMC,qBAAqB,GAAAH,OAAA,CAAAG,qBAAA,GAAGF,yBAAM,CAACC,GAA+B;AAC3E;AACA,YAAY,CAAC;EAAEE,MAAM,GAAG;AAAE,CAAC,KAAKA,MAAM,GAAG,CAAC;AAC1C;AACA;AACA;AACA,sBAAsB,CAAC;EAAEC;AAAY,CAAC,KAAMA,WAAW,GAAG,MAAM,GAAG,MAAO;AAC1E;AACA,MAAM,CAAC;EAAEC,UAAU,GAAG;AAAS,CAAC,KAAK;EAC7B,IAAIA,UAAU,KAAK,OAAO,EAAE;IACxB,OAAO;AACnB;AACA;AACA,aAAa;EACL;EAEA,IAAIA,UAAU,KAAK,QAAQ,EAAE;IACzB,OAAO;AACnB;AACA;AACA,aAAa;EACL;EAEA,OAAO;AACf;AACA;AACA,SAAS;AACL,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,CAAC;EAAEC;AAAU,CAAC,KAC9BA,SAAS,GAAG,0BAA0B,GAAG,aAAa;AAClE,sBAAsB,CAAC;EAAEA;AAAU,CAAC,KACxBA,SAAS,GAAG,qCAAqC,GAAG,MAAM;AACtE,mBAAmB,CAAC;EAAEA;AAAU,CAAC,KAAMA,SAAS,GAAG,CAAC,GAAG,CAAE;AACzD;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSidebarItemReorder = exports.useSidebarItemPopup = void 0;
7
+ var _react = require("react");
8
+ var _SidebarItem = require("./SidebarItem.utils");
9
+ var _NavigationLayout = require("../../../NavigationLayout.utils");
10
+ const setDragMoveEffect = event => {
11
+ const {
12
+ dataTransfer
13
+ } = event;
14
+ dataTransfer.dropEffect = 'move';
15
+ };
16
+ const resolveSidebarContainer = item => {
17
+ if (!item) {
18
+ return null;
19
+ }
20
+ return item.closest('[data-navigation-sidebar-root="true"]') ?? document.getElementById('sidebar');
21
+ };
22
+ const useSidebarItemPopup = ({
23
+ isDisabled,
24
+ shouldShowCollapsedLabel
25
+ }) => {
26
+ const [coordinates, setCoordinates] = (0, _react.useState)(null);
27
+ const [isHovered, setIsHovered] = (0, _react.useState)(false);
28
+ const [popupContainer, setPopupContainer] = (0, _react.useState)(null);
29
+ const animationFrameIdRef = (0, _react.useRef)(null);
30
+ const lastCoordinatesRef = (0, _react.useRef)(null);
31
+ const itemRef = (0, _react.useRef)(null);
32
+ const resetCoordinates = (0, _react.useCallback)(() => {
33
+ lastCoordinatesRef.current = null;
34
+ setCoordinates(null);
35
+ }, []);
36
+ const resolvePopupContainer = (0, _react.useCallback)(() => {
37
+ const nextContainer = resolveSidebarContainer(itemRef.current);
38
+ setPopupContainer(previousContainer => previousContainer === nextContainer ? previousContainer : nextContainer);
39
+ return nextContainer;
40
+ }, []);
41
+ const updateCoordinates = (0, _react.useCallback)(() => {
42
+ const nextContainer = popupContainer ?? resolvePopupContainer();
43
+ const itemElement = itemRef.current;
44
+ if (!nextContainer || !itemElement) {
45
+ resetCoordinates();
46
+ return;
47
+ }
48
+ const nextCoordinates = (0, _SidebarItem.getSidebarItemPopupCoordinates)({
49
+ container: nextContainer,
50
+ item: itemElement
51
+ });
52
+ if ((0, _SidebarItem.areCoordinatesEqual)({
53
+ coordinatesA: lastCoordinatesRef.current,
54
+ coordinatesB: nextCoordinates
55
+ })) {
56
+ return;
57
+ }
58
+ lastCoordinatesRef.current = nextCoordinates;
59
+ setCoordinates(nextCoordinates);
60
+ }, [popupContainer, resetCoordinates, resolvePopupContainer]);
61
+ const scheduleCoordinatesUpdate = (0, _react.useCallback)(() => {
62
+ if (animationFrameIdRef.current !== null) {
63
+ return;
64
+ }
65
+ animationFrameIdRef.current = requestAnimationFrame(() => {
66
+ animationFrameIdRef.current = null;
67
+ updateCoordinates();
68
+ });
69
+ }, [updateCoordinates]);
70
+ const handleMouseEnter = (0, _react.useCallback)(() => {
71
+ resolvePopupContainer();
72
+ setIsHovered(true);
73
+ scheduleCoordinatesUpdate();
74
+ }, [resolvePopupContainer, scheduleCoordinatesUpdate]);
75
+ const handleMouseLeave = (0, _react.useCallback)(() => {
76
+ setIsHovered(false);
77
+ resetCoordinates();
78
+ }, [resetCoordinates]);
79
+ (0, _react.useEffect)(() => {
80
+ resolvePopupContainer();
81
+ }, [resolvePopupContainer]);
82
+ (0, _react.useEffect)(() => {
83
+ if (!isHovered || isDisabled || !shouldShowCollapsedLabel) {
84
+ resetCoordinates();
85
+ return undefined;
86
+ }
87
+ const nextContainer = popupContainer ?? resolvePopupContainer();
88
+ const itemElement = itemRef.current;
89
+ if (!nextContainer || !itemElement) {
90
+ return undefined;
91
+ }
92
+ scheduleCoordinatesUpdate();
93
+ const resizeObserver = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(() => {
94
+ scheduleCoordinatesUpdate();
95
+ });
96
+ resizeObserver === null || resizeObserver === void 0 || resizeObserver.observe(nextContainer);
97
+ resizeObserver === null || resizeObserver === void 0 || resizeObserver.observe(itemElement);
98
+ const scrollableElements = (0, _SidebarItem.getScrollableAncestorElements)({
99
+ element: itemElement,
100
+ boundaryElement: nextContainer
101
+ });
102
+ scrollableElements.forEach(element => {
103
+ element.addEventListener('scroll', scheduleCoordinatesUpdate, {
104
+ passive: true
105
+ });
106
+ });
107
+ window.addEventListener('resize', scheduleCoordinatesUpdate);
108
+ return () => {
109
+ scrollableElements.forEach(element => {
110
+ element.removeEventListener('scroll', scheduleCoordinatesUpdate);
111
+ });
112
+ window.removeEventListener('resize', scheduleCoordinatesUpdate);
113
+ resizeObserver === null || resizeObserver === void 0 || resizeObserver.disconnect();
114
+ if (animationFrameIdRef.current !== null) {
115
+ cancelAnimationFrame(animationFrameIdRef.current);
116
+ animationFrameIdRef.current = null;
117
+ }
118
+ };
119
+ }, [isDisabled, isHovered, popupContainer, resetCoordinates, resolvePopupContainer, scheduleCoordinatesUpdate, shouldShowCollapsedLabel]);
120
+ return {
121
+ coordinates,
122
+ handleMouseEnter,
123
+ handleMouseLeave,
124
+ isHovered,
125
+ itemRef,
126
+ popupContainer,
127
+ shouldRenderPopup: !isDisabled && !!shouldShowCollapsedLabel && isHovered && !!coordinates
128
+ };
129
+ };
130
+ exports.useSidebarItemPopup = useSidebarItemPopup;
131
+ const useSidebarItemReorder = ({
132
+ childItems,
133
+ draggedItemId,
134
+ dropTarget,
135
+ id,
136
+ index,
137
+ isDisabled,
138
+ isReorderEnabled,
139
+ onDragEnd,
140
+ onDragStart,
141
+ onDrop,
142
+ onDropInside,
143
+ onDropTargetChange,
144
+ parentIds
145
+ }) => {
146
+ const childParentIds = (0, _react.useMemo)(() => [...parentIds, id], [id, parentIds]);
147
+ const canDragItem = isReorderEnabled && !isDisabled;
148
+ const canDropInsideItem = isReorderEnabled && !isDisabled;
149
+ const currentItem = (0, _react.useMemo)(() => ({
150
+ itemId: id,
151
+ parentIds,
152
+ index
153
+ }), [id, index, parentIds]);
154
+ const beforeTarget = (0, _react.useMemo)(() => ({
155
+ itemId: id,
156
+ parentIds,
157
+ index,
158
+ placement: 'before'
159
+ }), [id, index, parentIds]);
160
+ const insideTarget = (0, _react.useMemo)(() => ({
161
+ itemId: id,
162
+ parentIds: childParentIds,
163
+ index: (childItems === null || childItems === void 0 ? void 0 : childItems.length) ?? 0,
164
+ placement: 'inside'
165
+ }), [childItems, childParentIds, id]);
166
+ const childListEndTarget = (0, _react.useMemo)(() => {
167
+ const lastChild = childItems === null || childItems === void 0 ? void 0 : childItems[childItems.length - 1];
168
+ if (!lastChild) {
169
+ return null;
170
+ }
171
+ return {
172
+ itemId: lastChild.id,
173
+ parentIds: childParentIds,
174
+ index: childItems.length,
175
+ placement: 'after'
176
+ };
177
+ }, [childItems, childParentIds]);
178
+ const isBeforeDropTargetActive = (0, _react.useMemo)(() => (0, _NavigationLayout.isNavigationLayoutReorderTargetEqual)({
179
+ targetA: dropTarget,
180
+ targetB: beforeTarget
181
+ }), [beforeTarget, dropTarget]);
182
+ const isInsideDropTargetActive = (0, _react.useMemo)(() => (0, _NavigationLayout.isNavigationLayoutReorderTargetEqual)({
183
+ targetA: dropTarget,
184
+ targetB: insideTarget
185
+ }), [dropTarget, insideTarget]);
186
+ const isChildListEndTargetActive = (0, _react.useMemo)(() => (0, _NavigationLayout.isNavigationLayoutReorderTargetEqual)({
187
+ targetA: dropTarget,
188
+ targetB: childListEndTarget
189
+ }), [childListEndTarget, dropTarget]);
190
+ const handleDragStart = (0, _react.useCallback)(event => {
191
+ if (!canDragItem) {
192
+ return;
193
+ }
194
+ onDragStart(event, currentItem);
195
+ }, [canDragItem, currentItem, onDragStart]);
196
+ const handleResolvedDragEnd = (0, _react.useCallback)(() => {
197
+ if (!canDragItem) {
198
+ return;
199
+ }
200
+ onDragEnd();
201
+ }, [canDragItem, onDragEnd]);
202
+ const handleBeforeDragOver = (0, _react.useCallback)(event => {
203
+ event.preventDefault();
204
+ setDragMoveEffect(event);
205
+ onDropTargetChange(beforeTarget);
206
+ }, [beforeTarget, onDropTargetChange]);
207
+ const handleBeforeDrop = (0, _react.useCallback)(event => {
208
+ event.preventDefault();
209
+ event.stopPropagation();
210
+ onDrop(beforeTarget);
211
+ }, [beforeTarget, onDrop]);
212
+ const handleInsideDragOver = (0, _react.useCallback)(event => {
213
+ if (!canDropInsideItem) {
214
+ return;
215
+ }
216
+ event.preventDefault();
217
+ setDragMoveEffect(event);
218
+ onDropTargetChange(insideTarget);
219
+ }, [canDropInsideItem, insideTarget, onDropTargetChange]);
220
+ const handleInsideDrop = (0, _react.useCallback)(event => {
221
+ if (!canDropInsideItem) {
222
+ return;
223
+ }
224
+ event.preventDefault();
225
+ event.stopPropagation();
226
+ onDropInside === null || onDropInside === void 0 || onDropInside();
227
+ onDrop(insideTarget);
228
+ }, [canDropInsideItem, insideTarget, onDrop, onDropInside]);
229
+ const handleChildListEndDragOver = (0, _react.useCallback)(event => {
230
+ if (!childListEndTarget) {
231
+ return;
232
+ }
233
+ event.preventDefault();
234
+ setDragMoveEffect(event);
235
+ onDropTargetChange(childListEndTarget);
236
+ }, [childListEndTarget, onDropTargetChange]);
237
+ const handleChildListEndDrop = (0, _react.useCallback)(event => {
238
+ if (!childListEndTarget) {
239
+ return;
240
+ }
241
+ event.preventDefault();
242
+ event.stopPropagation();
243
+ onDrop(childListEndTarget);
244
+ }, [childListEndTarget, onDrop]);
245
+ return {
246
+ canDragItem,
247
+ canDropInsideItem,
248
+ childParentIds,
249
+ childListEndTarget,
250
+ handleBeforeDragOver,
251
+ handleBeforeDrop,
252
+ handleChildListEndDragOver,
253
+ handleChildListEndDrop,
254
+ handleDragEnd: handleResolvedDragEnd,
255
+ handleDragStart,
256
+ handleInsideDragOver,
257
+ handleInsideDrop,
258
+ isBeforeDropTargetActive,
259
+ isChildListEndTargetActive,
260
+ isDragging: draggedItemId === id,
261
+ isInsideDropTargetActive
262
+ };
263
+ };
264
+ exports.useSidebarItemReorder = useSidebarItemReorder;
265
+ //# sourceMappingURL=SidebarItem.hooks.js.map