@strapi/admin 4.6.1 → 4.7.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/admin/src/assets/images/onboarding-preview.png +0 -0
  2. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +0 -2
  3. package/admin/src/hooks/useRegenerate/index.js +2 -2
  4. package/admin/src/hooks/useSettingsMenu/utils/defaultGlobalLinks.js +7 -0
  5. package/admin/src/pages/Admin/Onboarding/constants.js +46 -0
  6. package/admin/src/pages/Admin/Onboarding/index.js +161 -89
  7. package/admin/src/pages/Admin/index.js +5 -2
  8. package/admin/src/pages/SettingsPage/{pages/ApiTokens/EditView/components → components/Tokens}/FormHead/index.js +36 -19
  9. package/admin/src/pages/SettingsPage/components/Tokens/FormiTokenContainer/LifeSpanInput.js +96 -0
  10. package/admin/src/pages/SettingsPage/components/Tokens/LifeSpanInput/index.js +98 -0
  11. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +73 -0
  12. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/DefaultButton/index.js +1 -1
  13. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/DeleteButton/index.js +1 -1
  14. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/ReadButton/index.js +0 -0
  15. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/UpdateButton/index.js +0 -0
  16. package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +135 -0
  17. package/admin/src/pages/SettingsPage/{pages/ApiTokens/EditView/components/ContentBox → components/Tokens/TokenBox}/index.js +17 -17
  18. package/admin/src/pages/SettingsPage/components/Tokens/TokenDescription/index.js +51 -0
  19. package/admin/src/pages/SettingsPage/components/Tokens/TokenName/index.js +46 -0
  20. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +69 -0
  21. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +5 -3
  22. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +52 -142
  23. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +5 -1
  24. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +37 -14
  25. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +5 -13
  26. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +105 -0
  27. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/LoadingView/index.js +50 -0
  28. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +201 -0
  29. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/getDateOfExpiration.js +16 -0
  30. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/index.js +4 -0
  31. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +10 -0
  32. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +182 -0
  33. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js +48 -0
  34. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedCreateView/index.js +14 -0
  35. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedEditView/index.js +14 -0
  36. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js +12 -0
  37. package/admin/src/pages/SettingsPage/utils/defaultRoutes.js +33 -0
  38. package/admin/src/permissions/defaultPermissions.js +8 -0
  39. package/admin/src/translations/en.json +18 -1
  40. package/build/19eb2dfcf2603eb55733.png +0 -0
  41. package/build/4649.15cc0afe.chunk.js +30 -0
  42. package/build/7259.aa68d808.chunk.js +1 -0
  43. package/build/7407.883fb1f5.chunk.js +1 -0
  44. package/build/Admin-authenticatedApp.f29f6021.chunk.js +79 -0
  45. package/build/{Admin_settingsPage.d1493824.chunk.js → Admin_settingsPage.178dc6e3.chunk.js} +25 -25
  46. package/build/{admin-app.25934eaa.chunk.js → admin-app.77a50e1f.chunk.js} +19 -19
  47. package/build/{api-tokens-create-page.d248362d.chunk.js → api-tokens-create-page.0db3aec1.chunk.js} +1 -1
  48. package/build/{api-tokens-edit-page.8516fa20.chunk.js → api-tokens-edit-page.671e0e26.chunk.js} +1 -1
  49. package/build/api-tokens-list-page.7387102c.chunk.js +16 -0
  50. package/build/{content-manager.35ff9726.chunk.js → content-manager.42b24d46.chunk.js} +77 -77
  51. package/build/en-json.b0748970.chunk.js +1 -0
  52. package/build/index.html +1 -1
  53. package/build/main.1022ed01.js +4393 -0
  54. package/build/runtime~main.84941a97.js +2 -0
  55. package/build/transfer-tokens-create-page.16e23791.chunk.js +1 -0
  56. package/build/transfer-tokens-edit-page.3886c973.chunk.js +1 -0
  57. package/build/transfer-tokens-list-page.e8010a89.chunk.js +16 -0
  58. package/package.json +12 -12
  59. package/server/bootstrap.js +2 -0
  60. package/server/config/admin-actions.js +48 -0
  61. package/server/content-types/index.js +2 -0
  62. package/server/content-types/transfer-token-permission.js +36 -0
  63. package/server/content-types/transfer-token.js +66 -0
  64. package/server/controllers/api-token.js +4 -5
  65. package/server/controllers/index.js +1 -0
  66. package/server/controllers/transfer/index.js +13 -0
  67. package/server/controllers/transfer/runner.js +24 -0
  68. package/server/controllers/transfer/token.js +131 -0
  69. package/server/register.js +2 -9
  70. package/server/routes/index.js +2 -0
  71. package/server/routes/transfer.js +95 -0
  72. package/server/services/api-token.js +2 -3
  73. package/server/services/constants.js +6 -0
  74. package/server/services/index.js +1 -0
  75. package/server/services/transfer/index.js +6 -0
  76. package/server/services/transfer/permission.js +22 -0
  77. package/server/services/transfer/token.js +409 -0
  78. package/server/strategies/api-token.js +4 -2
  79. package/server/strategies/data-transfer.js +107 -0
  80. package/server/strategies/index.js +1 -0
  81. package/server/utils/index.d.ts +2 -0
  82. package/server/validation/api-tokens.js +1 -6
  83. package/server/validation/transfer/index.js +5 -0
  84. package/server/validation/transfer/token.js +34 -0
  85. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormBody/index.js +0 -78
  86. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +0 -112
  87. package/build/4318.f96a9d4d.chunk.js +0 -30
  88. package/build/8633.00ccd382.chunk.js +0 -1
  89. package/build/Admin-authenticatedApp.ce646f66.chunk.js +0 -75
  90. package/build/api-tokens-list-page.44a79fda.chunk.js +0 -16
  91. package/build/en-json.1f137a90.chunk.js +0 -1
  92. package/build/main.7b151630.js +0 -4377
  93. package/build/runtime~main.a20d633b.js +0 -2
@@ -0,0 +1,79 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{29761:function(z,C,t){t.r(C),t.d(C,{default:function(){return Bt}});var e=t(32735),r=t(88425),P=t(84968),E=t(33795),Q=t.n(E),x=JSON.parse('{"i8":"4.7.0-beta.0"}'),y=t(8888),c=t(5141),A=t(4409),M=t(74506),F=t(51968),V=t(88311),K=t.n(V),Ae=t(58107),v=t(83292),Le=t(60216),i=t.n(Le),G=t(5636),Oe=t(71933),se=t(67563),T=t(87933),L=t(72850),Y=t(27677),be=t(50563),re=t(41415),De=t(35331);const Be=(0,v.default)(T.k)`
2
+ position: fixed;
3
+ z-index: 4;
4
+ inset: 0;
5
+ /* this is theme.colors.neutral800 with opacity */
6
+ background: ${({theme:n})=>`${n.colors.neutral800}1F`};
7
+ `,ie=({onClose:n,onSkip:a,children:o,hideSkip:s})=>{const{formatMessage:p}=(0,G.useIntl)();return e.createElement(Oe.h,null,e.createElement(Be,{onClick:n,padding:8,justifyContent:"center"},e.createElement(se.i,{onEscape:n},e.createElement(Y.K,{background:"neutral0",width:(0,r.pxToRem)(660),shadow:"popupShadow",hasRadius:!0,padding:4,spacing:8,role:"dialog","aria-modal":!0,onClick:d=>d.stopPropagation()},e.createElement(T.k,{justifyContent:"flex-end"},e.createElement(be.h,{onClick:n,"aria-label":p({id:"app.utils.close-label",defaultMessage:"Close"}),icon:e.createElement(De.default,null)})),e.createElement(L.x,{paddingLeft:7,paddingRight:7,paddingBottom:s?8:0},o),!s&&e.createElement(T.k,{justifyContent:"flex-end"},e.createElement(re.z,{variant:"tertiary",onClick:a},p({id:"app.components.GuidedTour.skip",defaultMessage:"Skip the tour"})))))))};ie.propTypes={children:i().node.isRequired,onClose:i().func.isRequired,onSkip:i().func.isRequired,hideSkip:i().bool.isRequired};var ke=ie,le=t(97889);const de={stepContent:null,sectionIndex:null,stepIndex:null,hasSectionAfter:!1,hasStepAfter:!1};var Ne=(n=de,a)=>(0,le.default)(n,o=>{switch(a.type){case"UPDATE_MODAL":{o.stepContent=a.content,o.sectionIndex=a.newSectionIndex,o.stepIndex=a.newStepIndex,o.hasSectionAfter=a.newHasSectionAfter,o.hasStepAfter=a.newHasStepAfter;break}default:return o}}),O=t(49372),ce=t(8482);const Ge=v.default.li`
8
+ list-style: disc;
9
+ &::marker {
10
+ color: ${({theme:n})=>n.colors.neutral800};
11
+ }
12
+ `,ue=({id:n,defaultMessage:a})=>{const{formatMessage:o}=(0,G.useIntl)();return e.createElement(Y.K,{spacing:4,paddingBottom:6},o({id:n,defaultMessage:a},{documentationLink:s=>e.createElement(O.Z,{as:"a",textColor:"primary600",target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters"},s),b:s=>e.createElement(O.Z,{fontWeight:"semiBold"},s),p:s=>e.createElement(O.Z,null,s),light:s=>e.createElement(O.Z,{textColor:"neutral600"},s),ul:s=>e.createElement(L.x,{paddingLeft:6},e.createElement("ul",null,s)),li:s=>e.createElement(Ge,null,s)}))};ue.propTypes={id:i().string.isRequired,defaultMessage:i().string.isRequired};var Ue=ue,J=t(78024),We=t(14317);const w=({number:n,last:a,type:o})=>e.createElement(L.x,{paddingTop:3,paddingBottom:a?0:3},e.createElement(We.Z,{number:n,type:o}));w.defaultProps={number:void 0,last:!1,type:""},w.propTypes={number:i().number,last:i().bool,type:i().string};var pe=w,U=t(23678);const X=({title:n,content:a,cta:o,onCtaClick:s,sectionIndex:p,stepIndex:d,hasSectionAfter:g})=>{const{formatMessage:h}=(0,G.useIntl)(),f=p>0,m=d>0,R=p+1;return e.createElement(e.Fragment,null,e.createElement(T.k,{alignItems:"stretch"},e.createElement(T.k,{marginRight:8,justifyContent:"center",minWidth:(0,r.pxToRem)(30)},f&&e.createElement(J.Z,{type:U.hx,minHeight:(0,r.pxToRem)(24)})),e.createElement(O.Z,{variant:"sigma",textColor:"primary600"},h({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"}))),e.createElement(T.k,null,e.createElement(T.k,{marginRight:8,minWidth:(0,r.pxToRem)(30)},e.createElement(pe,{number:p+1,type:m?U.hx:U.lW})),e.createElement(O.Z,{variant:"alpha",fontWeight:"bold",textColor:"neutral800",as:"h3",id:"title"},h(n))),e.createElement(T.k,{alignItems:"stretch"},e.createElement(T.k,{marginRight:8,direction:"column",justifyContent:"center",minWidth:(0,r.pxToRem)(30)},g&&e.createElement(e.Fragment,null,e.createElement(J.Z,{type:U.hx}),m&&e.createElement(pe,{number:R+1,type:U.lW,last:!0}))),e.createElement(L.x,null,e.createElement(Ue,{...a}),o&&(o.target?e.createElement(r.LinkButton,{endIcon:e.createElement(ce.Z,null),onClick:s,to:o.target},h(o.title)):e.createElement(re.z,{endIcon:e.createElement(ce.Z,null),onClick:s},h(o.title))))),m&&g&&e.createElement(L.x,{paddingTop:3},e.createElement(T.k,{marginRight:8,justifyContent:"center",width:(0,r.pxToRem)(30)},e.createElement(J.Z,{type:U.hx,minHeight:(0,r.pxToRem)(24)}))))};X.defaultProps={currentStep:null,cta:void 0},X.propTypes={sectionIndex:i().number.isRequired,stepIndex:i().number.isRequired,hasSectionAfter:i().bool.isRequired,content:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired}).isRequired,cta:i().shape({target:i().string,title:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired})}),currentStep:i().string,onCtaClick:i().func.isRequired,title:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired}).isRequired};var Fe=X,Ke=()=>{const{currentStep:n,guidedTourState:a,setCurrentStep:o,setStepState:s,isGuidedTourVisible:p,setSkipped:d}=(0,r.useGuidedTour)(),[g,h]=(0,e.useState)(n),[{stepContent:f,sectionIndex:m,stepIndex:R,hasSectionAfter:B,hasStepAfter:b},$]=(0,e.useReducer)(Ne,de),{trackUsage:W}=(0,r.useTracking)();(0,e.useEffect)(()=>{if(!n){h(!1);return}const[k]=K()(a,n);h(!k&&p)},[n,a,p]),(0,e.useEffect)(()=>{if(n){const[k]=K()(Ae.Z,n),D=Object.keys(a),[I,l]=n.split("."),N=D.indexOf(I),H=Object.keys(a[I]).indexOf(l),ne=N<D.length-1,ae=H<Object.keys(a[I]).length-1;$({type:"UPDATE_MODAL",content:k,newSectionIndex:N,newStepIndex:H,newHasSectionAfter:ne,newHasStepAfter:ae})}},[n,a]);const S=()=>{s(n,!0),W(f.trackingEvent),o(null)},Z=()=>{d(!0),o(null),W("didSkipGuidedtour")};return g&&f?e.createElement(ke,{hideSkip:!b&&!B,onSkip:Z,onClose:S},e.createElement(Fe,{...f,onCtaClick:S,currentStep:n,sectionIndex:m,stepIndex:R,hasSectionAfter:B})):null},je=t(9026),$e=t(15300),Ze=t(61450),ze=t(1897),q=t(78464),me=t(42889),Ve=t(25390),He=t(64838),Qe=t(9371),Ye=t(73165),Je=t(92967);const we=(0,v.default)(L.x)`
13
+ width: ${150/16}rem;
14
+ position: absolute;
15
+ bottom: ${({theme:n})=>n.spaces[9]};
16
+ left: ${({theme:n})=>n.spaces[5]};
17
+ `,ge=(0,v.default)(c.NavLink)`
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ text-decoration: none;
22
+ padding: ${({theme:n})=>`${n.spaces[2]} ${n.spaces[4]}`};
23
+ border-radius: ${({theme:n})=>n.spaces[1]};
24
+
25
+ &:hover {
26
+ background: ${({theme:n,logout:a})=>a?n.colors.danger100:n.colors.primary100};
27
+ text-decoration: none;
28
+ }
29
+
30
+ svg {
31
+ path {
32
+ fill: ${({theme:n})=>n.colors.danger600};
33
+ }
34
+ }
35
+ `,he=({generalSectionLinks:n,pluginsSectionLinks:a})=>{const o=(0,e.useRef)(),[s,p]=(0,e.useState)(!1),{logos:{menu:d}}=(0,y.um)(),[g,h]=(0,r.usePersistentState)("navbar-condensed",!1),{userDisplayName:f}=(0,r.useAppInfos)(),{formatMessage:m}=(0,G.useIntl)(),{trackUsage:R}=(0,r.useTracking)(),{pathname:B}=(0,c.useLocation)(),b=(0,c.useHistory)(),{post:$}=(0,r.getFetchClient)(),W=f.split(" ").map(l=>l.substring(0,1)).join("").substring(0,2),S=()=>p(l=>!l),Z=async()=>{await $("/admin/logout"),r.auth.clearAppStorage(),S(),b.push("/auth/login")},k=l=>{!l.currentTarget.contains(l.relatedTarget)&&l.relatedTarget?.parentElement?.id!=="main-nav-user-button"&&p(!1)},D=(l=null)=>{R("willNavigate",{from:B,to:l})},I=m({id:"app.components.LeftMenu.navbrand.title",defaultMessage:"Strapi Dashboard"});return e.createElement($e.$,{condensed:g},e.createElement(Ze.D,{as:c.NavLink,workplace:m({id:"app.components.LeftMenu.navbrand.workplace",defaultMessage:"Workplace"}),title:I,icon:e.createElement("img",{src:d.custom||d.default,alt:m({id:"app.components.LeftMenu.logo.alt",defaultMessage:"Application logo"})})}),e.createElement(je.i,null),e.createElement(ze._,null,e.createElement(q.O,{as:c.NavLink,to:"/content-manager",icon:e.createElement(Ye.Z,null),onClick:()=>D("/content-manager")},m({id:"global.content-manager",defaultMessage:"Content manager"})),a.length>0?e.createElement(me.y,{label:m({id:"app.components.LeftMenu.plugins",defaultMessage:"Plugins"})},a.map(l=>{const N=l.icon;return e.createElement(q.O,{as:c.NavLink,to:l.to,key:l.to,icon:e.createElement(N,null),onClick:()=>D(l.to)},m(l.intlLabel))})):null,n.length>0?e.createElement(me.y,{label:m({id:"app.components.LeftMenu.general",defaultMessage:"General"})},n.map(l=>{const N=l.icon;return e.createElement(q.O,{as:c.NavLink,badgeContent:l.notificationsCount>0&&l.notificationsCount.toString()||void 0,to:l.to,key:l.to,icon:e.createElement(N,null),onClick:()=>D(l.to)},m(l.intlLabel))})):null),e.createElement(Ve.q,null,e.createElement(He.r,{id:"main-nav-user-button",ref:o,onClick:S,initials:W},f),s&&e.createElement(we,{onBlur:k,padding:1,shadow:"tableShadow",background:"neutral0",hasRadius:!0},e.createElement(se.i,{onEscape:S},e.createElement(Y.K,{spacing:0},e.createElement(ge,{tabIndex:0,onClick:S,to:"/me"},e.createElement(O.Z,null,m({id:"global.profile",defaultMessage:"Profile"}))),e.createElement(ge,{tabIndex:0,onClick:Z,logout:"logout",to:"/auth/login"},e.createElement(O.Z,{textColor:"danger600"},m({id:"app.components.LeftMenu.logout",defaultMessage:"Logout"})),e.createElement(Je.Z,null))))),e.createElement(Qe.w,{onClick:()=>h(l=>!l)},m(g?{id:"app.components.LeftMenu.expand",defaultMessage:"Expand the navbar"}:{id:"app.components.LeftMenu.collapse",defaultMessage:"Collapse the navbar"}))))};he.propTypes={generalSectionLinks:i().array.isRequired,pluginsSectionLinks:i().array.isRequired};var Xe=he,qe=t(10728);const _e=(0,v.default)(L.x)`
36
+ flex: 1;
37
+ `,fe=({children:n,sideNav:a})=>{const{formatMessage:o}=(0,G.useIntl)();return e.createElement(L.x,{background:"neutral100"},e.createElement(qe.z,null,o({id:"skipToContent",defaultMessage:"Skip to content"})),e.createElement(T.k,{alignItems:"flex-start"},a,e.createElement(_e,null,n)))};fe.propTypes={children:i().node.isRequired,sideNav:i().node.isRequired};var et=fe,_=t(64421),tt=t(26648),u=t(39161),j=t(57269),nt=t.p+"19eb2dfcf2603eb55733.png";const at=[{label:{id:"app.components.Onboarding.link.build-content",defaultMessage:"Build a content architecture"},href:"https://www.youtube.com/watch?v=G9GjN0RxhkE",duration:"5:48"},{label:{id:"app.components.Onboarding.link.manage-content",defaultMessage:"Add & manage content"},href:"https://www.youtube.com/watch?v=DEZw4KbybAI",duration:"3:18"},{label:{id:"app.components.Onboarding.link.manage-media",defaultMessage:"Manage media"},href:"https://www.youtube.com/watch?v=-61MuiMQb38",duration:"3:41"}],Ee={href:"https://www.youtube.com/playlist?list=PL7Q0DQYATmvidz6lEmwE5nIcOAYagxWqq",label:{id:"app.components.Onboarding.link.more-videos",defaultMessage:"Watch more videos"}},ot=[{label:{id:"global.documentation",defaultMessage:"documentation"},href:"https://docs.strapi.io",icon:j.Book},{label:{id:"app.static.links.cheatsheet",defaultMessage:"cheatsheet"},href:"https://strapi-showcase.s3-us-west-2.amazonaws.com/CheatSheet.pdf",icon:j.PaperPlane}],st=(0,v.default)(u.Button)`
38
+ border-radius: 50%;
39
+ padding: ${({theme:n})=>n.spaces[3]};
40
+ /* Resetting 2rem height defined by Button component */
41
+ height: 100%;
42
+ `,rt=(0,v.default)(u.Flex)`
43
+ transform: translate(-50%, -50%);
44
+ `,it=(0,v.default)(u.Flex)`
45
+ text-decoration: none;
46
+
47
+ :focus-visible {
48
+ outline-offset: ${({theme:n})=>`-${n.spaces[1]}`};
49
+ }
50
+
51
+ :hover {
52
+ background: ${({theme:n})=>n.colors.primary100};
53
+
54
+ /* Hover style for the number displayed */
55
+ ${u.Typography}:first-child {
56
+ color: ${({theme:n})=>n.colors.primary500};
57
+ }
58
+
59
+ /* Hover style for the label */
60
+ ${u.Typography}:nth-child(1) {
61
+ color: ${({theme:n})=>n.colors.primary600};
62
+ }
63
+ }
64
+ `,lt=v.default.img`
65
+ width: ${({theme:n})=>n.spaces[10]};
66
+ height: ${({theme:n})=>n.spaces[8]};
67
+ /* Same overlay used in ModalLayout */
68
+ background: ${({theme:n})=>`${n.colors.neutral800}1F`};
69
+ border-radius: ${({theme:n})=>n.borderRadius};
70
+ `,ye=(0,v.default)(u.Typography)`
71
+ /* line height of label and watch more to 1 so they can be better aligned visually */
72
+ line-height: 1;
73
+ `,ve=(0,v.default)(ye)`
74
+ text-decoration: none;
75
+
76
+ :hover {
77
+ text-decoration: underline;
78
+ }
79
+ `;var dt=()=>{const n=(0,e.useRef)(),[a,o]=(0,e.useState)(!1),{formatMessage:s}=(0,G.useIntl)(),p=()=>{o(d=>!d)};return e.createElement(u.Box,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(st,{"aria-label":s(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:p,ref:n},e.createElement(u.Icon,{as:a?j.Cross:j.Question,color:"buttonNeutral0"})),a&&e.createElement(u.Portal,null,e.createElement(u.PopoverPrimitives.Content,{padding:0,source:n,placement:"top-end",spacing:12},e.createElement(u.FocusTrap,{onEscape:p},e.createElement(u.Flex,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(ye,{fontWeight:"bold"},s({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(ve,{as:"a",href:Ee.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},s(Ee.label))),e.createElement(u.Divider,null),at.map(({href:d,duration:g,label:h},f)=>e.createElement(it,{as:"a",href:d,target:"_blank",rel:"noreferrer noopener",key:d,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(u.Box,{paddingRight:5},e.createElement(u.Typography,{textColor:"neutral200",variant:"alpha"},f+1)),e.createElement(u.Box,{position:"relative"},e.createElement(lt,{src:nt,alt:""}),e.createElement(rt,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(u.Icon,{as:j.Play,color:"buttonNeutral0",width:3,height:3}))),e.createElement(u.Flex,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(u.Typography,{fontWeight:"bold"},s(h)),e.createElement(u.VisuallyHidden,null,":"),e.createElement(u.Typography,{textColor:"neutral600",variant:"pi"},g)))),e.createElement(u.Stack,{spacing:2,paddingLeft:5,paddingTop:2,paddingBottom:5},ot.map(({label:d,href:g,icon:h})=>e.createElement(u.Stack,{horizontal:!0,spacing:3,key:g},e.createElement(u.Icon,{as:h,color:"primary600"}),e.createElement(ve,{as:"a",href:g,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},s(d)))))))))};const ct=(0,e.lazy)(()=>Promise.all([t.e(5015),t.e(2607),t.e(4855),t.e(994)]).then(t.bind(t,39573))),ut=(0,e.lazy)(()=>t.e(3981).then(t.bind(t,52567))),pt=(0,e.lazy)(()=>t.e(3677).then(t.bind(t,15415))),mt=(0,e.lazy)(()=>Promise.all([t.e(5015),t.e(5516)]).then(t.bind(t,42052))),Te=(0,e.lazy)(()=>Promise.resolve().then(t.bind(t,53951))),gt=(0,e.lazy)(()=>t.e(9501).then(t.bind(t,92336))),ht=(0,e.lazy)(()=>t.e(9497).then(t.bind(t,9972))),Ce=(0,e.lazy)(()=>Promise.all([t.e(5015),t.e(3632),t.e(5895)]).then(t.bind(t,96822))),ft=()=>{const{trackUsage:n}=(0,r.useTracking)(),a=(0,A.useDispatch)(),o=(0,A.useSelector)(s=>s.admin_app.status);(0,e.useEffect)(()=>{o==="init"&&(n("didAccessAuthenticatedAdministration"),a({type:tt.e}))},[o])};var Et=()=>{ft();const{isLoading:n,generalSectionLinks:a,pluginsSectionLinks:o}=(0,y.H9)(),{menu:s}=(0,r.useStrapiApp)(),{showTutorials:p}=(0,y.um)(),d=(0,e.useMemo)(()=>s.filter(g=>g.Component).map(({to:g,Component:h,exact:f})=>(0,_.ot)(h,g,f)),[s]);return n?e.createElement(r.LoadingIndicatorPage,null):e.createElement(M.DndProvider,{backend:F.PD},e.createElement(et,{sideNav:e.createElement(Xe,{generalSectionLinks:a,pluginsSectionLinks:o})},e.createElement(e.Suspense,{fallback:e.createElement(r.LoadingIndicatorPage,null)},e.createElement(c.Switch,null,e.createElement(c.Route,{path:"/",component:ut,exact:!0}),e.createElement(c.Route,{path:"/me",component:ht,exact:!0}),e.createElement(c.Route,{path:"/content-manager",component:ct}),d,e.createElement(c.Route,{path:"/settings/:settingId",component:Ce}),e.createElement(c.Route,{path:"/settings",component:Ce,exact:!0}),e.createElement(c.Route,{path:"/marketplace"},e.createElement(mt,null)),e.createElement(c.Route,{path:"/list-plugins",exact:!0},e.createElement(pt,null)),e.createElement(c.Route,{path:"/404",component:Te}),e.createElement(c.Route,{path:"/500",component:gt}),e.createElement(c.Route,{path:"",component:Te}))),e.createElement(Ke,null),p&&e.createElement(dt,null)))},yt=n=>({plugins:Object.keys(n).reduce((a,o)=>(a[o]={...n[o]},a),{})}),vt=t(3040),Tt=t.n(vt);const Me={plugins:null};var Ct=(n=Me,a)=>(0,le.default)(n,o=>{switch(a.type){case"SET_PLUGIN_READY":{Tt()(o,["plugins",a.pluginId,"isReady"],!0);break}default:return o}}),Mt=()=>{const{plugins:n}=(0,r.useStrapiApp)(),[{plugins:a},o]=(0,e.useReducer)(Ct,Me,()=>yt(n)),s=(0,e.useRef)(d=>{o({type:"SET_PLUGIN_READY",pluginId:d})});if(Object.keys(a).some(d=>a[d].isReady===!1)){const d=Object.keys(a).reduce((g,h)=>{const f=a[h].initializer;if(f){const m=a[h].pluginId;g.push(e.createElement(f,{key:m,setPlugin:s.current}))}return g},[]);return e.createElement(e.Fragment,null,d,e.createElement(r.LoadingIndicatorPage,null))}return e.createElement(Et,null)},Re=t(17367);const Rt=()=>({type:Re.l}),St=n=>({type:Re.m,permissions:n}),Se=({children:n,permissions:a,refetchPermissions:o})=>{const{allPermissions:s}=(0,A.useSelector)(d=>d.rbacProvider),p=(0,A.useDispatch)();return(0,e.useEffect)(()=>(p(St(a)),()=>{p(Rt())}),[a,p]),s?e.createElement(r.RBACProviderContext.Provider,{value:{allPermissions:s,refetchPermissions:o}},n):e.createElement(r.LoadingIndicatorPage,null)};Se.propTypes={children:i().element.isRequired,permissions:i().array.isRequired,refetchPermissions:i().func.isRequired};var It=Se,Pt=t(55721),xt=t(54770),ee=t.n(xt),Ie=(n,a)=>!ee().valid(n)||!ee().valid(a)?!1:ee().lt(n,a);const Pe=x.i8,At=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:te}=(0,r.getFetchClient)(),Lt=async n=>{try{const{data:{tag_name:a}}=await Pt.Z.get("https://api.github.com/repos/strapi/strapi/releases/latest");return Ie(Pe,a)&&At&&n({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${a}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),a}catch{return Pe}},Ot=async()=>{try{const{data:n,headers:a}=await te("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return n.data}catch(n){throw new Error(n)}},bt=async()=>{try{const{data:n,headers:a}=await te("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return n.data}catch(n){throw new Error(n)}},Dt=async()=>{try{const{data:{data:{roles:n}}}=await te("/admin/users/me");return n}catch(n){throw new Error(n)}},xe=x.i8;var Bt=()=>{const{setGuidedTourVisibility:n}=(0,r.useGuidedTour)(),a=(0,r.useNotification)(),o=(0,e.useRef)(n),s=r.auth.getUserInfo(),p=Q()(s,"username")||(0,_.Pp)(s.firstname,s.lastname),[d,g]=(0,e.useState)(p),[h,f]=(0,e.useState)(null),{showReleaseNotification:m}=(0,y.um)(),[{data:R,status:B},{data:b,isLoading:$},{data:W,status:S,refetch:Z,isFetched:k,isFetching:D},{data:I}]=(0,P.useQueries)([{queryKey:"app-infos",queryFn:Ot},{queryKey:"strapi-release",queryFn:()=>Lt(a),enabled:m,initialData:xe},{queryKey:"admin-users-permission",queryFn:bt,initialData:[]},{queryKey:"user-roles",queryFn:Dt}]),l=(0,e.useMemo)(()=>Ie(xe,b),[b]);(0,e.useEffect)(()=>{I&&I.find(({code:oe})=>oe==="strapi-super-admin")&&R?.autoReload&&o.current(!0)},[I,R]),(0,e.useEffect)(()=>{(async()=>{const oe=await(0,_.Qy)(s);f(oe)})()},[s]);const H=$||(D&&k||B==="loading"||S==="loading"),ne=(0,e.useMemo)(()=>({...R,userId:h,latestStrapiReleaseTag:b,setUserDisplayName:g,shouldUpdateStrapi:l,userDisplayName:d}),[R,b,l,d,h]);return H?e.createElement(r.LoadingIndicatorPage,null):B==="error"?e.createElement("div",null,"error..."):e.createElement(r.AppInfosContext.Provider,{value:ne},e.createElement(It,{permissions:W,refetchPermissions:Z},e.createElement(Mt,null)))}},78024:function(z,C,t){var e=t(32735),r=t(60216),P=t.n(r),E=t(88425),Q=t.n(E),x=t(72850),y=t(23678);const c=({type:A,...M})=>e.createElement(x.x,{width:(0,E.pxToRem)(2),height:"100%",background:A===y.VM?"neutral300":"primary500",hasRadius:!0,...M});c.defaultProps={type:y.VM},c.propTypes={type:P().oneOf([y.lW,y.hx,y.VM])},C.Z=c},14317:function(z,C,t){var e=t(32735),r=t(60216),P=t.n(r),E=t(88425),Q=t.n(E),x=t(87933),y=t(49372),c=t(99140),A=t(66456),M=t(23678);const F=({type:V,number:K})=>V===M.hx?e.createElement(x.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(c.J,{as:A.Z,"aria-hidden":!0,width:(0,E.pxToRem)(16),color:"neutral0"})):V===M.lW?e.createElement(x.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Z,{fontWeight:"semiBold",textColor:"neutral0"},K)):e.createElement(x.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Z,{fontWeight:"semiBold",textColor:"neutral600"},K));F.defaultProps={number:void 0,type:M.VM},F.propTypes={number:P().number,type:P().oneOf([M.lW,M.hx,M.VM])},C.Z=F},23678:function(z,C,t){t.d(C,{VM:function(){return P},hx:function(){return r},lW:function(){return e}});const e="isActive",r="isDone",P="isNotDone"},58107:function(z,C){const t={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<p>Collection types help you manage several entries, Single types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection type whereas a Homepage would be a Single type.</p>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};C.Z=t}}]);