@strapi/content-type-builder 5.26.0 → 5.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -78,183 +78,187 @@ const ContentTypeBuilderNav = ()=>{
78
78
  /*#__PURE__*/ jsx(Divider, {
79
79
  background: "neutral150"
80
80
  }),
81
- /*#__PURE__*/ jsxs(Flex, {
82
- padding: 5,
83
- gap: 3,
84
- direction: 'column',
85
- alignItems: 'stretch',
81
+ /*#__PURE__*/ jsxs(SubNav.Content, {
86
82
  children: [
87
- /*#__PURE__*/ jsx(tours.contentTypeBuilder.Save, {
88
- children: /*#__PURE__*/ jsxs(Flex, {
89
- gap: 2,
90
- children: [
91
- /*#__PURE__*/ jsx(Button, {
92
- flex: 1,
93
- onClick: (e)=>{
94
- e.preventDefault();
95
- saveSchema();
96
- },
97
- type: "submit",
98
- disabled: !isModified || !isInDevelopmentMode,
99
- fullWidth: true,
100
- size: "S",
101
- children: formatMessage({
102
- id: 'global.save',
103
- defaultMessage: 'Save'
104
- })
105
- }),
106
- /*#__PURE__*/ jsxs(Menu.Root, {
107
- open: menuIsOpen,
108
- onOpenChange: setMenuIsOpen,
83
+ /*#__PURE__*/ jsxs(Flex, {
84
+ padding: 5,
85
+ gap: 3,
86
+ direction: 'column',
87
+ alignItems: 'stretch',
88
+ children: [
89
+ /*#__PURE__*/ jsx(tours.contentTypeBuilder.Save, {
90
+ children: /*#__PURE__*/ jsxs(Flex, {
91
+ gap: 2,
109
92
  children: [
110
- /*#__PURE__*/ jsxs(Menu.Trigger, {
93
+ /*#__PURE__*/ jsx(Button, {
94
+ flex: 1,
95
+ onClick: (e)=>{
96
+ e.preventDefault();
97
+ saveSchema();
98
+ },
99
+ type: "submit",
100
+ disabled: !isModified || !isInDevelopmentMode,
101
+ fullWidth: true,
111
102
  size: "S",
112
- endIcon: null,
113
- paddingTop: "4px",
114
- paddingLeft: "7px",
115
- paddingRight: "7px",
116
- variant: "tertiary",
117
- children: [
118
- /*#__PURE__*/ jsx(More, {
119
- fill: "neutral500",
120
- "aria-hidden": true,
121
- focusable: false
122
- }),
123
- /*#__PURE__*/ jsx(VisuallyHidden, {
124
- tag: "span",
125
- children: formatMessage({
126
- id: 'global.more.actions',
127
- defaultMessage: 'More actions'
128
- })
129
- })
130
- ]
103
+ children: formatMessage({
104
+ id: 'global.save',
105
+ defaultMessage: 'Save'
106
+ })
131
107
  }),
132
- /*#__PURE__*/ jsxs(Menu.Content, {
133
- zIndex: 1,
108
+ /*#__PURE__*/ jsxs(Menu.Root, {
109
+ open: menuIsOpen,
110
+ onOpenChange: setMenuIsOpen,
134
111
  children: [
135
- /*#__PURE__*/ jsx(Menu.Item, {
136
- disabled: !history.canUndo || !isInDevelopmentMode,
137
- onSelect: undoHandler,
138
- startIcon: /*#__PURE__*/ jsx(ArrowCounterClockwise, {}),
139
- children: formatMessage({
140
- id: 'global.last-change.undo',
141
- defaultMessage: 'Undo last change'
142
- })
143
- }),
144
- /*#__PURE__*/ jsx(Menu.Item, {
145
- disabled: !history.canRedo || !isInDevelopmentMode,
146
- onSelect: redoHandler,
147
- startIcon: /*#__PURE__*/ jsx(ArrowClockwise, {}),
148
- children: formatMessage({
149
- id: 'global.last-change.redo',
150
- defaultMessage: 'Redo last change'
151
- })
112
+ /*#__PURE__*/ jsxs(Menu.Trigger, {
113
+ size: "S",
114
+ endIcon: null,
115
+ paddingTop: "4px",
116
+ paddingLeft: "7px",
117
+ paddingRight: "7px",
118
+ variant: "tertiary",
119
+ children: [
120
+ /*#__PURE__*/ jsx(More, {
121
+ fill: "neutral500",
122
+ "aria-hidden": true,
123
+ focusable: false
124
+ }),
125
+ /*#__PURE__*/ jsx(VisuallyHidden, {
126
+ tag: "span",
127
+ children: formatMessage({
128
+ id: 'global.more.actions',
129
+ defaultMessage: 'More actions'
130
+ })
131
+ })
132
+ ]
152
133
  }),
153
- /*#__PURE__*/ jsx(Menu.Separator, {}),
154
- /*#__PURE__*/ jsx(DiscardAllMenuItem, {
155
- disabled: !history.canDiscardAll || !isInDevelopmentMode,
156
- onSelect: discardHandler,
157
- children: /*#__PURE__*/ jsxs(Flex, {
158
- gap: 2,
159
- children: [
160
- /*#__PURE__*/ jsx(Cross, {}),
161
- /*#__PURE__*/ jsx(Typography, {
162
- children: formatMessage({
163
- id: 'global.last-changes.discard',
164
- defaultMessage: 'Discard last changes'
165
- })
134
+ /*#__PURE__*/ jsxs(Menu.Content, {
135
+ zIndex: 1,
136
+ children: [
137
+ /*#__PURE__*/ jsx(Menu.Item, {
138
+ disabled: !history.canUndo || !isInDevelopmentMode,
139
+ onSelect: undoHandler,
140
+ startIcon: /*#__PURE__*/ jsx(ArrowCounterClockwise, {}),
141
+ children: formatMessage({
142
+ id: 'global.last-change.undo',
143
+ defaultMessage: 'Undo last change'
144
+ })
145
+ }),
146
+ /*#__PURE__*/ jsx(Menu.Item, {
147
+ disabled: !history.canRedo || !isInDevelopmentMode,
148
+ onSelect: redoHandler,
149
+ startIcon: /*#__PURE__*/ jsx(ArrowClockwise, {}),
150
+ children: formatMessage({
151
+ id: 'global.last-change.redo',
152
+ defaultMessage: 'Redo last change'
166
153
  })
167
- ]
168
- })
154
+ }),
155
+ /*#__PURE__*/ jsx(Menu.Separator, {}),
156
+ /*#__PURE__*/ jsx(DiscardAllMenuItem, {
157
+ disabled: !history.canDiscardAll || !isInDevelopmentMode,
158
+ onSelect: discardHandler,
159
+ children: /*#__PURE__*/ jsxs(Flex, {
160
+ gap: 2,
161
+ children: [
162
+ /*#__PURE__*/ jsx(Cross, {}),
163
+ /*#__PURE__*/ jsx(Typography, {
164
+ children: formatMessage({
165
+ id: 'global.last-changes.discard',
166
+ defaultMessage: 'Discard last changes'
167
+ })
168
+ })
169
+ ]
170
+ })
171
+ })
172
+ ]
169
173
  })
170
174
  ]
171
175
  })
172
176
  ]
173
177
  })
174
- ]
175
- })
176
- }),
177
- /*#__PURE__*/ jsx(Searchbar, {
178
- value: search.value,
179
- onChange: (e)=>search.onChange(e.target.value),
180
- onClear: ()=>search.onChange(''),
181
- placeholder: formatMessage({
182
- id: getTrad('search.placeholder'),
183
- defaultMessage: 'Search'
184
- }),
185
- size: "S",
186
- // eslint-disable-next-line react/no-children-prop
187
- children: undefined,
188
- name: 'search_contentType',
189
- clearLabel: formatMessage({
190
- id: 'clearLabel',
191
- defaultMessage: 'Clear'
192
- }),
193
- "aria-label": formatMessage({
194
- id: getTrad('search.placeholder'),
195
- defaultMessage: 'Search'
196
- })
197
- })
198
- ]
199
- }),
200
- /*#__PURE__*/ jsx(SubNav.Sections, {
201
- children: menu.map((section)=>/*#__PURE__*/ jsx(Fragment, {
202
- children: /*#__PURE__*/ jsx(SubNav.Section, {
203
- label: formatMessage({
204
- id: section.title.id,
205
- defaultMessage: section.title.defaultMessage
206
178
  }),
207
- link: section.customLink && {
208
- label: formatMessage({
209
- id: section.customLink?.id,
210
- defaultMessage: section.customLink?.defaultMessage
179
+ /*#__PURE__*/ jsx(Searchbar, {
180
+ value: search.value,
181
+ onChange: (e)=>search.onChange(e.target.value),
182
+ onClear: ()=>search.onChange(''),
183
+ placeholder: formatMessage({
184
+ id: getTrad('search.placeholder'),
185
+ defaultMessage: 'Search'
211
186
  }),
212
- onClik: section.customLink?.onClick
213
- },
214
- sectionId: section.name,
215
- children: section.links.map((link)=>{
216
- const linkLabel = formatMessage({
217
- id: link.name,
218
- defaultMessage: link.title
219
- });
220
- if ('links' in link) {
221
- return /*#__PURE__*/ jsx(SubNav.SubSection, {
222
- label: link.title,
223
- children: link.links.map((subLink)=>{
224
- const label = formatMessage({
225
- id: subLink.name,
226
- defaultMessage: subLink.title
227
- });
228
- return /*#__PURE__*/ jsx(SubNav.Link, {
229
- to: subLink.to,
230
- label: label,
231
- endAction: /*#__PURE__*/ jsx(Box, {
232
- tag: "span",
233
- textAlign: "center",
234
- width: '24px',
235
- children: /*#__PURE__*/ jsx(Status, {
236
- status: subLink.status
237
- })
187
+ size: "S",
188
+ // eslint-disable-next-line react/no-children-prop
189
+ children: undefined,
190
+ name: 'search_contentType',
191
+ clearLabel: formatMessage({
192
+ id: 'clearLabel',
193
+ defaultMessage: 'Clear'
194
+ }),
195
+ "aria-label": formatMessage({
196
+ id: getTrad('search.placeholder'),
197
+ defaultMessage: 'Search'
198
+ })
199
+ })
200
+ ]
201
+ }),
202
+ /*#__PURE__*/ jsx(SubNav.Sections, {
203
+ children: menu.map((section)=>/*#__PURE__*/ jsx(Fragment, {
204
+ children: /*#__PURE__*/ jsx(SubNav.Section, {
205
+ label: formatMessage({
206
+ id: section.title.id,
207
+ defaultMessage: section.title.defaultMessage
208
+ }),
209
+ link: section.customLink && {
210
+ label: formatMessage({
211
+ id: section.customLink?.id,
212
+ defaultMessage: section.customLink?.defaultMessage
213
+ }),
214
+ onClick: section.customLink?.onClick
215
+ },
216
+ sectionId: section.name,
217
+ children: section.links.map((link)=>{
218
+ const linkLabel = formatMessage({
219
+ id: link.name,
220
+ defaultMessage: link.title
221
+ });
222
+ if ('links' in link) {
223
+ return /*#__PURE__*/ jsx(SubNav.SubSection, {
224
+ label: link.title,
225
+ children: link.links.map((subLink)=>{
226
+ const label = formatMessage({
227
+ id: subLink.name,
228
+ defaultMessage: subLink.title
229
+ });
230
+ return /*#__PURE__*/ jsx(SubNav.Link, {
231
+ to: subLink.to,
232
+ label: label,
233
+ endAction: /*#__PURE__*/ jsx(Box, {
234
+ tag: "span",
235
+ textAlign: "center",
236
+ width: '24px',
237
+ children: /*#__PURE__*/ jsx(Status, {
238
+ status: subLink.status
239
+ })
240
+ })
241
+ }, subLink.name);
238
242
  })
239
- }, subLink.name);
240
- })
241
- }, link.name);
242
- }
243
- return /*#__PURE__*/ jsx(SubNav.Link, {
244
- to: link.to,
245
- label: linkLabel,
246
- endAction: /*#__PURE__*/ jsx(Box, {
247
- tag: "span",
248
- textAlign: "center",
249
- width: '24px',
250
- children: /*#__PURE__*/ jsx(Status, {
251
- status: link.status
252
- })
243
+ }, link.name);
244
+ }
245
+ return /*#__PURE__*/ jsx(SubNav.Link, {
246
+ to: link.to,
247
+ label: linkLabel,
248
+ endAction: /*#__PURE__*/ jsx(Box, {
249
+ tag: "span",
250
+ textAlign: "center",
251
+ width: '24px',
252
+ children: /*#__PURE__*/ jsx(Status, {
253
+ status: link.status
254
+ })
255
+ })
256
+ }, link.name);
253
257
  })
254
- }, link.name);
255
- })
256
- })
257
- }, section.name))
258
+ })
259
+ }, section.name))
260
+ })
261
+ ]
258
262
  }),
259
263
  /*#__PURE__*/ jsx(Dialog.Root, {
260
264
  open: discardConfirmationModalIsOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTypeBuilderNav.mjs","sources":["../../../../admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.tsx"],"sourcesContent":["import { Fragment, useState, useEffect } from 'react';\n\nimport { ConfirmDialog, SubNav, tours, useGuidedTour } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Searchbar,\n Button,\n Flex,\n Typography,\n Divider,\n Menu,\n VisuallyHidden,\n Dialog,\n} from '@strapi/design-system';\nimport { ArrowClockwise, Cross, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useDataManager } from '../DataManager/useDataManager';\nimport { Status } from '../Status';\n\nimport { useContentTypeBuilderMenu } from './useContentTypeBuilderMenu';\n\nconst ArrowCounterClockwise = styled(ArrowClockwise)`\n transform: scaleX(-1);\n`;\n\nconst DiscardAllMenuItem = styled(Menu.Item)`\n color: ${({ theme }) => theme.colors.danger600};\n\n &:hover {\n background: ${({ theme, disabled }) => !disabled && theme.colors.danger100};\n }\n`;\n\nexport const ContentTypeBuilderNav = () => {\n const { menu, search } = useContentTypeBuilderMenu();\n const { saveSchema, isModified, history, isInDevelopmentMode } = useDataManager();\n\n const { formatMessage } = useIntl();\n\n const [menuIsOpen, setMenuIsOpen] = useState(false);\n const [discardConfirmationModalIsOpen, setDiscardConfirmationModalIsOpen] = useState(false);\n\n useEffect(() => {\n if (!isInDevelopmentMode) {\n return;\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'Enter') {\n if (isModified) {\n e.preventDefault();\n saveSchema();\n }\n } else if (e.key === 'z' && !e.shiftKey) {\n e.preventDefault(); // Prevent browser default undo (e.g., in input fields)\n history.undo();\n } else if (e.key === 'y' || (e.shiftKey && e.key === 'z') || e.key === 'Z') {\n e.preventDefault(); // Prevent browser default redo (e.g., in input fields)\n history.redo();\n }\n }\n };\n\n document.addEventListener('keydown', onKeyDown);\n\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n });\n\n const discardHandler = () => {\n setDiscardConfirmationModalIsOpen(true);\n };\n\n const discardChanges = () => {\n setMenuIsOpen(false);\n setDiscardConfirmationModalIsOpen(false);\n history.discardAllChanges();\n };\n\n const undoHandler = () => {\n history.undo();\n };\n\n const redoHandler = () => {\n history.redo();\n };\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <SubNav.Main aria-label={pluginName}>\n <SubNav.Header label={pluginName} />\n <Divider background=\"neutral150\" />\n <Flex padding={5} gap={3} direction={'column'} alignItems={'stretch'}>\n <tours.contentTypeBuilder.Save>\n <Flex gap={2}>\n <Button\n flex={1}\n onClick={(e) => {\n e.preventDefault();\n saveSchema();\n }}\n type=\"submit\"\n disabled={!isModified || !isInDevelopmentMode}\n fullWidth\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n <Menu.Root open={menuIsOpen} onOpenChange={setMenuIsOpen}>\n <Menu.Trigger\n size=\"S\"\n endIcon={null}\n paddingTop=\"4px\"\n paddingLeft=\"7px\"\n paddingRight=\"7px\"\n variant=\"tertiary\"\n >\n <More fill=\"neutral500\" aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: 'global.more.actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </Menu.Trigger>\n <Menu.Content zIndex={1}>\n <Menu.Item\n disabled={!history.canUndo || !isInDevelopmentMode}\n onSelect={undoHandler}\n startIcon={<ArrowCounterClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.undo',\n defaultMessage: 'Undo last change',\n })}\n </Menu.Item>\n <Menu.Item\n disabled={!history.canRedo || !isInDevelopmentMode}\n onSelect={redoHandler}\n startIcon={<ArrowClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.redo',\n defaultMessage: 'Redo last change',\n })}\n </Menu.Item>\n <Menu.Separator />\n <DiscardAllMenuItem\n disabled={!history.canDiscardAll || !isInDevelopmentMode}\n onSelect={discardHandler}\n >\n <Flex gap={2}>\n <Cross />\n <Typography>\n {formatMessage({\n id: 'global.last-changes.discard',\n defaultMessage: 'Discard last changes',\n })}\n </Typography>\n </Flex>\n </DiscardAllMenuItem>\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </tours.contentTypeBuilder.Save>\n\n <Searchbar\n value={search.value}\n onChange={(e) => search.onChange(e.target.value)}\n onClear={() => search.onChange('')}\n placeholder={formatMessage({\n id: getTrad('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 aria-label={formatMessage({\n id: getTrad('search.placeholder'),\n defaultMessage: 'Search',\n })}\n />\n </Flex>\n <SubNav.Sections>\n {menu.map((section) => (\n <Fragment key={section.name}>\n <SubNav.Section\n label={formatMessage({\n id: section.title.id,\n defaultMessage: section.title.defaultMessage,\n })}\n link={\n section.customLink && {\n label: formatMessage({\n id: section.customLink?.id,\n defaultMessage: section.customLink?.defaultMessage,\n }),\n onClik: section.customLink?.onClick,\n }\n }\n sectionId={section.name}\n >\n {section.links.map((link) => {\n const linkLabel = formatMessage({ id: link.name, defaultMessage: link.title });\n\n if ('links' in link) {\n return (\n <SubNav.SubSection key={link.name} label={link.title}>\n {link.links.map((subLink) => {\n const label = formatMessage({\n id: subLink.name,\n defaultMessage: subLink.title,\n });\n\n return (\n <SubNav.Link\n to={subLink.to}\n key={subLink.name}\n label={label}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={subLink.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.SubSection>\n );\n }\n\n return (\n <SubNav.Link\n to={link.to}\n key={link.name}\n label={linkLabel}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={link.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.Section>\n </Fragment>\n ))}\n </SubNav.Sections>\n <Dialog.Root\n open={discardConfirmationModalIsOpen}\n onOpenChange={setDiscardConfirmationModalIsOpen}\n >\n <ConfirmDialog onConfirm={discardChanges}>\n {formatMessage({\n id: getTrad('popUpWarning.discardAll.message'),\n defaultMessage: 'Are you sure you want to discard all changes?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </SubNav.Main>\n );\n};\n"],"names":["ArrowCounterClockwise","styled","ArrowClockwise","DiscardAllMenuItem","Menu","Item","theme","colors","danger600","disabled","danger100","ContentTypeBuilderNav","menu","search","useContentTypeBuilderMenu","saveSchema","isModified","history","isInDevelopmentMode","useDataManager","formatMessage","useIntl","menuIsOpen","setMenuIsOpen","useState","discardConfirmationModalIsOpen","setDiscardConfirmationModalIsOpen","useEffect","onKeyDown","e","ctrlKey","metaKey","key","preventDefault","shiftKey","undo","redo","document","addEventListener","removeEventListener","discardHandler","discardChanges","discardAllChanges","undoHandler","redoHandler","pluginName","id","getTrad","defaultMessage","_jsxs","SubNav","Main","aria-label","_jsx","Header","label","Divider","background","Flex","padding","gap","direction","alignItems","tours","contentTypeBuilder","Save","Button","flex","onClick","type","fullWidth","size","Root","open","onOpenChange","Trigger","endIcon","paddingTop","paddingLeft","paddingRight","variant","More","fill","aria-hidden","focusable","VisuallyHidden","tag","Content","zIndex","canUndo","onSelect","startIcon","canRedo","Separator","canDiscardAll","Cross","Typography","Searchbar","value","onChange","target","onClear","placeholder","children","undefined","name","clearLabel","Sections","map","section","Fragment","Section","title","link","customLink","onClik","sectionId","links","linkLabel","SubSection","subLink","Link","to","endAction","Box","textAlign","width","Status","status","Dialog","ConfirmDialog","onConfirm"],"mappings":"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"}
1
+ {"version":3,"file":"ContentTypeBuilderNav.mjs","sources":["../../../../admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.tsx"],"sourcesContent":["import { Fragment, useState, useEffect } from 'react';\n\nimport { ConfirmDialog, SubNav, tours } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Searchbar,\n Button,\n Flex,\n Typography,\n Divider,\n Menu,\n VisuallyHidden,\n Dialog,\n} from '@strapi/design-system';\nimport { ArrowClockwise, Cross, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useDataManager } from '../DataManager/useDataManager';\nimport { Status } from '../Status';\n\nimport { useContentTypeBuilderMenu } from './useContentTypeBuilderMenu';\n\nconst ArrowCounterClockwise = styled(ArrowClockwise)`\n transform: scaleX(-1);\n`;\n\nconst DiscardAllMenuItem = styled(Menu.Item)`\n color: ${({ theme }) => theme.colors.danger600};\n\n &:hover {\n background: ${({ theme, disabled }) => !disabled && theme.colors.danger100};\n }\n`;\n\nexport const ContentTypeBuilderNav = () => {\n const { menu, search } = useContentTypeBuilderMenu();\n const { saveSchema, isModified, history, isInDevelopmentMode } = useDataManager();\n\n const { formatMessage } = useIntl();\n\n const [menuIsOpen, setMenuIsOpen] = useState(false);\n const [discardConfirmationModalIsOpen, setDiscardConfirmationModalIsOpen] = useState(false);\n\n useEffect(() => {\n if (!isInDevelopmentMode) {\n return;\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'Enter') {\n if (isModified) {\n e.preventDefault();\n saveSchema();\n }\n } else if (e.key === 'z' && !e.shiftKey) {\n e.preventDefault(); // Prevent browser default undo (e.g., in input fields)\n history.undo();\n } else if (e.key === 'y' || (e.shiftKey && e.key === 'z') || e.key === 'Z') {\n e.preventDefault(); // Prevent browser default redo (e.g., in input fields)\n history.redo();\n }\n }\n };\n\n document.addEventListener('keydown', onKeyDown);\n\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n });\n\n const discardHandler = () => {\n setDiscardConfirmationModalIsOpen(true);\n };\n\n const discardChanges = () => {\n setMenuIsOpen(false);\n setDiscardConfirmationModalIsOpen(false);\n history.discardAllChanges();\n };\n\n const undoHandler = () => {\n history.undo();\n };\n\n const redoHandler = () => {\n history.redo();\n };\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <SubNav.Main aria-label={pluginName}>\n <SubNav.Header label={pluginName} />\n <Divider background=\"neutral150\" />\n <SubNav.Content>\n <Flex padding={5} gap={3} direction={'column'} alignItems={'stretch'}>\n <tours.contentTypeBuilder.Save>\n <Flex gap={2}>\n <Button\n flex={1}\n onClick={(e) => {\n e.preventDefault();\n saveSchema();\n }}\n type=\"submit\"\n disabled={!isModified || !isInDevelopmentMode}\n fullWidth\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n <Menu.Root open={menuIsOpen} onOpenChange={setMenuIsOpen}>\n <Menu.Trigger\n size=\"S\"\n endIcon={null}\n paddingTop=\"4px\"\n paddingLeft=\"7px\"\n paddingRight=\"7px\"\n variant=\"tertiary\"\n >\n <More fill=\"neutral500\" aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: 'global.more.actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </Menu.Trigger>\n <Menu.Content zIndex={1}>\n <Menu.Item\n disabled={!history.canUndo || !isInDevelopmentMode}\n onSelect={undoHandler}\n startIcon={<ArrowCounterClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.undo',\n defaultMessage: 'Undo last change',\n })}\n </Menu.Item>\n <Menu.Item\n disabled={!history.canRedo || !isInDevelopmentMode}\n onSelect={redoHandler}\n startIcon={<ArrowClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.redo',\n defaultMessage: 'Redo last change',\n })}\n </Menu.Item>\n <Menu.Separator />\n <DiscardAllMenuItem\n disabled={!history.canDiscardAll || !isInDevelopmentMode}\n onSelect={discardHandler}\n >\n <Flex gap={2}>\n <Cross />\n <Typography>\n {formatMessage({\n id: 'global.last-changes.discard',\n defaultMessage: 'Discard last changes',\n })}\n </Typography>\n </Flex>\n </DiscardAllMenuItem>\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </tours.contentTypeBuilder.Save>\n\n <Searchbar\n value={search.value}\n onChange={(e) => search.onChange(e.target.value)}\n onClear={() => search.onChange('')}\n placeholder={formatMessage({\n id: getTrad('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 aria-label={formatMessage({\n id: getTrad('search.placeholder'),\n defaultMessage: 'Search',\n })}\n />\n </Flex>\n <SubNav.Sections>\n {menu.map((section) => (\n <Fragment key={section.name}>\n <SubNav.Section\n label={formatMessage({\n id: section.title.id,\n defaultMessage: section.title.defaultMessage,\n })}\n link={\n section.customLink && {\n label: formatMessage({\n id: section.customLink?.id,\n defaultMessage: section.customLink?.defaultMessage,\n }),\n onClick: section.customLink?.onClick,\n }\n }\n sectionId={section.name}\n >\n {section.links.map((link) => {\n const linkLabel = formatMessage({ id: link.name, defaultMessage: link.title });\n\n if ('links' in link) {\n return (\n <SubNav.SubSection key={link.name} label={link.title}>\n {link.links.map((subLink) => {\n const label = formatMessage({\n id: subLink.name,\n defaultMessage: subLink.title,\n });\n\n return (\n <SubNav.Link\n to={subLink.to}\n key={subLink.name}\n label={label}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={subLink.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.SubSection>\n );\n }\n\n return (\n <SubNav.Link\n to={link.to}\n key={link.name}\n label={linkLabel}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={link.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.Section>\n </Fragment>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n <Dialog.Root\n open={discardConfirmationModalIsOpen}\n onOpenChange={setDiscardConfirmationModalIsOpen}\n >\n <ConfirmDialog onConfirm={discardChanges}>\n {formatMessage({\n id: getTrad('popUpWarning.discardAll.message'),\n defaultMessage: 'Are you sure you want to discard all changes?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </SubNav.Main>\n );\n};\n"],"names":["ArrowCounterClockwise","styled","ArrowClockwise","DiscardAllMenuItem","Menu","Item","theme","colors","danger600","disabled","danger100","ContentTypeBuilderNav","menu","search","useContentTypeBuilderMenu","saveSchema","isModified","history","isInDevelopmentMode","useDataManager","formatMessage","useIntl","menuIsOpen","setMenuIsOpen","useState","discardConfirmationModalIsOpen","setDiscardConfirmationModalIsOpen","useEffect","onKeyDown","e","ctrlKey","metaKey","key","preventDefault","shiftKey","undo","redo","document","addEventListener","removeEventListener","discardHandler","discardChanges","discardAllChanges","undoHandler","redoHandler","pluginName","id","getTrad","defaultMessage","_jsxs","SubNav","Main","aria-label","_jsx","Header","label","Divider","background","Content","Flex","padding","gap","direction","alignItems","tours","contentTypeBuilder","Save","Button","flex","onClick","type","fullWidth","size","Root","open","onOpenChange","Trigger","endIcon","paddingTop","paddingLeft","paddingRight","variant","More","fill","aria-hidden","focusable","VisuallyHidden","tag","zIndex","canUndo","onSelect","startIcon","canRedo","Separator","canDiscardAll","Cross","Typography","Searchbar","value","onChange","target","onClear","placeholder","children","undefined","name","clearLabel","Sections","map","section","Fragment","Section","title","link","customLink","sectionId","links","linkLabel","SubSection","subLink","Link","to","endAction","Box","textAlign","width","Status","status","Dialog","ConfirmDialog","onConfirm"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/content-type-builder",
3
- "version": "5.26.0",
3
+ "version": "5.28.0",
4
4
  "description": "Create and manage content types",
5
5
  "repository": {
6
6
  "type": "git",
@@ -68,9 +68,9 @@
68
68
  "@reduxjs/toolkit": "1.9.7",
69
69
  "@sindresorhus/slugify": "1.1.0",
70
70
  "@strapi/design-system": "2.0.0-rc.30",
71
- "@strapi/generators": "5.26.0",
71
+ "@strapi/generators": "5.28.0",
72
72
  "@strapi/icons": "2.0.0-rc.30",
73
- "@strapi/utils": "5.26.0",
73
+ "@strapi/utils": "5.28.0",
74
74
  "ai": "5.0.26",
75
75
  "date-fns": "2.30.0",
76
76
  "fs-extra": "11.2.0",
@@ -88,8 +88,8 @@
88
88
  "zod": "3.25.67"
89
89
  },
90
90
  "devDependencies": {
91
- "@strapi/admin": "5.26.0",
92
- "@strapi/types": "5.26.0",
91
+ "@strapi/admin": "5.28.0",
92
+ "@strapi/types": "5.28.0",
93
93
  "@testing-library/dom": "10.1.0",
94
94
  "@testing-library/react": "15.0.7",
95
95
  "@testing-library/user-event": "14.5.2",