@gravity-ui/navigation 5.0.0 → 6.0.0-beta.1

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 (366) hide show
  1. package/build/cjs/assets/icons/{divider-collapsed-compact.svg.js → control-menu-button.svg.js} +7 -7
  2. package/build/cjs/assets/icons/control-menu-button.svg.js.map +1 -0
  3. package/build/cjs/components/AsideHeader/AsideHeader.css +1 -1
  4. package/build/cjs/components/AsideHeader/AsideHeader.js +3 -3
  5. package/build/cjs/components/AsideHeader/AsideHeader.js.map +1 -1
  6. package/build/cjs/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  7. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +4 -28
  8. package/build/cjs/components/AsideHeader/AsideHeaderContext.js +8 -9
  9. package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  10. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.css +1 -0
  11. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +12 -0
  12. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +44 -0
  13. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  14. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js +8 -0
  15. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js.map +1 -0
  16. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/index.d.ts +1 -0
  17. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  18. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +45 -103
  19. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  20. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  21. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.d.ts +0 -1
  22. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js +0 -2
  23. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
  24. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -0
  25. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  26. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  27. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +1 -0
  28. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  29. package/build/cjs/components/AsideHeader/components/AllPagesPanel/index.d.ts +1 -0
  30. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +4 -3
  31. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +15 -67
  32. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  33. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
  34. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js +29 -0
  35. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  36. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  37. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +1 -2
  38. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +11 -16
  39. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  40. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  41. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  42. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +10 -34
  43. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +51 -75
  44. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  45. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  46. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  47. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -25
  48. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +1 -17
  49. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +73 -60
  50. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  51. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  52. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +20 -0
  53. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +18 -0
  54. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +45 -0
  55. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -0
  56. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.d.ts +5 -0
  57. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.js +8 -0
  58. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.js.map +1 -0
  59. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +3 -0
  60. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +19 -0
  61. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -0
  62. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
  63. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -0
  64. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +9 -12
  65. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
  66. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
  67. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +27 -0
  68. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +171 -0
  69. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -0
  70. package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.d.ts +11 -0
  71. package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.js +68 -0
  72. package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.js.map +1 -0
  73. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +21 -5
  74. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +104 -55
  75. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  76. package/build/cjs/components/AsideHeader/components/FirstPanel.js +20 -45
  77. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
  78. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  79. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.d.ts +0 -2
  80. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +1 -12
  81. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  82. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  83. package/build/cjs/components/AsideHeader/components/Header.js +4 -13
  84. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
  85. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +1 -1
  86. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +3 -3
  87. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  88. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +1 -1
  89. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -4
  90. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +6 -18
  91. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  92. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +1 -1
  93. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  94. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +2 -7
  95. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  96. package/build/cjs/components/AsideHeader/components/Panels.d.ts +1 -1
  97. package/build/cjs/components/AsideHeader/components/Panels.js +3 -17
  98. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
  99. package/build/cjs/components/AsideHeader/i18n/en.json.js +1 -4
  100. package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -1
  101. package/build/cjs/components/AsideHeader/i18n/index.d.ts +4 -4
  102. package/build/cjs/components/AsideHeader/i18n/ru.json.js +1 -4
  103. package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
  104. package/build/cjs/components/AsideHeader/index.d.ts +3 -3
  105. package/build/cjs/components/AsideHeader/types.d.ts +22 -39
  106. package/build/cjs/components/AsideHeader/types.js.map +1 -1
  107. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +1 -6
  108. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +6 -41
  109. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  110. package/build/cjs/components/Footer/desktop/Footer.js +1 -1
  111. package/build/cjs/components/Footer/desktop/Footer.js.map +1 -1
  112. package/build/cjs/components/Footer/mobile/Footer.js +1 -1
  113. package/build/cjs/components/Footer/mobile/Footer.js.map +1 -1
  114. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +4 -2
  115. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +13 -2
  116. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  117. package/build/cjs/components/Logo/Logo.css +1 -1
  118. package/build/cjs/components/Logo/Logo.d.ts +3 -7
  119. package/build/cjs/components/Logo/Logo.js +6 -19
  120. package/build/cjs/components/Logo/Logo.js.map +1 -1
  121. package/build/cjs/components/Logo/Logo.module.scss.js +1 -1
  122. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.css +1 -1
  123. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.module.scss.js +1 -1
  124. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +1 -1
  125. package/build/cjs/components/MobileHeader/MobileHeader.js +7 -7
  126. package/build/cjs/components/MobileHeader/MobileHeader.js.map +1 -1
  127. package/build/cjs/components/MobileHeader/types.d.ts +1 -1
  128. package/build/cjs/components/MobileLogo/MobileLogo.d.ts +1 -1
  129. package/build/cjs/components/MobileLogo/MobileLogo.js +2 -2
  130. package/build/cjs/components/MobileLogo/MobileLogo.js.map +1 -1
  131. package/build/cjs/components/constants.d.ts +5 -10
  132. package/build/cjs/components/constants.js +7 -17
  133. package/build/cjs/components/constants.js.map +1 -1
  134. package/build/cjs/components/types.d.ts +19 -15
  135. package/build/cjs/index.js +0 -4
  136. package/build/cjs/index.js.map +1 -1
  137. package/build/esm/assets/icons/{divider-collapsed-compact.svg.js → control-menu-button.svg.js} +7 -7
  138. package/build/esm/assets/icons/control-menu-button.svg.js.map +1 -0
  139. package/build/esm/components/AsideHeader/AsideHeader.css +1 -1
  140. package/build/esm/components/AsideHeader/AsideHeader.js +3 -3
  141. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
  142. package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  143. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +4 -28
  144. package/build/esm/components/AsideHeader/AsideHeaderContext.js +8 -9
  145. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  146. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.css +1 -0
  147. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +12 -0
  148. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +42 -0
  149. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  150. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js +4 -0
  151. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js.map +1 -0
  152. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/index.d.ts +1 -0
  153. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  154. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +46 -104
  155. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  156. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  157. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.d.ts +0 -1
  158. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js +1 -2
  159. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
  160. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -0
  161. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  162. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  163. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +1 -0
  164. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  165. package/build/esm/components/AsideHeader/components/AllPagesPanel/index.d.ts +1 -0
  166. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +4 -3
  167. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +15 -67
  168. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  169. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
  170. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js +27 -0
  171. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  172. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  173. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +1 -2
  174. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -18
  175. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  176. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  177. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  178. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +10 -34
  179. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +55 -78
  180. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  181. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  182. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  183. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -25
  184. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +1 -17
  185. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +76 -63
  186. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  187. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  188. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +20 -0
  189. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +18 -0
  190. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +43 -0
  191. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -0
  192. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.d.ts +5 -0
  193. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.js +6 -0
  194. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.js.map +1 -0
  195. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +3 -0
  196. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +17 -0
  197. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -0
  198. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
  199. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -0
  200. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +10 -13
  201. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
  202. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
  203. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +27 -0
  204. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +169 -0
  205. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -0
  206. package/build/esm/components/AsideHeader/components/CompositeBar/grouping.d.ts +11 -0
  207. package/build/esm/components/AsideHeader/components/CompositeBar/grouping.js +65 -0
  208. package/build/esm/components/AsideHeader/components/CompositeBar/grouping.js.map +1 -0
  209. package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +21 -5
  210. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +100 -55
  211. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  212. package/build/esm/components/AsideHeader/components/FirstPanel.js +21 -46
  213. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
  214. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  215. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.d.ts +0 -2
  216. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +1 -12
  217. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  218. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  219. package/build/esm/components/AsideHeader/components/Header.js +5 -14
  220. package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
  221. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +1 -1
  222. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +4 -4
  223. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  224. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +1 -1
  225. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -4
  226. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +7 -19
  227. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  228. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +1 -1
  229. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  230. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +2 -7
  231. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  232. package/build/esm/components/AsideHeader/components/Panels.d.ts +1 -1
  233. package/build/esm/components/AsideHeader/components/Panels.js +4 -18
  234. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
  235. package/build/esm/components/AsideHeader/i18n/en.json.js +2 -4
  236. package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -1
  237. package/build/esm/components/AsideHeader/i18n/index.d.ts +4 -4
  238. package/build/esm/components/AsideHeader/i18n/ru.json.js +2 -4
  239. package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
  240. package/build/esm/components/AsideHeader/index.d.ts +3 -3
  241. package/build/esm/components/AsideHeader/types.d.ts +22 -39
  242. package/build/esm/components/AsideHeader/types.js.map +1 -1
  243. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +1 -6
  244. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +6 -41
  245. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  246. package/build/esm/components/Footer/desktop/Footer.js +1 -1
  247. package/build/esm/components/Footer/desktop/Footer.js.map +1 -1
  248. package/build/esm/components/Footer/mobile/Footer.js +1 -1
  249. package/build/esm/components/Footer/mobile/Footer.js.map +1 -1
  250. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +4 -2
  251. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +13 -2
  252. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  253. package/build/esm/components/Logo/Logo.css +1 -1
  254. package/build/esm/components/Logo/Logo.d.ts +3 -7
  255. package/build/esm/components/Logo/Logo.js +6 -19
  256. package/build/esm/components/Logo/Logo.js.map +1 -1
  257. package/build/esm/components/Logo/Logo.module.scss.js +1 -1
  258. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.css +1 -1
  259. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.module.scss.js +1 -1
  260. package/build/esm/components/MobileHeader/MobileHeader.d.ts +1 -1
  261. package/build/esm/components/MobileHeader/MobileHeader.js +8 -8
  262. package/build/esm/components/MobileHeader/MobileHeader.js.map +1 -1
  263. package/build/esm/components/MobileHeader/types.d.ts +1 -1
  264. package/build/esm/components/MobileLogo/MobileLogo.d.ts +1 -1
  265. package/build/esm/components/MobileLogo/MobileLogo.js +2 -2
  266. package/build/esm/components/MobileLogo/MobileLogo.js.map +1 -1
  267. package/build/esm/components/constants.d.ts +5 -10
  268. package/build/esm/components/constants.js +6 -11
  269. package/build/esm/components/constants.js.map +1 -1
  270. package/build/esm/components/types.d.ts +19 -15
  271. package/build/esm/index.js +1 -2
  272. package/build/esm/index.js.map +1 -1
  273. package/codemods/bin/cli.js +6 -19
  274. package/codemods/transforms/unifyInterfaces.ts +0 -1
  275. package/package.json +4 -3
  276. package/build/cjs/assets/icons/divider-collapsed-compact.svg.js.map +0 -1
  277. package/build/cjs/components/AsideHeader/FooterLayoutContext.d.ts +0 -7
  278. package/build/cjs/components/AsideHeader/FooterLayoutContext.js +0 -10
  279. package/build/cjs/components/AsideHeader/FooterLayoutContext.js.map +0 -1
  280. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +0 -3
  281. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js +0 -17
  282. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js.map +0 -1
  283. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +0 -9
  284. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +0 -27
  285. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +0 -1
  286. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.d.ts +0 -2
  287. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js +0 -13
  288. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js.map +0 -1
  289. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +0 -73
  290. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +0 -144
  291. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +0 -1
  292. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +0 -5
  293. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +0 -45
  294. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +0 -1
  295. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +0 -21
  296. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +0 -146
  297. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +0 -1
  298. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.css +0 -1
  299. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.d.ts +0 -19
  300. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js +0 -95
  301. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js.map +0 -1
  302. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +0 -8
  303. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +0 -1
  304. package/build/cjs/components/AsideHeader/components/FooterBar/constants.d.ts +0 -1
  305. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js +0 -6
  306. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js.map +0 -1
  307. package/build/cjs/components/AsideHeader/components/FooterBar/index.d.ts +0 -1
  308. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.d.ts +0 -6
  309. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.js +0 -57
  310. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.js.map +0 -1
  311. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.d.ts +0 -9
  312. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js +0 -67
  313. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js.map +0 -1
  314. package/build/cjs/components/AsideHeader/utils/getGroupHeight.d.ts +0 -2
  315. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js +0 -16
  316. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js.map +0 -1
  317. package/build/cjs/components/utils/getCollapsedWidth.d.ts +0 -1
  318. package/build/cjs/components/utils/getCollapsedWidth.js +0 -10
  319. package/build/cjs/components/utils/getCollapsedWidth.js.map +0 -1
  320. package/build/esm/assets/icons/divider-collapsed-compact.svg.js.map +0 -1
  321. package/build/esm/components/AsideHeader/FooterLayoutContext.d.ts +0 -7
  322. package/build/esm/components/AsideHeader/FooterLayoutContext.js +0 -7
  323. package/build/esm/components/AsideHeader/FooterLayoutContext.js.map +0 -1
  324. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +0 -3
  325. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js +0 -15
  326. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js.map +0 -1
  327. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +0 -9
  328. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +0 -25
  329. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +0 -1
  330. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.d.ts +0 -2
  331. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js +0 -11
  332. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js.map +0 -1
  333. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +0 -73
  334. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +0 -136
  335. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +0 -1
  336. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +0 -5
  337. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +0 -43
  338. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +0 -1
  339. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +0 -21
  340. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +0 -144
  341. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +0 -1
  342. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.css +0 -1
  343. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.d.ts +0 -19
  344. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js +0 -93
  345. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js.map +0 -1
  346. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +0 -4
  347. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +0 -1
  348. package/build/esm/components/AsideHeader/components/FooterBar/constants.d.ts +0 -1
  349. package/build/esm/components/AsideHeader/components/FooterBar/constants.js +0 -4
  350. package/build/esm/components/AsideHeader/components/FooterBar/constants.js.map +0 -1
  351. package/build/esm/components/AsideHeader/components/FooterBar/index.d.ts +0 -1
  352. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.d.ts +0 -6
  353. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.js +0 -55
  354. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.js.map +0 -1
  355. package/build/esm/components/AsideHeader/hooks/useIsExpanded.d.ts +0 -9
  356. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js +0 -65
  357. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js.map +0 -1
  358. package/build/esm/components/AsideHeader/utils/getGroupHeight.d.ts +0 -2
  359. package/build/esm/components/AsideHeader/utils/getGroupHeight.js +0 -14
  360. package/build/esm/components/AsideHeader/utils/getGroupHeight.js.map +0 -1
  361. package/build/esm/components/utils/getCollapsedWidth.d.ts +0 -1
  362. package/build/esm/components/utils/getCollapsedWidth.js +0 -8
  363. package/build/esm/components/utils/getCollapsedWidth.js.map +0 -1
  364. package/codemods/transforms/compactToIsExpanded.ts +0 -345
  365. package/codemods/transforms/compactToPinned.ts +0 -135
  366. package/codemods/transforms/v5.ts +0 -36
@@ -1,345 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
- import {execSync} from 'child_process';
3
-
4
- import type {
5
- API,
6
- ASTPath,
7
- ArrowFunctionExpression,
8
- Collection,
9
- FileInfo,
10
- FunctionExpression,
11
- JSCodeshift,
12
- JSXAttribute,
13
- JSXIdentifier,
14
- ObjectPattern,
15
- ObjectProperty,
16
- } from 'jscodeshift';
17
-
18
- /**
19
- * Codemod to transform `compact` prop to `isExpanded` with inverted boolean logic.
20
- *
21
- * Transformations:
22
- * - compact={true} → isExpanded={false}
23
- * - compact={false} → isExpanded={true}
24
- * - compact (shorthand) → isExpanded={false}
25
- * - compact={someVar} → isExpanded={!someVar}
26
- * - compact={!someVar} → isExpanded={someVar}
27
- * - compact={expression} → isExpanded={!(expression)}
28
- *
29
- * Special case for destructured parameters:
30
- * - renderFooter={({ compact }) => <FooterItem compact={compact} />}
31
- * - → renderFooter={({ isExpanded }) => <FooterItem isExpanded={isExpanded} />}
32
- * - (No inversion when the value is the renamed destructured parameter)
33
- *
34
- * Also handles:
35
- * - Function parameter destructuring: ({ compact }) => → ({ isExpanded }) =>
36
- * - Callback second parameter: (node, compact) => → (node, isExpanded) =>
37
- */
38
-
39
- const TARGET_JSX_COMPONENTS = new Set(['FooterItem', 'MobileLogo', 'Item']);
40
-
41
- const RENDER_CALLBACK_PROPS = new Set(['renderFooter', 'collapseButtonWrapper']);
42
-
43
- export default function transformer(file: FileInfo, api: API) {
44
- const j = api.jscodeshift;
45
- const root = j(file.source);
46
-
47
- // First pass: rename destructuring parameters and callback params
48
- const hasDestructuringUpdate = updateDestructuringParams(root, j);
49
- const hasCallbackParamUpdate = updateCallbackSecondParam(root, j);
50
-
51
- // Second pass: update JSX props with awareness of renamed identifiers
52
- const hasJsxPropsUpdate = updateJsxProps(root, j);
53
-
54
- if (!hasJsxPropsUpdate && !hasDestructuringUpdate && !hasCallbackParamUpdate) {
55
- return null;
56
- }
57
-
58
- const output = root.toSource();
59
-
60
- // Format with Prettier to ensure consistent output
61
- // Uses project's prettier config if available (searches from cwd)
62
- // Falls back to unformatted output if Prettier is not installed or fails
63
- try {
64
- const formatted = execSync('prettier --parser typescript', {
65
- input: output,
66
- encoding: 'utf-8',
67
- maxBuffer: 10 * 1024 * 1024,
68
- stdio: ['pipe', 'pipe', 'pipe'],
69
- });
70
- return formatted;
71
- } catch {
72
- // Prettier not installed or failed - return unformatted output
73
- // User can run their own formatter afterwards
74
- return output;
75
- }
76
- }
77
-
78
- /**
79
- * Inverts a JSX expression value.
80
- * - true → false
81
- * - false → true
82
- * - someVar → !someVar
83
- * - !someVar → someVar
84
- * - (expression) → !(expression)
85
- */
86
- function invertExpression(j: JSCodeshift, expr: any): any {
87
- // Handle literal booleans - modify in place to preserve formatting
88
- if (j.BooleanLiteral.check(expr) || j.Literal.check(expr)) {
89
- const value = expr.value;
90
- if (typeof value === 'boolean') {
91
- expr.value = !value;
92
- return expr;
93
- }
94
- }
95
-
96
- // Handle unary negation: !something → something
97
- if (j.UnaryExpression.check(expr) && expr.operator === '!') {
98
- return expr.argument;
99
- }
100
-
101
- // Handle identifiers and other expressions: something → !something
102
- return j.unaryExpression('!', expr);
103
- }
104
-
105
- /**
106
- * Update JSX props: compact → isExpanded with inverted value
107
- * Special handling: if value is an identifier that was renamed from destructuring,
108
- * just rename it without inversion.
109
- */
110
- function updateJsxProps(root: Collection, j: JSCodeshift): boolean {
111
- let hasChanges = false;
112
-
113
- root.find(j.JSXAttribute, {
114
- name: {type: 'JSXIdentifier', name: 'compact'},
115
- }).forEach((path: ASTPath<JSXAttribute>) => {
116
- const jsxElement = path.parentPath.parentPath;
117
-
118
- // Check if this is on a target component
119
- if (jsxElement && j.JSXOpeningElement.check(jsxElement.node)) {
120
- const elementName = jsxElement.node.name;
121
- let componentName: string | null = null;
122
-
123
- if (j.JSXIdentifier.check(elementName)) {
124
- componentName = elementName.name;
125
- }
126
-
127
- // Only transform if it's a target component or if we can't determine
128
- if (componentName && !TARGET_JSX_COMPONENTS.has(componentName)) {
129
- return;
130
- }
131
- }
132
-
133
- const attrNode = path.node;
134
- const attrValue = attrNode.value;
135
-
136
- // Rename compact → isExpanded
137
- (attrNode.name as JSXIdentifier).name = 'isExpanded';
138
-
139
- if (attrValue === null) {
140
- // Shorthand: compact → isExpanded={false}
141
- attrNode.value = j.jsxExpressionContainer(j.booleanLiteral(false));
142
- hasChanges = true;
143
- } else if (j.JSXExpressionContainer.check(attrValue)) {
144
- const expr = attrValue.expression;
145
-
146
- if (!j.JSXEmptyExpression.check(expr)) {
147
- // Check if this is a simple identifier named 'compact'
148
- // that might be from a renamed destructuring parameter
149
- if (j.Identifier.check(expr) && expr.name === 'compact') {
150
- // Just rename it to isExpanded in place (no inversion)
151
- // This handles the case: compact={compact} → isExpanded={isExpanded}
152
- expr.name = 'isExpanded';
153
- } else if (j.Identifier.check(expr) && expr.name === 'isExpanded') {
154
- // Already renamed by destructuring pass, leave as is
155
- } else {
156
- // Invert the expression
157
- attrValue.expression = invertExpression(j, expr);
158
- }
159
- }
160
- hasChanges = true;
161
- } else if (j.StringLiteral.check(attrValue)) {
162
- // Edge case: compact="true" or compact="false" (unusual but handle it)
163
- const strValue = attrValue.value;
164
- if (strValue === 'true') {
165
- attrNode.value = j.jsxExpressionContainer(j.booleanLiteral(false));
166
- hasChanges = true;
167
- } else if (strValue === 'false') {
168
- attrNode.value = j.jsxExpressionContainer(j.booleanLiteral(true));
169
- hasChanges = true;
170
- }
171
- }
172
- });
173
-
174
- return hasChanges;
175
- }
176
-
177
- /**
178
- * Update destructuring parameters in render callbacks:
179
- * renderFooter={({ compact }) => ...} → renderFooter={({ isExpanded }) => ...}
180
- */
181
- function updateDestructuringParams(root: Collection, j: JSCodeshift): boolean {
182
- let hasChanges = false;
183
-
184
- // Find JSX attributes that are render callbacks
185
- root.find(j.JSXAttribute).forEach((attrPath: ASTPath<JSXAttribute>) => {
186
- const attrName = attrPath.node.name;
187
- if (!j.JSXIdentifier.check(attrName)) return;
188
-
189
- if (!RENDER_CALLBACK_PROPS.has(attrName.name)) return;
190
-
191
- const attrValue = attrPath.node.value;
192
- if (!j.JSXExpressionContainer.check(attrValue)) return;
193
-
194
- const expr = attrValue.expression;
195
- if (!j.ArrowFunctionExpression.check(expr) && !j.FunctionExpression.check(expr)) return;
196
-
197
- const funcExpr = expr as ArrowFunctionExpression | FunctionExpression;
198
- const params = funcExpr.params;
199
-
200
- // Look for destructuring pattern with 'compact'
201
- params.forEach((param) => {
202
- if (j.ObjectPattern.check(param)) {
203
- const objPattern = param as ObjectPattern;
204
- objPattern.properties.forEach((prop) => {
205
- if (j.ObjectProperty.check(prop) || j.Property.check(prop)) {
206
- const key = (prop as ObjectProperty).key;
207
- if (j.Identifier.check(key) && key.name === 'compact') {
208
- key.name = 'isExpanded';
209
- hasChanges = true;
210
-
211
- // Also update the value if it's a shorthand (compact → isExpanded)
212
- const value = (prop as ObjectProperty).value;
213
- if (j.Identifier.check(value) && value.name === 'compact') {
214
- value.name = 'isExpanded';
215
-
216
- // Rename all references to 'compact' in the function body to 'isExpanded'
217
- // and invert ternary expressions where compact is the test
218
- j(funcExpr)
219
- .find(j.Identifier, {name: 'compact'})
220
- .forEach((identPath) => {
221
- // Skip if this is the parameter itself
222
- if (identPath.value !== value) {
223
- identPath.value.name = 'isExpanded';
224
-
225
- // Check if this identifier is the test of a conditional expression
226
- if (
227
- identPath.parent &&
228
- j.ConditionalExpression.check(
229
- identPath.parent.value,
230
- ) &&
231
- identPath.parent.value.test === identPath.value
232
- ) {
233
- // Swap consequent and alternate to invert the logic
234
- const temp = identPath.parent.value.consequent;
235
- identPath.parent.value.consequent =
236
- identPath.parent.value.alternate;
237
- identPath.parent.value.alternate = temp;
238
- }
239
- }
240
- });
241
- }
242
- }
243
- }
244
- });
245
- }
246
- });
247
- });
248
-
249
- // Also find object properties that are render callbacks
250
- root.find(j.ObjectProperty).forEach((propPath: ASTPath<ObjectProperty>) => {
251
- const propKey = propPath.node.key;
252
- if (!j.Identifier.check(propKey)) return;
253
-
254
- if (!RENDER_CALLBACK_PROPS.has(propKey.name) && propKey.name !== 'wrapper') return;
255
-
256
- const propValue = propPath.node.value;
257
- if (!j.ArrowFunctionExpression.check(propValue) && !j.FunctionExpression.check(propValue))
258
- return;
259
-
260
- const funcExpr = propValue as ArrowFunctionExpression | FunctionExpression;
261
- const params = funcExpr.params;
262
-
263
- // Look for destructuring pattern with 'compact'
264
- params.forEach((param) => {
265
- if (j.ObjectPattern.check(param)) {
266
- const objPattern = param as ObjectPattern;
267
- objPattern.properties.forEach((prop) => {
268
- if (j.ObjectProperty.check(prop) || j.Property.check(prop)) {
269
- const key = (prop as ObjectProperty).key;
270
- if (j.Identifier.check(key) && key.name === 'compact') {
271
- key.name = 'isExpanded';
272
- hasChanges = true;
273
-
274
- const value = (prop as ObjectProperty).value;
275
- if (j.Identifier.check(value) && value.name === 'compact') {
276
- value.name = 'isExpanded';
277
-
278
- // Rename all references to 'compact' in the function body to 'isExpanded'
279
- // and invert ternary expressions where compact is the test
280
- j(funcExpr)
281
- .find(j.Identifier, {name: 'compact'})
282
- .forEach((identPath) => {
283
- // Skip if this is the parameter itself
284
- if (identPath.value !== value) {
285
- identPath.value.name = 'isExpanded';
286
-
287
- // Check if this identifier is the test of a conditional expression
288
- if (
289
- identPath.parent &&
290
- j.ConditionalExpression.check(
291
- identPath.parent.value,
292
- ) &&
293
- identPath.parent.value.test === identPath.value
294
- ) {
295
- // Swap consequent and alternate to invert the logic
296
- const temp = identPath.parent.value.consequent;
297
- identPath.parent.value.consequent =
298
- identPath.parent.value.alternate;
299
- identPath.parent.value.alternate = temp;
300
- }
301
- }
302
- });
303
- }
304
- }
305
- }
306
- });
307
- }
308
- });
309
- });
310
-
311
- return hasChanges;
312
- }
313
-
314
- /**
315
- * Update callback second parameter:
316
- * wrapper: (node, compact) => ... → wrapper: (node, isExpanded) => ...
317
- */
318
- function updateCallbackSecondParam(root: Collection, j: JSCodeshift): boolean {
319
- let hasChanges = false;
320
-
321
- // Find 'wrapper' property in objects (e.g., logo={{ wrapper: (node, compact) => ... }})
322
- root.find(j.ObjectProperty, {
323
- key: {type: 'Identifier', name: 'wrapper'},
324
- }).forEach((propPath: ASTPath<ObjectProperty>) => {
325
- const propValue = propPath.node.value;
326
-
327
- if (!j.ArrowFunctionExpression.check(propValue) && !j.FunctionExpression.check(propValue)) {
328
- return;
329
- }
330
-
331
- const funcExpr = propValue as ArrowFunctionExpression | FunctionExpression;
332
- const params = funcExpr.params;
333
-
334
- // Check if second parameter is 'compact'
335
- if (params.length >= 2) {
336
- const secondParam = params[1];
337
- if (j.Identifier.check(secondParam) && secondParam.name === 'compact') {
338
- secondParam.name = 'isExpanded';
339
- hasChanges = true;
340
- }
341
- }
342
- });
343
-
344
- return hasChanges;
345
- }
@@ -1,135 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
- import {execSync} from 'child_process';
3
-
4
- import type {
5
- API,
6
- ASTPath,
7
- Collection,
8
- FileInfo,
9
- JSCodeshift,
10
- JSXAttribute,
11
- JSXIdentifier,
12
- } from 'jscodeshift';
13
-
14
- /**
15
- * Codemod to transform AsideHeader/PageLayout `compact` → `pinned` and `onChangeCompact` → `onChangePinned`.
16
- *
17
- * Only applies to JSX elements: AsideHeader, PageLayout.
18
- *
19
- * Transformations:
20
- * - compact={true} → pinned={false}
21
- * - compact={false} → pinned={true}
22
- * - compact (shorthand) → pinned={false}
23
- * - compact={someVar} → pinned={!someVar}
24
- * - onChangeCompact={fn} → onChangePinned={fn} (rename only, callback now receives pinned)
25
- */
26
-
27
- const LAYOUT_JSX_COMPONENTS = new Set(['AsideHeader', 'PageLayout']);
28
-
29
- function isLayoutComponent(path: ASTPath<JSXAttribute>, j: JSCodeshift): boolean {
30
- const openingElement = path.parentPath?.node;
31
- if (!openingElement || !j.JSXOpeningElement.check(openingElement)) {
32
- return false;
33
- }
34
- const name = openingElement.name;
35
- if (!j.JSXIdentifier.check(name)) {
36
- return false;
37
- }
38
- return LAYOUT_JSX_COMPONENTS.has(name.name);
39
- }
40
-
41
- /**
42
- * Inverts a JSX expression value.
43
- */
44
- function invertExpression(j: JSCodeshift, expr: any): any {
45
- if (j.BooleanLiteral.check(expr) || j.Literal.check(expr)) {
46
- const value = expr.value;
47
- if (typeof value === 'boolean') {
48
- expr.value = !value;
49
- return expr;
50
- }
51
- }
52
- if (j.UnaryExpression.check(expr) && expr.operator === '!') {
53
- return expr.argument;
54
- }
55
- return j.unaryExpression('!', expr);
56
- }
57
-
58
- function updateCompactToPinned(root: Collection, j: JSCodeshift): boolean {
59
- let hasChanges = false;
60
-
61
- root.find(j.JSXAttribute, {name: {type: 'JSXIdentifier', name: 'compact'}}).forEach(
62
- (path: ASTPath<JSXAttribute>) => {
63
- if (!isLayoutComponent(path, j)) {
64
- return;
65
- }
66
-
67
- const attrNode = path.node;
68
- const attrValue = attrNode.value;
69
-
70
- (attrNode.name as JSXIdentifier).name = 'pinned';
71
-
72
- if (attrValue === null) {
73
- attrNode.value = j.jsxExpressionContainer(j.booleanLiteral(false));
74
- hasChanges = true;
75
- } else if (j.JSXExpressionContainer.check(attrValue)) {
76
- const expr = attrValue.expression;
77
- if (!j.JSXEmptyExpression.check(expr)) {
78
- attrValue.expression = invertExpression(j, expr);
79
- }
80
- hasChanges = true;
81
- } else if (j.StringLiteral.check(attrValue)) {
82
- if (attrValue.value === 'true') {
83
- attrNode.value = j.jsxExpressionContainer(j.booleanLiteral(false));
84
- } else if (attrValue.value === 'false') {
85
- attrNode.value = j.jsxExpressionContainer(j.booleanLiteral(true));
86
- }
87
- hasChanges = true;
88
- }
89
- },
90
- );
91
-
92
- return hasChanges;
93
- }
94
-
95
- function updateOnChangeCompactToOnChangePinned(root: Collection, j: JSCodeshift): boolean {
96
- let hasChanges = false;
97
-
98
- root.find(j.JSXAttribute, {
99
- name: {type: 'JSXIdentifier', name: 'onChangeCompact'},
100
- }).forEach((path: ASTPath<JSXAttribute>) => {
101
- if (!isLayoutComponent(path, j)) {
102
- return;
103
- }
104
- (path.node.name as JSXIdentifier).name = 'onChangePinned';
105
- hasChanges = true;
106
- });
107
-
108
- return hasChanges;
109
- }
110
-
111
- export default function transformer(file: FileInfo, api: API) {
112
- const j = api.jscodeshift;
113
- const root = j(file.source);
114
-
115
- const hasCompactUpdate = updateCompactToPinned(root, j);
116
- const hasOnChangeUpdate = updateOnChangeCompactToOnChangePinned(root, j);
117
-
118
- if (!hasCompactUpdate && !hasOnChangeUpdate) {
119
- return null;
120
- }
121
-
122
- const output = root.toSource();
123
-
124
- try {
125
- const formatted = execSync('prettier --parser typescript', {
126
- input: output,
127
- encoding: 'utf-8',
128
- maxBuffer: 10 * 1024 * 1024,
129
- stdio: ['pipe', 'pipe', 'pipe'],
130
- });
131
- return formatted;
132
- } catch {
133
- return output;
134
- }
135
- }
@@ -1,36 +0,0 @@
1
- import type {API, FileInfo, Options} from 'jscodeshift';
2
-
3
- import compactToIsExpanded from './compactToIsExpanded';
4
- import compactToPinned from './compactToPinned';
5
-
6
- export default function transform(file: FileInfo, api: API, options: Options) {
7
- let source = file.source;
8
- let hasChanges = false;
9
-
10
- const transforms = [
11
- {name: 'compact-to-is-expanded', transform: compactToIsExpanded},
12
- {name: 'compact-to-pinned', transform: compactToPinned},
13
- ];
14
-
15
- for (const {name, transform: transformFn} of transforms) {
16
- try {
17
- const result = transformFn({source, path: file.path}, api);
18
- if (result && result !== source) {
19
- source = result;
20
- hasChanges = true;
21
-
22
- if (options && options.verbose) {
23
- console.log(`✓ Applied ${name}`);
24
- }
25
- }
26
- } catch (error) {
27
- const errorMessage = error instanceof Error ? error.message : String(error);
28
- console.error(`Error applying ${name}:`, errorMessage);
29
- if (options && options.verbose && error instanceof Error) {
30
- console.error(error.stack);
31
- }
32
- }
33
- }
34
-
35
- return hasChanges ? source : null;
36
- }