@strapi/content-manager 0.0.0-experimental.8bf99b7c43ed372264c198d347a2ada9dfed174d → 0.0.0-experimental.8c28a74d1219c09f4ee67402fd3a26f182c4990a

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 (195) hide show
  1. package/dist/admin/components/LeftMenu.js +30 -34
  2. package/dist/admin/components/LeftMenu.js.map +1 -1
  3. package/dist/admin/components/LeftMenu.mjs +32 -36
  4. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  5. package/dist/admin/components/Widgets.js +161 -0
  6. package/dist/admin/components/Widgets.js.map +1 -0
  7. package/dist/admin/components/Widgets.mjs +158 -0
  8. package/dist/admin/components/Widgets.mjs.map +1 -0
  9. package/dist/admin/content-manager.js.map +1 -1
  10. package/dist/admin/content-manager.mjs.map +1 -1
  11. package/dist/admin/history/pages/History.js +1 -9
  12. package/dist/admin/history/pages/History.js.map +1 -1
  13. package/dist/admin/history/pages/History.mjs +1 -9
  14. package/dist/admin/history/pages/History.mjs.map +1 -1
  15. package/dist/admin/hooks/useDocumentActions.js +13 -2
  16. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  17. package/dist/admin/hooks/useDocumentActions.mjs +13 -2
  18. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  19. package/dist/admin/hooks/useDocumentContext.js +57 -0
  20. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  21. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  22. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  23. package/dist/admin/index.js +42 -5
  24. package/dist/admin/index.js.map +1 -1
  25. package/dist/admin/index.mjs +42 -3
  26. package/dist/admin/index.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/EditViewPage.js +85 -93
  28. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  29. package/dist/admin/pages/EditView/EditViewPage.mjs +86 -94
  30. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/components/DocumentActions.js +232 -51
  32. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  33. package/dist/admin/pages/EditView/components/DocumentActions.mjs +238 -57
  34. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +7 -12
  36. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +8 -13
  38. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  40. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  42. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  44. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  46. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +2 -2
  48. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +2 -2
  50. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +4 -2
  52. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +4 -2
  54. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +5 -16
  56. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +5 -16
  58. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  60. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  62. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +495 -345
  64. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +495 -347
  66. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +143 -86
  68. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +146 -89
  70. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/UID.js +7 -7
  72. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +7 -7
  74. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  76. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  78. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -10
  80. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -10
  82. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  83. package/dist/admin/pages/ListView/ListViewPage.js +0 -77
  84. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  85. package/dist/admin/pages/ListView/ListViewPage.mjs +1 -78
  86. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  87. package/dist/admin/preview/components/PreviewHeader.js +3 -6
  88. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  89. package/dist/admin/preview/components/PreviewHeader.mjs +3 -6
  90. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  91. package/dist/admin/preview/pages/Preview.js +94 -102
  92. package/dist/admin/preview/pages/Preview.js.map +1 -1
  93. package/dist/admin/preview/pages/Preview.mjs +94 -102
  94. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  95. package/dist/admin/services/homepage.js +30 -0
  96. package/dist/admin/services/homepage.js.map +1 -0
  97. package/dist/admin/services/homepage.mjs +28 -0
  98. package/dist/admin/services/homepage.mjs.map +1 -0
  99. package/dist/admin/src/components/Widgets.d.ts +3 -0
  100. package/dist/admin/src/content-manager.d.ts +0 -3
  101. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  102. package/dist/admin/src/history/pages/History.d.ts +1 -1
  103. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  104. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  105. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  106. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  107. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
  108. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  109. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  110. package/dist/admin/src/preview/pages/Preview.d.ts +2 -1
  111. package/dist/admin/src/services/homepage.d.ts +5 -0
  112. package/dist/admin/translations/en.json.js +2 -1
  113. package/dist/admin/translations/en.json.js.map +1 -1
  114. package/dist/admin/translations/en.json.mjs +2 -1
  115. package/dist/admin/translations/en.json.mjs.map +1 -1
  116. package/dist/admin/translations/ru.json.js +235 -226
  117. package/dist/admin/translations/ru.json.js.map +1 -1
  118. package/dist/admin/translations/ru.json.mjs +230 -226
  119. package/dist/admin/translations/ru.json.mjs.map +1 -1
  120. package/dist/server/controllers/index.js +3 -1
  121. package/dist/server/controllers/index.js.map +1 -1
  122. package/dist/server/controllers/index.mjs +3 -1
  123. package/dist/server/controllers/index.mjs.map +1 -1
  124. package/dist/server/homepage/controllers/homepage.js +57 -0
  125. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  126. package/dist/server/homepage/controllers/homepage.mjs +36 -0
  127. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  128. package/dist/server/homepage/controllers/index.js +10 -0
  129. package/dist/server/homepage/controllers/index.js.map +1 -0
  130. package/dist/server/homepage/controllers/index.mjs +8 -0
  131. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  132. package/dist/server/homepage/index.js +14 -0
  133. package/dist/server/homepage/index.js.map +1 -0
  134. package/dist/server/homepage/index.mjs +12 -0
  135. package/dist/server/homepage/index.mjs.map +1 -0
  136. package/dist/server/homepage/routes/homepage.js +25 -0
  137. package/dist/server/homepage/routes/homepage.js.map +1 -0
  138. package/dist/server/homepage/routes/homepage.mjs +23 -0
  139. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  140. package/dist/server/homepage/routes/index.js +13 -0
  141. package/dist/server/homepage/routes/index.js.map +1 -0
  142. package/dist/server/homepage/routes/index.mjs +11 -0
  143. package/dist/server/homepage/routes/index.mjs.map +1 -0
  144. package/dist/server/homepage/services/homepage.js +157 -0
  145. package/dist/server/homepage/services/homepage.js.map +1 -0
  146. package/dist/server/homepage/services/homepage.mjs +155 -0
  147. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  148. package/dist/server/homepage/services/index.js +10 -0
  149. package/dist/server/homepage/services/index.js.map +1 -0
  150. package/dist/server/homepage/services/index.mjs +8 -0
  151. package/dist/server/homepage/services/index.mjs.map +1 -0
  152. package/dist/server/preview/services/preview.js +0 -1
  153. package/dist/server/preview/services/preview.js.map +1 -1
  154. package/dist/server/preview/services/preview.mjs +0 -1
  155. package/dist/server/preview/services/preview.mjs.map +1 -1
  156. package/dist/server/routes/index.js +3 -1
  157. package/dist/server/routes/index.js.map +1 -1
  158. package/dist/server/routes/index.mjs +3 -1
  159. package/dist/server/routes/index.mjs.map +1 -1
  160. package/dist/server/services/index.js +3 -1
  161. package/dist/server/services/index.js.map +1 -1
  162. package/dist/server/services/index.mjs +3 -1
  163. package/dist/server/services/index.mjs.map +1 -1
  164. package/dist/server/src/controllers/index.d.ts.map +1 -1
  165. package/dist/server/src/homepage/controllers/homepage.d.ts +7 -0
  166. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  167. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  168. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  169. package/dist/server/src/homepage/index.d.ts +16 -0
  170. package/dist/server/src/homepage/index.d.ts.map +1 -0
  171. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  172. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  173. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  174. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  175. package/dist/server/src/homepage/services/homepage.d.ts +11 -0
  176. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  177. package/dist/server/src/homepage/services/index.d.ts +9 -0
  178. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  179. package/dist/server/src/index.d.ts +7 -1
  180. package/dist/server/src/index.d.ts.map +1 -1
  181. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  182. package/dist/server/src/routes/index.d.ts +1 -0
  183. package/dist/server/src/routes/index.d.ts.map +1 -1
  184. package/dist/server/src/services/data-mapper.d.ts +0 -1
  185. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  186. package/dist/server/src/services/index.d.ts +6 -1
  187. package/dist/server/src/services/index.d.ts.map +1 -1
  188. package/dist/shared/contracts/homepage.d.ts +25 -0
  189. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  190. package/package.json +8 -8
  191. package/dist/admin/features/DocumentContext.js +0 -71
  192. package/dist/admin/features/DocumentContext.js.map +0 -1
  193. package/dist/admin/features/DocumentContext.mjs +0 -49
  194. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  195. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -1 +1 @@
1
- {"version":3,"file":"UID.mjs","sources":["../../../../../../admin/src/pages/EditView/components/FormInputs/UID.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n type InputProps,\n useField,\n useForm,\n useNotification,\n useAPIErrorHandler,\n useQueryParams,\n useFocusInputField,\n} from '@strapi/admin/strapi-admin';\nimport {\n Field,\n Flex,\n FlexComponent,\n TextInput,\n Typography,\n useComposedRefs,\n} from '@strapi/design-system';\nimport { CheckCircle, WarningCircle, Loader, ArrowClockwise } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useDebounce } from '../../../../hooks/useDebounce';\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { CLONE_PATH } from '../../../../router';\nimport {\n useGenerateUIDMutation,\n useGetAvailabilityQuery,\n useGetDefaultUIDQuery,\n} from '../../../../services/uid';\nimport { buildValidParams } from '../../../../utils/api';\n\nimport type { CheckUIDAvailability } from '../../../../../../shared/contracts/uid';\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * InputUID\n * -----------------------------------------------------------------------------------------------*/\n\nconst UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\n\ninterface UIDInputProps extends Omit<InputProps, 'type'> {\n type: Schema.Attribute.TypeOf<Schema.Attribute.UID>;\n}\n\nconst UIDInput = React.forwardRef<any, UIDInputProps>(\n ({ hint, label, labelAction, name, required, ...props }, ref) => {\n const { model, id } = useDoc();\n const allFormValues = useForm('InputUID', (form) => form.values);\n const [availability, setAvailability] = React.useState<CheckUIDAvailability.Response>();\n const [showRegenerate, setShowRegenerate] = React.useState(false);\n const isCloning = useMatch(CLONE_PATH) !== null;\n const field = useField(name);\n const debouncedValue = useDebounce(field.value, 300);\n const hasChanged = debouncedValue !== field.initialValue;\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const {\n data: defaultGeneratedUID,\n isLoading: isGeneratingDefaultUID,\n error: apiError,\n } = useGetDefaultUIDQuery(\n {\n contentTypeUID: model,\n field: name,\n data: {\n id: id ?? '',\n ...allFormValues,\n },\n params,\n },\n {\n skip: field.value || !required,\n }\n );\n\n React.useEffect(() => {\n if (apiError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(apiError),\n });\n }\n }, [apiError, formatAPIError, toggleNotification]);\n\n /**\n * If the defaultGeneratedUID is available, then we set it as the value,\n * but we also want to set it as the initialValue too.\n */\n React.useEffect(() => {\n if (defaultGeneratedUID && field.value === undefined) {\n field.onChange(name, defaultGeneratedUID);\n }\n }, [defaultGeneratedUID, field, name]);\n\n const [generateUID, { isLoading: isGeneratingUID }] = useGenerateUIDMutation();\n\n const handleRegenerateClick = async () => {\n try {\n const res = await generateUID({\n contentTypeUID: model,\n field: name,\n data: { id: id ?? '', ...allFormValues },\n params,\n });\n\n if ('data' in res) {\n field.onChange(name, res.data);\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred.',\n }),\n });\n }\n };\n\n const {\n data: availabilityData,\n isLoading: isCheckingAvailability,\n error: availabilityError,\n } = useGetAvailabilityQuery(\n {\n contentTypeUID: model,\n field: name,\n value: debouncedValue ? debouncedValue.trim() : '',\n params,\n },\n {\n // Don't check availability if the value is empty or wasn't changed\n skip: !Boolean(\n (hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())\n ),\n }\n );\n\n React.useEffect(() => {\n if (availabilityError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(availabilityError),\n });\n }\n }, [availabilityError, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n /**\n * always store the data in state because that way as seen below\n * we can then remove the data to stop showing the label.\n */\n setAvailability(availabilityData);\n\n let timer: number;\n\n if (availabilityData?.isAvailable) {\n timer = window.setTimeout(() => {\n setAvailability(undefined);\n }, 4000);\n }\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [availabilityData]);\n\n const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;\n\n const fieldRef = useFocusInputField(name);\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n const shouldShowAvailability =\n (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;\n\n return (\n <Field.Root hint={hint} name={name} error={field.error} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n disabled={props.disabled}\n endAction={\n <Flex position=\"relative\" gap={1}>\n {shouldShowAvailability && (\n <TextValidation\n alignItems=\"center\"\n gap={1}\n justifyContent=\"flex-end\"\n $available={!!availability?.isAvailable}\n data-not-here-outer\n position=\"absolute\"\n pointerEvents=\"none\"\n right={6}\n width=\"100px\"\n >\n {availability?.isAvailable ? <CheckCircle /> : <WarningCircle />}\n\n <Typography\n textColor={availability.isAvailable ? 'success600' : 'danger600'}\n variant=\"pi\"\n >\n {formatMessage(\n availability.isAvailable\n ? {\n id: 'content-manager.components.uid.available',\n defaultMessage: 'Available',\n }\n : {\n id: 'content-manager.components.uid.unavailable',\n defaultMessage: 'Unavailable',\n }\n )}\n </Typography>\n </TextValidation>\n )}\n\n {!props.disabled && (\n <>\n {showRegenerate && (\n <TextValidation alignItems=\"center\" justifyContent=\"flex-end\" gap={1}>\n <Typography textColor=\"primary600\" variant=\"pi\">\n {formatMessage({\n id: 'content-manager.components.uid.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Typography>\n </TextValidation>\n )}\n\n <FieldActionWrapper\n onClick={handleRegenerateClick}\n label={formatMessage({\n id: 'content-manager.components.uid.regenerate',\n defaultMessage: 'Regenerate',\n })}\n onMouseEnter={() => setShowRegenerate(true)}\n onMouseLeave={() => setShowRegenerate(false)}\n >\n {isLoading ? (\n <LoadingWrapper data-testid=\"loading-wrapper\">\n <Loader />\n </LoadingWrapper>\n ) : (\n <ArrowClockwise />\n )}\n </FieldActionWrapper>\n </>\n )}\n </Flex>\n }\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * FieldActionWrapper\n * -----------------------------------------------------------------------------------------------*/\n\nconst FieldActionWrapper = styled(Field.Action)`\n width: 1.6rem;\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral400};\n }\n }\n\n svg:hover {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TextValidation\n * -----------------------------------------------------------------------------------------------*/\n\nconst TextValidation = styled<FlexComponent>(Flex)<{ $available?: boolean }>`\n svg {\n height: 1.2rem;\n width: 1.2rem;\n\n path {\n fill: ${({ theme, $available }) =>\n $available ? theme.colors.success600 : theme.colors.danger600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingWrapper\n * -----------------------------------------------------------------------------------------------*/\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled<FlexComponent>(Flex)`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst MemoizedUIDInput = React.memo(UIDInput);\n\nexport { MemoizedUIDInput as UIDInput };\nexport type { UIDInputProps };\n"],"names":["UID_REGEX","UIDInput","React","forwardRef","hint","label","labelAction","name","required","props","ref","model","id","useDoc","allFormValues","useForm","form","values","availability","setAvailability","useState","showRegenerate","setShowRegenerate","isCloning","useMatch","CLONE_PATH","field","useField","debouncedValue","useDebounce","value","hasChanged","initialValue","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","formatMessage","useIntl","query","useQueryParams","params","useMemo","buildValidParams","data","defaultGeneratedUID","isLoading","isGeneratingDefaultUID","error","apiError","useGetDefaultUIDQuery","contentTypeUID","skip","useEffect","type","message","undefined","onChange","generateUID","isGeneratingUID","useGenerateUIDMutation","handleRegenerateClick","res","err","defaultMessage","availabilityData","isCheckingAvailability","availabilityError","useGetAvailabilityQuery","trim","Boolean","test","timer","isAvailable","window","setTimeout","clearTimeout","fieldRef","useFocusInputField","composedRefs","useComposedRefs","shouldShowAvailability","_jsxs","Field","Root","_jsx","Label","action","TextInput","disabled","endAction","Flex","position","gap","TextValidation","alignItems","justifyContent","$available","data-not-here-outer","pointerEvents","right","width","CheckCircle","WarningCircle","Typography","textColor","variant","_Fragment","FieldActionWrapper","onClick","onMouseEnter","onMouseLeave","LoadingWrapper","data-testid","Loader","ArrowClockwise","Error","Hint","styled","Action","theme","colors","neutral400","primary600","success600","danger600","rotation","keyframes","MemoizedUIDInput","memo"],"mappings":"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"}
1
+ {"version":3,"file":"UID.mjs","sources":["../../../../../../admin/src/pages/EditView/components/FormInputs/UID.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n type InputProps,\n useField,\n useForm,\n useNotification,\n useAPIErrorHandler,\n useQueryParams,\n useFocusInputField,\n} from '@strapi/admin/strapi-admin';\nimport {\n Field,\n Flex,\n FlexComponent,\n TextInput,\n Typography,\n useComposedRefs,\n} from '@strapi/design-system';\nimport { CheckCircle, WarningCircle, Loader, ArrowClockwise } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useDebounce } from '../../../../hooks/useDebounce';\nimport { useDocumentContext } from '../../../../hooks/useDocumentContext';\nimport { CLONE_PATH } from '../../../../router';\nimport {\n useGenerateUIDMutation,\n useGetAvailabilityQuery,\n useGetDefaultUIDQuery,\n} from '../../../../services/uid';\nimport { buildValidParams } from '../../../../utils/api';\n\nimport type { CheckUIDAvailability } from '../../../../../../shared/contracts/uid';\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * InputUID\n * -----------------------------------------------------------------------------------------------*/\n\nconst UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\n\ninterface UIDInputProps extends Omit<InputProps, 'type'> {\n type: Schema.Attribute.TypeOf<Schema.Attribute.UID>;\n}\n\nconst UIDInput = React.forwardRef<any, UIDInputProps>(\n ({ hint, label, labelAction, name, required, ...props }, ref) => {\n const { currentDocumentMeta } = useDocumentContext('UIDInput');\n const allFormValues = useForm('InputUID', (form) => form.values);\n const [availability, setAvailability] = React.useState<CheckUIDAvailability.Response>();\n const [showRegenerate, setShowRegenerate] = React.useState(false);\n const isCloning = useMatch(CLONE_PATH) !== null;\n const field = useField(name);\n const debouncedValue = useDebounce(field.value, 300);\n const hasChanged = debouncedValue !== field.initialValue;\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const {\n data: defaultGeneratedUID,\n isLoading: isGeneratingDefaultUID,\n error: apiError,\n } = useGetDefaultUIDQuery(\n {\n contentTypeUID: currentDocumentMeta.model,\n field: name,\n data: {\n id: currentDocumentMeta.documentId ?? '',\n ...allFormValues,\n },\n params,\n },\n {\n skip: field.value || !required,\n }\n );\n\n React.useEffect(() => {\n if (apiError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(apiError),\n });\n }\n }, [apiError, formatAPIError, toggleNotification]);\n\n /**\n * If the defaultGeneratedUID is available, then we set it as the value,\n * but we also want to set it as the initialValue too.\n */\n React.useEffect(() => {\n if (defaultGeneratedUID && field.value === undefined) {\n field.onChange(name, defaultGeneratedUID);\n }\n }, [defaultGeneratedUID, field, name]);\n\n const [generateUID, { isLoading: isGeneratingUID }] = useGenerateUIDMutation();\n\n const handleRegenerateClick = async () => {\n try {\n const res = await generateUID({\n contentTypeUID: currentDocumentMeta.model,\n field: name,\n data: { id: currentDocumentMeta.documentId ?? '', ...allFormValues },\n params,\n });\n\n if ('data' in res) {\n field.onChange(name, res.data);\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred.',\n }),\n });\n }\n };\n\n const {\n data: availabilityData,\n isLoading: isCheckingAvailability,\n error: availabilityError,\n } = useGetAvailabilityQuery(\n {\n contentTypeUID: currentDocumentMeta.model,\n field: name,\n value: debouncedValue ? debouncedValue.trim() : '',\n params,\n },\n {\n // Don't check availability if the value is empty or wasn't changed\n skip: !Boolean(\n (hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())\n ),\n }\n );\n\n React.useEffect(() => {\n if (availabilityError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(availabilityError),\n });\n }\n }, [availabilityError, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n /**\n * always store the data in state because that way as seen below\n * we can then remove the data to stop showing the label.\n */\n setAvailability(availabilityData);\n\n let timer: number;\n\n if (availabilityData?.isAvailable) {\n timer = window.setTimeout(() => {\n setAvailability(undefined);\n }, 4000);\n }\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [availabilityData]);\n\n const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;\n\n const fieldRef = useFocusInputField(name);\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n const shouldShowAvailability =\n (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;\n\n return (\n <Field.Root hint={hint} name={name} error={field.error} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n disabled={props.disabled}\n endAction={\n <Flex position=\"relative\" gap={1}>\n {shouldShowAvailability && (\n <TextValidation\n alignItems=\"center\"\n gap={1}\n justifyContent=\"flex-end\"\n $available={!!availability?.isAvailable}\n data-not-here-outer\n position=\"absolute\"\n pointerEvents=\"none\"\n right={6}\n width=\"100px\"\n >\n {availability?.isAvailable ? <CheckCircle /> : <WarningCircle />}\n\n <Typography\n textColor={availability.isAvailable ? 'success600' : 'danger600'}\n variant=\"pi\"\n >\n {formatMessage(\n availability.isAvailable\n ? {\n id: 'content-manager.components.uid.available',\n defaultMessage: 'Available',\n }\n : {\n id: 'content-manager.components.uid.unavailable',\n defaultMessage: 'Unavailable',\n }\n )}\n </Typography>\n </TextValidation>\n )}\n\n {!props.disabled && (\n <>\n {showRegenerate && (\n <TextValidation alignItems=\"center\" justifyContent=\"flex-end\" gap={1}>\n <Typography textColor=\"primary600\" variant=\"pi\">\n {formatMessage({\n id: 'content-manager.components.uid.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Typography>\n </TextValidation>\n )}\n\n <FieldActionWrapper\n onClick={handleRegenerateClick}\n label={formatMessage({\n id: 'content-manager.components.uid.regenerate',\n defaultMessage: 'Regenerate',\n })}\n onMouseEnter={() => setShowRegenerate(true)}\n onMouseLeave={() => setShowRegenerate(false)}\n >\n {isLoading ? (\n <LoadingWrapper data-testid=\"loading-wrapper\">\n <Loader />\n </LoadingWrapper>\n ) : (\n <ArrowClockwise />\n )}\n </FieldActionWrapper>\n </>\n )}\n </Flex>\n }\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * FieldActionWrapper\n * -----------------------------------------------------------------------------------------------*/\n\nconst FieldActionWrapper = styled(Field.Action)`\n width: 1.6rem;\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral400};\n }\n }\n\n svg:hover {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TextValidation\n * -----------------------------------------------------------------------------------------------*/\n\nconst TextValidation = styled<FlexComponent>(Flex)<{ $available?: boolean }>`\n svg {\n height: 1.2rem;\n width: 1.2rem;\n\n path {\n fill: ${({ theme, $available }) =>\n $available ? theme.colors.success600 : theme.colors.danger600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingWrapper\n * -----------------------------------------------------------------------------------------------*/\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled<FlexComponent>(Flex)`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst MemoizedUIDInput = React.memo(UIDInput);\n\nexport { MemoizedUIDInput as UIDInput };\nexport type { UIDInputProps };\n"],"names":["UID_REGEX","UIDInput","React","forwardRef","hint","label","labelAction","name","required","props","ref","currentDocumentMeta","useDocumentContext","allFormValues","useForm","form","values","availability","setAvailability","useState","showRegenerate","setShowRegenerate","isCloning","useMatch","CLONE_PATH","field","useField","debouncedValue","useDebounce","value","hasChanged","initialValue","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","formatMessage","useIntl","query","useQueryParams","params","useMemo","buildValidParams","data","defaultGeneratedUID","isLoading","isGeneratingDefaultUID","error","apiError","useGetDefaultUIDQuery","contentTypeUID","model","id","documentId","skip","useEffect","type","message","undefined","onChange","generateUID","isGeneratingUID","useGenerateUIDMutation","handleRegenerateClick","res","err","defaultMessage","availabilityData","isCheckingAvailability","availabilityError","useGetAvailabilityQuery","trim","Boolean","test","timer","isAvailable","window","setTimeout","clearTimeout","fieldRef","useFocusInputField","composedRefs","useComposedRefs","shouldShowAvailability","_jsxs","Field","Root","_jsx","Label","action","TextInput","disabled","endAction","Flex","position","gap","TextValidation","alignItems","justifyContent","$available","data-not-here-outer","pointerEvents","right","width","CheckCircle","WarningCircle","Typography","textColor","variant","_Fragment","FieldActionWrapper","onClick","onMouseEnter","onMouseLeave","LoadingWrapper","data-testid","Loader","ArrowClockwise","Error","Hint","styled","Action","theme","colors","neutral400","primary600","success600","danger600","rotation","keyframes","MemoizedUIDInput","memo"],"mappings":"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"}
@@ -1,117 +1,73 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
4
+ require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
  var Icons = require('@strapi/icons');
7
7
  var reactIntl = require('react-intl');
8
8
  var styledComponents = require('styled-components');
9
9
  var PreviewWysiwyg = require('./PreviewWysiwyg.js');
10
10
 
11
- function _interopNamespaceDefault(e) {
12
- var n = Object.create(null);
13
- if (e) {
14
- Object.keys(e).forEach(function (k) {
15
- if (k !== 'default') {
16
- var d = Object.getOwnPropertyDescriptor(e, k);
17
- Object.defineProperty(n, k, d.get ? d : {
18
- enumerable: true,
19
- get: function () { return e[k]; }
20
- });
21
- }
22
- });
23
- }
24
- n.default = e;
25
- return Object.freeze(n);
26
- }
27
-
28
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
-
30
11
  const EditorLayout = ({ children, isExpandMode, error, previewContent = '', onCollapse })=>{
31
12
  const { formatMessage } = reactIntl.useIntl();
32
- React__namespace.useEffect(()=>{
33
- if (isExpandMode) {
34
- document.body.classList.add('lock-body-scroll');
35
- }
36
- return ()=>{
37
- document.body.classList.remove('lock-body-scroll');
38
- };
39
- }, [
40
- isExpandMode
41
- ]);
42
13
  if (isExpandMode) {
43
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Portal, {
44
- role: "dialog",
45
- "aria-modal": false,
46
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.FocusTrap, {
47
- onEscape: onCollapse,
48
- children: /*#__PURE__*/ jsxRuntime.jsx(ExpandWrapper, {
49
- position: "fixed",
50
- top: 0,
51
- left: 0,
52
- right: 0,
53
- bottom: 0,
54
- zIndex: 4,
55
- justifyContent: "center",
56
- onClick: onCollapse,
57
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
58
- background: "neutral0",
59
- hasRadius: true,
60
- shadow: "popupShadow",
61
- overflow: "hidden",
62
- width: "90%",
63
- height: "90%",
64
- onClick: (e)=>e.stopPropagation(),
65
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
14
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Root, {
15
+ open: isExpandMode,
16
+ onOpenChange: onCollapse,
17
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Content, {
18
+ style: {
19
+ maxWidth: 'unset',
20
+ width: 'unset'
21
+ },
22
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
23
+ height: "90vh",
24
+ width: "90vw",
25
+ alignItems: "flex-start",
26
+ children: [
27
+ /*#__PURE__*/ jsxRuntime.jsx(BoxWithBorder, {
28
+ flex: "1",
66
29
  height: "100%",
67
- alignItems: "flex-start",
30
+ children: children
31
+ }),
32
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
33
+ alignItems: "start",
34
+ direction: "column",
35
+ flex: 1,
36
+ height: "100%",
37
+ width: "100%",
68
38
  children: [
69
- /*#__PURE__*/ jsxRuntime.jsx(BoxWithBorder, {
70
- flex: "1",
71
- height: "100%",
72
- children: children
39
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
40
+ height: "4.8rem",
41
+ background: "neutral100",
42
+ justifyContent: "flex-end",
43
+ shrink: 0,
44
+ width: "100%",
45
+ children: /*#__PURE__*/ jsxRuntime.jsxs(ExpandButton, {
46
+ onClick: onCollapse,
47
+ variant: "tertiary",
48
+ size: "M",
49
+ children: [
50
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
51
+ children: formatMessage({
52
+ id: 'components.Wysiwyg.collapse',
53
+ defaultMessage: 'Collapse'
54
+ })
55
+ }),
56
+ /*#__PURE__*/ jsxRuntime.jsx(Icons.Collapse, {})
57
+ ]
58
+ })
73
59
  }),
74
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
75
- alignItems: "start",
76
- direction: "column",
77
- flex: 1,
60
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
61
+ position: "relative",
78
62
  height: "100%",
79
63
  width: "100%",
80
- children: [
81
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
82
- height: "4.8rem",
83
- background: "neutral100",
84
- justifyContent: "flex-end",
85
- shrink: 0,
86
- width: "100%",
87
- children: /*#__PURE__*/ jsxRuntime.jsxs(ExpandButton, {
88
- onClick: onCollapse,
89
- variant: "tertiary",
90
- size: "M",
91
- children: [
92
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
93
- children: formatMessage({
94
- id: 'components.Wysiwyg.collapse',
95
- defaultMessage: 'Collapse'
96
- })
97
- }),
98
- /*#__PURE__*/ jsxRuntime.jsx(Icons.Collapse, {})
99
- ]
100
- })
101
- }),
102
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
103
- position: "relative",
104
- height: "100%",
105
- width: "100%",
106
- children: /*#__PURE__*/ jsxRuntime.jsx(PreviewWysiwyg.PreviewWysiwyg, {
107
- data: previewContent
108
- })
109
- })
110
- ]
64
+ children: /*#__PURE__*/ jsxRuntime.jsx(PreviewWysiwyg.PreviewWysiwyg, {
65
+ data: previewContent
66
+ })
111
67
  })
112
68
  ]
113
69
  })
114
- })
70
+ ]
115
71
  })
116
72
  })
117
73
  });
@@ -126,9 +82,6 @@ const EditorLayout = ({ children, isExpandMode, error, previewContent = '', onCo
126
82
  children: children
127
83
  });
128
84
  };
129
- const ExpandWrapper = styledComponents.styled(designSystem.Flex)`
130
- background: ${({ theme })=>`${theme.colors.neutral800}${Math.floor(0.2 * 255).toString(16).padStart(2, '0')}`};
131
- `;
132
85
  const BoxWithBorder = styledComponents.styled(designSystem.Box)`
133
86
  border-right: 1px solid ${({ theme })=>theme.colors.neutral200};
134
87
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"EditorLayout.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n FocusTrap,\n Portal,\n Typography,\n} from '@strapi/design-system';\nimport { Collapse } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\n\ninterface EditorLayoutProps {\n children: React.ReactNode;\n isExpandMode: boolean;\n error?: string;\n previewContent?: string;\n onCollapse: () => void;\n}\n\nconst EditorLayout = ({\n children,\n isExpandMode,\n error,\n previewContent = '',\n onCollapse,\n}: EditorLayoutProps) => {\n const { formatMessage } = useIntl();\n\n React.useEffect(() => {\n if (isExpandMode) {\n document.body.classList.add('lock-body-scroll');\n }\n\n return () => {\n document.body.classList.remove('lock-body-scroll');\n };\n }, [isExpandMode]);\n\n if (isExpandMode) {\n return (\n <Portal role=\"dialog\" aria-modal={false}>\n <FocusTrap onEscape={onCollapse}>\n <ExpandWrapper\n position=\"fixed\"\n top={0}\n left={0}\n right={0}\n bottom={0}\n zIndex={4}\n justifyContent=\"center\"\n onClick={onCollapse}\n >\n <Box<'div'>\n background=\"neutral0\"\n hasRadius\n shadow=\"popupShadow\"\n overflow=\"hidden\"\n width=\"90%\"\n height=\"90%\"\n onClick={(e) => e.stopPropagation()}\n >\n <Flex height=\"100%\" alignItems=\"flex-start\">\n <BoxWithBorder flex=\"1\" height=\"100%\">\n {children}\n </BoxWithBorder>\n <Flex alignItems=\"start\" direction=\"column\" flex={1} height=\"100%\" width=\"100%\">\n <Flex\n height=\"4.8rem\"\n background=\"neutral100\"\n justifyContent=\"flex-end\"\n shrink={0}\n width=\"100%\"\n >\n <ExpandButton onClick={onCollapse} variant=\"tertiary\" size=\"M\">\n <Typography>\n {formatMessage({\n id: 'components.Wysiwyg.collapse',\n defaultMessage: 'Collapse',\n })}\n </Typography>\n <Collapse />\n </ExpandButton>\n </Flex>\n\n <Box position=\"relative\" height=\"100%\" width=\"100%\">\n <PreviewWysiwyg data={previewContent} />\n </Box>\n </Flex>\n </Flex>\n </Box>\n </ExpandWrapper>\n </FocusTrap>\n </Portal>\n );\n }\n\n return (\n <Flex\n borderColor={error ? 'danger600' : 'neutral200'}\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n hasRadius\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children}\n </Flex>\n );\n};\n\nconst ExpandWrapper = styled<FlexComponent>(Flex)`\n background: ${({ theme }) =>\n `${theme.colors.neutral800}${Math.floor(0.2 * 255)\n .toString(16)\n .padStart(2, '0')}`};\n`;\n\nconst BoxWithBorder = styled<BoxComponent>(Box)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral200};\n`;\n\nconst ExpandButton = styled(Button)`\n background-color: transparent;\n border: none;\n align-items: center;\n\n & > span {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n }\n\n svg {\n margin-left: ${({ theme }) => `${theme.spaces[2]}`};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral700};\n width: 1.2rem;\n height: 1.2rem;\n }\n }\n`;\n\nexport { EditorLayout, ExpandButton };\nexport type { EditorLayoutProps };\n"],"names":["EditorLayout","children","isExpandMode","error","previewContent","onCollapse","formatMessage","useIntl","React","useEffect","document","body","classList","add","remove","_jsx","Portal","role","aria-modal","FocusTrap","onEscape","ExpandWrapper","position","top","left","right","bottom","zIndex","justifyContent","onClick","Box","background","hasRadius","shadow","overflow","width","height","e","stopPropagation","_jsxs","Flex","alignItems","BoxWithBorder","flex","direction","shrink","ExpandButton","variant","size","Typography","id","defaultMessage","Collapse","PreviewWysiwyg","data","borderColor","borderStyle","borderWidth","styled","theme","colors","neutral800","Math","floor","toString","padStart","neutral200","Button","fontWeights","regular","spaces","neutral700"],"mappings":"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"}
1
+ {"version":3,"file":"EditorLayout.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Box, BoxComponent, Flex, Typography, Modal } from '@strapi/design-system';\nimport { Collapse } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\n\ninterface EditorLayoutProps {\n children: React.ReactNode;\n isExpandMode: boolean;\n error?: string;\n previewContent?: string;\n onCollapse: () => void;\n}\n\nconst EditorLayout = ({\n children,\n isExpandMode,\n error,\n previewContent = '',\n onCollapse,\n}: EditorLayoutProps) => {\n const { formatMessage } = useIntl();\n\n if (isExpandMode) {\n return (\n <Modal.Root open={isExpandMode} onOpenChange={onCollapse}>\n <Modal.Content style={{ maxWidth: 'unset', width: 'unset' }}>\n <Flex height=\"90vh\" width=\"90vw\" alignItems=\"flex-start\">\n <BoxWithBorder flex=\"1\" height=\"100%\">\n {children}\n </BoxWithBorder>\n <Flex alignItems=\"start\" direction=\"column\" flex={1} height=\"100%\" width=\"100%\">\n <Flex\n height=\"4.8rem\"\n background=\"neutral100\"\n justifyContent=\"flex-end\"\n shrink={0}\n width=\"100%\"\n >\n <ExpandButton onClick={onCollapse} variant=\"tertiary\" size=\"M\">\n <Typography>\n {formatMessage({\n id: 'components.Wysiwyg.collapse',\n defaultMessage: 'Collapse',\n })}\n </Typography>\n <Collapse />\n </ExpandButton>\n </Flex>\n <Box position=\"relative\" height=\"100%\" width=\"100%\">\n <PreviewWysiwyg data={previewContent} />\n </Box>\n </Flex>\n </Flex>\n </Modal.Content>\n </Modal.Root>\n );\n }\n\n return (\n <Flex\n borderColor={error ? 'danger600' : 'neutral200'}\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n hasRadius\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children}\n </Flex>\n );\n};\n\nconst BoxWithBorder = styled<BoxComponent>(Box)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral200};\n`;\n\nconst ExpandButton = styled(Button)`\n background-color: transparent;\n border: none;\n align-items: center;\n\n & > span {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n }\n\n svg {\n margin-left: ${({ theme }) => `${theme.spaces[2]}`};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral700};\n width: 1.2rem;\n height: 1.2rem;\n }\n }\n`;\n\nexport { EditorLayout, ExpandButton };\nexport type { EditorLayoutProps };\n"],"names":["EditorLayout","children","isExpandMode","error","previewContent","onCollapse","formatMessage","useIntl","_jsx","Modal","Root","open","onOpenChange","Content","style","maxWidth","width","_jsxs","Flex","height","alignItems","BoxWithBorder","flex","direction","background","justifyContent","shrink","ExpandButton","onClick","variant","size","Typography","id","defaultMessage","Collapse","Box","position","PreviewWysiwyg","data","borderColor","borderStyle","borderWidth","hasRadius","styled","theme","colors","neutral200","Button","fontWeights","regular","spaces","neutral700"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import { Flex, Box, Button, Portal, FocusTrap, Typography } from '@strapi/design-system';
2
+ import 'react';
3
+ import { Box, Button, Modal, Flex, Typography } from '@strapi/design-system';
4
4
  import { Collapse } from '@strapi/icons';
5
5
  import { useIntl } from 'react-intl';
6
6
  import { styled } from 'styled-components';
@@ -8,89 +8,64 @@ import { PreviewWysiwyg } from './PreviewWysiwyg.mjs';
8
8
 
9
9
  const EditorLayout = ({ children, isExpandMode, error, previewContent = '', onCollapse })=>{
10
10
  const { formatMessage } = useIntl();
11
- React.useEffect(()=>{
12
- if (isExpandMode) {
13
- document.body.classList.add('lock-body-scroll');
14
- }
15
- return ()=>{
16
- document.body.classList.remove('lock-body-scroll');
17
- };
18
- }, [
19
- isExpandMode
20
- ]);
21
11
  if (isExpandMode) {
22
- return /*#__PURE__*/ jsx(Portal, {
23
- role: "dialog",
24
- "aria-modal": false,
25
- children: /*#__PURE__*/ jsx(FocusTrap, {
26
- onEscape: onCollapse,
27
- children: /*#__PURE__*/ jsx(ExpandWrapper, {
28
- position: "fixed",
29
- top: 0,
30
- left: 0,
31
- right: 0,
32
- bottom: 0,
33
- zIndex: 4,
34
- justifyContent: "center",
35
- onClick: onCollapse,
36
- children: /*#__PURE__*/ jsx(Box, {
37
- background: "neutral0",
38
- hasRadius: true,
39
- shadow: "popupShadow",
40
- overflow: "hidden",
41
- width: "90%",
42
- height: "90%",
43
- onClick: (e)=>e.stopPropagation(),
44
- children: /*#__PURE__*/ jsxs(Flex, {
12
+ return /*#__PURE__*/ jsx(Modal.Root, {
13
+ open: isExpandMode,
14
+ onOpenChange: onCollapse,
15
+ children: /*#__PURE__*/ jsx(Modal.Content, {
16
+ style: {
17
+ maxWidth: 'unset',
18
+ width: 'unset'
19
+ },
20
+ children: /*#__PURE__*/ jsxs(Flex, {
21
+ height: "90vh",
22
+ width: "90vw",
23
+ alignItems: "flex-start",
24
+ children: [
25
+ /*#__PURE__*/ jsx(BoxWithBorder, {
26
+ flex: "1",
45
27
  height: "100%",
46
- alignItems: "flex-start",
28
+ children: children
29
+ }),
30
+ /*#__PURE__*/ jsxs(Flex, {
31
+ alignItems: "start",
32
+ direction: "column",
33
+ flex: 1,
34
+ height: "100%",
35
+ width: "100%",
47
36
  children: [
48
- /*#__PURE__*/ jsx(BoxWithBorder, {
49
- flex: "1",
50
- height: "100%",
51
- children: children
37
+ /*#__PURE__*/ jsx(Flex, {
38
+ height: "4.8rem",
39
+ background: "neutral100",
40
+ justifyContent: "flex-end",
41
+ shrink: 0,
42
+ width: "100%",
43
+ children: /*#__PURE__*/ jsxs(ExpandButton, {
44
+ onClick: onCollapse,
45
+ variant: "tertiary",
46
+ size: "M",
47
+ children: [
48
+ /*#__PURE__*/ jsx(Typography, {
49
+ children: formatMessage({
50
+ id: 'components.Wysiwyg.collapse',
51
+ defaultMessage: 'Collapse'
52
+ })
53
+ }),
54
+ /*#__PURE__*/ jsx(Collapse, {})
55
+ ]
56
+ })
52
57
  }),
53
- /*#__PURE__*/ jsxs(Flex, {
54
- alignItems: "start",
55
- direction: "column",
56
- flex: 1,
58
+ /*#__PURE__*/ jsx(Box, {
59
+ position: "relative",
57
60
  height: "100%",
58
61
  width: "100%",
59
- children: [
60
- /*#__PURE__*/ jsx(Flex, {
61
- height: "4.8rem",
62
- background: "neutral100",
63
- justifyContent: "flex-end",
64
- shrink: 0,
65
- width: "100%",
66
- children: /*#__PURE__*/ jsxs(ExpandButton, {
67
- onClick: onCollapse,
68
- variant: "tertiary",
69
- size: "M",
70
- children: [
71
- /*#__PURE__*/ jsx(Typography, {
72
- children: formatMessage({
73
- id: 'components.Wysiwyg.collapse',
74
- defaultMessage: 'Collapse'
75
- })
76
- }),
77
- /*#__PURE__*/ jsx(Collapse, {})
78
- ]
79
- })
80
- }),
81
- /*#__PURE__*/ jsx(Box, {
82
- position: "relative",
83
- height: "100%",
84
- width: "100%",
85
- children: /*#__PURE__*/ jsx(PreviewWysiwyg, {
86
- data: previewContent
87
- })
88
- })
89
- ]
62
+ children: /*#__PURE__*/ jsx(PreviewWysiwyg, {
63
+ data: previewContent
64
+ })
90
65
  })
91
66
  ]
92
67
  })
93
- })
68
+ ]
94
69
  })
95
70
  })
96
71
  });
@@ -105,9 +80,6 @@ const EditorLayout = ({ children, isExpandMode, error, previewContent = '', onCo
105
80
  children: children
106
81
  });
107
82
  };
108
- const ExpandWrapper = styled(Flex)`
109
- background: ${({ theme })=>`${theme.colors.neutral800}${Math.floor(0.2 * 255).toString(16).padStart(2, '0')}`};
110
- `;
111
83
  const BoxWithBorder = styled(Box)`
112
84
  border-right: 1px solid ${({ theme })=>theme.colors.neutral200};
113
85
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"EditorLayout.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n FocusTrap,\n Portal,\n Typography,\n} from '@strapi/design-system';\nimport { Collapse } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\n\ninterface EditorLayoutProps {\n children: React.ReactNode;\n isExpandMode: boolean;\n error?: string;\n previewContent?: string;\n onCollapse: () => void;\n}\n\nconst EditorLayout = ({\n children,\n isExpandMode,\n error,\n previewContent = '',\n onCollapse,\n}: EditorLayoutProps) => {\n const { formatMessage } = useIntl();\n\n React.useEffect(() => {\n if (isExpandMode) {\n document.body.classList.add('lock-body-scroll');\n }\n\n return () => {\n document.body.classList.remove('lock-body-scroll');\n };\n }, [isExpandMode]);\n\n if (isExpandMode) {\n return (\n <Portal role=\"dialog\" aria-modal={false}>\n <FocusTrap onEscape={onCollapse}>\n <ExpandWrapper\n position=\"fixed\"\n top={0}\n left={0}\n right={0}\n bottom={0}\n zIndex={4}\n justifyContent=\"center\"\n onClick={onCollapse}\n >\n <Box<'div'>\n background=\"neutral0\"\n hasRadius\n shadow=\"popupShadow\"\n overflow=\"hidden\"\n width=\"90%\"\n height=\"90%\"\n onClick={(e) => e.stopPropagation()}\n >\n <Flex height=\"100%\" alignItems=\"flex-start\">\n <BoxWithBorder flex=\"1\" height=\"100%\">\n {children}\n </BoxWithBorder>\n <Flex alignItems=\"start\" direction=\"column\" flex={1} height=\"100%\" width=\"100%\">\n <Flex\n height=\"4.8rem\"\n background=\"neutral100\"\n justifyContent=\"flex-end\"\n shrink={0}\n width=\"100%\"\n >\n <ExpandButton onClick={onCollapse} variant=\"tertiary\" size=\"M\">\n <Typography>\n {formatMessage({\n id: 'components.Wysiwyg.collapse',\n defaultMessage: 'Collapse',\n })}\n </Typography>\n <Collapse />\n </ExpandButton>\n </Flex>\n\n <Box position=\"relative\" height=\"100%\" width=\"100%\">\n <PreviewWysiwyg data={previewContent} />\n </Box>\n </Flex>\n </Flex>\n </Box>\n </ExpandWrapper>\n </FocusTrap>\n </Portal>\n );\n }\n\n return (\n <Flex\n borderColor={error ? 'danger600' : 'neutral200'}\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n hasRadius\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children}\n </Flex>\n );\n};\n\nconst ExpandWrapper = styled<FlexComponent>(Flex)`\n background: ${({ theme }) =>\n `${theme.colors.neutral800}${Math.floor(0.2 * 255)\n .toString(16)\n .padStart(2, '0')}`};\n`;\n\nconst BoxWithBorder = styled<BoxComponent>(Box)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral200};\n`;\n\nconst ExpandButton = styled(Button)`\n background-color: transparent;\n border: none;\n align-items: center;\n\n & > span {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n }\n\n svg {\n margin-left: ${({ theme }) => `${theme.spaces[2]}`};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral700};\n width: 1.2rem;\n height: 1.2rem;\n }\n }\n`;\n\nexport { EditorLayout, ExpandButton };\nexport type { EditorLayoutProps };\n"],"names":["EditorLayout","children","isExpandMode","error","previewContent","onCollapse","formatMessage","useIntl","React","useEffect","document","body","classList","add","remove","_jsx","Portal","role","aria-modal","FocusTrap","onEscape","ExpandWrapper","position","top","left","right","bottom","zIndex","justifyContent","onClick","Box","background","hasRadius","shadow","overflow","width","height","e","stopPropagation","_jsxs","Flex","alignItems","BoxWithBorder","flex","direction","shrink","ExpandButton","variant","size","Typography","id","defaultMessage","Collapse","PreviewWysiwyg","data","borderColor","borderStyle","borderWidth","styled","theme","colors","neutral800","Math","floor","toString","padStart","neutral200","Button","fontWeights","regular","spaces","neutral700"],"mappings":"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"}
1
+ {"version":3,"file":"EditorLayout.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Box, BoxComponent, Flex, Typography, Modal } from '@strapi/design-system';\nimport { Collapse } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\n\ninterface EditorLayoutProps {\n children: React.ReactNode;\n isExpandMode: boolean;\n error?: string;\n previewContent?: string;\n onCollapse: () => void;\n}\n\nconst EditorLayout = ({\n children,\n isExpandMode,\n error,\n previewContent = '',\n onCollapse,\n}: EditorLayoutProps) => {\n const { formatMessage } = useIntl();\n\n if (isExpandMode) {\n return (\n <Modal.Root open={isExpandMode} onOpenChange={onCollapse}>\n <Modal.Content style={{ maxWidth: 'unset', width: 'unset' }}>\n <Flex height=\"90vh\" width=\"90vw\" alignItems=\"flex-start\">\n <BoxWithBorder flex=\"1\" height=\"100%\">\n {children}\n </BoxWithBorder>\n <Flex alignItems=\"start\" direction=\"column\" flex={1} height=\"100%\" width=\"100%\">\n <Flex\n height=\"4.8rem\"\n background=\"neutral100\"\n justifyContent=\"flex-end\"\n shrink={0}\n width=\"100%\"\n >\n <ExpandButton onClick={onCollapse} variant=\"tertiary\" size=\"M\">\n <Typography>\n {formatMessage({\n id: 'components.Wysiwyg.collapse',\n defaultMessage: 'Collapse',\n })}\n </Typography>\n <Collapse />\n </ExpandButton>\n </Flex>\n <Box position=\"relative\" height=\"100%\" width=\"100%\">\n <PreviewWysiwyg data={previewContent} />\n </Box>\n </Flex>\n </Flex>\n </Modal.Content>\n </Modal.Root>\n );\n }\n\n return (\n <Flex\n borderColor={error ? 'danger600' : 'neutral200'}\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n hasRadius\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children}\n </Flex>\n );\n};\n\nconst BoxWithBorder = styled<BoxComponent>(Box)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral200};\n`;\n\nconst ExpandButton = styled(Button)`\n background-color: transparent;\n border: none;\n align-items: center;\n\n & > span {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n }\n\n svg {\n margin-left: ${({ theme }) => `${theme.spaces[2]}`};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral700};\n width: 1.2rem;\n height: 1.2rem;\n }\n }\n`;\n\nexport { EditorLayout, ExpandButton };\nexport type { EditorLayoutProps };\n"],"names":["EditorLayout","children","isExpandMode","error","previewContent","onCollapse","formatMessage","useIntl","_jsx","Modal","Root","open","onOpenChange","Content","style","maxWidth","width","_jsxs","Flex","height","alignItems","BoxWithBorder","flex","direction","background","justifyContent","shrink","ExpandButton","onClick","variant","size","Typography","id","defaultMessage","Collapse","Box","position","PreviewWysiwyg","data","borderColor","borderStyle","borderWidth","hasRadius","styled","theme","colors","neutral200","Button","fontWeights","regular","spaces","neutral700"],"mappings":"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"}
@@ -5,9 +5,8 @@ var React = require('react');
5
5
  var strapiAdmin = require('@strapi/admin/strapi-admin');
6
6
  var reactIntl = require('react-intl');
7
7
  var collections = require('../../../constants/collections.js');
8
- var DocumentContext = require('../../../features/DocumentContext.js');
9
8
  var DocumentRBAC = require('../../../features/DocumentRBAC.js');
10
- var useDocument = require('../../../hooks/useDocument.js');
9
+ var useDocumentContext = require('../../../hooks/useDocumentContext.js');
11
10
  var useDocumentLayout = require('../../../hooks/useDocumentLayout.js');
12
11
  var useLazyComponents = require('../../../hooks/useLazyComponents.js');
13
12
  var BlocksInput = require('./FormInputs/BlocksInput/BlocksInput.js');
@@ -45,14 +44,8 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
45
44
  * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific
46
45
  * components such as Blocks / Relations.
47
46
  */ const InputRenderer = ({ visible, hint: providedHint, document, ...props })=>{
48
- const { model: rootModel } = useDocument.useDoc();
49
- const rootDocumentMeta = DocumentContext.useDocumentContext('DynamicComponent', (state)=>state.rootDocumentMeta);
50
- const { edit: { components: rootComponents } } = useDocumentLayout.useDocumentLayout(rootDocumentMeta.model);
51
- const { edit: { components: relatedComponents } } = useDocumentLayout.useDocumentLayout(document.schema?.uid ?? rootModel);
52
- const components = {
53
- ...rootComponents,
54
- ...relatedComponents
55
- };
47
+ const { currentDocumentMeta } = useDocumentContext.useDocumentContext('DynamicComponent');
48
+ const { edit: { components } } = useDocumentLayout.useDocumentLayout(currentDocumentMeta.model);
56
49
  const collectionType = document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';
57
50
  const isInDynamicZone = Field.useDynamicZone('isInDynamicZone', (state)=>state.isInDynamicZone);
58
51
  const isFormDisabled = strapiAdmin.useForm('InputRenderer', (state)=>state.disabled);