@frontify/guideline-blocks-settings 0.28.3 → 0.28.5

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 (108) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/components/Attachments/Attachments.es.js +55 -55
  3. package/dist/components/Attachments/Attachments.es.js.map +1 -1
  4. package/dist/components/BlockItemWrapper/Toolbar.es.js +1 -1
  5. package/dist/components/BlockItemWrapper/Toolbar.es.js.map +1 -1
  6. package/dist/components/DownloadButton/DownloadButton.es.js +3 -3
  7. package/dist/components/DownloadButton/DownloadButton.es.js.map +1 -1
  8. package/dist/components/Link/LinkInput.es.js +61 -0
  9. package/dist/components/Link/LinkInput.es.js.map +1 -0
  10. package/dist/components/Link/LinkSelector/DocumentLink.es.js.map +1 -0
  11. package/dist/components/Link/LinkSelector/DocumentLinks.es.js.map +1 -0
  12. package/dist/components/Link/LinkSelector/LinkSelector.es.js +67 -0
  13. package/dist/components/Link/LinkSelector/LinkSelector.es.js.map +1 -0
  14. package/dist/components/Link/LinkSelector/PageLink.es.js.map +1 -0
  15. package/dist/components/Link/LinkSelector/PageLinks.es.js +37 -0
  16. package/dist/components/Link/LinkSelector/PageLinks.es.js.map +1 -0
  17. package/dist/components/Link/LinkSelector/SectionLink.es.js.map +1 -0
  18. package/dist/components/Link/utils/getUrl.es.js +17 -0
  19. package/dist/components/Link/utils/getUrl.es.js.map +1 -0
  20. package/dist/components/Link/utils/relativeUrlRegex.es.js.map +1 -0
  21. package/dist/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/url.es.js +1 -1
  22. package/dist/components/Link/utils/url.es.js.map +1 -0
  23. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js +1 -1
  24. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js.map +1 -1
  25. package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js +1 -1
  26. package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js.map +1 -1
  27. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.es.js +1 -1
  28. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.es.js.map +1 -1
  29. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js +39 -53
  30. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js.map +1 -1
  31. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js +2 -2
  32. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js.map +1 -1
  33. package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js +1 -1
  34. package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js.map +1 -1
  35. package/dist/components/RichTextEditor/serializer/nodes/button.es.js +3 -2
  36. package/dist/components/RichTextEditor/serializer/nodes/button.es.js.map +1 -1
  37. package/dist/components/RichTextEditor/serializer/nodes/checkItemNode.es.js +7 -7
  38. package/dist/components/RichTextEditor/serializer/nodes/checkItemNode.es.js.map +1 -1
  39. package/dist/components/RichTextEditor/serializer/nodes/default.es.js +27 -12
  40. package/dist/components/RichTextEditor/serializer/nodes/default.es.js.map +1 -1
  41. package/dist/components/RichTextEditor/serializer/nodes/link.es.js +4 -4
  42. package/dist/components/RichTextEditor/serializer/nodes/link.es.js.map +1 -1
  43. package/dist/components/RichTextEditor/serializer/serializeNodesToHtmlRecursive.es.js +33 -33
  44. package/dist/components/RichTextEditor/serializer/serializeNodesToHtmlRecursive.es.js.map +1 -1
  45. package/dist/helpers/addHttps.es.js +1 -1
  46. package/dist/helpers/addHttps.es.js.map +1 -1
  47. package/dist/index.cjs.js +9 -8
  48. package/dist/index.cjs.js.map +1 -1
  49. package/dist/index.d.ts +60 -0
  50. package/dist/index.es.js +134 -121
  51. package/dist/index.es.js.map +1 -1
  52. package/dist/index.umd.js +11 -10
  53. package/dist/index.umd.js.map +1 -1
  54. package/dist/styles.css +1 -1
  55. package/package.json +11 -11
  56. package/src/components/Attachments/Attachments.tsx +1 -1
  57. package/src/components/BlockItemWrapper/Toolbar.tsx +1 -1
  58. package/src/components/DownloadButton/DownloadButton.tsx +1 -1
  59. package/src/components/Link/LinkInput.spec.ct.tsx +142 -0
  60. package/src/components/Link/LinkInput.tsx +80 -0
  61. package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLink.tsx +1 -1
  62. package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLinks.tsx +1 -1
  63. package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/LinkSelector.tsx +10 -4
  64. package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/PageLink.tsx +1 -1
  65. package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/PageLinks.tsx +8 -2
  66. package/src/components/Link/index.ts +6 -0
  67. package/src/components/Link/types.ts +6 -0
  68. package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/getUrl.ts +1 -5
  69. package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/index.ts +1 -0
  70. package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/url.ts +2 -2
  71. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.ts +1 -1
  72. package/src/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.ts +1 -1
  73. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.ts +1 -1
  74. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.tsx +11 -28
  75. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/types.ts +0 -5
  76. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.ts +2 -2
  77. package/src/components/RichTextEditor/plugins/LinkPlugin/index.ts +1 -1
  78. package/src/components/RichTextEditor/serializer/nodes/button.ts +1 -0
  79. package/src/components/RichTextEditor/serializer/nodes/checkItemNode.ts +3 -3
  80. package/src/components/RichTextEditor/serializer/nodes/default.ts +27 -12
  81. package/src/components/RichTextEditor/serializer/nodes/link.ts +2 -2
  82. package/src/components/RichTextEditor/serializer/serializeNodesToHtmlRecursive.ts +4 -4
  83. package/src/components/index.ts +1 -0
  84. package/src/helpers/addHttps.ts +1 -1
  85. package/src/index.ts +2 -0
  86. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js +0 -18
  87. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js.map +0 -1
  88. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/relativeUrlRegex.es.js.map +0 -1
  89. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/url.es.js.map +0 -1
  90. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/DocumentLink.es.js.map +0 -1
  91. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/DocumentLinks.es.js.map +0 -1
  92. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/LinkSelector.es.js +0 -62
  93. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/LinkSelector.es.js.map +0 -1
  94. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/PageLink.es.js.map +0 -1
  95. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/PageLinks.es.js +0 -34
  96. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/PageLinks.es.js.map +0 -1
  97. package/dist/components/RichTextEditor/plugins/shared/LinkSelector/SectionLink.es.js.map +0 -1
  98. /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLink.es.js +0 -0
  99. /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/DocumentLinks.es.js +0 -0
  100. /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/PageLink.es.js +0 -0
  101. /package/dist/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/SectionLink.es.js +0 -0
  102. /package/dist/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.es.js +0 -0
  103. /package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/LinkSelector.spec.ct.tsx +0 -0
  104. /package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/SectionLink.tsx +0 -0
  105. /package/src/components/{RichTextEditor/plugins/shared → Link}/LinkSelector/index.ts +0 -0
  106. /package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.spec.ts +0 -0
  107. /package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/relativeUrlRegex.ts +0 -0
  108. /package/src/components/{RichTextEditor/plugins/LinkPlugin → Link}/utils/url.spec.ts +0 -0
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.tw-pointer-events-none{pointer-events:none}.tw-pointer-events-auto{pointer-events:auto}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-bottom-\[calc\(100\%-4px\)\]{bottom:calc(100% - 4px)}.tw-left-0{left:0}.tw-right-\[-3px\]{right:-3px}.tw-top-full{top:100%}.tw-z-10{z-index:10}.tw-z-20{z-index:20}.tw-z-\[2\]{z-index:2}.tw-m-0{margin:0}.tw-my-4{margin-top:1rem;margin-bottom:1rem}.tw-mr-1{margin-right:.25rem}.tw-mr-1\.5{margin-right:.375rem}.tw-mr-2{margin-right:.5rem}.tw-mt-3{margin-top:.75rem}.tw-mt-8{margin-top:2rem}.tw-flex{display:flex}.tw-inline-flex{display:inline-flex}.tw-h-0{height:0px}.tw-h-4{height:1rem}.tw-h-6{height:1.5rem}.tw-h-7{height:1.75rem}.tw-h-8{height:2rem}.tw-h-9{height:2.25rem}.tw-h-\[72px\]{height:72px}.tw-h-full{height:100%}.tw-min-h-\[10px\]{min-height:10px}.tw-w-0{width:0px}.tw-w-4{width:1rem}.tw-w-6{width:1.5rem}.tw-w-8{width:2rem}.tw-w-9{width:2.25rem}.tw-w-\[300px\]{width:300px}.tw-w-fit{width:-moz-fit-content;width:fit-content}.tw-w-full{width:100%}.tw-min-w-0{min-width:0px}.tw-min-w-\[400px\]{min-width:400px}.tw-flex-1{flex:1 1 0%}.tw-flex-auto{flex:1 1 auto}.tw-flex-shrink-0{flex-shrink:0}.tw-rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes tw-pulse{50%{opacity:.5}}.tw-animate-pulse{animation:tw-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.\!tw-cursor-not-allowed{cursor:not-allowed!important}.tw-cursor-grab{cursor:grab}.tw-cursor-grabbing{cursor:grabbing}.tw-cursor-pointer{cursor:pointer}.tw-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.tw-break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.tw-break-after-column{-moz-column-break-after:column;break-after:column}.tw-flex-row{flex-direction:row}.tw-flex-col{flex-direction:column}.tw-items-start{align-items:flex-start}.tw-items-center{align-items:center}.tw-justify-end{justify-content:flex-end}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-gap-0{gap:0px}.tw-gap-0\.5{gap:.125rem}.tw-gap-1{gap:.25rem}.tw-gap-2{gap:.5rem}.tw-gap-3{gap:.75rem}.tw-gap-\[2px\]{gap:2px}.tw-gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.tw-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.tw-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.tw-self-start{align-self:flex-start}.tw-overflow-hidden{overflow:hidden}.tw-overflow-y-auto{overflow-y:auto}.tw-text-ellipsis{text-overflow:ellipsis}.tw-whitespace-nowrap{white-space:nowrap}.tw-break-words{overflow-wrap:break-word}.tw-rounded{border-radius:var(--radius)}.tw-rounded-full{border-radius:9999px}.tw-rounded-sm{border-radius:.125rem}.tw-border{border-width:var(--line-width)}.tw-border-b{border-bottom-width:var(--line-width)}.tw-border-b-4{border-bottom-width:4px}.tw-border-l-4{border-left-width:4px}.tw-border-t{border-top-width:var(--line-width)}.tw-border-t-4{border-top-width:4px}.tw-border-solid{border-style:solid}.tw-border-dashed{border-style:dashed}.\!tw-border-red-50{--tw-border-opacity: 1 !important;border-color:rgb(255 128 102 / var(--tw-border-opacity))!important}.tw-border-blank-state-line{--tw-border-opacity: 1;border-color:rgb(163 165 165 / var(--tw-border-opacity))}.tw-border-blank-state-line-hover{--tw-border-opacity: 1;border-color:rgb(26 28 28 / var(--tw-border-opacity))}.tw-border-box-selected-inverse{border-color:var(--box-selected-inverse-color)}.tw-border-button-border{border-color:var(--button-border-color)}.tw-border-b-line{border-bottom-color:var(--line-color)}.tw-border-b-transparent{border-bottom-color:transparent}.tw-border-t-black-10{--tw-border-opacity: 1;border-top-color:rgb(234 235 235 / var(--tw-border-opacity))}.tw-border-t-transparent{border-top-color:transparent}.tw-bg-base{background-color:var(--base-color)}.tw-bg-base-alt{background-color:var(--base-color-alt)}.tw-bg-blank-state-pressed-inverse{--tw-bg-opacity: 1;background-color:rgb(241 241 241 / var(--tw-bg-opacity))}.tw-bg-blank-state-shaded-inverse{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity))}.tw-bg-blank-state-weak-inverse{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.tw-bg-box-neutral-hover{background-color:var(--box-neutral-color-hover)}.tw-bg-box-neutral-strong-inverse{background-color:var(--box-neutral-strong-inverse-color)}.tw-bg-box-selected-pressed{background-color:var(--box-selected-color-pressed)}.tw-bg-box-selected-strong{background-color:var(--box-selected-strong-color)}.tw-bg-button-background{background-color:var(--button-background-color)}.tw-bg-button-background-pressed{background-color:var(--button-background-color-pressed)}.tw-bg-red-50{--tw-bg-opacity: 1;background-color:rgb(255 128 102 / var(--tw-bg-opacity))}.tw-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.tw-p-1{padding:.25rem}.tw-p-1\.5{padding:.375rem}.tw-p-2{padding:.5rem}.tw-p-4{padding:1rem}.tw-p-7{padding:1.75rem}.tw-p-\[6px\]{padding:6px}.tw-px-0{padding-left:0;padding-right:0}.tw-px-2{padding-left:.5rem;padding-right:.5rem}.tw-px-2\.5{padding-left:.625rem;padding-right:.625rem}.tw-px-5{padding-left:1.25rem;padding-right:1.25rem}.tw-px-\[1px\]{padding-left:1px;padding-right:1px}.tw-py-0{padding-top:0;padding-bottom:0}.tw-py-2{padding-top:.5rem;padding-bottom:.5rem}.tw-py-3{padding-top:.75rem;padding-bottom:.75rem}.tw-pb-2{padding-bottom:.5rem}.tw-pl-12{padding-left:3rem}.tw-pl-14{padding-left:3.5rem}.tw-pl-7{padding-left:1.75rem}.tw-pt-5{padding-top:1.25rem}.tw-text-left{text-align:left}.tw-text-right{text-align:right}.tw-font-body{font-family:var(--body-family)}.tw-font-sans{font-family:Space Grotesk Frontify,Arial,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}.tw-text-\[13px\]{font-size:13px}.tw-text-s{font-size:.875rem;line-height:1rem}.tw-text-sm{font-size:.875rem;line-height:1.25rem}.tw-text-xs{font-size:.813rem;line-height:1rem}.tw-font-bold{font-weight:700}.tw-font-medium{font-weight:500}.tw-font-normal{font-weight:400}.tw-leading-4{line-height:1rem}.tw-leading-5{line-height:1.25rem}.tw-text-blank-state-shaded{--tw-text-opacity: 1;color:rgb(114 116 116 / var(--tw-text-opacity))}.tw-text-box-neutral-strong{color:var(--box-neutral-strong-color)}.tw-text-box-selected-inverse{color:var(--box-selected-inverse-color)}.tw-text-box-selected-strong-inverse{color:var(--box-selected-strong-inverse-color)}.tw-text-red-60{--tw-text-opacity: 1;color:rgb(255 55 90 / var(--tw-text-opacity))}.tw-text-red-65{--tw-text-opacity: 1;color:rgb(229 33 68 / var(--tw-text-opacity))}.tw-text-text{color:var(--text-color)}.tw-text-text-weak{color:var(--text-color-weak)}.\!tw-line-through{text-decoration-line:line-through!important}.tw-opacity-0{opacity:0}.tw-opacity-100{opacity:1}.tw-shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.tw-outline-none{outline:2px solid transparent;outline-offset:2px}.tw-outline{outline-style:solid}.tw-outline-1{outline-width:1px}.tw-outline-offset-1{outline-offset:1px}.tw-outline-offset-2{outline-offset:2px}.tw-outline-offset-\[1px\]{outline-offset:1px}.tw-outline-box-selected-inverse{outline-color:var(--box-selected-inverse-color)}.tw-outline-line{outline-color:var(--line-color)}.tw-outline-violet-60{outline-color:#825fff}.tw-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.first\:tw-rounded-bl:first-child{border-bottom-left-radius:var(--radius)}.first\:tw-rounded-tl:first-child{border-top-left-radius:var(--radius)}.first\:tw-rounded-tr:first-child{border-top-right-radius:var(--radius)}.last\:tw-rounded-bl:last-child{border-bottom-left-radius:var(--radius)}.last\:tw-rounded-br:last-child{border-bottom-right-radius:var(--radius)}.last\:tw-rounded-tr:last-child{border-top-right-radius:var(--radius)}.first-of-type\:tw-ml-0:first-of-type{margin-left:0}.focus-within\:tw-opacity-100:focus-within{opacity:1}.focus-within\:tw-outline:focus-within{outline-style:solid}.hover\:tw-border-blank-state-line-hover:hover{--tw-border-opacity: 1;border-color:rgb(26 28 28 / var(--tw-border-opacity))}.hover\:tw-bg-black-10:hover{--tw-bg-opacity: 1;background-color:rgb(234 235 235 / var(--tw-bg-opacity))}.hover\:tw-bg-blank-state-hover-inverse:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:tw-bg-box-neutral-hover:hover{background-color:var(--box-neutral-color-hover)}.hover\:tw-bg-box-neutral-strong-inverse-hover:hover{background-color:var(--box-neutral-strong-inverse-color-hover)}.hover\:tw-bg-box-selected-hover:hover{background-color:var(--box-selected-color-hover)}.hover\:tw-bg-button-background-hover:hover{background-color:var(--button-background-color-hover)}.hover\:tw-bg-button-background-pressed:hover{background-color:var(--button-background-color-pressed)}.hover\:tw-text-blank-state-hover:hover{--tw-text-opacity: 1;color:rgb(26 28 28 / var(--tw-text-opacity))}.hover\:tw-text-box-neutral-inverse-hover:hover{color:var(--box-neutral-inverse-color-hover)}.hover\:tw-outline:hover{outline-style:solid}.focus-visible\:tw-opacity-100:focus-visible{opacity:1}.focus-visible\:tw-ring-blue:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(94 158 214 / var(--tw-ring-opacity)) }.active\:tw-border-blank-state-line-hover:active{--tw-border-opacity: 1;border-color:rgb(26 28 28 / var(--tw-border-opacity))}.active\:tw-bg-blank-state-pressed-inverse:active{--tw-bg-opacity: 1;background-color:rgb(241 241 241 / var(--tw-bg-opacity))}.active\:tw-bg-box-neutral-strong-inverse-pressed:active{background-color:var(--box-neutral-strong-inverse-color-pressed)}.active\:tw-bg-box-selected-pressed:active{background-color:var(--box-selected-color-pressed)}.active\:tw-bg-button-background-pressed:active{background-color:var(--button-background-color-pressed)}.active\:tw-text-blank-state-pressed:active{--tw-text-opacity: 1;color:rgb(8 8 8 / var(--tw-text-opacity))}.tw-group:hover .group-hover\:tw-text-box-neutral-inverse-hover{color:var(--box-neutral-inverse-color-hover)}.tw-group:hover .group-hover\:tw-opacity-100{opacity:1}.tw-group:focus .group-focus\:tw-opacity-100{opacity:1}.\[\&\:not\(\:first-child\)\]\:tw-border-l-0:not(:first-child){border-left-width:0px}.\[\&\:not\(\:first-child\)\]\:tw-border-t-0:not(:first-child){border-top-width:0px}.\[\&\>\*\]\:tw-pointer-events-none>*{pointer-events:none}
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.tw-pointer-events-none{pointer-events:none}.tw-pointer-events-auto{pointer-events:auto}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-bottom-\[calc\(100\%-4px\)\]{bottom:calc(100% - 4px)}.tw-left-0{left:0}.tw-right-\[-3px\]{right:-3px}.tw-top-full{top:100%}.tw-z-10{z-index:10}.tw-z-20{z-index:20}.tw-z-\[2\]{z-index:2}.tw-m-0{margin:0}.tw-my-4{margin-top:1rem;margin-bottom:1rem}.tw-mr-1{margin-right:.25rem}.tw-mr-1\.5{margin-right:.375rem}.tw-mr-2{margin-right:.5rem}.tw-mt-1{margin-top:.25rem}.tw-mt-3{margin-top:.75rem}.tw-mt-5{margin-top:1.25rem}.tw-mt-8{margin-top:2rem}.tw-flex{display:flex}.tw-inline-flex{display:inline-flex}.tw-h-0{height:0px}.tw-h-4{height:1rem}.tw-h-6{height:1.5rem}.tw-h-7{height:1.75rem}.tw-h-8{height:2rem}.tw-h-9{height:2.25rem}.tw-h-\[72px\]{height:72px}.tw-h-full{height:100%}.tw-min-h-\[10px\]{min-height:10px}.tw-w-0{width:0px}.tw-w-4{width:1rem}.tw-w-6{width:1.5rem}.tw-w-8{width:2rem}.tw-w-9{width:2.25rem}.tw-w-\[300px\]{width:300px}.tw-w-fit{width:-moz-fit-content;width:fit-content}.tw-w-full{width:100%}.tw-min-w-0{min-width:0px}.tw-min-w-\[400px\]{min-width:400px}.tw-flex-1{flex:1 1 0%}.tw-flex-auto{flex:1 1 auto}.tw-flex-shrink-0{flex-shrink:0}.tw-rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes tw-pulse{50%{opacity:.5}}.tw-animate-pulse{animation:tw-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.\!tw-cursor-not-allowed{cursor:not-allowed!important}.tw-cursor-grab{cursor:grab}.tw-cursor-grabbing{cursor:grabbing}.tw-cursor-pointer{cursor:pointer}.tw-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.tw-break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.tw-break-after-column{-moz-column-break-after:column;break-after:column}.tw-flex-row{flex-direction:row}.tw-flex-col{flex-direction:column}.tw-items-start{align-items:flex-start}.tw-items-center{align-items:center}.tw-justify-end{justify-content:flex-end}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-gap-0{gap:0px}.tw-gap-0\.5{gap:.125rem}.tw-gap-1{gap:.25rem}.tw-gap-2{gap:.5rem}.tw-gap-3{gap:.75rem}.tw-gap-\[2px\]{gap:2px}.tw-gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.tw-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.tw-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.tw-self-start{align-self:flex-start}.tw-overflow-hidden{overflow:hidden}.tw-overflow-y-auto{overflow-y:auto}.tw-text-ellipsis{text-overflow:ellipsis}.tw-whitespace-nowrap{white-space:nowrap}.tw-break-words{overflow-wrap:break-word}.tw-rounded{border-radius:var(--radius)}.tw-rounded-full{border-radius:9999px}.tw-rounded-sm{border-radius:.125rem}.tw-border{border-width:var(--line-width)}.tw-border-b{border-bottom-width:var(--line-width)}.tw-border-b-4{border-bottom-width:4px}.tw-border-l-4{border-left-width:4px}.tw-border-t{border-top-width:var(--line-width)}.tw-border-t-4{border-top-width:4px}.tw-border-solid{border-style:solid}.tw-border-dashed{border-style:dashed}.\!tw-border-red-50{--tw-border-opacity: 1 !important;border-color:rgb(255 128 102 / var(--tw-border-opacity))!important}.tw-border-blank-state-line{--tw-border-opacity: 1;border-color:rgb(163 165 165 / var(--tw-border-opacity))}.tw-border-blank-state-line-hover{--tw-border-opacity: 1;border-color:rgb(26 28 28 / var(--tw-border-opacity))}.tw-border-box-selected-inverse{border-color:var(--box-selected-inverse-color)}.tw-border-button-border{border-color:var(--button-border-color)}.tw-border-b-line{border-bottom-color:var(--line-color)}.tw-border-b-transparent{border-bottom-color:transparent}.tw-border-t-black-10{--tw-border-opacity: 1;border-top-color:rgb(234 235 235 / var(--tw-border-opacity))}.tw-border-t-transparent{border-top-color:transparent}.tw-bg-base{background-color:var(--base-color)}.tw-bg-base-alt{background-color:var(--base-color-alt)}.tw-bg-blank-state-pressed-inverse{--tw-bg-opacity: 1;background-color:rgb(241 241 241 / var(--tw-bg-opacity))}.tw-bg-blank-state-shaded-inverse{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity))}.tw-bg-blank-state-weak-inverse{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.tw-bg-box-neutral-hover{background-color:var(--box-neutral-color-hover)}.tw-bg-box-neutral-strong-inverse{background-color:var(--box-neutral-strong-inverse-color)}.tw-bg-box-selected-pressed{background-color:var(--box-selected-color-pressed)}.tw-bg-box-selected-strong{background-color:var(--box-selected-strong-color)}.tw-bg-button-background{background-color:var(--button-background-color)}.tw-bg-button-background-pressed{background-color:var(--button-background-color-pressed)}.tw-bg-red-50{--tw-bg-opacity: 1;background-color:rgb(255 128 102 / var(--tw-bg-opacity))}.tw-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.tw-p-1{padding:.25rem}.tw-p-1\.5{padding:.375rem}.tw-p-2{padding:.5rem}.tw-p-4{padding:1rem}.tw-p-7{padding:1.75rem}.tw-p-\[6px\]{padding:6px}.tw-px-0{padding-left:0;padding-right:0}.tw-px-2{padding-left:.5rem;padding-right:.5rem}.tw-px-2\.5{padding-left:.625rem;padding-right:.625rem}.tw-px-5{padding-left:1.25rem;padding-right:1.25rem}.tw-px-\[1px\]{padding-left:1px;padding-right:1px}.tw-py-0{padding-top:0;padding-bottom:0}.tw-py-2{padding-top:.5rem;padding-bottom:.5rem}.tw-py-3{padding-top:.75rem;padding-bottom:.75rem}.tw-pb-2{padding-bottom:.5rem}.tw-pl-12{padding-left:3rem}.tw-pl-14{padding-left:3.5rem}.tw-pl-7{padding-left:1.75rem}.tw-pt-5{padding-top:1.25rem}.tw-text-left{text-align:left}.tw-text-right{text-align:right}.tw-font-body{font-family:var(--body-family)}.tw-font-sans{font-family:Space Grotesk Frontify,Arial,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}.tw-text-\[13px\]{font-size:13px}.tw-text-body-small{font-size:var(--body-size-small);line-height:var(--body-size-small-line-height)}.tw-text-s{font-size:.875rem;line-height:1rem}.tw-text-sm{font-size:.875rem;line-height:1.25rem}.tw-text-xs{font-size:.813rem;line-height:1rem}.tw-font-bold{font-weight:700}.tw-font-medium{font-weight:500}.tw-font-normal{font-weight:400}.tw-leading-4{line-height:1rem}.tw-leading-5{line-height:1.25rem}.tw-text-blank-state-shaded{--tw-text-opacity: 1;color:rgb(114 116 116 / var(--tw-text-opacity))}.tw-text-box-neutral-strong{color:var(--box-neutral-strong-color)}.tw-text-box-selected-inverse{color:var(--box-selected-inverse-color)}.tw-text-box-selected-strong-inverse{color:var(--box-selected-strong-inverse-color)}.tw-text-red-60{--tw-text-opacity: 1;color:rgb(255 55 90 / var(--tw-text-opacity))}.tw-text-text{color:var(--text-color)}.tw-text-text-negative{color:var(--text-color-negative)}.tw-text-text-weak{color:var(--text-color-weak)}.\!tw-line-through{text-decoration-line:line-through!important}.tw-opacity-0{opacity:0}.tw-opacity-100{opacity:1}.tw-shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.tw-outline-none{outline:2px solid transparent;outline-offset:2px}.tw-outline{outline-style:solid}.tw-outline-1{outline-width:1px}.tw-outline-offset-1{outline-offset:1px}.tw-outline-offset-2{outline-offset:2px}.tw-outline-offset-\[1px\]{outline-offset:1px}.tw-outline-box-selected-inverse{outline-color:var(--box-selected-inverse-color)}.tw-outline-line{outline-color:var(--line-color)}.tw-outline-violet-60{outline-color:#825fff}.tw-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.first\:tw-rounded-bl:first-child{border-bottom-left-radius:var(--radius)}.first\:tw-rounded-tl:first-child{border-top-left-radius:var(--radius)}.first\:tw-rounded-tr:first-child{border-top-right-radius:var(--radius)}.last\:tw-rounded-bl:last-child{border-bottom-left-radius:var(--radius)}.last\:tw-rounded-br:last-child{border-bottom-right-radius:var(--radius)}.last\:tw-rounded-tr:last-child{border-top-right-radius:var(--radius)}.first-of-type\:tw-ml-0:first-of-type{margin-left:0}.focus-within\:tw-opacity-100:focus-within{opacity:1}.focus-within\:tw-outline:focus-within{outline-style:solid}.hover\:tw-border-blank-state-line-hover:hover{--tw-border-opacity: 1;border-color:rgb(26 28 28 / var(--tw-border-opacity))}.hover\:tw-bg-black-10:hover{--tw-bg-opacity: 1;background-color:rgb(234 235 235 / var(--tw-bg-opacity))}.hover\:tw-bg-blank-state-hover-inverse:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:tw-bg-box-neutral-hover:hover{background-color:var(--box-neutral-color-hover)}.hover\:tw-bg-box-neutral-strong-inverse-hover:hover{background-color:var(--box-neutral-strong-inverse-color-hover)}.hover\:tw-bg-box-selected-hover:hover{background-color:var(--box-selected-color-hover)}.hover\:tw-bg-button-background-hover:hover{background-color:var(--button-background-color-hover)}.hover\:tw-bg-button-background-pressed:hover{background-color:var(--button-background-color-pressed)}.hover\:tw-text-blank-state-hover:hover{--tw-text-opacity: 1;color:rgb(26 28 28 / var(--tw-text-opacity))}.hover\:tw-text-box-neutral-inverse-hover:hover{color:var(--box-neutral-inverse-color-hover)}.hover\:tw-outline:hover{outline-style:solid}.focus-visible\:tw-opacity-100:focus-visible{opacity:1}.focus-visible\:tw-ring-blue:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(94 158 214 / var(--tw-ring-opacity)) }.active\:tw-border-blank-state-line-hover:active{--tw-border-opacity: 1;border-color:rgb(26 28 28 / var(--tw-border-opacity))}.active\:tw-bg-blank-state-pressed-inverse:active{--tw-bg-opacity: 1;background-color:rgb(241 241 241 / var(--tw-bg-opacity))}.active\:tw-bg-box-neutral-strong-inverse-pressed:active{background-color:var(--box-neutral-strong-inverse-color-pressed)}.active\:tw-bg-box-selected-pressed:active{background-color:var(--box-selected-color-pressed)}.active\:tw-bg-button-background-pressed:active{background-color:var(--button-background-color-pressed)}.active\:tw-text-blank-state-pressed:active{--tw-text-opacity: 1;color:rgb(8 8 8 / var(--tw-text-opacity))}.tw-group:hover .group-hover\:tw-text-box-neutral-inverse-hover{color:var(--box-neutral-inverse-color-hover)}.tw-group:hover .group-hover\:tw-opacity-100{opacity:1}.tw-group:focus .group-focus\:tw-opacity-100{opacity:1}.\[\&\:not\(\:first-child\)\]\:tw-border-l-0:not(:first-child){border-left-width:0px}.\[\&\:not\(\:first-child\)\]\:tw-border-t-0:not(:first-child){border-top-width:0px}.\[\&\>\*\]\:tw-pointer-events-none>*{pointer-events:none}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontify/guideline-blocks-settings",
3
- "version": "0.28.3",
3
+ "version": "0.28.5",
4
4
  "description": "Provides types and helpers for the guideline block development",
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.umd.js",
@@ -22,12 +22,12 @@
22
22
  "./styles": "./dist/styles.css"
23
23
  },
24
24
  "devDependencies": {
25
- "@babel/core": "^7.22.9",
25
+ "@babel/core": "^7.22.10",
26
26
  "@frontify/eslint-config-typescript": "^0.16.1",
27
27
  "@testing-library/react": "^14.0.0",
28
28
  "@types/escape-html": "^1.0.2",
29
- "@types/node": "^20.4.7",
30
- "@types/react": "^18.2.18",
29
+ "@types/node": "^18.17.4",
30
+ "@types/react": "^18.2.20",
31
31
  "@types/react-dom": "^18.2.7",
32
32
  "@types/sinon": "^10.0.16",
33
33
  "@vitejs/plugin-react": "^4.0.4",
@@ -36,19 +36,19 @@
36
36
  "cypress-real-events": "^1.10.0",
37
37
  "eslint": "^8.46.0",
38
38
  "eslint-plugin-notice": "^0.9.10",
39
- "happy-dom": "^10.7.0",
39
+ "happy-dom": "^10.9.0",
40
40
  "mitt": "^3.0.1",
41
41
  "msw": "^1.2.3",
42
42
  "postcss": "^8.4.27",
43
43
  "prettier": "^3.0.1",
44
44
  "react": "^18.2.0",
45
45
  "react-dom": "^18.2.0",
46
- "rollup": "^3.27.2",
46
+ "rollup": "^3.28.0",
47
47
  "sinon": "15.2.0",
48
48
  "tailwindcss": "^3.3.3",
49
49
  "typescript": "^5.1.6",
50
- "vite": "^4.4.8",
51
- "vite-plugin-dts": "^3.5.0",
50
+ "vite": "^4.4.9",
51
+ "vite-plugin-dts": "^3.5.1",
52
52
  "vite-plugin-externals": "^0.6.2",
53
53
  "vitest": "^0.34.1"
54
54
  },
@@ -57,15 +57,15 @@
57
57
  "@dnd-kit/core": "^6.0.8",
58
58
  "@dnd-kit/modifiers": "^6.0.1",
59
59
  "@dnd-kit/sortable": "^7.0.2",
60
- "@frontify/fondue": "12.0.0-beta.296",
60
+ "@frontify/fondue": "12.0.0-beta.304",
61
61
  "@react-aria/focus": "^3.13.0",
62
62
  "@react-stately/overlays": "^3.6.0",
63
63
  "@udecode/plate": "^21",
64
64
  "escape-html": "^1.0.3",
65
65
  "slate": "^0.94.1",
66
66
  "slate-react": "^0.97.1",
67
- "@frontify/app-bridge": "3.0.0-beta.86",
68
- "@frontify/sidebar-settings": "0.6.1"
67
+ "@frontify/app-bridge": "3.0.0-beta.88",
68
+ "@frontify/sidebar-settings": "0.6.3"
69
69
  },
70
70
  "peerDependencies": {
71
71
  "react": "^18",
@@ -21,7 +21,7 @@ import {
21
21
  FlyoutPlacement,
22
22
  IconCaretDown12,
23
23
  IconPaperclip16,
24
- Tooltip,
24
+ LegacyTooltip as Tooltip,
25
25
  TooltipPosition,
26
26
  } from '@frontify/fondue';
27
27
  import { AttachmentItem, SortableAttachmentItem } from './AttachmentItem';
@@ -5,7 +5,7 @@ import {
5
5
  Flyout,
6
6
  IconDotsHorizontal16,
7
7
  MenuItemContentSize,
8
- Tooltip,
8
+ LegacyTooltip as Tooltip,
9
9
  TooltipPosition,
10
10
  } from '@frontify/fondue';
11
11
  import { ToolbarProps } from './types';
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { DownloadButtonProps } from './types';
4
4
  import { useFocusRing } from '@react-aria/focus';
5
- import { FOCUS_STYLE, IconArrowCircleDown16, Tooltip, TooltipPosition } from '@frontify/fondue';
5
+ import { FOCUS_STYLE, IconArrowCircleDown16, LegacyTooltip as Tooltip, TooltipPosition } from '@frontify/fondue';
6
6
  import { joinClassNames } from '../../utilities';
7
7
 
8
8
  export const DownloadButton = ({ onDownload }: DownloadButtonProps) => {
@@ -0,0 +1,142 @@
1
+ /* (c) Copyright Frontify Ltd., all rights reserved. */
2
+
3
+ import { withAppBridgeBlockStubs } from '@frontify/app-bridge';
4
+ import { mount } from 'cypress/react18';
5
+ import { LinkInput } from './LinkInput';
6
+ import { ButtonSize, CheckboxState } from '@frontify/fondue';
7
+
8
+ const LINK_INPUT_ID = '[data-test-id="link-input"]';
9
+ const TEXT_INPUT_ID = '[data-test-id="text-input"]';
10
+ const INPUT_LABEL_CONTAINER_ID = '[data-test-id="input-label-container"]';
11
+ const BUTTON_ID = '[data-test-id="button"]';
12
+ const CLEAR_ICON_ID = '[data-test-id="clear-icon"]';
13
+ const CHECKBOX_ID = '[data-test-id="checkbox-input"]';
14
+
15
+ describe('Link Input', () => {
16
+ it('renders the link input', () => {
17
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
18
+ mount(<LinkInputWithStubs />);
19
+ cy.get(LINK_INPUT_ID).should('exist');
20
+ });
21
+
22
+ it('renders the link inpus label, placeholder and info', () => {
23
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
24
+ mount(<LinkInputWithStubs label="Custom Label" info="Custom Info" placeholder="Custom Placeholder" />);
25
+ cy.get(LINK_INPUT_ID).should('exist');
26
+ cy.get(INPUT_LABEL_CONTAINER_ID).contains('Custom Label');
27
+ cy.get(INPUT_LABEL_CONTAINER_ID).contains('Custom Info');
28
+ cy.get(TEXT_INPUT_ID).should('have.attr', 'placeholder', 'Custom Placeholder');
29
+ });
30
+
31
+ it('renders the link inpu with a valid url', () => {
32
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
33
+ mount(<LinkInputWithStubs url="https://example.com" />);
34
+ cy.get(LINK_INPUT_ID).should('exist');
35
+ cy.get(TEXT_INPUT_ID).should('have.value', 'https://example.com');
36
+ });
37
+
38
+ it('renders with clear icon', () => {
39
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
40
+ mount(<LinkInputWithStubs url="https://frontify.com" clearable />);
41
+
42
+ cy.get(CLEAR_ICON_ID).should('exist');
43
+ });
44
+
45
+ it('renders without clear icon', () => {
46
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
47
+ mount(<LinkInputWithStubs clearable={false} />);
48
+
49
+ cy.get(TEXT_INPUT_ID).click({ force: true });
50
+ cy.get(TEXT_INPUT_ID).type('https://frontify.com').type('{enter}');
51
+ cy.get(CLEAR_ICON_ID).should('not.exist');
52
+ });
53
+
54
+ it('toggles checkbox on click', () => {
55
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
56
+ mount(
57
+ <LinkInputWithStubs
58
+ onToggleTab={cy.stub().as('onToggleTab')}
59
+ url="https://frontify.com"
60
+ openInNewTab={false}
61
+ />,
62
+ );
63
+
64
+ cy.get(CHECKBOX_ID).should('not.be.checked');
65
+ cy.get(CHECKBOX_ID).click({ force: true });
66
+ cy.get('@onToggleTab').should('be.called.with', true);
67
+ });
68
+
69
+ it('toggles checkbox on click if its already checked', () => {
70
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
71
+ mount(<LinkInputWithStubs onToggleTab={cy.stub().as('onToggleTab')} url="https://frontify.com" openInNewTab />);
72
+
73
+ cy.get(CHECKBOX_ID).should('be.checked');
74
+ cy.get(CHECKBOX_ID).click({ force: true });
75
+ cy.get('@onToggleTab').should('be.called.with', false);
76
+ });
77
+
78
+ it('handles "Checked" state from newTab', () => {
79
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
80
+ mount(
81
+ <LinkInputWithStubs
82
+ onToggleTab={cy.stub().as('onToggleTab')}
83
+ url="https://frontify.com"
84
+ newTab={CheckboxState.Checked}
85
+ />,
86
+ );
87
+ cy.get(CHECKBOX_ID).should('be.checked');
88
+ cy.get(CHECKBOX_ID).click({ force: true });
89
+ cy.get('@onToggleTab').should('be.called.with', false);
90
+ });
91
+
92
+ it('handles "Unchecked" state from newTab', () => {
93
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
94
+ mount(
95
+ <LinkInputWithStubs
96
+ onToggleTab={cy.stub().as('onToggleTab')}
97
+ url="https://frontify.com"
98
+ newTab={CheckboxState.Unchecked}
99
+ />,
100
+ );
101
+ cy.get(CHECKBOX_ID).should('not.be.checked');
102
+ cy.get(CHECKBOX_ID).click({ force: true });
103
+ cy.get('@onToggleTab').should('be.called.with', true);
104
+ });
105
+
106
+ it('types into search field', () => {
107
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
108
+ mount(<LinkInputWithStubs onUrlChange={cy.stub().as('onUrlChange')} />);
109
+
110
+ cy.get(TEXT_INPUT_ID).click({ force: true });
111
+ cy.get(TEXT_INPUT_ID).type('https://frontify.com');
112
+ cy.get('@onUrlChange').should('be.called.with', 'https://frontify.com');
113
+ });
114
+
115
+ it('shows internal link button', () => {
116
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
117
+ mount(<LinkInputWithStubs />);
118
+
119
+ cy.get(BUTTON_ID).should('exist');
120
+ });
121
+
122
+ it('hides internal link button', () => {
123
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
124
+ mount(<LinkInputWithStubs hideInternalLinkButton />);
125
+
126
+ cy.get(BUTTON_ID).should('not.exist');
127
+ });
128
+
129
+ it('renders * if input is required', () => {
130
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
131
+ mount(<LinkInputWithStubs required label="Link" />);
132
+
133
+ cy.get(INPUT_LABEL_CONTAINER_ID).contains('*');
134
+ });
135
+
136
+ it('renders custom buttonsize', () => {
137
+ const [LinkInputWithStubs] = withAppBridgeBlockStubs(LinkInput, {});
138
+ mount(<LinkInputWithStubs buttonSize={ButtonSize.Small} />);
139
+
140
+ cy.get(BUTTON_ID).should('have.class', 'tw-text-body-small');
141
+ });
142
+ });
@@ -0,0 +1,80 @@
1
+ /* (c) Copyright Frontify Ltd., all rights reserved. */
2
+
3
+ import { AppBridgeBlock } from '@frontify/app-bridge';
4
+ import { ButtonSize, Checkbox, CheckboxState, FormControl, TextInput, TooltipPosition } from '@frontify/fondue';
5
+ import { LinkSelector } from './LinkSelector';
6
+ import { isValidUrlOrEmpty as internalIsValidUrlOrEmpty } from './utils';
7
+
8
+ type LinkInputProps = {
9
+ url?: string;
10
+ info?: string;
11
+ label?: string;
12
+ required?: boolean;
13
+ newTab?: CheckboxState;
14
+ openInNewTab?: boolean;
15
+ onUrlChange?: (value: string) => void;
16
+ onToggleTab?: (checked: boolean) => void;
17
+ isValidUrlOrEmpty?: (url: string) => boolean;
18
+ appBridge: AppBridgeBlock;
19
+ clearable?: boolean;
20
+ placeholder?: string;
21
+ buttonSize?: ButtonSize;
22
+ hideInternalLinkButton?: boolean;
23
+ };
24
+
25
+ export const LinkInput = ({
26
+ onUrlChange,
27
+ onToggleTab,
28
+ isValidUrlOrEmpty,
29
+ appBridge,
30
+ clearable,
31
+ placeholder,
32
+ newTab,
33
+ openInNewTab,
34
+ url = '',
35
+ required,
36
+ info,
37
+ label,
38
+ buttonSize,
39
+ hideInternalLinkButton,
40
+ }: LinkInputProps) => {
41
+ const isUrlValid = isValidUrlOrEmpty ? isValidUrlOrEmpty(url) : internalIsValidUrlOrEmpty(url);
42
+ const checkedState = newTab ?? (openInNewTab ? CheckboxState.Checked : CheckboxState.Unchecked);
43
+ return (
44
+ <div data-test-id="link-input">
45
+ <FormControl
46
+ label={{
47
+ children: label,
48
+ htmlFor: 'url',
49
+ required,
50
+ tooltip: info ? { content: info, position: TooltipPosition.Top } : undefined,
51
+ }}
52
+ >
53
+ <TextInput
54
+ id="url"
55
+ value={url}
56
+ clearable={clearable}
57
+ onChange={onUrlChange}
58
+ placeholder={placeholder ?? 'https://example.com'}
59
+ focusOnMount
60
+ />
61
+ </FormControl>
62
+ {!isUrlValid && <div className="tw-text-text-negative tw-mt-1 tw-text-s">Please enter a valid URL.</div>}
63
+
64
+ {!hideInternalLinkButton && (
65
+ <div className="tw-mt-3">
66
+ <LinkSelector
67
+ url={url}
68
+ appBridge={appBridge}
69
+ onUrlChange={onUrlChange}
70
+ buttonSize={buttonSize ?? ButtonSize.Medium}
71
+ />
72
+ </div>
73
+ )}
74
+
75
+ <div className="tw-mt-3">
76
+ <Checkbox value="new-tab" label="Open in new tab" state={checkedState} onChange={onToggleTab} />
77
+ </div>
78
+ </div>
79
+ );
80
+ };
@@ -4,7 +4,7 @@ import { AppBridgeBlock } from '@frontify/app-bridge';
4
4
  import { useEffect, useState } from 'react';
5
5
  import { PageLinks } from './PageLinks';
6
6
  import { IconColorFan16, merge } from '@frontify/fondue';
7
- import { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';
7
+ import { InitiallyExpandedItems } from '../';
8
8
 
9
9
  type DocumentLinkProps = {
10
10
  document: {
@@ -3,8 +3,8 @@
3
3
  import { AppBridgeBlock, Document } from '@frontify/app-bridge';
4
4
  import { LoadingCircle } from '@frontify/fondue';
5
5
  import { ReactElement, useEffect, useState } from 'react';
6
- import { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';
7
6
  import { DocumentLink } from './DocumentLink';
7
+ import { InitiallyExpandedItems } from '../';
8
8
 
9
9
  type DocumentLinksProps = {
10
10
  appBridge: AppBridgeBlock;
@@ -9,10 +9,16 @@ import { DocumentLinks } from './DocumentLinks';
9
9
  type LinkSelectorProps = {
10
10
  appBridge: AppBridgeBlock;
11
11
  url: string;
12
- onUrlChange: (value: string) => void;
12
+ onUrlChange?: (value: string) => void;
13
+ buttonSize?: ButtonSize;
13
14
  };
14
15
 
15
- export const LinkSelector = ({ appBridge, url, onUrlChange }: LinkSelectorProps): ReactElement => {
16
+ export const LinkSelector = ({
17
+ appBridge,
18
+ url,
19
+ onUrlChange,
20
+ buttonSize = ButtonSize.Medium,
21
+ }: LinkSelectorProps): ReactElement => {
16
22
  const { open: openLinkTree, isOpen: isLinkTreeOpen, close: closeLinkTree } = useOverlayTriggerState({});
17
23
  const [selectedUrl, setSelectedUrl] = useState<string>(url);
18
24
 
@@ -33,7 +39,7 @@ export const LinkSelector = ({ appBridge, url, onUrlChange }: LinkSelectorProps)
33
39
  }, [url, selectedUrl]);
34
40
 
35
41
  const saveLink = () => {
36
- onUrlChange(selectedUrl);
42
+ onUrlChange?.(selectedUrl);
37
43
  closeLinkTree();
38
44
  };
39
45
 
@@ -41,7 +47,7 @@ export const LinkSelector = ({ appBridge, url, onUrlChange }: LinkSelectorProps)
41
47
  <div data-test-id="internal-link-selector" onKeyDown={onPressEnter}>
42
48
  <Button
43
49
  icon={<IconLink />}
44
- size={ButtonSize.Medium}
50
+ size={buttonSize}
45
51
  type={ButtonType.Button}
46
52
  style={ButtonStyle.Default}
47
53
  emphasis={ButtonEmphasis.Default}
@@ -3,7 +3,7 @@
3
3
  import { AppBridgeBlock, useDocumentSection } from '@frontify/app-bridge';
4
4
  import { merge } from '@frontify/fondue';
5
5
  import { useEffect, useState } from 'react';
6
- import { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';
6
+ import { InitiallyExpandedItems } from '../';
7
7
  import { SectionLink } from './SectionLink';
8
8
 
9
9
  type DocumentLinkProps = {
@@ -3,7 +3,7 @@
3
3
  import { AppBridgeBlock, DocumentPage } from '@frontify/app-bridge';
4
4
  import { LoadingCircle } from '@frontify/fondue';
5
5
  import { ReactElement, useEffect, useState } from 'react';
6
- import { InitiallyExpandedItems } from '../../LinkPlugin/FloatingLink/InsertLinkModal/types';
6
+ import { InitiallyExpandedItems } from '../';
7
7
  import { PageLink } from './PageLink';
8
8
 
9
9
  type PageLinksProps = {
@@ -30,7 +30,13 @@ export const PageLinks = ({
30
30
  appBridge
31
31
  .getDocumentPagesByDocumentId(documentId)
32
32
  .then((_pages) => {
33
- setPages(_pages);
33
+ const pagesWithCategories = _pages
34
+ .filter((page) => !!page.category)
35
+ .sort((a, b) =>
36
+ a.category.sort === b.category.sort ? a.sort - b.sort : a.category.sort - b.category.sort,
37
+ );
38
+ const pagesWithoutCategories = _pages.filter((page) => !page.category).sort((a, b) => a.sort - b.sort);
39
+ setPages([...pagesWithCategories, ...pagesWithoutCategories]);
34
40
  })
35
41
  .finally(() => {
36
42
  setIsLoading(false);
@@ -0,0 +1,6 @@
1
+ /* (c) Copyright Frontify Ltd., all rights reserved. */
2
+
3
+ export * from './LinkSelector';
4
+ export * from './LinkInput';
5
+ export * from './utils';
6
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ /* (c) Copyright Frontify Ltd., all rights reserved. */
2
+
3
+ export type InitiallyExpandedItems = {
4
+ documentId?: number;
5
+ pageId?: number;
6
+ };
@@ -1,7 +1,7 @@
1
1
  /* (c) Copyright Frontify Ltd., all rights reserved. */
2
2
 
3
3
  import { ELEMENT_LINK, PlateEditor, getAboveNode } from '@udecode/plate';
4
- import { TLinkElement } from '../types';
4
+ import { TLinkElement } from '../../RichTextEditor/plugins/LinkPlugin/types';
5
5
 
6
6
  const getLinkNode = (editor: PlateEditor, cb: (link: TLinkElement) => string): string => {
7
7
  const linkNode = getAboveNode<TLinkElement>(editor, { match: { type: ELEMENT_LINK } });
@@ -24,7 +24,3 @@ export const getUrl = (editor: PlateEditor) => {
24
24
  export const getUrlFromLinkOrLegacyLink = (link: TLinkElement): string => {
25
25
  return link.url || link.chosenLink?.searchResult?.link || '';
26
26
  };
27
-
28
- export const getUrlFromEditor = (editor: PlateEditor) => {
29
- return getLinkNode(editor, getUrlFromLinkOrLegacyLink);
30
- };
@@ -2,3 +2,4 @@
2
2
 
3
3
  export * from './getUrl';
4
4
  export * from './relativeUrlRegex';
5
+ export * from './url';
@@ -1,6 +1,6 @@
1
1
  /* (c) Copyright Frontify Ltd., all rights reserved. */
2
2
 
3
- import { addHttps } from '../../../../../helpers';
3
+ import { addHttps } from '../../../helpers';
4
4
  import { relativeUrlRegex } from './relativeUrlRegex';
5
5
 
6
6
  export const isValidUrl = (url: string) => {
@@ -16,6 +16,6 @@ export const isValidUrl = (url: string) => {
16
16
  }
17
17
  };
18
18
 
19
- export const isValidUrlOrEmpty = (url: string) => {
19
+ export const isValidUrlOrEmpty = (url: string): boolean => {
20
20
  return isValidUrl(addHttps(url)) || url === '';
21
21
  };
@@ -11,7 +11,7 @@ import { getButtonStyle } from '../../../utils/getButtonStyle';
11
11
  import { AppBridgeBlock } from '@frontify/app-bridge';
12
12
  import { CheckboxState } from '@frontify/fondue';
13
13
  import { addHttps } from '../../../../../../../helpers';
14
- import { isValidUrlOrEmpty } from '../../../../LinkPlugin/utils/url';
14
+ import { isValidUrlOrEmpty } from '../../../../../../Link/utils/url';
15
15
 
16
16
  const initialState: InsertModalStateProps = {
17
17
  url: '',
@@ -4,7 +4,7 @@ import { AppBridgeBlock } from '@frontify/app-bridge';
4
4
  import { Plugin, PluginProps } from '@frontify/fondue';
5
5
  import { RangeBeforeOptions, createPluginFactory } from '@udecode/plate';
6
6
  import type { CSSProperties } from 'react';
7
- import { isValidUrl } from '../LinkPlugin/utils/url';
7
+ import { isValidUrl } from '../../../Link/utils/url';
8
8
  import { ButtonMarkupElement } from './ButtonMarkupElement';
9
9
  import { ButtonButton } from './components/ButtonButton';
10
10
  import { CustomFloatingButton } from './components/FloatingButton/CustomFloatingButton';
@@ -26,7 +26,7 @@ import {
26
26
  useVirtualFloatingLink,
27
27
  } from '@udecode/plate';
28
28
  import { useCallback, useEffect } from 'react';
29
- import { getUrlFromEditor } from '../../utils';
29
+ import { getUrlFromEditor } from '../../../';
30
30
 
31
31
  export const useFloatingLinkEdit = ({ floatingOptions, ...props }: FloatingLinkProps): HTMLPropsAs<'div'> => {
32
32
  const editor = useEditorRef();
@@ -6,14 +6,13 @@ import {
6
6
  ButtonEmphasis,
7
7
  ButtonSize,
8
8
  ButtonStyle,
9
- Checkbox,
10
9
  FormControl,
11
10
  IconCheckMark20,
12
11
  TextInput,
13
12
  } from '@frontify/fondue';
14
13
  import { FC, ReactNode } from 'react';
15
- import { LinkSelector } from '../../../shared/LinkSelector';
16
14
  import { InsertModalStateProps } from './types';
15
+ import { LinkInput } from '../../../../../Link/LinkInput';
17
16
 
18
17
  type InsertModalProps = {
19
18
  state: InsertModalStateProps;
@@ -23,7 +22,7 @@ type InsertModalProps = {
23
22
  onCancel: () => void;
24
23
  onSave: (event: React.MouseEvent<HTMLButtonElement, MouseEvent> | KeyboardEvent | undefined) => void;
25
24
  hasValues: boolean;
26
- isValidUrlOrEmpty: (url: string) => boolean | undefined;
25
+ isValidUrlOrEmpty: (url: string) => boolean;
27
26
  testId?: string;
28
27
  children?: ReactNode;
29
28
  appBridge: AppBridgeBlock;
@@ -55,31 +54,15 @@ export const InsertModal: FC<InsertModalProps> = ({
55
54
 
56
55
  {children}
57
56
 
58
- <div className="tw-pt-5">
59
- <FormControl
60
- label={{
61
- children: 'URL',
62
- htmlFor: 'url',
63
- required: true,
64
- }}
65
- >
66
- <TextInput
67
- id="url"
68
- value={state.url}
69
- placeholder="https://example.com"
70
- focusOnMount
71
- onChange={onUrlChange}
72
- />
73
- </FormControl>
74
- {!isValidUrlOrEmpty(state?.url) && <div className="tw-text-red-65 tw-mt-3">Please enter a valid URL.</div>}
75
- </div>
76
-
77
- <div className="tw-mt-3">
78
- <LinkSelector url={state.url} appBridge={appBridge} onUrlChange={onUrlChange} />
79
- </div>
80
-
81
- <div className="tw-mt-3">
82
- <Checkbox value="new-tab" label="Open in new tab" state={state.newTab} onChange={onToggleTab} />
57
+ <div className="tw-mt-5">
58
+ <LinkInput
59
+ url={state.url}
60
+ newTab={state.newTab}
61
+ onUrlChange={onUrlChange}
62
+ onToggleTab={onToggleTab}
63
+ isValidUrlOrEmpty={isValidUrlOrEmpty}
64
+ appBridge={appBridge}
65
+ />
83
66
  </div>
84
67
  <div className="tw-mt-3">
85
68
  <div className={'tw-pt-5 tw-flex tw-gap-x-3 tw-justify-end tw-border-t tw-border-t-black-10'}>
@@ -9,8 +9,3 @@ export type InsertModalStateProps = {
9
9
  text: string;
10
10
  newTab: CheckboxState;
11
11
  };
12
-
13
- export type InitiallyExpandedItems = {
14
- documentId: number | undefined;
15
- pageId: number | undefined;
16
- };