slice-machine-ui 1.20.1-dev-environments.2 → 1.20.1-dev-next-release.3

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 (90) hide show
  1. package/components/AppLayout/index.tsx +10 -34
  2. package/components/Navigation/index.tsx +15 -32
  3. package/components/ReviewModal/ReviewForm.tsx +2 -2
  4. package/components/ReviewModal/ReviewModal.tsx +7 -0
  5. package/out/404.html +1 -1
  6. package/out/_next/static/BIxidu02_xbgjO9EV7tg4/_buildManifest.js +1 -0
  7. package/out/_next/static/chunks/{18539003-371d86ea83e7293b.js → 18539003-5d8b6a04053638af.js} +2 -2
  8. package/out/_next/static/chunks/{482-39cef3a713901788.js → 482-30c0f114c7213fa3.js} +1 -1
  9. package/out/_next/static/chunks/{125-f0e2eb84ee39757a.js → 505-fa47e200ac3a012d.js} +1 -1
  10. package/out/_next/static/chunks/{550-e72c08c598051224.js → 550-abf97d3008006056.js} +1 -1
  11. package/out/_next/static/chunks/{80-821a0b5d4ad61185.js → 80-72d903b2a0bd5dc3.js} +1 -1
  12. package/out/_next/static/chunks/840-8cec2bbd104111f2.js +1 -0
  13. package/out/_next/static/chunks/904-cb627b6d7b8068f9.js +1 -0
  14. package/out/_next/static/chunks/958-8f814daf5896ff97.js +1 -0
  15. package/out/_next/static/chunks/pages/{_app-61dfd5e4a504dad6.js → _app-2d01c2c528624eaf.js} +44 -44
  16. package/out/_next/static/chunks/pages/{changelog-4b8369d91d82b28b.js → changelog-fa36b9995c26e1d7.js} +1 -1
  17. package/out/_next/static/chunks/pages/changes-494c71511b2e8989.js +1 -0
  18. package/out/_next/static/chunks/pages/index-d8e3a2c0d712904f.js +1 -0
  19. package/out/_next/static/chunks/pages/labs-ebce03a4e7a95a4e.js +1 -0
  20. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/{simulator-79a62d775e64898c.js → simulator-7b17cb59d0db03b5.js} +1 -1
  21. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/{[variation]-724893d27ffa426c.js → [variation]-763cc8c12e977b4a.js} +1 -1
  22. package/out/_next/static/chunks/pages/slices-22db04643850c1d8.js +1 -0
  23. package/out/_next/static/css/31841735992dea23.css +1 -0
  24. package/out/_next/static/css/58a89606d9ca9093.css +1 -0
  25. package/out/_next/static/css/5d18ccf403d4649a.css +1 -0
  26. package/out/_next/static/css/{51597cd1f01c4889.css → 78250665d395ea50.css} +1 -1
  27. package/out/_next/static/css/{16b41648cd1de03b.css → b0be58d878c0fac3.css} +1 -1
  28. package/out/_next/static/css/e48f99beffa085f5.css +1 -0
  29. package/out/changelog.html +1 -1
  30. package/out/changes.html +1 -1
  31. package/out/custom-types/[customTypeId].html +1 -1
  32. package/out/custom-types.html +1 -1
  33. package/out/index.html +1 -1
  34. package/out/labs.html +1 -1
  35. package/out/page-types/[pageTypeId].html +1 -1
  36. package/out/slices/[lib]/[sliceName]/[variation]/simulator.html +1 -1
  37. package/out/slices/[lib]/[sliceName]/[variation].html +1 -1
  38. package/out/slices.html +1 -1
  39. package/package.json +7 -7
  40. package/pages/_app.tsx +39 -35
  41. package/pages/slices.tsx +0 -1
  42. package/src/components/Counter/Counter.css.ts +26 -0
  43. package/src/components/Counter/Counter.stories.tsx +17 -0
  44. package/src/components/Counter/Counter.tsx +16 -0
  45. package/src/components/Counter/index.ts +1 -0
  46. package/src/components/PageLayout/PageLayout.css.ts +3 -8
  47. package/src/components/PageLayout/PageLayout.stories.tsx +1 -10
  48. package/src/components/PageLayout/PageLayout.tsx +2 -7
  49. package/src/components/SideNav/SideNav.css.ts +10 -3
  50. package/src/components/SideNav/SideNav.stories.tsx +2 -29
  51. package/src/components/SideNav/SideNav.tsx +1 -5
  52. package/src/components/SideNav/index.ts +0 -1
  53. package/src/features/customTypes/__tests__/CustomTypeBuilderPage.test.tsx +3 -4
  54. package/src/features/inAppGuide/InAppGuideContext.tsx +47 -0
  55. package/src/features/inAppGuide/InAppGuideDialog.tsx +97 -0
  56. package/src/features/inAppGuide/inAppGuideContent.tsx +65 -0
  57. package/src/hooks/usePersistedState.ts +34 -0
  58. package/src/hooks/useRepositoryInformation.ts +24 -0
  59. package/src/icons/FlowerBackgroundIcon.tsx +17 -0
  60. package/src/icons/HelpIcon.tsx +19 -0
  61. package/test/pages/slices.test.tsx +8 -4
  62. package/test/src/modules/__fixtures__/serverState.ts +0 -2
  63. package/components/Navigation/Environment.tsx +0 -47
  64. package/components/Navigation/index.css.ts +0 -6
  65. package/out/_next/static/chunks/840-5b485c737b24324b.js +0 -1
  66. package/out/_next/static/chunks/904-6204ab2ad8798857.js +0 -1
  67. package/out/_next/static/chunks/958-c90d60818f1c468a.js +0 -1
  68. package/out/_next/static/chunks/pages/changes-db6e8c6be5ae076e.js +0 -1
  69. package/out/_next/static/chunks/pages/index-941b44c74dd339e4.js +0 -1
  70. package/out/_next/static/chunks/pages/labs-2922105ab714d32a.js +0 -1
  71. package/out/_next/static/chunks/pages/slices-93b7af2624c85b8e.js +0 -1
  72. package/out/_next/static/css/009bd7f5ac85fc6a.css +0 -1
  73. package/out/_next/static/css/3e88bd24e38f18d0.css +0 -1
  74. package/out/_next/static/css/6e4843007ff41825.css +0 -1
  75. package/out/_next/static/css/867d8d7ab4a75762.css +0 -1
  76. package/out/_next/static/eEMbH0pyO9pWG3REga3T2/_buildManifest.js +0 -1
  77. package/src/components/Divider/Divider.css.ts +0 -31
  78. package/src/components/Divider/Divider.stories.tsx +0 -27
  79. package/src/components/Divider/Divider.tsx +0 -25
  80. package/src/components/Divider/index.ts +0 -1
  81. package/src/components/SideNav/SideNavEnvironmentSelector.css.ts +0 -69
  82. package/src/components/SideNav/SideNavEnvironmentSelector.tsx +0 -163
  83. package/src/features/environments/actions/getActiveEnvironmentDomain.ts +0 -11
  84. package/src/features/environments/actions/getEnvironments.ts +0 -12
  85. package/src/features/environments/actions/setEnvironment.ts +0 -18
  86. package/src/features/environments/useActiveEnvironment.ts +0 -38
  87. package/src/features/environments/useEnvironments.ts +0 -7
  88. package/src/features/legacyState/actions/getLegacySliceMachineState.ts +0 -53
  89. package/src/features/legacyState/useLegacySliceMachineState.ts +0 -7
  90. /package/out/_next/static/{eEMbH0pyO9pWG3REga3T2 → BIxidu02_xbgjO9EV7tg4}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- ._1k08lzu3{height:calc(var(--_7j49md4b) - var(--_7j49mdh))}._1k08lzu5{height:calc(var(--_7j49md40) - var(--_7j49md3w));width:calc(var(--_7j49md40) - var(--_7j49md3w))}._1k08lzu7{box-shadow:inset 0 calc(-1 * var(--_7j49mdh)) 0 0 var(--_7j49md1a);height:calc(var(--_7j49md4b) - var(--_7j49mdh));-ms-overflow-style:none;scrollbar-width:none}._1k08lzu7::-webkit-scrollbar{display:none}._1k08lzu3+._1k08lzu6>._1k08lzu7{padding-top:var(--_7j49mdh)}._1k08lzu8:last-child:before,:not(:is(:focus,:hover,[data-state=active]))+._1k08lzu8:before{content:"";background-color:var(--_7j49md1b);bottom:var(--_7j49md4s);height:var(--_7j49md47);left:calc(-1 * var(--_7j49md4o));position:absolute;width:var(--_7j49mdh)}._1k08lzu9{max-width:256px}._1k08lzu9[data-state=active]{color:var(--_7j49md1g)}._1k08lzu9:is(:focus,:hover,[data-state=active]):before{content:"";background-color:var(--_7j49md16);border-color:var(--_7j49md1a);border-top-left-radius:var(--_7j49md7);border-top-right-radius:var(--_7j49md7);border-style:var(--_7j49mdf) var(--_7j49mdf) var(--_7j49mdd);border-width:var(--_7j49mdh);box-sizing:border-box;height:calc(var(--_7j49md4h) + var(--_7j49mdh));left:calc(-1 * var(--_7j49mdh));position:absolute;top:calc(-1 * var(--_7j49mdh));width:calc(var(--_7j49md4h) + var(--_7j49mdh))}._1k08lzub{margin-right:calc(-1 * var(--_7j49md4s))}:is(:focus,:hover,[data-state=active])>._1k08lzub{visibility:visible}._1k08lzub:has(>[data-state=open]){visibility:visible}._1k08lzuc{box-shadow:inset 0 calc(-1 * var(--_7j49mdh)) 0 0 var(--_7j49md1a),0 calc(-1 * var(--_7j49mdh)) 0 0 var(--_7j49md17)}._1k08lzud[data-state=inactive]{display:none}:is(._1k08lzu2,._1k08lzud)>._2a96i71{border-radius:var(--_7j49md3);border-style:var(--_7j49mdd)}._2a96i72:last-child{border-bottom-color:var(--_7j49md3c)}._1k08lzud>._2a96i71>._2a96i73:not(:first-child){margin-top:var(--_7j49md4v)}._18bjhbz0{max-width:498px;min-height:400px;background-color:var(--_7j49md15)}._18bjhbz1{background-size:cover;background-color:transparent;border-radius:var(--_7j49md3);border-style:var(--_7j49mdd);height:100%;max-width:100%}._18bjhbz1 ._18bjhbz3{padding:64px}._18bjhbz4{font-size:18px;font-weight:600;line-height:32px}._18bjhbz5{font-weight:400;line-height:24px}._18bjhbz1 ._18bjhbz5{max-width:464px;align-self:center}._18bjhbz1 ._18bjhbz6{justify-content:center}.kedahr2{height:240px}.kedahr3{height:320px}.kedahr6:focus-visible{box-shadow:0 0 0 4px rgba(123,101,220,.1)}.kedahr6[data-disabled]{opacity:var(--_7j49md3r)}.kedahr6:not([data-disabled]){cursor:var(--_7j49md3f)}.kedahr7{order:0}.kedahr4>.kedahr7{padding:calc(var(--_7j49md4x) - var(--_7j49mdh))}.kedahr5>.kedahr7{background-color:var(--_7j49md17);margin-inline:calc(var(--_7j49md4v) - var(--_7j49mdh));margin-top:calc(var(--_7j49md4v) - var(--_7j49mdh));padding:var(--_7j49md4v)}.kedahr9:not([src]){visibility:hidden}.kedahra:before{content:"";background-color:var(--_7j49md1g);inset:var(--_7j49md4n);opacity:var(--_7j49md3p);position:absolute}.kedahr6:focus-visible .kedahra,.kedahr6:not([data-disabled]) .kedahr7:hover>.kedahra{visibility:visible}.kedahr6:not([data-disabled]) .kedahra:has(:focus-visible){visibility:visible}.kedahr4>.kedahrb{background-color:var(--_7j49md15)}.kedahr4>.kedahrb:not(:first-child){border-top-color:var(--_7j49md1a);border-top-style:inherit;border-top-width:inherit}.kedahrc{order:1}.kedahr4>.kedahrc{padding-left:calc(var(--_7j49md4u) - var(--_7j49mdh));padding-right:calc(var(--_7j49md4s) - var(--_7j49mdh))}.kedahr5>.kedahrc{padding-inline:calc(var(--_7j49md4v) - var(--_7j49mdh))}.kedahrd{order:2}.kedahr4>.kedahrd{padding-inline:calc(var(--_7j49md4u) - var(--_7j49mdh))}.kedahr5>.kedahrd{padding-inline:calc(var(--_7j49md4v) - var(--_7j49mdh))}.kedahre{margin-bottom:calc((1.5rem - 1rem) / 2)}.kedahrf{background-color:#ebe7fe;color:#5746af}._76k20u4:not(:last-child){margin-right:var(--_7j49md4v)}._76k20u4[data-state=active]{box-shadow:inset 0 -1px 0 0 currentColor,0 1px 0 0 currentColor;color:var(--_7j49md36)}._76k20u5{line-height:32px}._76k20u6{flex:1 1}._76k20u6[data-state=inactive]{display:none}._8uty130{line-height:32px}._3uvawd0{grid-area:content;overflow:hidden}
@@ -1 +0,0 @@
1
- ._1k08lzu3{height:calc(var(--_7j49md4b) - var(--_7j49mdh))}._1k08lzu5{height:calc(var(--_7j49md40) - var(--_7j49md3w));width:calc(var(--_7j49md40) - var(--_7j49md3w))}._1k08lzu7{box-shadow:inset 0 calc(-1 * var(--_7j49mdh)) 0 0 var(--_7j49md1a);height:calc(var(--_7j49md4b) - var(--_7j49mdh));-ms-overflow-style:none;scrollbar-width:none}._1k08lzu7::-webkit-scrollbar{display:none}._1k08lzu3+._1k08lzu6>._1k08lzu7{padding-top:var(--_7j49mdh)}._1k08lzu8:last-child:before,:not(:is(:focus,:hover,[data-state=active]))+._1k08lzu8:before{content:"";background-color:var(--_7j49md1b);bottom:var(--_7j49md4s);height:var(--_7j49md47);left:calc(-1 * var(--_7j49md4o));position:absolute;width:var(--_7j49mdh)}._1k08lzu9{max-width:256px}._1k08lzu9[data-state=active]{color:var(--_7j49md1g)}._1k08lzu9:is(:focus,:hover,[data-state=active]):before{content:"";background-color:var(--_7j49md16);border-color:var(--_7j49md1a);border-top-left-radius:var(--_7j49md7);border-top-right-radius:var(--_7j49md7);border-style:var(--_7j49mdf) var(--_7j49mdf) var(--_7j49mdd);border-width:var(--_7j49mdh);box-sizing:border-box;height:calc(var(--_7j49md4h) + var(--_7j49mdh));left:calc(-1 * var(--_7j49mdh));position:absolute;top:calc(-1 * var(--_7j49mdh));width:calc(var(--_7j49md4h) + var(--_7j49mdh))}._1k08lzub{margin-right:calc(-1 * var(--_7j49md4s))}:is(:focus,:hover,[data-state=active])>._1k08lzub{visibility:visible}._1k08lzub:has(>[data-state=open]){visibility:visible}._1k08lzuc{box-shadow:inset 0 calc(-1 * var(--_7j49mdh)) 0 0 var(--_7j49md1a),0 calc(-1 * var(--_7j49mdh)) 0 0 var(--_7j49md17)}._1k08lzud[data-state=inactive]{display:none}:is(._1k08lzu2,._1k08lzud)>._2a96i71{border-radius:var(--_7j49md3);border-style:var(--_7j49mdd)}._2a96i72:last-child{border-bottom-color:var(--_7j49md3c)}._1k08lzud>._2a96i71>._2a96i73:not(:first-child){margin-top:var(--_7j49md4v)}._1nkpwww0{border-radius:3px}.kedahr2{height:240px}.kedahr3{height:320px}.kedahr6:focus-visible{box-shadow:0 0 0 4px rgba(123,101,220,.1)}.kedahr6[data-disabled]{opacity:var(--_7j49md3r)}.kedahr6:not([data-disabled]){cursor:var(--_7j49md3f)}.kedahr7{order:0}.kedahr4>.kedahr7{padding:calc(var(--_7j49md4x) - var(--_7j49mdh))}.kedahr5>.kedahr7{background-color:var(--_7j49md17);margin-inline:calc(var(--_7j49md4v) - var(--_7j49mdh));margin-top:calc(var(--_7j49md4v) - var(--_7j49mdh));padding:var(--_7j49md4v)}.kedahr9:not([src]){visibility:hidden}.kedahra:before{content:"";background-color:var(--_7j49md1g);inset:var(--_7j49md4n);opacity:var(--_7j49md3p);position:absolute}.kedahr6:focus-visible .kedahra,.kedahr6:not([data-disabled]) .kedahr7:hover>.kedahra{visibility:visible}.kedahr6:not([data-disabled]) .kedahra:has(:focus-visible){visibility:visible}.kedahr4>.kedahrb{background-color:var(--_7j49md15)}.kedahr4>.kedahrb:not(:first-child){border-top-color:var(--_7j49md1a);border-top-style:inherit;border-top-width:inherit}.kedahrc{order:1}.kedahr4>.kedahrc{padding-left:calc(var(--_7j49md4u) - var(--_7j49mdh));padding-right:calc(var(--_7j49md4s) - var(--_7j49mdh))}.kedahr5>.kedahrc{padding-inline:calc(var(--_7j49md4v) - var(--_7j49mdh))}.kedahrd{order:2}.kedahr4>.kedahrd{padding-inline:calc(var(--_7j49md4u) - var(--_7j49mdh))}.kedahr5>.kedahrd{padding-inline:calc(var(--_7j49md4v) - var(--_7j49mdh))}.kedahre{margin-bottom:calc((1.5rem - 1rem) / 2)}.kedahrf{background-color:#ebe7fe;color:#5746af}
@@ -1 +0,0 @@
1
- ._1nkpwww0{border-radius:3px}.kedahr2{height:240px}.kedahr3{height:320px}.kedahr6:focus-visible{box-shadow:0 0 0 4px rgba(123,101,220,.1)}.kedahr6[data-disabled]{opacity:var(--_7j49md3r)}.kedahr6:not([data-disabled]){cursor:var(--_7j49md3f)}.kedahr7{order:0}.kedahr4>.kedahr7{padding:calc(var(--_7j49md4x) - var(--_7j49mdh))}.kedahr5>.kedahr7{background-color:var(--_7j49md17);margin-inline:calc(var(--_7j49md4v) - var(--_7j49mdh));margin-top:calc(var(--_7j49md4v) - var(--_7j49mdh));padding:var(--_7j49md4v)}.kedahr9:not([src]){visibility:hidden}.kedahra:before{content:"";background-color:var(--_7j49md1g);inset:var(--_7j49md4n);opacity:var(--_7j49md3p);position:absolute}.kedahr6:focus-visible .kedahra,.kedahr6:not([data-disabled]) .kedahr7:hover>.kedahra{visibility:visible}.kedahr6:not([data-disabled]) .kedahra:has(:focus-visible){visibility:visible}.kedahr4>.kedahrb{background-color:var(--_7j49md15)}.kedahr4>.kedahrb:not(:first-child){border-top-color:var(--_7j49md1a);border-top-style:inherit;border-top-width:inherit}.kedahrc{order:1}.kedahr4>.kedahrc{padding-left:calc(var(--_7j49md4u) - var(--_7j49mdh));padding-right:calc(var(--_7j49md4s) - var(--_7j49mdh))}.kedahr5>.kedahrc{padding-inline:calc(var(--_7j49md4v) - var(--_7j49mdh))}.kedahrd{order:2}.kedahr4>.kedahrd{padding-inline:calc(var(--_7j49md4u) - var(--_7j49mdh))}.kedahr5>.kedahrd{padding-inline:calc(var(--_7j49md4v) - var(--_7j49mdh))}.kedahre{margin-bottom:calc((1.5rem - 1rem) / 2)}.kedahrf{background-color:#ebe7fe;color:#5746af}
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(s,c,e,a,t,i,f,b,n,d){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[c,i,f,"static/chunks/pages/index-941b44c74dd339e4.js"],"/_error":["static/chunks/pages/_error-69b4f498bafdd188.js"],"/changelog":["static/chunks/870-0c7a8a9622de78b7.js","static/chunks/pages/changelog-4b8369d91d82b28b.js"],"/changes":[e,"static/chunks/8eec4907-b712959d9f984b68.js","static/chunks/918-38d08f1e885b222d.js",s,a,"static/css/51597cd1f01c4889.css","static/chunks/pages/changes-db6e8c6be5ae076e.js"],"/custom-types":[c,i,f,"static/chunks/pages/custom-types-2f5664d9492b13fb.js"],"/custom-types/[customTypeId]":[b,s,c,t,n,d,"static/chunks/pages/custom-types/[customTypeId]-3a37eb3373bb8823.js"],"/labs":["static/chunks/pages/labs-2922105ab714d32a.js"],"/page-types/[pageTypeId]":[b,s,c,t,n,d,"static/chunks/pages/page-types/[pageTypeId]-733f3890c0466a05.js"],"/slices":[e,s,a,"static/css/867d8d7ab4a75762.css","static/chunks/pages/slices-93b7af2624c85b8e.js"],"/slices/[lib]/[sliceName]/[variation]":[e,s,a,t,"static/css/6e4843007ff41825.css","static/chunks/pages/slices/[lib]/[sliceName]/[variation]-724893d27ffa426c.js"],"/slices/[lib]/[sliceName]/[variation]/simulator":[e,"static/chunks/72585f70-28b4d7d5384b3703.js","static/chunks/18539003-371d86ea83e7293b.js","static/chunks/125-f0e2eb84ee39757a.js","static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-79a62d775e64898c.js"],sortedPages:["/","/_app","/_error","/changelog","/changes","/custom-types","/custom-types/[customTypeId]","/labs","/page-types/[pageTypeId]","/slices","/slices/[lib]/[sliceName]/[variation]","/slices/[lib]/[sliceName]/[variation]/simulator"]}}("static/chunks/958-c90d60818f1c468a.js","static/chunks/550-e72c08c598051224.js","static/chunks/c8eae200-966ce352f7b5d2b9.js","static/chunks/80-821a0b5d4ad61185.js","static/chunks/482-39cef3a713901788.js","static/chunks/840-5b485c737b24324b.js","static/css/16b41648cd1de03b.css","static/chunks/474-2393e400314474be.js","static/chunks/904-6204ab2ad8798857.js","static/css/3e88bd24e38f18d0.css"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1,31 +0,0 @@
1
- import { colors, sprinkles } from "@prismicio/editor-ui";
2
- import { style, styleVariants } from "@vanilla-extract/css";
3
-
4
- const base = style([
5
- sprinkles({
6
- width: "100%",
7
- borderStyle: "none",
8
- margin: 0,
9
- }),
10
- ]);
11
-
12
- export const variants = styleVariants({
13
- dashed: [
14
- base,
15
- sprinkles({
16
- borderColor: colors.currentColor,
17
- borderTopStyle: "dashed",
18
- borderWidth: 1,
19
- }),
20
- ],
21
- edgeFaded: [
22
- base,
23
- sprinkles({
24
- height: 1,
25
- }),
26
- {
27
- backgroundImage:
28
- "linear-gradient(to right, color-mix(in srgb, currentColor 0%, transparent), currentColor, color-mix(in srgb, currentColor 0%, transparent))",
29
- },
30
- ],
31
- });
@@ -1,27 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { colors } from "@prismicio/editor-ui";
3
-
4
- import { Divider } from "./Divider";
5
- import { variants } from "./Divider.css";
6
-
7
- type Story = StoryObj<typeof meta>;
8
-
9
- const meta = {
10
- component: Divider,
11
- argTypes: {
12
- variant: {
13
- control: { type: "select" },
14
- options: Object.keys(variants),
15
- },
16
- color: {
17
- control: { type: "select" },
18
- options: Object.keys(colors),
19
- },
20
- },
21
- } satisfies Meta<typeof Divider>;
22
-
23
- export default meta;
24
-
25
- export const Default = {
26
- args: {},
27
- } satisfies Story;
@@ -1,25 +0,0 @@
1
- import { FC } from "react";
2
- import { colors, sprinkles } from "@prismicio/editor-ui";
3
- import clsx from "clsx";
4
-
5
- import * as styles from "./Divider.css";
6
-
7
- type DividerProps = {
8
- color?: keyof typeof colors;
9
- variant?: "dashed" | "edgeFaded";
10
- className?: string;
11
- };
12
-
13
- export const Divider: FC<DividerProps> = (props) => {
14
- const { variant = "dashed", color = "currentColor", className } = props;
15
-
16
- return (
17
- <hr
18
- className={clsx(
19
- styles.variants[variant],
20
- sprinkles({ color: colors[color] }),
21
- className,
22
- )}
23
- />
24
- );
25
- };
@@ -1 +0,0 @@
1
- export { Divider } from "./Divider";
@@ -1,69 +0,0 @@
1
- import { colors, sprinkles } from "@prismicio/editor-ui";
2
- import { style, styleVariants } from "@vanilla-extract/css";
3
-
4
- export const logo = style([
5
- sprinkles({
6
- height: 40,
7
- width: 40,
8
- }),
9
- {
10
- display: "block",
11
- },
12
- ]);
13
-
14
- const environmentDotBase = style([
15
- sprinkles({
16
- flexShrink: 0,
17
- borderRadius: "50%",
18
- }),
19
- {
20
- width: 10,
21
- height: 10,
22
- },
23
- ]);
24
-
25
- export const environmentDot = styleVariants({
26
- prod: [environmentDotBase, sprinkles({ backgroundColor: colors.purple10 })],
27
- stage: [environmentDotBase, sprinkles({ backgroundColor: colors.indigo10 })],
28
- dev: [environmentDotBase, sprinkles({ backgroundColor: colors.amber10 })],
29
- });
30
-
31
- export const menuItemEnvironmentDot = sprinkles({
32
- marginRight: 2,
33
- marginLeft: 2,
34
- });
35
-
36
- export const activeEnvironmentDot = style([
37
- sprinkles({
38
- position: "absolute",
39
- bottom: 0,
40
- right: 0,
41
- outlineWidth: 3,
42
- outlineColor: colors.grey2,
43
- outlineStyle: "solid",
44
- }),
45
- {
46
- transform: "translate(50%, 50%)",
47
- },
48
- ]);
49
-
50
- export const activeEnvironmentName = style([
51
- sprinkles({
52
- overflow: "hidden",
53
- textOverflow: "ellipsis",
54
- whiteSpace: "nowrap",
55
- }),
56
- {
57
- fontWeight: 500,
58
- lineHeight: "1.25rem",
59
- },
60
- ]);
61
-
62
- export const actionRequiredLabel = style([
63
- sprinkles({
64
- color: colors.purple10,
65
- }),
66
- {
67
- fontWeight: 500,
68
- },
69
- ]);
@@ -1,163 +0,0 @@
1
- import {
2
- Box,
3
- DropdownMenu,
4
- DropdownMenuContent,
5
- DropdownMenuItem,
6
- DropdownMenuLabel,
7
- DropdownMenuTrigger,
8
- Icon,
9
- IconButton,
10
- Text,
11
- } from "@prismicio/editor-ui";
12
- import { Environment } from "@slicemachine/manager/client";
13
- import type { FC } from "react";
14
- import clsx from "clsx";
15
-
16
- import LogoIcon from "@src/icons/LogoIcon";
17
-
18
- import * as styles from "./SideNavEnvironmentSelector.css";
19
-
20
- type SideNavEnvironmentSelectorProps = {
21
- variant?: "default" | "unauthorized";
22
- environments?: Environment[];
23
- activeEnvironment?: Environment;
24
- onSelect?: (environment: Environment) => void | Promise<void>;
25
- onLogInClick?: () => void;
26
- };
27
-
28
- export const SideNavEnvironmentSelector: FC<SideNavEnvironmentSelectorProps> = (
29
- props,
30
- ) => {
31
- const {
32
- variant = "default",
33
- environments = [],
34
- activeEnvironment,
35
- onSelect,
36
- onLogInClick,
37
- } = props;
38
-
39
- const isProductionEnvironmentActive = activeEnvironment?.kind === "prod";
40
-
41
- return (
42
- <Box alignItems="center" gap={16}>
43
- <Box position="relative">
44
- <LogoIcon className={styles.logo} />
45
- {activeEnvironment !== undefined && (
46
- <EnvironmentDot
47
- kind={activeEnvironment.kind}
48
- className={styles.activeEnvironmentDot}
49
- />
50
- )}
51
- </Box>
52
- <Box flexGrow={1} flexDirection="column" overflow="hidden">
53
- <Text component="span" variant="small" color="grey11">
54
- Environment
55
- </Text>
56
- {variant === "unauthorized" ? (
57
- <Text component="span" className={styles.actionRequiredLabel}>
58
- Login required
59
- </Text>
60
- ) : activeEnvironment === undefined ? (
61
- <Text component="span" className={styles.actionRequiredLabel}>
62
- Select environment
63
- </Text>
64
- ) : (
65
- <Text component="span" className={styles.activeEnvironmentName}>
66
- {isProductionEnvironmentActive
67
- ? "Production"
68
- : activeEnvironment?.name}
69
- </Text>
70
- )}
71
- </Box>
72
- <Box flexShrink={0}>
73
- {variant === "unauthorized" ? (
74
- <IconButton icon="arrowForward" onClick={onLogInClick} />
75
- ) : !activeEnvironment || environments.length > 1 ? (
76
- <EnvironmentDropdownMenu
77
- environments={environments}
78
- activeEnvironment={activeEnvironment}
79
- onSelect={onSelect}
80
- />
81
- ) : null}
82
- </Box>
83
- </Box>
84
- );
85
- };
86
-
87
- type EnvironmentDropdownMenuProps = Pick<
88
- SideNavEnvironmentSelectorProps,
89
- "environments" | "activeEnvironment" | "onSelect"
90
- >;
91
-
92
- const EnvironmentDropdownMenu: FC<EnvironmentDropdownMenuProps> = (props) => {
93
- const { environments = [], activeEnvironment, onSelect } = props;
94
-
95
- return (
96
- <DropdownMenu modal>
97
- <DropdownMenuTrigger disabled={environments.length < 2}>
98
- <IconButton icon="unfoldMore" />
99
- </DropdownMenuTrigger>
100
- <DropdownMenuContent align="end" minWidth={256}>
101
- <DropdownMenuLabel>Regular Environments</DropdownMenuLabel>
102
- {environments.map((environment) =>
103
- environment.kind !== "dev" ? (
104
- <EnvironmentDropdownMenuItem
105
- key={environment.domain}
106
- environment={environment}
107
- onSelect={onSelect}
108
- isActive={environment.domain === activeEnvironment?.domain}
109
- />
110
- ) : (
111
- <>
112
- <DropdownMenuLabel>Personal Environment</DropdownMenuLabel>
113
- <EnvironmentDropdownMenuItem
114
- key={environment.domain}
115
- environment={environment}
116
- onSelect={onSelect}
117
- isActive={environment.domain === activeEnvironment?.domain}
118
- />
119
- </>
120
- ),
121
- )}
122
- </DropdownMenuContent>
123
- </DropdownMenu>
124
- );
125
- };
126
-
127
- type EnvironmentDropdownMenuItemProps = {
128
- environment: Environment;
129
- isActive?: boolean;
130
- } & Pick<SideNavEnvironmentSelectorProps, "onSelect">;
131
-
132
- const EnvironmentDropdownMenuItem: FC<EnvironmentDropdownMenuItemProps> = (
133
- props,
134
- ) => {
135
- const { environment, onSelect, isActive } = props;
136
- const isProductionEnvironment = environment.kind === "prod";
137
-
138
- return (
139
- <DropdownMenuItem
140
- startIcon={
141
- <EnvironmentDot
142
- kind={environment.kind}
143
- className={styles.menuItemEnvironmentDot}
144
- />
145
- }
146
- endIcon={Boolean(isActive) ? <Icon name="check" /> : undefined}
147
- onSelect={() => void onSelect?.(environment)}
148
- >
149
- {isProductionEnvironment ? "Production" : environment.name}
150
- </DropdownMenuItem>
151
- );
152
- };
153
-
154
- type EnvironmentDotProps = {
155
- kind: Environment["kind"];
156
- className?: string;
157
- };
158
-
159
- const EnvironmentDot: FC<EnvironmentDotProps> = (props) => {
160
- const { kind, className } = props;
161
-
162
- return <div className={clsx(styles.environmentDot[kind], className)} />;
163
- };
@@ -1,11 +0,0 @@
1
- import { managerClient } from "@src/managerClient";
2
-
3
- export async function getActiveEnvironmentDomain() {
4
- try {
5
- const { environment } = await managerClient.project.readEnvironment();
6
-
7
- return { activeEnvironmentDomain: environment };
8
- } catch (error) {
9
- return { error };
10
- }
11
- }
@@ -1,12 +0,0 @@
1
- import { managerClient } from "@src/managerClient";
2
-
3
- export async function getEnvironments() {
4
- try {
5
- const environments =
6
- await managerClient.prismicRepository.fetchEnvironments();
7
-
8
- return { environments };
9
- } catch (error) {
10
- return { error };
11
- }
12
- }
@@ -1,18 +0,0 @@
1
- import { revalidateData } from "@prismicio/editor-support/Suspense";
2
- import { Environment } from "@slicemachine/manager/client";
3
-
4
- import { getLegacySliceMachineState } from "@src/features/legacyState/actions/getLegacySliceMachineState";
5
- import { managerClient } from "@src/managerClient";
6
-
7
- import { getActiveEnvironmentDomain } from "./getActiveEnvironmentDomain";
8
-
9
- export async function setEnvironment(
10
- environment: Pick<Environment, "domain">,
11
- ): Promise<void> {
12
- await managerClient.project.updateEnvironment({
13
- environment: environment.domain,
14
- });
15
-
16
- revalidateData(getActiveEnvironmentDomain, []);
17
- revalidateData(getLegacySliceMachineState, []);
18
- }
@@ -1,38 +0,0 @@
1
- import { useRequest } from "@prismicio/editor-support/Suspense";
2
-
3
- import { getActiveEnvironmentDomain } from "./actions/getActiveEnvironmentDomain";
4
- import { useEnvironments } from "./useEnvironments";
5
-
6
- export function useActiveEnvironment() {
7
- const { environments, error: useEnvironmentsError } = useEnvironments();
8
- const { activeEnvironmentDomain, error: getActiveEnvironmentError } =
9
- useRequest(getActiveEnvironmentDomain, []);
10
-
11
- if (useEnvironmentsError !== undefined) {
12
- return { error: useEnvironmentsError };
13
- }
14
-
15
- if (getActiveEnvironmentError !== undefined) {
16
- return { error: getActiveEnvironmentError };
17
- }
18
-
19
- const activeEnvironment = environments?.find((environment) => {
20
- if (activeEnvironmentDomain === undefined) {
21
- return environment.kind === "prod";
22
- }
23
-
24
- return environment.domain === activeEnvironmentDomain;
25
- });
26
-
27
- if (!activeEnvironment) {
28
- return {
29
- error: new Error(
30
- `The active environment (${
31
- activeEnvironmentDomain ?? "Production"
32
- }) does not match one of the repository's environments.`,
33
- ),
34
- };
35
- }
36
-
37
- return { activeEnvironment };
38
- }
@@ -1,7 +0,0 @@
1
- import { useRequest } from "@prismicio/editor-support/Suspense";
2
-
3
- import { getEnvironments } from "./actions/getEnvironments";
4
-
5
- export function useEnvironments() {
6
- return useRequest(getEnvironments, []);
7
- }
@@ -1,53 +0,0 @@
1
- import ServerState from "@models/server/ServerState";
2
- import { Slices } from "@lib/models/common/Slice";
3
- import { CustomTypes } from "@lib/models/common/CustomType";
4
- import { managerClient } from "@src/managerClient";
5
-
6
- export async function getLegacySliceMachineState() {
7
- const rawState = await managerClient.getState();
8
-
9
- // `rawState` from the client contains non-SM-specific models. We need to
10
- // transform the data to something SM recognizes.
11
- const state: ServerState = {
12
- ...rawState,
13
- libraries: rawState.libraries.map((library) => {
14
- return {
15
- ...library,
16
- components: library.components.map((component) => {
17
- return {
18
- ...component,
19
- model: Slices.toSM(component.model),
20
-
21
- // Replace screnshot Blobs with URLs.
22
- screenshots: Object.fromEntries(
23
- Object.entries(component.screenshots).map(
24
- ([variationID, screenshot]) => {
25
- return [
26
- variationID,
27
- {
28
- ...screenshot,
29
- url: URL.createObjectURL(screenshot.data),
30
- },
31
- ];
32
- },
33
- ),
34
- ),
35
- };
36
- }),
37
- };
38
- }),
39
- customTypes: rawState.customTypes.map((customTypeModel) => {
40
- return CustomTypes.toSM(customTypeModel);
41
- }),
42
- remoteCustomTypes: rawState.remoteCustomTypes.map(
43
- (remoteCustomTypeModel) => {
44
- return CustomTypes.toSM(remoteCustomTypeModel);
45
- },
46
- ),
47
- remoteSlices: rawState.remoteSlices.map((remoteSliceModel) => {
48
- return Slices.toSM(remoteSliceModel);
49
- }),
50
- };
51
-
52
- return state;
53
- }
@@ -1,7 +0,0 @@
1
- import { useRequest } from "@prismicio/editor-support/Suspense";
2
-
3
- import { getLegacySliceMachineState } from "./actions/getLegacySliceMachineState";
4
-
5
- export function useLegacySliceMachineState() {
6
- return useRequest(getLegacySliceMachineState, []);
7
- }