@strapi/content-manager 0.0.0-next.d9724d67b33363354d7171a9f2265e1c42485e13 → 0.0.0-next.da19c0501ff87d14fb664b55b8e0630d3c548485

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 (181) hide show
  1. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +1 -1
  2. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +1 -1
  4. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/Fields.js +4 -1
  6. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Fields.mjs +5 -2
  8. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  10. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  11. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  12. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  13. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  14. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  15. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  16. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  22. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  23. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  24. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  25. package/dist/admin/components/LeftMenu.js +90 -48
  26. package/dist/admin/components/LeftMenu.js.map +1 -1
  27. package/dist/admin/components/LeftMenu.mjs +92 -50
  28. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  29. package/dist/admin/components/Widgets.js +22 -6
  30. package/dist/admin/components/Widgets.js.map +1 -1
  31. package/dist/admin/components/Widgets.mjs +22 -6
  32. package/dist/admin/components/Widgets.mjs.map +1 -1
  33. package/dist/admin/history/components/VersionHeader.js +1 -0
  34. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  35. package/dist/admin/history/components/VersionHeader.mjs +1 -0
  36. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  37. package/dist/admin/history/components/VersionsList.js +1 -1
  38. package/dist/admin/history/components/VersionsList.js.map +1 -1
  39. package/dist/admin/history/components/VersionsList.mjs +1 -1
  40. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  41. package/dist/admin/history/pages/History.js +7 -7
  42. package/dist/admin/history/pages/History.js.map +1 -1
  43. package/dist/admin/history/pages/History.mjs +7 -7
  44. package/dist/admin/history/pages/History.mjs.map +1 -1
  45. package/dist/admin/layout.js +27 -6
  46. package/dist/admin/layout.js.map +1 -1
  47. package/dist/admin/layout.mjs +28 -7
  48. package/dist/admin/layout.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/EditViewPage.js +7 -3
  50. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  51. package/dist/admin/pages/EditView/EditViewPage.mjs +8 -4
  52. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  53. package/dist/admin/pages/EditView/components/DocumentActions.js +6 -0
  54. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  55. package/dist/admin/pages/EditView/components/DocumentActions.mjs +6 -0
  56. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  58. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  60. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -2
  62. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -2
  64. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  66. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  68. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +2 -1
  70. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +3 -2
  72. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  74. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  76. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +4 -3
  78. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +5 -4
  80. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +2 -1
  82. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +3 -2
  84. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/UID.js +2 -1
  86. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +2 -1
  88. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +2 -2
  90. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +2 -2
  92. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormLayout.js +13 -8
  94. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormLayout.mjs +14 -8
  96. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  97. package/dist/admin/pages/EditView/components/Header.js +85 -25
  98. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/Header.mjs +87 -27
  100. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  101. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  102. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  103. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  104. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  105. package/dist/admin/pages/ListView/components/Filters.js +4 -1
  106. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  107. package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
  108. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  109. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  110. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  111. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  112. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  113. package/dist/admin/preview/components/InputPopover.js +29 -9
  114. package/dist/admin/preview/components/InputPopover.js.map +1 -1
  115. package/dist/admin/preview/components/InputPopover.mjs +31 -11
  116. package/dist/admin/preview/components/InputPopover.mjs.map +1 -1
  117. package/dist/admin/preview/pages/Preview.js +6 -6
  118. package/dist/admin/preview/pages/Preview.js.map +1 -1
  119. package/dist/admin/preview/pages/Preview.mjs +6 -6
  120. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  121. package/dist/admin/preview/utils/constants.js +34 -0
  122. package/dist/admin/preview/utils/constants.js.map +1 -1
  123. package/dist/admin/preview/utils/constants.mjs +34 -1
  124. package/dist/admin/preview/utils/constants.mjs.map +1 -1
  125. package/dist/admin/preview/utils/fieldUtils.js +13 -4
  126. package/dist/admin/preview/utils/fieldUtils.js.map +1 -1
  127. package/dist/admin/preview/utils/fieldUtils.mjs +13 -5
  128. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -1
  129. package/dist/admin/preview/utils/previewScript.js +120 -44
  130. package/dist/admin/preview/utils/previewScript.js.map +1 -1
  131. package/dist/admin/preview/utils/previewScript.mjs +120 -44
  132. package/dist/admin/preview/utils/previewScript.mjs.map +1 -1
  133. package/dist/admin/services/api.js +2 -1
  134. package/dist/admin/services/api.js.map +1 -1
  135. package/dist/admin/services/api.mjs +2 -1
  136. package/dist/admin/services/api.mjs.map +1 -1
  137. package/dist/admin/services/documents.js +19 -3
  138. package/dist/admin/services/documents.js.map +1 -1
  139. package/dist/admin/services/documents.mjs +19 -3
  140. package/dist/admin/services/documents.mjs.map +1 -1
  141. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  142. package/dist/admin/src/components/Widgets.d.ts +6 -2
  143. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  144. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  145. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +0 -3
  146. package/dist/admin/src/pages/EditView/components/Header.d.ts +4 -0
  147. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  148. package/dist/admin/src/preview/utils/constants.d.ts +35 -0
  149. package/dist/admin/src/preview/utils/fieldUtils.d.ts +6 -0
  150. package/dist/admin/src/preview/utils/previewScript.d.ts +1 -0
  151. package/dist/admin/src/services/api.d.ts +1 -1
  152. package/dist/admin/src/services/components.d.ts +2 -2
  153. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  154. package/dist/admin/src/services/documents.d.ts +16 -16
  155. package/dist/admin/src/services/homepage.d.ts +1 -1
  156. package/dist/admin/src/services/init.d.ts +1 -1
  157. package/dist/admin/src/services/relations.d.ts +2 -2
  158. package/dist/admin/src/services/uid.d.ts +3 -3
  159. package/dist/admin/translations/en.json.js +5 -0
  160. package/dist/admin/translations/en.json.js.map +1 -1
  161. package/dist/admin/translations/en.json.mjs +5 -0
  162. package/dist/admin/translations/en.json.mjs.map +1 -1
  163. package/dist/server/controllers/collection-types.js +2 -1
  164. package/dist/server/controllers/collection-types.js.map +1 -1
  165. package/dist/server/controllers/collection-types.mjs +2 -1
  166. package/dist/server/controllers/collection-types.mjs.map +1 -1
  167. package/dist/server/controllers/relations.js +6 -4
  168. package/dist/server/controllers/relations.js.map +1 -1
  169. package/dist/server/controllers/relations.mjs +6 -4
  170. package/dist/server/controllers/relations.mjs.map +1 -1
  171. package/dist/server/controllers/single-types.js.map +1 -1
  172. package/dist/server/controllers/single-types.mjs.map +1 -1
  173. package/dist/server/preview/services/preview-config.js +8 -33
  174. package/dist/server/preview/services/preview-config.js.map +1 -1
  175. package/dist/server/preview/services/preview-config.mjs +9 -34
  176. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  177. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  178. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  179. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  180. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  181. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentDragPreview.js","sources":["../../../../admin/src/components/DragPreviews/ComponentDragPreview.tsx"],"sourcesContent":["import { Flex, FlexComponent, IconButton, Typography } from '@strapi/design-system';\nimport { CaretDown, Drag, Trash } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\ninterface ComponentDragPreviewProps {\n displayedValue: string;\n}\n\nconst ComponentDragPreview = ({ displayedValue }: ComponentDragPreviewProps) => {\n return (\n <Flex\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={3}\n padding={3}\n width=\"30rem\"\n >\n <ToggleButton type=\"button\">\n <Flex gap={6}>\n <DropdownIconWrapper\n alignItems=\"center\"\n justifyContent=\"center\"\n background=\"neutral200\"\n height=\"3.2rem\"\n width=\"3.2rem\"\n >\n <CaretDown />\n </DropdownIconWrapper>\n\n <Flex maxWidth=\"15rem\">\n <Typography textColor=\"neutral700\" ellipsis>\n {displayedValue}\n </Typography>\n </Flex>\n </Flex>\n </ToggleButton>\n\n <Flex gap={2}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Trash />\n </IconButton>\n\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n </Flex>\n </Flex>\n );\n};\n\nconst DropdownIconWrapper = styled<FlexComponent>(Flex)`\n border-radius: 50%;\n\n svg {\n height: 0.6rem;\n width: 1.1rem;\n > path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\n// TODO: we shouldn't have to reset a whole button\nconst ToggleButton = styled.button`\n border: none;\n background: transparent;\n display: block;\n width: 100%;\n text-align: unset;\n padding: 0;\n`;\n\nexport { ComponentDragPreview };\nexport type { ComponentDragPreviewProps };\n"],"names":["ComponentDragPreview","displayedValue","_jsxs","Flex","background","borderColor","justifyContent","gap","padding","width","_jsx","ToggleButton","type","DropdownIconWrapper","alignItems","height","CaretDown","maxWidth","Typography","textColor","ellipsis","IconButton","withTooltip","label","variant","Trash","Drag","styled","theme","colors","neutral600","button"],"mappings":";;;;;;;AAQA,MAAMA,oBAAuB,GAAA,CAAC,EAAEC,cAAc,EAA6B,GAAA;AACzE,IAAA,qBACEC,eAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAW,EAAA,UAAA;QACXC,WAAY,EAAA,YAAA;QACZC,cAAe,EAAA,eAAA;QACfC,GAAK,EAAA,CAAA;QACLC,OAAS,EAAA,CAAA;QACTC,KAAM,EAAA,OAAA;;0BAENC,cAACC,CAAAA,YAAAA,EAAAA;gBAAaC,IAAK,EAAA,QAAA;AACjB,gBAAA,QAAA,gBAAAV,eAACC,CAAAA,iBAAAA,EAAAA;oBAAKI,GAAK,EAAA,CAAA;;sCACTG,cAACG,CAAAA,mBAAAA,EAAAA;4BACCC,UAAW,EAAA,QAAA;4BACXR,cAAe,EAAA,QAAA;4BACfF,UAAW,EAAA,YAAA;4BACXW,MAAO,EAAA,QAAA;4BACPN,KAAM,EAAA,QAAA;AAEN,4BAAA,QAAA,gBAAAC,cAACM,CAAAA,eAAAA,EAAAA,EAAAA;;sCAGHN,cAACP,CAAAA,iBAAAA,EAAAA;4BAAKc,QAAS,EAAA,OAAA;AACb,4BAAA,QAAA,gBAAAP,cAACQ,CAAAA,uBAAAA,EAAAA;gCAAWC,SAAU,EAAA,YAAA;gCAAaC,QAAQ,EAAA,IAAA;AACxCnB,gCAAAA,QAAAA,EAAAA;;;;;;0BAMTC,eAACC,CAAAA,iBAAAA,EAAAA;gBAAKI,GAAK,EAAA,CAAA;;kCACTG,cAACW,CAAAA,uBAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,cAACe,CAAAA,WAAAA,EAAAA,EAAAA;;kCAGHf,cAACW,CAAAA,uBAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,cAACgB,CAAAA,UAAAA,EAAAA,EAAAA;;;;;;AAKX;AAEA,MAAMb,mBAAAA,GAAsBc,uBAAsBxB,CAAAA,iBAAAA,CAAK;;;;;;;YAO3C,EAAE,CAAC,EAAEyB,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;AAED;AACA,MAAMnB,YAAAA,GAAegB,uBAAOI,CAAAA,MAAM;;;;;;;AAOlC,CAAC;;;;"}
1
+ {"version":3,"file":"ComponentDragPreview.js","sources":["../../../../admin/src/components/DragPreviews/ComponentDragPreview.tsx"],"sourcesContent":["import { useIsDesktop } from '@strapi/admin/strapi-admin';\nimport { Flex, FlexComponent, IconButton, Typography } from '@strapi/design-system';\nimport { CaretDown, Drag, Trash } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\ninterface ComponentDragPreviewProps {\n displayedValue: string;\n}\n\nconst ComponentDragPreview = ({ displayedValue }: ComponentDragPreviewProps) => {\n const isDesktop = useIsDesktop();\n return (\n <Flex\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={3}\n padding={3}\n width=\"30rem\"\n >\n <ToggleButton type=\"button\">\n <Flex gap={6}>\n <DropdownIconWrapper\n alignItems=\"center\"\n justifyContent=\"center\"\n background=\"neutral200\"\n height=\"3.2rem\"\n width=\"3.2rem\"\n >\n <CaretDown />\n </DropdownIconWrapper>\n\n <Flex maxWidth=\"15rem\">\n <Typography textColor=\"neutral700\" ellipsis>\n {displayedValue}\n </Typography>\n </Flex>\n </Flex>\n </ToggleButton>\n\n <Flex gap={2}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Trash />\n </IconButton>\n\n {isDesktop && (\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst DropdownIconWrapper = styled<FlexComponent>(Flex)`\n border-radius: 50%;\n\n svg {\n height: 0.6rem;\n width: 1.1rem;\n > path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\n// TODO: we shouldn't have to reset a whole button\nconst ToggleButton = styled.button`\n border: none;\n background: transparent;\n display: block;\n width: 100%;\n text-align: unset;\n padding: 0;\n`;\n\nexport { ComponentDragPreview };\nexport type { ComponentDragPreviewProps };\n"],"names":["ComponentDragPreview","displayedValue","isDesktop","useIsDesktop","_jsxs","Flex","background","borderColor","justifyContent","gap","padding","width","_jsx","ToggleButton","type","DropdownIconWrapper","alignItems","height","CaretDown","maxWidth","Typography","textColor","ellipsis","IconButton","withTooltip","label","variant","Trash","Drag","styled","theme","colors","neutral600","button"],"mappings":";;;;;;;;AASA,MAAMA,oBAAuB,GAAA,CAAC,EAAEC,cAAc,EAA6B,GAAA;AACzE,IAAA,MAAMC,SAAYC,GAAAA,wBAAAA,EAAAA;AAClB,IAAA,qBACEC,eAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAW,EAAA,UAAA;QACXC,WAAY,EAAA,YAAA;QACZC,cAAe,EAAA,eAAA;QACfC,GAAK,EAAA,CAAA;QACLC,OAAS,EAAA,CAAA;QACTC,KAAM,EAAA,OAAA;;0BAENC,cAACC,CAAAA,YAAAA,EAAAA;gBAAaC,IAAK,EAAA,QAAA;AACjB,gBAAA,QAAA,gBAAAV,eAACC,CAAAA,iBAAAA,EAAAA;oBAAKI,GAAK,EAAA,CAAA;;sCACTG,cAACG,CAAAA,mBAAAA,EAAAA;4BACCC,UAAW,EAAA,QAAA;4BACXR,cAAe,EAAA,QAAA;4BACfF,UAAW,EAAA,YAAA;4BACXW,MAAO,EAAA,QAAA;4BACPN,KAAM,EAAA,QAAA;AAEN,4BAAA,QAAA,gBAAAC,cAACM,CAAAA,eAAAA,EAAAA,EAAAA;;sCAGHN,cAACP,CAAAA,iBAAAA,EAAAA;4BAAKc,QAAS,EAAA,OAAA;AACb,4BAAA,QAAA,gBAAAP,cAACQ,CAAAA,uBAAAA,EAAAA;gCAAWC,SAAU,EAAA,YAAA;gCAAaC,QAAQ,EAAA,IAAA;AACxCrB,gCAAAA,QAAAA,EAAAA;;;;;;0BAMTG,eAACC,CAAAA,iBAAAA,EAAAA;gBAAKI,GAAK,EAAA,CAAA;;kCACTG,cAACW,CAAAA,uBAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,cAACe,CAAAA,WAAAA,EAAAA,EAAAA;;AAGFzB,oBAAAA,SAAAA,kBACCU,cAACW,CAAAA,uBAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,cAACgB,CAAAA,UAAAA,EAAAA,EAAAA;;;;;;AAMb;AAEA,MAAMb,mBAAAA,GAAsBc,uBAAsBxB,CAAAA,iBAAAA,CAAK;;;;;;;YAO3C,EAAE,CAAC,EAAEyB,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;AAED;AACA,MAAMnB,YAAAA,GAAegB,uBAAOI,CAAAA,MAAM;;;;;;;AAOlC,CAAC;;;;"}
@@ -1,9 +1,11 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useIsDesktop } from '@strapi/admin/strapi-admin';
2
3
  import { Flex, Typography, IconButton } from '@strapi/design-system';
3
4
  import { CaretDown, Trash, Drag } from '@strapi/icons';
4
5
  import { styled } from 'styled-components';
5
6
 
6
7
  const ComponentDragPreview = ({ displayedValue })=>{
8
+ const isDesktop = useIsDesktop();
7
9
  return /*#__PURE__*/ jsxs(Flex, {
8
10
  background: "neutral0",
9
11
  borderColor: "neutral200",
@@ -45,7 +47,7 @@ const ComponentDragPreview = ({ displayedValue })=>{
45
47
  variant: "ghost",
46
48
  children: /*#__PURE__*/ jsx(Trash, {})
47
49
  }),
48
- /*#__PURE__*/ jsx(IconButton, {
50
+ isDesktop && /*#__PURE__*/ jsx(IconButton, {
49
51
  withTooltip: false,
50
52
  label: "",
51
53
  variant: "ghost",
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentDragPreview.mjs","sources":["../../../../admin/src/components/DragPreviews/ComponentDragPreview.tsx"],"sourcesContent":["import { Flex, FlexComponent, IconButton, Typography } from '@strapi/design-system';\nimport { CaretDown, Drag, Trash } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\ninterface ComponentDragPreviewProps {\n displayedValue: string;\n}\n\nconst ComponentDragPreview = ({ displayedValue }: ComponentDragPreviewProps) => {\n return (\n <Flex\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={3}\n padding={3}\n width=\"30rem\"\n >\n <ToggleButton type=\"button\">\n <Flex gap={6}>\n <DropdownIconWrapper\n alignItems=\"center\"\n justifyContent=\"center\"\n background=\"neutral200\"\n height=\"3.2rem\"\n width=\"3.2rem\"\n >\n <CaretDown />\n </DropdownIconWrapper>\n\n <Flex maxWidth=\"15rem\">\n <Typography textColor=\"neutral700\" ellipsis>\n {displayedValue}\n </Typography>\n </Flex>\n </Flex>\n </ToggleButton>\n\n <Flex gap={2}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Trash />\n </IconButton>\n\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n </Flex>\n </Flex>\n );\n};\n\nconst DropdownIconWrapper = styled<FlexComponent>(Flex)`\n border-radius: 50%;\n\n svg {\n height: 0.6rem;\n width: 1.1rem;\n > path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\n// TODO: we shouldn't have to reset a whole button\nconst ToggleButton = styled.button`\n border: none;\n background: transparent;\n display: block;\n width: 100%;\n text-align: unset;\n padding: 0;\n`;\n\nexport { ComponentDragPreview };\nexport type { ComponentDragPreviewProps };\n"],"names":["ComponentDragPreview","displayedValue","_jsxs","Flex","background","borderColor","justifyContent","gap","padding","width","_jsx","ToggleButton","type","DropdownIconWrapper","alignItems","height","CaretDown","maxWidth","Typography","textColor","ellipsis","IconButton","withTooltip","label","variant","Trash","Drag","styled","theme","colors","neutral600","button"],"mappings":";;;;;AAQA,MAAMA,oBAAuB,GAAA,CAAC,EAAEC,cAAc,EAA6B,GAAA;AACzE,IAAA,qBACEC,IAACC,CAAAA,IAAAA,EAAAA;QACCC,UAAW,EAAA,UAAA;QACXC,WAAY,EAAA,YAAA;QACZC,cAAe,EAAA,eAAA;QACfC,GAAK,EAAA,CAAA;QACLC,OAAS,EAAA,CAAA;QACTC,KAAM,EAAA,OAAA;;0BAENC,GAACC,CAAAA,YAAAA,EAAAA;gBAAaC,IAAK,EAAA,QAAA;AACjB,gBAAA,QAAA,gBAAAV,IAACC,CAAAA,IAAAA,EAAAA;oBAAKI,GAAK,EAAA,CAAA;;sCACTG,GAACG,CAAAA,mBAAAA,EAAAA;4BACCC,UAAW,EAAA,QAAA;4BACXR,cAAe,EAAA,QAAA;4BACfF,UAAW,EAAA,YAAA;4BACXW,MAAO,EAAA,QAAA;4BACPN,KAAM,EAAA,QAAA;AAEN,4BAAA,QAAA,gBAAAC,GAACM,CAAAA,SAAAA,EAAAA,EAAAA;;sCAGHN,GAACP,CAAAA,IAAAA,EAAAA;4BAAKc,QAAS,EAAA,OAAA;AACb,4BAAA,QAAA,gBAAAP,GAACQ,CAAAA,UAAAA,EAAAA;gCAAWC,SAAU,EAAA,YAAA;gCAAaC,QAAQ,EAAA,IAAA;AACxCnB,gCAAAA,QAAAA,EAAAA;;;;;;0BAMTC,IAACC,CAAAA,IAAAA,EAAAA;gBAAKI,GAAK,EAAA,CAAA;;kCACTG,GAACW,CAAAA,UAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,GAACe,CAAAA,KAAAA,EAAAA,EAAAA;;kCAGHf,GAACW,CAAAA,UAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,GAACgB,CAAAA,IAAAA,EAAAA,EAAAA;;;;;;AAKX;AAEA,MAAMb,mBAAAA,GAAsBc,MAAsBxB,CAAAA,IAAAA,CAAK;;;;;;;YAO3C,EAAE,CAAC,EAAEyB,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;AAED;AACA,MAAMnB,YAAAA,GAAegB,MAAOI,CAAAA,MAAM;;;;;;;AAOlC,CAAC;;;;"}
1
+ {"version":3,"file":"ComponentDragPreview.mjs","sources":["../../../../admin/src/components/DragPreviews/ComponentDragPreview.tsx"],"sourcesContent":["import { useIsDesktop } from '@strapi/admin/strapi-admin';\nimport { Flex, FlexComponent, IconButton, Typography } from '@strapi/design-system';\nimport { CaretDown, Drag, Trash } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\ninterface ComponentDragPreviewProps {\n displayedValue: string;\n}\n\nconst ComponentDragPreview = ({ displayedValue }: ComponentDragPreviewProps) => {\n const isDesktop = useIsDesktop();\n return (\n <Flex\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={3}\n padding={3}\n width=\"30rem\"\n >\n <ToggleButton type=\"button\">\n <Flex gap={6}>\n <DropdownIconWrapper\n alignItems=\"center\"\n justifyContent=\"center\"\n background=\"neutral200\"\n height=\"3.2rem\"\n width=\"3.2rem\"\n >\n <CaretDown />\n </DropdownIconWrapper>\n\n <Flex maxWidth=\"15rem\">\n <Typography textColor=\"neutral700\" ellipsis>\n {displayedValue}\n </Typography>\n </Flex>\n </Flex>\n </ToggleButton>\n\n <Flex gap={2}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Trash />\n </IconButton>\n\n {isDesktop && (\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst DropdownIconWrapper = styled<FlexComponent>(Flex)`\n border-radius: 50%;\n\n svg {\n height: 0.6rem;\n width: 1.1rem;\n > path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\n// TODO: we shouldn't have to reset a whole button\nconst ToggleButton = styled.button`\n border: none;\n background: transparent;\n display: block;\n width: 100%;\n text-align: unset;\n padding: 0;\n`;\n\nexport { ComponentDragPreview };\nexport type { ComponentDragPreviewProps };\n"],"names":["ComponentDragPreview","displayedValue","isDesktop","useIsDesktop","_jsxs","Flex","background","borderColor","justifyContent","gap","padding","width","_jsx","ToggleButton","type","DropdownIconWrapper","alignItems","height","CaretDown","maxWidth","Typography","textColor","ellipsis","IconButton","withTooltip","label","variant","Trash","Drag","styled","theme","colors","neutral600","button"],"mappings":";;;;;;AASA,MAAMA,oBAAuB,GAAA,CAAC,EAAEC,cAAc,EAA6B,GAAA;AACzE,IAAA,MAAMC,SAAYC,GAAAA,YAAAA,EAAAA;AAClB,IAAA,qBACEC,IAACC,CAAAA,IAAAA,EAAAA;QACCC,UAAW,EAAA,UAAA;QACXC,WAAY,EAAA,YAAA;QACZC,cAAe,EAAA,eAAA;QACfC,GAAK,EAAA,CAAA;QACLC,OAAS,EAAA,CAAA;QACTC,KAAM,EAAA,OAAA;;0BAENC,GAACC,CAAAA,YAAAA,EAAAA;gBAAaC,IAAK,EAAA,QAAA;AACjB,gBAAA,QAAA,gBAAAV,IAACC,CAAAA,IAAAA,EAAAA;oBAAKI,GAAK,EAAA,CAAA;;sCACTG,GAACG,CAAAA,mBAAAA,EAAAA;4BACCC,UAAW,EAAA,QAAA;4BACXR,cAAe,EAAA,QAAA;4BACfF,UAAW,EAAA,YAAA;4BACXW,MAAO,EAAA,QAAA;4BACPN,KAAM,EAAA,QAAA;AAEN,4BAAA,QAAA,gBAAAC,GAACM,CAAAA,SAAAA,EAAAA,EAAAA;;sCAGHN,GAACP,CAAAA,IAAAA,EAAAA;4BAAKc,QAAS,EAAA,OAAA;AACb,4BAAA,QAAA,gBAAAP,GAACQ,CAAAA,UAAAA,EAAAA;gCAAWC,SAAU,EAAA,YAAA;gCAAaC,QAAQ,EAAA,IAAA;AACxCrB,gCAAAA,QAAAA,EAAAA;;;;;;0BAMTG,IAACC,CAAAA,IAAAA,EAAAA;gBAAKI,GAAK,EAAA,CAAA;;kCACTG,GAACW,CAAAA,UAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,GAACe,CAAAA,KAAAA,EAAAA,EAAAA;;AAGFzB,oBAAAA,SAAAA,kBACCU,GAACW,CAAAA,UAAAA,EAAAA;wBAAWC,WAAa,EAAA,KAAA;wBAAOC,KAAM,EAAA,EAAA;wBAAGC,OAAQ,EAAA,OAAA;AAC/C,wBAAA,QAAA,gBAAAd,GAACgB,CAAAA,IAAAA,EAAAA,EAAAA;;;;;;AAMb;AAEA,MAAMb,mBAAAA,GAAsBc,MAAsBxB,CAAAA,IAAAA,CAAK;;;;;;;YAO3C,EAAE,CAAC,EAAEyB,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;AAED;AACA,MAAMnB,YAAAA,GAAegB,MAAOI,CAAAA,MAAM;;;;;;;AAOlC,CAAC;;;;"}
@@ -1,12 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
4
5
  var designSystem = require('@strapi/design-system');
5
6
  var Icons = require('@strapi/icons');
6
7
  var DocumentStatus = require('../../pages/EditView/components/DocumentStatus.js');
7
8
  var Relations = require('../../pages/EditView/components/FormInputs/Relations/Relations.js');
8
9
 
9
10
  const RelationDragPreview = ({ status, displayedValue, width })=>{
11
+ const isDesktop = strapiAdmin.useIsDesktop();
10
12
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
11
13
  style: {
12
14
  width
@@ -26,7 +28,7 @@ const RelationDragPreview = ({ status, displayedValue, width })=>{
26
28
  /*#__PURE__*/ jsxRuntime.jsxs(Relations.FlexWrapper, {
27
29
  gap: 1,
28
30
  children: [
29
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
31
+ isDesktop && /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
30
32
  withTooltip: false,
31
33
  label: "",
32
34
  variant: "ghost",
@@ -1 +1 @@
1
- {"version":3,"file":"RelationDragPreview.js","sources":["../../../../admin/src/components/DragPreviews/RelationDragPreview.tsx"],"sourcesContent":["import { Box, Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Cross, Drag } from '@strapi/icons';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport {\n DisconnectButton,\n LinkEllipsis,\n FlexWrapper,\n} from '../../pages/EditView/components/FormInputs/Relations/Relations';\n\nimport type { Data } from '@strapi/types';\n\ninterface RelationDragPreviewProps {\n status?: string;\n displayedValue: string;\n id: Data.ID;\n index: number;\n width: number;\n}\n\nconst RelationDragPreview = ({ status, displayedValue, width }: RelationDragPreviewProps) => {\n return (\n <Box style={{ width }}>\n <Flex\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={2}\n paddingRight={4}\n hasRadius\n borderWidth={1}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={4}\n >\n <FlexWrapper gap={1}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n <Flex width=\"100%\" minWidth={0} justifyContent=\"space-between\">\n <Box minWidth={0} paddingTop={1} paddingBottom={1} paddingRight={4}>\n <LinkEllipsis href=\"\">\n <Typography textColor=\"primary600\" ellipsis>\n {displayedValue}\n </Typography>\n </LinkEllipsis>\n </Box>\n {status ? <DocumentStatus status={status} /> : null}\n </Flex>\n </FlexWrapper>\n <DisconnectButton type=\"button\">\n <Cross width=\"12px\" />\n </DisconnectButton>\n </Flex>\n </Box>\n );\n};\n\nexport { RelationDragPreview };\nexport type { RelationDragPreviewProps };\n"],"names":["RelationDragPreview","status","displayedValue","width","_jsx","Box","style","_jsxs","Flex","paddingTop","paddingBottom","paddingLeft","paddingRight","hasRadius","borderWidth","background","borderColor","justifyContent","gap","FlexWrapper","IconButton","withTooltip","label","variant","Drag","minWidth","LinkEllipsis","href","Typography","textColor","ellipsis","DocumentStatus","DisconnectButton","type","Cross"],"mappings":";;;;;;;;AAoBMA,MAAAA,mBAAAA,GAAsB,CAAC,EAAEC,MAAM,EAAEC,cAAc,EAAEC,KAAK,EAA4B,GAAA;AACtF,IAAA,qBACEC,cAACC,CAAAA,gBAAAA,EAAAA;QAAIC,KAAO,EAAA;AAAEH,YAAAA;AAAM,SAAA;AAClB,QAAA,QAAA,gBAAAI,eAACC,CAAAA,iBAAAA,EAAAA;YACCC,UAAY,EAAA,CAAA;YACZC,aAAe,EAAA,CAAA;YACfC,WAAa,EAAA,CAAA;YACbC,YAAc,EAAA,CAAA;YACdC,SAAS,EAAA,IAAA;YACTC,WAAa,EAAA,CAAA;YACbC,UAAW,EAAA,UAAA;YACXC,WAAY,EAAA,YAAA;YACZC,cAAe,EAAA,eAAA;YACfC,GAAK,EAAA,CAAA;;8BAELX,eAACY,CAAAA,qBAAAA,EAAAA;oBAAYD,GAAK,EAAA,CAAA;;sCAChBd,cAACgB,CAAAA,uBAAAA,EAAAA;4BAAWC,WAAa,EAAA,KAAA;4BAAOC,KAAM,EAAA,EAAA;4BAAGC,OAAQ,EAAA,OAAA;AAC/C,4BAAA,QAAA,gBAAAnB,cAACoB,CAAAA,UAAAA,EAAAA,EAAAA;;sCAEHjB,eAACC,CAAAA,iBAAAA,EAAAA;4BAAKL,KAAM,EAAA,MAAA;4BAAOsB,QAAU,EAAA,CAAA;4BAAGR,cAAe,EAAA,eAAA;;8CAC7Cb,cAACC,CAAAA,gBAAAA,EAAAA;oCAAIoB,QAAU,EAAA,CAAA;oCAAGhB,UAAY,EAAA,CAAA;oCAAGC,aAAe,EAAA,CAAA;oCAAGE,YAAc,EAAA,CAAA;AAC/D,oCAAA,QAAA,gBAAAR,cAACsB,CAAAA,sBAAAA,EAAAA;wCAAaC,IAAK,EAAA,EAAA;AACjB,wCAAA,QAAA,gBAAAvB,cAACwB,CAAAA,uBAAAA,EAAAA;4CAAWC,SAAU,EAAA,YAAA;4CAAaC,QAAQ,EAAA,IAAA;AACxC5B,4CAAAA,QAAAA,EAAAA;;;;AAIND,gCAAAA,MAAAA,iBAASG,cAAC2B,CAAAA,6BAAAA,EAAAA;oCAAe9B,MAAQA,EAAAA;AAAa,iCAAA,CAAA,GAAA;;;;;8BAGnDG,cAAC4B,CAAAA,0BAAAA,EAAAA;oBAAiBC,IAAK,EAAA,QAAA;AACrB,oBAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,WAAAA,EAAAA;wBAAM/B,KAAM,EAAA;;;;;;AAKvB;;;;"}
1
+ {"version":3,"file":"RelationDragPreview.js","sources":["../../../../admin/src/components/DragPreviews/RelationDragPreview.tsx"],"sourcesContent":["import { useIsDesktop } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Cross, Drag } from '@strapi/icons';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport {\n DisconnectButton,\n LinkEllipsis,\n FlexWrapper,\n} from '../../pages/EditView/components/FormInputs/Relations/Relations';\n\nimport type { Data } from '@strapi/types';\n\ninterface RelationDragPreviewProps {\n status?: string;\n displayedValue: string;\n id: Data.ID;\n index: number;\n width: number;\n}\n\nconst RelationDragPreview = ({ status, displayedValue, width }: RelationDragPreviewProps) => {\n const isDesktop = useIsDesktop();\n return (\n <Box style={{ width }}>\n <Flex\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={2}\n paddingRight={4}\n hasRadius\n borderWidth={1}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={4}\n >\n <FlexWrapper gap={1}>\n {isDesktop && (\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n )}\n <Flex width=\"100%\" minWidth={0} justifyContent=\"space-between\">\n <Box minWidth={0} paddingTop={1} paddingBottom={1} paddingRight={4}>\n <LinkEllipsis href=\"\">\n <Typography textColor=\"primary600\" ellipsis>\n {displayedValue}\n </Typography>\n </LinkEllipsis>\n </Box>\n {status ? <DocumentStatus status={status} /> : null}\n </Flex>\n </FlexWrapper>\n <DisconnectButton type=\"button\">\n <Cross width=\"12px\" />\n </DisconnectButton>\n </Flex>\n </Box>\n );\n};\n\nexport { RelationDragPreview };\nexport type { RelationDragPreviewProps };\n"],"names":["RelationDragPreview","status","displayedValue","width","isDesktop","useIsDesktop","_jsx","Box","style","_jsxs","Flex","paddingTop","paddingBottom","paddingLeft","paddingRight","hasRadius","borderWidth","background","borderColor","justifyContent","gap","FlexWrapper","IconButton","withTooltip","label","variant","Drag","minWidth","LinkEllipsis","href","Typography","textColor","ellipsis","DocumentStatus","DisconnectButton","type","Cross"],"mappings":";;;;;;;;;AAqBMA,MAAAA,mBAAAA,GAAsB,CAAC,EAAEC,MAAM,EAAEC,cAAc,EAAEC,KAAK,EAA4B,GAAA;AACtF,IAAA,MAAMC,SAAYC,GAAAA,wBAAAA,EAAAA;AAClB,IAAA,qBACEC,cAACC,CAAAA,gBAAAA,EAAAA;QAAIC,KAAO,EAAA;AAAEL,YAAAA;AAAM,SAAA;AAClB,QAAA,QAAA,gBAAAM,eAACC,CAAAA,iBAAAA,EAAAA;YACCC,UAAY,EAAA,CAAA;YACZC,aAAe,EAAA,CAAA;YACfC,WAAa,EAAA,CAAA;YACbC,YAAc,EAAA,CAAA;YACdC,SAAS,EAAA,IAAA;YACTC,WAAa,EAAA,CAAA;YACbC,UAAW,EAAA,UAAA;YACXC,WAAY,EAAA,YAAA;YACZC,cAAe,EAAA,eAAA;YACfC,GAAK,EAAA,CAAA;;8BAELX,eAACY,CAAAA,qBAAAA,EAAAA;oBAAYD,GAAK,EAAA,CAAA;;AACfhB,wBAAAA,SAAAA,kBACCE,cAACgB,CAAAA,uBAAAA,EAAAA;4BAAWC,WAAa,EAAA,KAAA;4BAAOC,KAAM,EAAA,EAAA;4BAAGC,OAAQ,EAAA,OAAA;AAC/C,4BAAA,QAAA,gBAAAnB,cAACoB,CAAAA,UAAAA,EAAAA,EAAAA;;sCAGLjB,eAACC,CAAAA,iBAAAA,EAAAA;4BAAKP,KAAM,EAAA,MAAA;4BAAOwB,QAAU,EAAA,CAAA;4BAAGR,cAAe,EAAA,eAAA;;8CAC7Cb,cAACC,CAAAA,gBAAAA,EAAAA;oCAAIoB,QAAU,EAAA,CAAA;oCAAGhB,UAAY,EAAA,CAAA;oCAAGC,aAAe,EAAA,CAAA;oCAAGE,YAAc,EAAA,CAAA;AAC/D,oCAAA,QAAA,gBAAAR,cAACsB,CAAAA,sBAAAA,EAAAA;wCAAaC,IAAK,EAAA,EAAA;AACjB,wCAAA,QAAA,gBAAAvB,cAACwB,CAAAA,uBAAAA,EAAAA;4CAAWC,SAAU,EAAA,YAAA;4CAAaC,QAAQ,EAAA,IAAA;AACxC9B,4CAAAA,QAAAA,EAAAA;;;;AAIND,gCAAAA,MAAAA,iBAASK,cAAC2B,CAAAA,6BAAAA,EAAAA;oCAAehC,MAAQA,EAAAA;AAAa,iCAAA,CAAA,GAAA;;;;;8BAGnDK,cAAC4B,CAAAA,0BAAAA,EAAAA;oBAAiBC,IAAK,EAAA,QAAA;AACrB,oBAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,WAAAA,EAAAA;wBAAMjC,KAAM,EAAA;;;;;;AAKvB;;;;"}
@@ -1,10 +1,12 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useIsDesktop } from '@strapi/admin/strapi-admin';
2
3
  import { Box, Flex, IconButton, Typography } from '@strapi/design-system';
3
4
  import { Drag, Cross } from '@strapi/icons';
4
5
  import { DocumentStatus } from '../../pages/EditView/components/DocumentStatus.mjs';
5
6
  import { FlexWrapper, LinkEllipsis, DisconnectButton } from '../../pages/EditView/components/FormInputs/Relations/Relations.mjs';
6
7
 
7
8
  const RelationDragPreview = ({ status, displayedValue, width })=>{
9
+ const isDesktop = useIsDesktop();
8
10
  return /*#__PURE__*/ jsx(Box, {
9
11
  style: {
10
12
  width
@@ -24,7 +26,7 @@ const RelationDragPreview = ({ status, displayedValue, width })=>{
24
26
  /*#__PURE__*/ jsxs(FlexWrapper, {
25
27
  gap: 1,
26
28
  children: [
27
- /*#__PURE__*/ jsx(IconButton, {
29
+ isDesktop && /*#__PURE__*/ jsx(IconButton, {
28
30
  withTooltip: false,
29
31
  label: "",
30
32
  variant: "ghost",
@@ -1 +1 @@
1
- {"version":3,"file":"RelationDragPreview.mjs","sources":["../../../../admin/src/components/DragPreviews/RelationDragPreview.tsx"],"sourcesContent":["import { Box, Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Cross, Drag } from '@strapi/icons';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport {\n DisconnectButton,\n LinkEllipsis,\n FlexWrapper,\n} from '../../pages/EditView/components/FormInputs/Relations/Relations';\n\nimport type { Data } from '@strapi/types';\n\ninterface RelationDragPreviewProps {\n status?: string;\n displayedValue: string;\n id: Data.ID;\n index: number;\n width: number;\n}\n\nconst RelationDragPreview = ({ status, displayedValue, width }: RelationDragPreviewProps) => {\n return (\n <Box style={{ width }}>\n <Flex\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={2}\n paddingRight={4}\n hasRadius\n borderWidth={1}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={4}\n >\n <FlexWrapper gap={1}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n <Flex width=\"100%\" minWidth={0} justifyContent=\"space-between\">\n <Box minWidth={0} paddingTop={1} paddingBottom={1} paddingRight={4}>\n <LinkEllipsis href=\"\">\n <Typography textColor=\"primary600\" ellipsis>\n {displayedValue}\n </Typography>\n </LinkEllipsis>\n </Box>\n {status ? <DocumentStatus status={status} /> : null}\n </Flex>\n </FlexWrapper>\n <DisconnectButton type=\"button\">\n <Cross width=\"12px\" />\n </DisconnectButton>\n </Flex>\n </Box>\n );\n};\n\nexport { RelationDragPreview };\nexport type { RelationDragPreviewProps };\n"],"names":["RelationDragPreview","status","displayedValue","width","_jsx","Box","style","_jsxs","Flex","paddingTop","paddingBottom","paddingLeft","paddingRight","hasRadius","borderWidth","background","borderColor","justifyContent","gap","FlexWrapper","IconButton","withTooltip","label","variant","Drag","minWidth","LinkEllipsis","href","Typography","textColor","ellipsis","DocumentStatus","DisconnectButton","type","Cross"],"mappings":";;;;;;AAoBMA,MAAAA,mBAAAA,GAAsB,CAAC,EAAEC,MAAM,EAAEC,cAAc,EAAEC,KAAK,EAA4B,GAAA;AACtF,IAAA,qBACEC,GAACC,CAAAA,GAAAA,EAAAA;QAAIC,KAAO,EAAA;AAAEH,YAAAA;AAAM,SAAA;AAClB,QAAA,QAAA,gBAAAI,IAACC,CAAAA,IAAAA,EAAAA;YACCC,UAAY,EAAA,CAAA;YACZC,aAAe,EAAA,CAAA;YACfC,WAAa,EAAA,CAAA;YACbC,YAAc,EAAA,CAAA;YACdC,SAAS,EAAA,IAAA;YACTC,WAAa,EAAA,CAAA;YACbC,UAAW,EAAA,UAAA;YACXC,WAAY,EAAA,YAAA;YACZC,cAAe,EAAA,eAAA;YACfC,GAAK,EAAA,CAAA;;8BAELX,IAACY,CAAAA,WAAAA,EAAAA;oBAAYD,GAAK,EAAA,CAAA;;sCAChBd,GAACgB,CAAAA,UAAAA,EAAAA;4BAAWC,WAAa,EAAA,KAAA;4BAAOC,KAAM,EAAA,EAAA;4BAAGC,OAAQ,EAAA,OAAA;AAC/C,4BAAA,QAAA,gBAAAnB,GAACoB,CAAAA,IAAAA,EAAAA,EAAAA;;sCAEHjB,IAACC,CAAAA,IAAAA,EAAAA;4BAAKL,KAAM,EAAA,MAAA;4BAAOsB,QAAU,EAAA,CAAA;4BAAGR,cAAe,EAAA,eAAA;;8CAC7Cb,GAACC,CAAAA,GAAAA,EAAAA;oCAAIoB,QAAU,EAAA,CAAA;oCAAGhB,UAAY,EAAA,CAAA;oCAAGC,aAAe,EAAA,CAAA;oCAAGE,YAAc,EAAA,CAAA;AAC/D,oCAAA,QAAA,gBAAAR,GAACsB,CAAAA,YAAAA,EAAAA;wCAAaC,IAAK,EAAA,EAAA;AACjB,wCAAA,QAAA,gBAAAvB,GAACwB,CAAAA,UAAAA,EAAAA;4CAAWC,SAAU,EAAA,YAAA;4CAAaC,QAAQ,EAAA,IAAA;AACxC5B,4CAAAA,QAAAA,EAAAA;;;;AAIND,gCAAAA,MAAAA,iBAASG,GAAC2B,CAAAA,cAAAA,EAAAA;oCAAe9B,MAAQA,EAAAA;AAAa,iCAAA,CAAA,GAAA;;;;;8BAGnDG,GAAC4B,CAAAA,gBAAAA,EAAAA;oBAAiBC,IAAK,EAAA,QAAA;AACrB,oBAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,KAAAA,EAAAA;wBAAM/B,KAAM,EAAA;;;;;;AAKvB;;;;"}
1
+ {"version":3,"file":"RelationDragPreview.mjs","sources":["../../../../admin/src/components/DragPreviews/RelationDragPreview.tsx"],"sourcesContent":["import { useIsDesktop } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Cross, Drag } from '@strapi/icons';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport {\n DisconnectButton,\n LinkEllipsis,\n FlexWrapper,\n} from '../../pages/EditView/components/FormInputs/Relations/Relations';\n\nimport type { Data } from '@strapi/types';\n\ninterface RelationDragPreviewProps {\n status?: string;\n displayedValue: string;\n id: Data.ID;\n index: number;\n width: number;\n}\n\nconst RelationDragPreview = ({ status, displayedValue, width }: RelationDragPreviewProps) => {\n const isDesktop = useIsDesktop();\n return (\n <Box style={{ width }}>\n <Flex\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={2}\n paddingRight={4}\n hasRadius\n borderWidth={1}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={4}\n >\n <FlexWrapper gap={1}>\n {isDesktop && (\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n )}\n <Flex width=\"100%\" minWidth={0} justifyContent=\"space-between\">\n <Box minWidth={0} paddingTop={1} paddingBottom={1} paddingRight={4}>\n <LinkEllipsis href=\"\">\n <Typography textColor=\"primary600\" ellipsis>\n {displayedValue}\n </Typography>\n </LinkEllipsis>\n </Box>\n {status ? <DocumentStatus status={status} /> : null}\n </Flex>\n </FlexWrapper>\n <DisconnectButton type=\"button\">\n <Cross width=\"12px\" />\n </DisconnectButton>\n </Flex>\n </Box>\n );\n};\n\nexport { RelationDragPreview };\nexport type { RelationDragPreviewProps };\n"],"names":["RelationDragPreview","status","displayedValue","width","isDesktop","useIsDesktop","_jsx","Box","style","_jsxs","Flex","paddingTop","paddingBottom","paddingLeft","paddingRight","hasRadius","borderWidth","background","borderColor","justifyContent","gap","FlexWrapper","IconButton","withTooltip","label","variant","Drag","minWidth","LinkEllipsis","href","Typography","textColor","ellipsis","DocumentStatus","DisconnectButton","type","Cross"],"mappings":";;;;;;;AAqBMA,MAAAA,mBAAAA,GAAsB,CAAC,EAAEC,MAAM,EAAEC,cAAc,EAAEC,KAAK,EAA4B,GAAA;AACtF,IAAA,MAAMC,SAAYC,GAAAA,YAAAA,EAAAA;AAClB,IAAA,qBACEC,GAACC,CAAAA,GAAAA,EAAAA;QAAIC,KAAO,EAAA;AAAEL,YAAAA;AAAM,SAAA;AAClB,QAAA,QAAA,gBAAAM,IAACC,CAAAA,IAAAA,EAAAA;YACCC,UAAY,EAAA,CAAA;YACZC,aAAe,EAAA,CAAA;YACfC,WAAa,EAAA,CAAA;YACbC,YAAc,EAAA,CAAA;YACdC,SAAS,EAAA,IAAA;YACTC,WAAa,EAAA,CAAA;YACbC,UAAW,EAAA,UAAA;YACXC,WAAY,EAAA,YAAA;YACZC,cAAe,EAAA,eAAA;YACfC,GAAK,EAAA,CAAA;;8BAELX,IAACY,CAAAA,WAAAA,EAAAA;oBAAYD,GAAK,EAAA,CAAA;;AACfhB,wBAAAA,SAAAA,kBACCE,GAACgB,CAAAA,UAAAA,EAAAA;4BAAWC,WAAa,EAAA,KAAA;4BAAOC,KAAM,EAAA,EAAA;4BAAGC,OAAQ,EAAA,OAAA;AAC/C,4BAAA,QAAA,gBAAAnB,GAACoB,CAAAA,IAAAA,EAAAA,EAAAA;;sCAGLjB,IAACC,CAAAA,IAAAA,EAAAA;4BAAKP,KAAM,EAAA,MAAA;4BAAOwB,QAAU,EAAA,CAAA;4BAAGR,cAAe,EAAA,eAAA;;8CAC7Cb,GAACC,CAAAA,GAAAA,EAAAA;oCAAIoB,QAAU,EAAA,CAAA;oCAAGhB,UAAY,EAAA,CAAA;oCAAGC,aAAe,EAAA,CAAA;oCAAGE,YAAc,EAAA,CAAA;AAC/D,oCAAA,QAAA,gBAAAR,GAACsB,CAAAA,YAAAA,EAAAA;wCAAaC,IAAK,EAAA,EAAA;AACjB,wCAAA,QAAA,gBAAAvB,GAACwB,CAAAA,UAAAA,EAAAA;4CAAWC,SAAU,EAAA,YAAA;4CAAaC,QAAQ,EAAA,IAAA;AACxC9B,4CAAAA,QAAAA,EAAAA;;;;AAIND,gCAAAA,MAAAA,iBAASK,GAAC2B,CAAAA,cAAAA,EAAAA;oCAAehC,MAAQA,EAAAA;AAAa,iCAAA,CAAA,GAAA;;;;;8BAGnDK,GAAC4B,CAAAA,gBAAAA,EAAAA;oBAAiBC,IAAK,EAAA,QAAA;AACrB,oBAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,KAAAA,EAAAA;wBAAMjC,KAAM,EAAA;;;;;;AAKvB;;;;"}
@@ -6,6 +6,7 @@ var strapiAdmin = require('@strapi/admin/strapi-admin');
6
6
  var designSystem = require('@strapi/design-system');
7
7
  var qs = require('qs');
8
8
  var reactIntl = require('react-intl');
9
+ var useContentManagerInitData = require('../hooks/useContentManagerInitData.js');
9
10
  var useContentTypeSchema = require('../hooks/useContentTypeSchema.js');
10
11
  var hooks = require('../modules/hooks.js');
11
12
  var translations = require('../utils/translations.js');
@@ -29,14 +30,16 @@ function _interopNamespaceDefault(e) {
29
30
 
30
31
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
31
32
 
32
- const LeftMenu = ()=>{
33
+ const LeftMenu = ({ isFullPage = false })=>{
33
34
  const [search, setSearch] = React__namespace.useState('');
34
35
  const [{ query }] = strapiAdmin.useQueryParams();
35
36
  const { formatMessage, locale } = reactIntl.useIntl();
37
+ // Initialize Content Manager data to ensure links are available
38
+ const { isLoading } = useContentManagerInitData.useContentManagerInitData();
36
39
  const collectionTypeLinks = hooks.useTypedSelector((state)=>state['content-manager'].app.collectionTypeLinks);
37
40
  const singleTypeLinks = hooks.useTypedSelector((state)=>state['content-manager'].app.singleTypeLinks);
38
41
  const { schemas } = useContentTypeSchema.useContentTypeSchema();
39
- const { startsWith } = designSystem.useFilter(locale, {
42
+ const { contains } = designSystem.useFilter(locale, {
40
43
  sensitivity: 'base'
41
44
  });
42
45
  const formatter = designSystem.useCollator(locale, {
@@ -65,7 +68,7 @@ const LeftMenu = ()=>{
65
68
  ...section,
66
69
  links: section.links/**
67
70
  * Filter by the search value
68
- */ .filter((link)=>startsWith(link.title, search.trim()))/**
71
+ */ .filter((link)=>contains(link.title, search.trim()))/**
69
72
  * Sort correctly using the language
70
73
  */ .sort((a, b)=>formatter.compare(a.title, b.title))/**
71
74
  * Apply the formated strings to the links from react-intl
@@ -82,7 +85,7 @@ const LeftMenu = ()=>{
82
85
  collectionTypeLinks,
83
86
  search,
84
87
  singleTypeLinks,
85
- startsWith,
88
+ contains,
86
89
  formatMessage,
87
90
  formatter
88
91
  ]);
@@ -115,56 +118,95 @@ const LeftMenu = ()=>{
115
118
  }
116
119
  return query.plugins;
117
120
  };
121
+ // Show loading state while data is being fetched
122
+ if (isLoading) {
123
+ return /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.SubNav.Main, {
124
+ "aria-label": label,
125
+ children: [
126
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Header, {
127
+ label: label
128
+ }),
129
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
130
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
131
+ padding: 4,
132
+ justifyContent: "center",
133
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {})
134
+ })
135
+ ]
136
+ });
137
+ }
118
138
  return /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.SubNav.Main, {
119
139
  "aria-label": label,
120
140
  children: [
121
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Header, {
122
- label: label
123
- }),
124
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {
125
- background: "neutral150"
126
- }),
127
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
128
- padding: 5,
129
- gap: 3,
130
- direction: 'column',
131
- alignItems: 'stretch',
132
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Searchbar, {
133
- value: search,
134
- onChange: handleChangeSearch,
135
- onClear: handleClear,
136
- placeholder: formatMessage({
137
- id: 'content-manager.components.LeftMenu.Search.label',
138
- defaultMessage: 'Search for a content type'
141
+ !isFullPage && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
142
+ children: [
143
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Header, {
144
+ label: label
139
145
  }),
140
- size: "S",
141
- // eslint-disable-next-line react/no-children-prop
142
- children: undefined,
143
- name: 'search_contentType',
144
- clearLabel: formatMessage({
145
- id: 'clearLabel',
146
- defaultMessage: 'Clear'
147
- })
148
- })
146
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {})
147
+ ]
149
148
  }),
150
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Sections, {
151
- children: menu.map((section)=>{
152
- return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Section, {
153
- label: section.title,
154
- children: section.links.map((link)=>{
155
- return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Link, {
156
- to: {
157
- pathname: link.to,
158
- search: qs.stringify({
159
- ...qs.parse(link.search ?? ''),
160
- plugins: getPluginsParamsForLink(link)
161
- })
162
- },
163
- label: link.title
164
- }, link.uid);
149
+ /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.SubNav.Content, {
150
+ children: [
151
+ isFullPage && /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Header, {
152
+ label: label
153
+ }),
154
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
155
+ paddingLeft: {
156
+ initial: 4,
157
+ large: 5
158
+ },
159
+ paddingRight: {
160
+ initial: 4,
161
+ large: 5
162
+ },
163
+ paddingTop: isFullPage ? 0 : {
164
+ initial: 4,
165
+ large: 5
166
+ },
167
+ paddingBottom: 0,
168
+ gap: 3,
169
+ direction: "column",
170
+ alignItems: "stretch",
171
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Searchbar, {
172
+ value: search,
173
+ onChange: handleChangeSearch,
174
+ onClear: handleClear,
175
+ placeholder: formatMessage({
176
+ id: 'search.placeholder',
177
+ defaultMessage: 'Search'
178
+ }),
179
+ size: "S",
180
+ // eslint-disable-next-line react/no-children-prop
181
+ children: undefined,
182
+ name: 'search_contentType',
183
+ clearLabel: formatMessage({
184
+ id: 'clearLabel',
185
+ defaultMessage: 'Clear'
186
+ })
165
187
  })
166
- }, section.id);
167
- })
188
+ }),
189
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Sections, {
190
+ children: menu.map((section)=>{
191
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Section, {
192
+ label: section.title,
193
+ badgeLabel: section.links.length.toString(),
194
+ children: section.links.map((link)=>{
195
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.SubNav.Link, {
196
+ to: {
197
+ pathname: link.to,
198
+ search: qs.stringify({
199
+ ...qs.parse(link.search ?? ''),
200
+ plugins: getPluginsParamsForLink(link)
201
+ })
202
+ },
203
+ label: link.title
204
+ }, link.uid);
205
+ })
206
+ }, section.id);
207
+ })
208
+ })
209
+ ]
168
210
  })
169
211
  ]
170
212
  });
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.js","sources":["../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams, SubNav } from '@strapi/admin/strapi-admin';\nimport { Divider, Flex, Searchbar, useCollator, useFilter } from '@strapi/design-system';\nimport { parse, stringify } from 'qs';\nimport { useIntl } from 'react-intl';\n\nimport { useContentTypeSchema } from '../hooks/useContentTypeSchema';\nimport { useTypedSelector } from '../modules/hooks';\nimport { getTranslation } from '../utils/translations';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\nconst LeftMenu = () => {\n const [search, setSearch] = React.useState('');\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n const { formatMessage, locale } = useIntl();\n\n const collectionTypeLinks = useTypedSelector(\n (state) => state['content-manager'].app.collectionTypeLinks\n );\n\n const singleTypeLinks = useTypedSelector((state) => state['content-manager'].app.singleTypeLinks);\n const { schemas } = useContentTypeSchema();\n\n const { startsWith } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const menu = React.useMemo(\n () =>\n [\n {\n id: 'collectionTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.collection-types'),\n defaultMessage: 'Collection Types',\n }),\n searchable: true,\n links: collectionTypeLinks,\n },\n {\n id: 'singleTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.single-types'),\n defaultMessage: 'Single Types',\n }),\n searchable: true,\n links: singleTypeLinks,\n },\n ].map((section) => ({\n ...section,\n links: section.links\n /**\n * Filter by the search value\n */\n .filter((link) => startsWith(link.title, search.trim()))\n /**\n * Sort correctly using the language\n */\n .sort((a, b) => formatter.compare(a.title, b.title))\n /**\n * Apply the formated strings to the links from react-intl\n */\n .map((link) => {\n return {\n ...link,\n title: formatMessage({ id: link.title, defaultMessage: link.title }),\n };\n }),\n })),\n [collectionTypeLinks, search, singleTypeLinks, startsWith, formatMessage, formatter]\n );\n\n const handleClear = () => {\n setSearch('');\n };\n\n const handleChangeSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(event.target.value);\n };\n\n const label = formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content Manager',\n });\n\n const getPluginsParamsForLink = (link: ContentManagerLink) => {\n const schema = schemas.find((schema) => schema.uid === link.uid);\n const isI18nEnabled = Boolean((schema?.pluginOptions?.i18n as any)?.localized);\n\n // The search params have the i18n plugin\n if (query.plugins && 'i18n' in query.plugins) {\n // Prepare removal of i18n from the plugins search params\n const { i18n, ...restPlugins } = query.plugins;\n\n // i18n is not enabled, remove it from the plugins search params\n if (!isI18nEnabled) {\n return restPlugins;\n }\n\n // i18n is enabled, put the plugins search params back together\n return { i18n, ...restPlugins };\n }\n\n return query.plugins;\n };\n\n return (\n <SubNav.Main aria-label={label}>\n <SubNav.Header label={label} />\n <Divider background=\"neutral150\" />\n <Flex padding={5} gap={3} direction={'column'} alignItems={'stretch'}>\n <Searchbar\n value={search}\n onChange={handleChangeSearch}\n onClear={handleClear}\n placeholder={formatMessage({\n id: 'content-manager.components.LeftMenu.Search.label',\n defaultMessage: 'Search for a content type',\n })}\n size=\"S\"\n // eslint-disable-next-line react/no-children-prop\n children={undefined}\n name={'search_contentType'}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n />\n </Flex>\n <SubNav.Sections>\n {menu.map((section) => {\n return (\n <SubNav.Section key={section.id} label={section.title}>\n {section.links.map((link) => {\n return (\n <SubNav.Link\n key={link.uid}\n to={{\n pathname: link.to,\n search: stringify({\n ...parse(link.search ?? ''),\n plugins: getPluginsParamsForLink(link),\n }),\n }}\n label={link.title}\n />\n );\n })}\n </SubNav.Section>\n );\n })}\n </SubNav.Sections>\n </SubNav.Main>\n );\n};\n\nexport { LeftMenu };\n"],"names":["LeftMenu","search","setSearch","React","useState","query","useQueryParams","formatMessage","locale","useIntl","collectionTypeLinks","useTypedSelector","state","app","singleTypeLinks","schemas","useContentTypeSchema","startsWith","useFilter","sensitivity","formatter","useCollator","menu","useMemo","id","title","getTranslation","defaultMessage","searchable","links","map","section","filter","link","trim","sort","a","b","compare","handleClear","handleChangeSearch","event","target","value","label","getPluginsParamsForLink","schema","find","uid","isI18nEnabled","Boolean","pluginOptions","i18n","localized","plugins","restPlugins","_jsxs","SubNav","Main","aria-label","_jsx","Header","Divider","background","Flex","padding","gap","direction","alignItems","Searchbar","onChange","onClear","placeholder","size","children","undefined","name","clearLabel","Sections","Section","Link","to","pathname","stringify","parse"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.js","sources":["../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams, SubNav } from '@strapi/admin/strapi-admin';\nimport { Flex, Searchbar, useCollator, useFilter, Divider, Loader } from '@strapi/design-system';\nimport { parse, stringify } from 'qs';\nimport { useIntl } from 'react-intl';\n\nimport { useContentManagerInitData } from '../hooks/useContentManagerInitData';\nimport { useContentTypeSchema } from '../hooks/useContentTypeSchema';\nimport { useTypedSelector } from '../modules/hooks';\nimport { getTranslation } from '../utils/translations';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\nconst LeftMenu = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const [search, setSearch] = React.useState('');\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n const { formatMessage, locale } = useIntl();\n\n // Initialize Content Manager data to ensure links are available\n const { isLoading } = useContentManagerInitData();\n\n const collectionTypeLinks = useTypedSelector(\n (state) => state['content-manager'].app.collectionTypeLinks\n );\n\n const singleTypeLinks = useTypedSelector((state) => state['content-manager'].app.singleTypeLinks);\n const { schemas } = useContentTypeSchema();\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const menu = React.useMemo(\n () =>\n [\n {\n id: 'collectionTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.collection-types'),\n defaultMessage: 'Collection Types',\n }),\n searchable: true,\n links: collectionTypeLinks,\n },\n {\n id: 'singleTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.single-types'),\n defaultMessage: 'Single Types',\n }),\n searchable: true,\n links: singleTypeLinks,\n },\n ].map((section) => ({\n ...section,\n links: section.links\n /**\n * Filter by the search value\n */\n .filter((link) => contains(link.title, search.trim()))\n /**\n * Sort correctly using the language\n */\n .sort((a, b) => formatter.compare(a.title, b.title))\n /**\n * Apply the formated strings to the links from react-intl\n */\n .map((link) => {\n return {\n ...link,\n title: formatMessage({ id: link.title, defaultMessage: link.title }),\n };\n }),\n })),\n [collectionTypeLinks, search, singleTypeLinks, contains, formatMessage, formatter]\n );\n\n const handleClear = () => {\n setSearch('');\n };\n\n const handleChangeSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(event.target.value);\n };\n\n const label = formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content Manager',\n });\n\n const getPluginsParamsForLink = (link: ContentManagerLink) => {\n const schema = schemas.find((schema) => schema.uid === link.uid);\n const isI18nEnabled = Boolean((schema?.pluginOptions?.i18n as any)?.localized);\n\n // The search params have the i18n plugin\n if (query.plugins && 'i18n' in query.plugins) {\n // Prepare removal of i18n from the plugins search params\n const { i18n, ...restPlugins } = query.plugins;\n\n // i18n is not enabled, remove it from the plugins search params\n if (!isI18nEnabled) {\n return restPlugins;\n }\n\n // i18n is enabled, put the plugins search params back together\n return { i18n, ...restPlugins };\n }\n\n return query.plugins;\n };\n\n // Show loading state while data is being fetched\n if (isLoading) {\n return (\n <SubNav.Main aria-label={label}>\n <SubNav.Header label={label} />\n <Divider />\n <Flex padding={4} justifyContent=\"center\">\n <Loader />\n </Flex>\n </SubNav.Main>\n );\n }\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <SubNav.Content>\n {isFullPage && <SubNav.Header label={label} />}\n <Flex\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n paddingTop={\n isFullPage\n ? 0\n : {\n initial: 4,\n large: 5,\n }\n }\n paddingBottom={0}\n gap={3}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Searchbar\n value={search}\n onChange={handleChangeSearch}\n onClear={handleClear}\n placeholder={formatMessage({\n id: 'search.placeholder',\n defaultMessage: 'Search',\n })}\n size=\"S\"\n // eslint-disable-next-line react/no-children-prop\n children={undefined}\n name={'search_contentType'}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n />\n </Flex>\n <SubNav.Sections>\n {menu.map((section) => {\n return (\n <SubNav.Section\n key={section.id}\n label={section.title}\n badgeLabel={section.links.length.toString()}\n >\n {section.links.map((link) => {\n return (\n <SubNav.Link\n key={link.uid}\n to={{\n pathname: link.to,\n search: stringify({\n ...parse(link.search ?? ''),\n plugins: getPluginsParamsForLink(link),\n }),\n }}\n label={link.title}\n />\n );\n })}\n </SubNav.Section>\n );\n })}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { LeftMenu };\n"],"names":["LeftMenu","isFullPage","search","setSearch","React","useState","query","useQueryParams","formatMessage","locale","useIntl","isLoading","useContentManagerInitData","collectionTypeLinks","useTypedSelector","state","app","singleTypeLinks","schemas","useContentTypeSchema","contains","useFilter","sensitivity","formatter","useCollator","menu","useMemo","id","title","getTranslation","defaultMessage","searchable","links","map","section","filter","link","trim","sort","a","b","compare","handleClear","handleChangeSearch","event","target","value","label","getPluginsParamsForLink","schema","find","uid","isI18nEnabled","Boolean","pluginOptions","i18n","localized","plugins","restPlugins","_jsxs","SubNav","Main","aria-label","_jsx","Header","Divider","Flex","padding","justifyContent","Loader","_Fragment","Content","paddingLeft","initial","large","paddingRight","paddingTop","paddingBottom","gap","direction","alignItems","Searchbar","onChange","onClear","placeholder","size","children","undefined","name","clearLabel","Sections","Section","badgeLabel","length","toString","Link","to","pathname","stringify","parse"],"mappings":"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"}
@@ -1,21 +1,24 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useQueryParams, SubNav } from '@strapi/admin/strapi-admin';
4
- import { useFilter, useCollator, Divider, Flex, Searchbar } from '@strapi/design-system';
4
+ import { useFilter, useCollator, Divider, Flex, Loader, Searchbar } from '@strapi/design-system';
5
5
  import { stringify, parse } from 'qs';
6
6
  import { useIntl } from 'react-intl';
7
+ import { useContentManagerInitData } from '../hooks/useContentManagerInitData.mjs';
7
8
  import { useContentTypeSchema } from '../hooks/useContentTypeSchema.mjs';
8
9
  import { useTypedSelector } from '../modules/hooks.mjs';
9
10
  import { getTranslation } from '../utils/translations.mjs';
10
11
 
11
- const LeftMenu = ()=>{
12
+ const LeftMenu = ({ isFullPage = false })=>{
12
13
  const [search, setSearch] = React.useState('');
13
14
  const [{ query }] = useQueryParams();
14
15
  const { formatMessage, locale } = useIntl();
16
+ // Initialize Content Manager data to ensure links are available
17
+ const { isLoading } = useContentManagerInitData();
15
18
  const collectionTypeLinks = useTypedSelector((state)=>state['content-manager'].app.collectionTypeLinks);
16
19
  const singleTypeLinks = useTypedSelector((state)=>state['content-manager'].app.singleTypeLinks);
17
20
  const { schemas } = useContentTypeSchema();
18
- const { startsWith } = useFilter(locale, {
21
+ const { contains } = useFilter(locale, {
19
22
  sensitivity: 'base'
20
23
  });
21
24
  const formatter = useCollator(locale, {
@@ -44,7 +47,7 @@ const LeftMenu = ()=>{
44
47
  ...section,
45
48
  links: section.links/**
46
49
  * Filter by the search value
47
- */ .filter((link)=>startsWith(link.title, search.trim()))/**
50
+ */ .filter((link)=>contains(link.title, search.trim()))/**
48
51
  * Sort correctly using the language
49
52
  */ .sort((a, b)=>formatter.compare(a.title, b.title))/**
50
53
  * Apply the formated strings to the links from react-intl
@@ -61,7 +64,7 @@ const LeftMenu = ()=>{
61
64
  collectionTypeLinks,
62
65
  search,
63
66
  singleTypeLinks,
64
- startsWith,
67
+ contains,
65
68
  formatMessage,
66
69
  formatter
67
70
  ]);
@@ -94,56 +97,95 @@ const LeftMenu = ()=>{
94
97
  }
95
98
  return query.plugins;
96
99
  };
100
+ // Show loading state while data is being fetched
101
+ if (isLoading) {
102
+ return /*#__PURE__*/ jsxs(SubNav.Main, {
103
+ "aria-label": label,
104
+ children: [
105
+ /*#__PURE__*/ jsx(SubNav.Header, {
106
+ label: label
107
+ }),
108
+ /*#__PURE__*/ jsx(Divider, {}),
109
+ /*#__PURE__*/ jsx(Flex, {
110
+ padding: 4,
111
+ justifyContent: "center",
112
+ children: /*#__PURE__*/ jsx(Loader, {})
113
+ })
114
+ ]
115
+ });
116
+ }
97
117
  return /*#__PURE__*/ jsxs(SubNav.Main, {
98
118
  "aria-label": label,
99
119
  children: [
100
- /*#__PURE__*/ jsx(SubNav.Header, {
101
- label: label
102
- }),
103
- /*#__PURE__*/ jsx(Divider, {
104
- background: "neutral150"
105
- }),
106
- /*#__PURE__*/ jsx(Flex, {
107
- padding: 5,
108
- gap: 3,
109
- direction: 'column',
110
- alignItems: 'stretch',
111
- children: /*#__PURE__*/ jsx(Searchbar, {
112
- value: search,
113
- onChange: handleChangeSearch,
114
- onClear: handleClear,
115
- placeholder: formatMessage({
116
- id: 'content-manager.components.LeftMenu.Search.label',
117
- defaultMessage: 'Search for a content type'
120
+ !isFullPage && /*#__PURE__*/ jsxs(Fragment, {
121
+ children: [
122
+ /*#__PURE__*/ jsx(SubNav.Header, {
123
+ label: label
118
124
  }),
119
- size: "S",
120
- // eslint-disable-next-line react/no-children-prop
121
- children: undefined,
122
- name: 'search_contentType',
123
- clearLabel: formatMessage({
124
- id: 'clearLabel',
125
- defaultMessage: 'Clear'
126
- })
127
- })
125
+ /*#__PURE__*/ jsx(Divider, {})
126
+ ]
128
127
  }),
129
- /*#__PURE__*/ jsx(SubNav.Sections, {
130
- children: menu.map((section)=>{
131
- return /*#__PURE__*/ jsx(SubNav.Section, {
132
- label: section.title,
133
- children: section.links.map((link)=>{
134
- return /*#__PURE__*/ jsx(SubNav.Link, {
135
- to: {
136
- pathname: link.to,
137
- search: stringify({
138
- ...parse(link.search ?? ''),
139
- plugins: getPluginsParamsForLink(link)
140
- })
141
- },
142
- label: link.title
143
- }, link.uid);
128
+ /*#__PURE__*/ jsxs(SubNav.Content, {
129
+ children: [
130
+ isFullPage && /*#__PURE__*/ jsx(SubNav.Header, {
131
+ label: label
132
+ }),
133
+ /*#__PURE__*/ jsx(Flex, {
134
+ paddingLeft: {
135
+ initial: 4,
136
+ large: 5
137
+ },
138
+ paddingRight: {
139
+ initial: 4,
140
+ large: 5
141
+ },
142
+ paddingTop: isFullPage ? 0 : {
143
+ initial: 4,
144
+ large: 5
145
+ },
146
+ paddingBottom: 0,
147
+ gap: 3,
148
+ direction: "column",
149
+ alignItems: "stretch",
150
+ children: /*#__PURE__*/ jsx(Searchbar, {
151
+ value: search,
152
+ onChange: handleChangeSearch,
153
+ onClear: handleClear,
154
+ placeholder: formatMessage({
155
+ id: 'search.placeholder',
156
+ defaultMessage: 'Search'
157
+ }),
158
+ size: "S",
159
+ // eslint-disable-next-line react/no-children-prop
160
+ children: undefined,
161
+ name: 'search_contentType',
162
+ clearLabel: formatMessage({
163
+ id: 'clearLabel',
164
+ defaultMessage: 'Clear'
165
+ })
144
166
  })
145
- }, section.id);
146
- })
167
+ }),
168
+ /*#__PURE__*/ jsx(SubNav.Sections, {
169
+ children: menu.map((section)=>{
170
+ return /*#__PURE__*/ jsx(SubNav.Section, {
171
+ label: section.title,
172
+ badgeLabel: section.links.length.toString(),
173
+ children: section.links.map((link)=>{
174
+ return /*#__PURE__*/ jsx(SubNav.Link, {
175
+ to: {
176
+ pathname: link.to,
177
+ search: stringify({
178
+ ...parse(link.search ?? ''),
179
+ plugins: getPluginsParamsForLink(link)
180
+ })
181
+ },
182
+ label: link.title
183
+ }, link.uid);
184
+ })
185
+ }, section.id);
186
+ })
187
+ })
188
+ ]
147
189
  })
148
190
  ]
149
191
  });