@frontify/guideline-blocks-settings 0.28.6 → 0.29.1
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.
- package/CHANGELOG.md +26 -0
- package/dist/components/BlockItemWrapper/BlockItemWrapper.es.js.map +1 -1
- package/dist/components/RichTextEditor/SerializedText.es.js +2 -2
- package/dist/components/RichTextEditor/SerializedText.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEdit.es.js +5 -5
- package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButton.es.js +6 -6
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.es.js +15 -14
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.es.js +15 -14
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.es.js +15 -14
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.es.js +10 -9
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.es.js +15 -7
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.es.js +15 -7
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.es.js +15 -7
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.es.js +15 -14
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.es.js +18 -17
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.es.js +13 -12
- package/dist/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.es.js.map +1 -1
- package/dist/components/RichTextEditor/plugins/styles.es.js +0 -1
- package/dist/components/RichTextEditor/plugins/styles.es.js.map +1 -1
- package/dist/index.cjs.js +3 -20
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.umd.js +3 -20
- package/dist/index.umd.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/color/getReadableColor.es.js +8 -8
- package/dist/utilities/color/getReadableColor.es.js.map +1 -1
- package/dist/utilities/color/isDark.es.js +2 -2
- package/dist/utilities/color/isDark.es.js.map +1 -1
- package/dist/utilities/color/setAlpha.es.js +2 -2
- package/dist/utilities/color/setAlpha.es.js.map +1 -1
- package/dist/utilities/color/toColorObject.es.js +5 -5
- package/dist/utilities/color/toColorObject.es.js.map +1 -1
- package/dist/utilities/color/toHex8String.es.js +3 -3
- package/dist/utilities/color/toHex8String.es.js.map +1 -1
- package/dist/utilities/color/toHexString.es.js +3 -3
- package/dist/utilities/color/toHexString.es.js.map +1 -1
- package/dist/utilities/color/toRgbaString.es.js +3 -3
- package/dist/utilities/color/toRgbaString.es.js.map +1 -1
- package/package.json +24 -26
- package/src/components/Attachments/Attachments.spec.ct.tsx +1 -1
- package/src/components/BlockItemWrapper/BlockItemWrapper.tsx +2 -2
- package/src/components/BlockItemWrapper/types.ts +2 -0
- package/src/components/Link/LinkSelector/LinkSelector.spec.ct.tsx +1 -1
- package/src/components/RichTextEditor/RichTextEditor.spec.ct.tsx +1 -1
- package/src/components/RichTextEditor/SerializedText.tsx +2 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.tsx +3 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.tsx +3 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.tsx +3 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.tsx +3 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.tsx +6 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.tsx +6 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.tsx +6 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.tsx +3 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.tsx +3 -2
- package/src/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.tsx +3 -2
- package/src/components/RichTextEditor/plugins/styles.ts +1 -2
- package/src/utilities/color/getReadableColor.ts +3 -3
- package/src/utilities/color/isDark.ts +2 -2
- package/src/utilities/color/setAlpha.ts +2 -2
- package/src/utilities/color/toColorObject.ts +2 -2
- package/src/utilities/color/toHex8String.ts +2 -2
- package/src/utilities/color/toHexString.ts +2 -2
- package/src/utilities/color/toRgbaString.ts +2 -2
- package/tsconfig.json +1 -1
- package/dist/components/RichTextEditor/serializer/nodes/button.es.js +0 -17
- package/dist/components/RichTextEditor/serializer/nodes/button.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/nodes/checkItemNode.es.js +0 -19
- package/dist/components/RichTextEditor/serializer/nodes/checkItemNode.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/nodes/default.es.js +0 -32
- package/dist/components/RichTextEditor/serializer/nodes/default.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/nodes/link.es.js +0 -15
- package/dist/components/RichTextEditor/serializer/nodes/link.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/nodes/mentionHtmlNode.es.js +0 -12
- package/dist/components/RichTextEditor/serializer/nodes/mentionHtmlNode.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/serializeNodesToHtmlRecursive.es.js +0 -61
- package/dist/components/RichTextEditor/serializer/serializeNodesToHtmlRecursive.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/serializeToHtml.es.js +0 -25
- package/dist/components/RichTextEditor/serializer/serializeToHtml.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/utlis/reactCssPropsToCss.es.js +0 -8
- package/dist/components/RichTextEditor/serializer/utlis/reactCssPropsToCss.es.js.map +0 -1
- package/dist/components/RichTextEditor/serializer/utlis/serializeLeafToHtml.es.js +0 -13
- package/dist/components/RichTextEditor/serializer/utlis/serializeLeafToHtml.es.js.map +0 -1
- package/src/components/RichTextEditor/serializer/index.ts +0 -3
- package/src/components/RichTextEditor/serializer/nodes/button.ts +0 -27
- package/src/components/RichTextEditor/serializer/nodes/checkItemNode.ts +0 -30
- package/src/components/RichTextEditor/serializer/nodes/default.ts +0 -68
- package/src/components/RichTextEditor/serializer/nodes/link.ts +0 -26
- package/src/components/RichTextEditor/serializer/nodes/mentionHtmlNode.ts +0 -17
- package/src/components/RichTextEditor/serializer/serializeNodesToHtmlRecursive.ts +0 -134
- package/src/components/RichTextEditor/serializer/serializeToHtml.ts +0 -49
- package/src/components/RichTextEditor/serializer/utlis/reactCssPropsToCss.ts +0 -21
- package/src/components/RichTextEditor/serializer/utlis/serializeLeafToHtml.ts +0 -32
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-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}
|
|
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-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-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-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-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-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-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-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)}.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,12 +1,12 @@
|
|
|
1
|
-
import n,
|
|
1
|
+
import { TinyColor as n, readability as c } from "@ctrl/tinycolor";
|
|
2
2
|
import { toShortRgba as i } from "./toShortRgba.es.js";
|
|
3
|
-
const s = (r) => typeof r == "object" && ["red", "green", "blue"].every((
|
|
4
|
-
const
|
|
5
|
-
let
|
|
6
|
-
const
|
|
7
|
-
for (;
|
|
8
|
-
|
|
9
|
-
return
|
|
3
|
+
const s = (r) => typeof r == "object" && ["red", "green", "blue"].every((t) => r == null ? void 0 : r.hasOwnProperty(t)), a = (r, e) => {
|
|
4
|
+
const t = s(r) ? i(r) : r, p = s(e) ? i(e) : e;
|
|
5
|
+
let o = new n(t);
|
|
6
|
+
const d = new n(p);
|
|
7
|
+
for (; c(o, d) < 4.5; )
|
|
8
|
+
o = o.darken(1);
|
|
9
|
+
return o.toRgbString();
|
|
10
10
|
};
|
|
11
11
|
export {
|
|
12
12
|
a as getReadableColor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getReadableColor.es.js","sources":["../../../src/utilities/color/getReadableColor.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport
|
|
1
|
+
{"version":3,"file":"getReadableColor.es.js","sources":["../../../src/utilities/color/getReadableColor.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ColorInput, TinyColor, readability } from '@ctrl/tinycolor';\nimport { toShortRgba } from './toShortRgba';\nimport { Color } from '@frontify/sidebar-settings';\n\n/**\n * Returns darkened text color for a given background color, so that it is readable and has enough contrast (above 4.5)\n *\n * @param {Object} textColor Object of RGBA values\n * @param {Object} backgroundColor Object of RGBA values\n * @returns {string} To be used as css value\n */\n\nconst isRgbaLongFormat = (value: unknown): value is Color => {\n const requiredKeys = ['red', 'green', 'blue'];\n return typeof value === 'object' && requiredKeys.every((i) => value?.hasOwnProperty(i));\n};\n\nexport const getReadableColor = (textColor: unknown, backgroundColor: unknown): string => {\n const inputTextColor = isRgbaLongFormat(textColor) ? toShortRgba(textColor) : (textColor as ColorInput);\n const inputBackgroundColor = isRgbaLongFormat(backgroundColor)\n ? toShortRgba(backgroundColor)\n : (backgroundColor as ColorInput);\n let parsedTextColor = new TinyColor(inputTextColor);\n const parsedBackgroundColor = new TinyColor(inputBackgroundColor);\n\n //darken the text color until readability is good\n while (readability(parsedTextColor, parsedBackgroundColor) < 4.5) {\n parsedTextColor = parsedTextColor.darken(1);\n }\n\n return parsedTextColor.toRgbString();\n};\n"],"names":["isRgbaLongFormat","value","i","getReadableColor","textColor","backgroundColor","inputTextColor","toShortRgba","inputBackgroundColor","parsedTextColor","TinyColor","parsedBackgroundColor","readability"],"mappings":";;AAcA,MAAMA,IAAmB,CAACC,MAEf,OAAOA,KAAU,YADH,CAAC,OAAO,SAAS,MAAM,EACK,MAAM,CAACC,MAAMD,KAAA,gBAAAA,EAAO,eAAeC,EAAE,GAG7EC,IAAmB,CAACC,GAAoBC,MAAqC;AACtF,QAAMC,IAAiBN,EAAiBI,CAAS,IAAIG,EAAYH,CAAS,IAAKA,GACzEI,IAAuBR,EAAiBK,CAAe,IACvDE,EAAYF,CAAe,IAC1BA;AACH,MAAAI,IAAkB,IAAIC,EAAUJ,CAAc;AAC5C,QAAAK,IAAwB,IAAID,EAAUF,CAAoB;AAGhE,SAAOI,EAAYH,GAAiBE,CAAqB,IAAI;AACvC,IAAAF,IAAAA,EAAgB,OAAO,CAAC;AAG9C,SAAOA,EAAgB;AAC3B;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import n from "@ctrl/tinycolor";
|
|
1
|
+
import { TinyColor as n } from "@ctrl/tinycolor";
|
|
2
2
|
import { toShortRgba as s } from "./toShortRgba.es.js";
|
|
3
3
|
const i = (r) => typeof r == "object" && ["red", "green", "blue"].every((o) => r == null ? void 0 : r.hasOwnProperty(o)), y = (r, e) => {
|
|
4
|
-
const o = i(r) ? s(r) : r, t = n(o);
|
|
4
|
+
const o = i(r) ? s(r) : r, t = new n(o);
|
|
5
5
|
return e ? t.getBrightness() < e : t.isDark() || t.getAlpha() > 0.25 && t.getAlpha() < 1;
|
|
6
6
|
};
|
|
7
7
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isDark.es.js","sources":["../../../src/utilities/color/isDark.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport
|
|
1
|
+
{"version":3,"file":"isDark.es.js","sources":["../../../src/utilities/color/isDark.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ColorInput, TinyColor } from '@ctrl/tinycolor';\nimport { toShortRgba } from './toShortRgba';\nimport { Color } from '@frontify/sidebar-settings';\n\n/**\n * Calculates if text should be in a light color depending on color (e.g. background-color)\n *\n * @param {Object} value Object of RGBA values\n * @param {Number|undefined} threshold Threshold for the brightness\n * @returns {Boolean} Return if the color is dark\n */\n\nconst isRgbaLongFormat = (value: unknown): value is Color => {\n const requiredKeys = ['red', 'green', 'blue'];\n return typeof value === 'object' && requiredKeys.every((i) => value?.hasOwnProperty(i));\n};\n\nexport const isDark = (color: unknown, threshold?: number): boolean => {\n const inputColor = isRgbaLongFormat(color) ? toShortRgba(color) : (color as ColorInput);\n const parsedColor = new TinyColor(inputColor);\n\n if (threshold) {\n return parsedColor.getBrightness() < threshold;\n }\n\n return parsedColor.isDark() || (parsedColor.getAlpha() > 0.25 && parsedColor.getAlpha() < 1);\n};\n"],"names":["isRgbaLongFormat","value","i","isDark","color","threshold","inputColor","toShortRgba","parsedColor","TinyColor"],"mappings":";;AAcA,MAAMA,IAAmB,CAACC,MAEf,OAAOA,KAAU,YADH,CAAC,OAAO,SAAS,MAAM,EACK,MAAM,CAACC,MAAMD,KAAA,gBAAAA,EAAO,eAAeC,EAAE,GAG7EC,IAAS,CAACC,GAAgBC,MAAgC;AACnE,QAAMC,IAAaN,EAAiBI,CAAK,IAAIG,EAAYH,CAAK,IAAKA,GAC7DI,IAAc,IAAIC,EAAUH,CAAU;AAE5C,SAAID,IACOG,EAAY,cAAkB,IAAAH,IAGlCG,EAAY,OAAa,KAAAA,EAAY,aAAa,QAAQA,EAAY,SAAa,IAAA;AAC9F;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setAlpha.es.js","sources":["../../../src/utilities/color/setAlpha.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport
|
|
1
|
+
{"version":3,"file":"setAlpha.es.js","sources":["../../../src/utilities/color/setAlpha.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { TinyColor } from '@ctrl/tinycolor';\n\n/**\n * Sets alpha value and returns rgba string.\n *\n * @param {string} color Rgb or hex string.\n * @returns {String} To be used as css value.\n */\n\nexport const setAlpha = (alpha: number, color?: string): string => {\n return new TinyColor(color).setAlpha(alpha).toRgbString();\n};\n"],"names":["setAlpha","alpha","color","TinyColor"],"mappings":";AAWa,MAAAA,IAAW,CAACC,GAAeC,MAC7B,IAAIC,EAAUD,CAAK,EAAE,SAASD,CAAK,EAAE;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
const
|
|
3
|
-
const { r, g:
|
|
4
|
-
return { red: r, green:
|
|
1
|
+
import { TinyColor as l } from "@ctrl/tinycolor";
|
|
2
|
+
const b = (o) => {
|
|
3
|
+
const { r, g: e, b: t, a: n } = new l(o);
|
|
4
|
+
return { red: r, green: e, blue: t, alpha: n };
|
|
5
5
|
};
|
|
6
6
|
export {
|
|
7
|
-
|
|
7
|
+
b as toColorObject
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=toColorObject.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toColorObject.es.js","sources":["../../../src/utilities/color/toColorObject.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport
|
|
1
|
+
{"version":3,"file":"toColorObject.es.js","sources":["../../../src/utilities/color/toColorObject.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport { TinyColor } from '@ctrl/tinycolor';\n\n/**\n * Maps color strings to color objects.\n *\n * @param {String} String representing color\n * @returns {Color} Color object\n */\n\nexport const toColorObject = (colorString: string): Color => {\n const { r, g, b, a } = new TinyColor(colorString);\n return { red: r, green: g, blue: b, alpha: a };\n};\n"],"names":["toColorObject","colorString","g","b","a","TinyColor"],"mappings":";AAYa,MAAAA,IAAgB,CAACC,MAA+B;AACnD,QAAA,EAAE,GAAG,GAAAC,GAAG,GAAAC,GAAG,GAAAC,MAAM,IAAIC,EAAUJ,CAAW;AACzC,SAAA,EAAE,KAAK,GAAG,OAAOC,GAAG,MAAMC,GAAG,OAAOC;AAC/C;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import t from "@ctrl/tinycolor";
|
|
1
|
+
import { TinyColor as t } from "@ctrl/tinycolor";
|
|
2
2
|
import { toShortRgba as r } from "./toShortRgba.es.js";
|
|
3
|
-
const
|
|
3
|
+
const e = (o) => new t(r(o)).toHex8String();
|
|
4
4
|
export {
|
|
5
|
-
|
|
5
|
+
e as toHex8String
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=toHex8String.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toHex8String.es.js","sources":["../../../src/utilities/color/toHex8String.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport
|
|
1
|
+
{"version":3,"file":"toHex8String.es.js","sources":["../../../src/utilities/color/toHex8String.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { toShortRgba } from './toShortRgba';\n\n/**\n * Maps color object of rgba values to hex alpha string.\n *\n * @param {Object} Color object\n * @returns {String} To be used as css value.\n */\n\nexport const toHex8String = (color: Color): string => new TinyColor(toShortRgba(color)).toHex8String();\n"],"names":["toHex8String","color","TinyColor","toShortRgba"],"mappings":";;AAaa,MAAAA,IAAe,CAACC,MAAyB,IAAIC,EAAUC,EAAYF,CAAK,CAAC,EAAE,aAAa;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import t from "@ctrl/tinycolor";
|
|
1
|
+
import { TinyColor as t } from "@ctrl/tinycolor";
|
|
2
2
|
import { toShortRgba as r } from "./toShortRgba.es.js";
|
|
3
|
-
const
|
|
3
|
+
const e = (o) => new t(r(o)).toHexString();
|
|
4
4
|
export {
|
|
5
|
-
|
|
5
|
+
e as toHexString
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=toHexString.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toHexString.es.js","sources":["../../../src/utilities/color/toHexString.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport
|
|
1
|
+
{"version":3,"file":"toHexString.es.js","sources":["../../../src/utilities/color/toHexString.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { toShortRgba } from './toShortRgba';\n\n/**\n * Maps color object of rgba values to hex alpha string.\n */\nexport const toHexString = (color: Color): string => new TinyColor(toShortRgba(color)).toHexString();\n"],"names":["toHexString","color","TinyColor","toShortRgba"],"mappings":";;AASa,MAAAA,IAAc,CAACC,MAAyB,IAAIC,EAAUC,EAAYF,CAAK,CAAC,EAAE,YAAY;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import t from "@ctrl/tinycolor";
|
|
1
|
+
import { TinyColor as t } from "@ctrl/tinycolor";
|
|
2
2
|
import { toShortRgba as r } from "./toShortRgba.es.js";
|
|
3
|
-
const
|
|
3
|
+
const n = (o) => new t(r(o)).toRgbString();
|
|
4
4
|
export {
|
|
5
|
-
|
|
5
|
+
n as toRgbaString
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=toRgbaString.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toRgbaString.es.js","sources":["../../../src/utilities/color/toRgbaString.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport
|
|
1
|
+
{"version":3,"file":"toRgbaString.es.js","sources":["../../../src/utilities/color/toRgbaString.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Color } from '@frontify/fondue';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { toShortRgba } from './toShortRgba';\n\n/**\n * Maps color object of rgba values to rgba string.\n *\n * @param {Object} Color object\n * @returns {String} To be used as css value.\n */\n\nexport const toRgbaString = (color: Color): string => new TinyColor(toShortRgba(color)).toRgbString();\n"],"names":["toRgbaString","color","TinyColor","toShortRgba"],"mappings":";;AAaa,MAAAA,IAAe,CAACC,MAAyB,IAAIC,EAAUC,EAAYF,CAAK,CAAC,EAAE,YAAY;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontify/guideline-blocks-settings",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.1",
|
|
4
4
|
"description": "Provides types and helpers for the guideline block development",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/index.umd.js",
|
|
@@ -22,50 +22,48 @@
|
|
|
22
22
|
"./styles": "./dist/styles.css"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@babel/core": "^7.22.
|
|
25
|
+
"@babel/core": "^7.22.11",
|
|
26
26
|
"@frontify/eslint-config-typescript": "^0.16.1",
|
|
27
27
|
"@testing-library/react": "^14.0.0",
|
|
28
|
-
"@types/
|
|
29
|
-
"@types/
|
|
30
|
-
"@types/react": "^18.2.20",
|
|
28
|
+
"@types/node": "^18.17.12",
|
|
29
|
+
"@types/react": "^18.2.21",
|
|
31
30
|
"@types/react-dom": "^18.2.7",
|
|
32
31
|
"@types/sinon": "^10.0.16",
|
|
33
32
|
"@vitejs/plugin-react": "^4.0.4",
|
|
34
|
-
"autoprefixer": "^10.4.
|
|
35
|
-
"cypress": "^
|
|
36
|
-
"cypress-real-events": "^1.10.
|
|
37
|
-
"eslint": "^8.
|
|
33
|
+
"autoprefixer": "^10.4.15",
|
|
34
|
+
"cypress": "^13.1.0",
|
|
35
|
+
"cypress-real-events": "^1.10.1",
|
|
36
|
+
"eslint": "^8.48.0",
|
|
38
37
|
"eslint-plugin-notice": "^0.9.10",
|
|
39
|
-
"happy-dom": "^10.
|
|
38
|
+
"happy-dom": "^10.11.2",
|
|
40
39
|
"mitt": "^3.0.1",
|
|
41
|
-
"msw": "^1.2.
|
|
42
|
-
"postcss": "^8.4.
|
|
43
|
-
"prettier": "^3.0.
|
|
40
|
+
"msw": "^1.2.5",
|
|
41
|
+
"postcss": "^8.4.29",
|
|
42
|
+
"prettier": "^3.0.3",
|
|
44
43
|
"react": "^18.2.0",
|
|
45
44
|
"react-dom": "^18.2.0",
|
|
46
|
-
"rollup": "^3.28.
|
|
45
|
+
"rollup": "^3.28.1",
|
|
47
46
|
"sinon": "15.2.0",
|
|
48
47
|
"tailwindcss": "^3.3.3",
|
|
49
|
-
"typescript": "^5.
|
|
48
|
+
"typescript": "^5.2.2",
|
|
50
49
|
"vite": "^4.4.9",
|
|
51
|
-
"vite-plugin-dts": "^3.5.
|
|
50
|
+
"vite-plugin-dts": "^3.5.3",
|
|
52
51
|
"vite-plugin-externals": "^0.6.2",
|
|
53
|
-
"vitest": "^0.34.
|
|
52
|
+
"vitest": "^0.34.3"
|
|
54
53
|
},
|
|
55
54
|
"dependencies": {
|
|
56
|
-
"@ctrl/tinycolor": "^
|
|
55
|
+
"@ctrl/tinycolor": "^4.0.2",
|
|
57
56
|
"@dnd-kit/core": "^6.0.8",
|
|
58
57
|
"@dnd-kit/modifiers": "^6.0.1",
|
|
59
58
|
"@dnd-kit/sortable": "^7.0.2",
|
|
60
|
-
"@frontify/fondue": "12.0.0-beta.
|
|
61
|
-
"@react-aria/focus": "^3.
|
|
62
|
-
"@react-stately/overlays": "^3.6.
|
|
63
|
-
"@udecode/plate": "^21",
|
|
64
|
-
"escape-html": "^1.0.3",
|
|
59
|
+
"@frontify/fondue": "12.0.0-beta.314",
|
|
60
|
+
"@react-aria/focus": "^3.14.0",
|
|
61
|
+
"@react-stately/overlays": "^3.6.1",
|
|
62
|
+
"@udecode/plate": "^21.5.0",
|
|
65
63
|
"slate": "^0.94.1",
|
|
66
|
-
"slate-react": "^0.
|
|
67
|
-
"@frontify/app-bridge": "3.0.0-beta.
|
|
68
|
-
"@frontify/sidebar-settings": "0.6.
|
|
64
|
+
"slate-react": "^0.98.3",
|
|
65
|
+
"@frontify/app-bridge": "3.0.0-beta.89",
|
|
66
|
+
"@frontify/sidebar-settings": "0.6.6"
|
|
69
67
|
},
|
|
70
68
|
"peerDependencies": {
|
|
71
69
|
"react": "^18",
|
|
@@ -4,7 +4,7 @@ import { AssetDummy, getAppBridgeBlockStub } from '@frontify/app-bridge';
|
|
|
4
4
|
import { mount } from 'cypress/react18';
|
|
5
5
|
import { Attachments as AttachmentsComponent } from './Attachments';
|
|
6
6
|
import { AttachmentsProps } from './types';
|
|
7
|
-
import { SinonStub } from '
|
|
7
|
+
import type { SinonStub } from 'sinon';
|
|
8
8
|
|
|
9
9
|
const FlyoutButtonSelector = '[data-test-id="attachments-flyout-button"]';
|
|
10
10
|
const AssetInputSelector = '[data-test-id="asset-input-placeholder"]';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* (c) Copyright Frontify Ltd., all rights reserved. */
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { joinClassNames } from '../../utilities';
|
|
5
5
|
import { Toolbar } from './Toolbar';
|
|
6
6
|
import { BlockItemWrapperProps, ToolbarItem } from './types';
|
|
@@ -15,7 +15,7 @@ export const BlockItemWrapper = ({
|
|
|
15
15
|
shouldFillContainer,
|
|
16
16
|
outlineOffset = 2,
|
|
17
17
|
shouldBeShown = false,
|
|
18
|
-
}:
|
|
18
|
+
}: BlockItemWrapperProps) => {
|
|
19
19
|
const [isFlyoutOpen, setIsFlyoutOpen] = useState(shouldBeShown);
|
|
20
20
|
const [isFlyoutDisabled, setIsFlyoutDisabled] = useState(false);
|
|
21
21
|
const wrapperRef = useRef<HTMLDivElement>(null);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/* (c) Copyright Frontify Ltd., all rights reserved. */
|
|
2
2
|
|
|
3
3
|
import { MenuItemStyle } from '@frontify/fondue';
|
|
4
|
+
import type { ReactNode } from 'react';
|
|
4
5
|
|
|
5
6
|
export type BlockItemWrapperProps = {
|
|
7
|
+
children: ReactNode;
|
|
6
8
|
shouldHideWrapper?: boolean;
|
|
7
9
|
shouldHideComponent?: boolean;
|
|
8
10
|
toolbarItems: (ToolbarItem | undefined)[];
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from '@frontify/app-bridge';
|
|
10
10
|
import { mount } from 'cypress/react18';
|
|
11
11
|
import { LinkSelector } from './LinkSelector';
|
|
12
|
-
import { SinonStub } from '
|
|
12
|
+
import type { SinonStub } from 'sinon';
|
|
13
13
|
|
|
14
14
|
const LinkSelectorSelector = '[data-test-id="internal-link-selector"]';
|
|
15
15
|
const LinkSelectorButtonSelector = '[data-test-id="internal-link-selector"] > button';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { DocumentApiDummy, getAppBridgeBlockStub } from '@frontify/app-bridge';
|
|
4
4
|
import { PluginComposer } from '@frontify/fondue';
|
|
5
5
|
import { mount } from 'cypress/react18';
|
|
6
|
-
import { SinonStub } from '
|
|
6
|
+
import type { SinonStub } from 'sinon';
|
|
7
7
|
import { ButtonPlugin, LinkPlugin, RichTextEditor, TextStyles } from '.';
|
|
8
8
|
import { convertToRteValue } from '../../helpers';
|
|
9
9
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/* (c) Copyright Frontify Ltd., all rights reserved. */
|
|
2
2
|
|
|
3
3
|
import { useEffect, useState } from 'react';
|
|
4
|
+
import { serializeRawToHtmlAsync } from '@frontify/fondue';
|
|
4
5
|
import { SerializedTextProps } from './types';
|
|
5
|
-
import { serializeRawToHtmlAsync } from './serializer';
|
|
6
6
|
|
|
7
7
|
export const SerializedText = ({ value = '', gap, columns, show = true, plugins }: SerializedTextProps) => {
|
|
8
8
|
const [html, setHtml] = useState<string | null>(null);
|
|
9
9
|
|
|
10
10
|
useEffect(() => {
|
|
11
11
|
(async () => {
|
|
12
|
-
setHtml(await serializeRawToHtmlAsync(value, columns, gap
|
|
12
|
+
setHtml(await serializeRawToHtmlAsync(value, plugins, columns, gap));
|
|
13
13
|
})();
|
|
14
14
|
}, [value, columns, gap, plugins]);
|
|
15
15
|
|
|
@@ -42,9 +42,10 @@ const Custom1MarkupElementNode = ({ element, attributes, children, styles }: Tex
|
|
|
42
42
|
return (
|
|
43
43
|
<p
|
|
44
44
|
{...attributes}
|
|
45
|
-
|
|
45
|
+
style={styles}
|
|
46
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
46
47
|
>
|
|
47
|
-
|
|
48
|
+
{children}
|
|
48
49
|
</p>
|
|
49
50
|
);
|
|
50
51
|
};
|
|
@@ -42,9 +42,10 @@ const Custom2MarkupElementNode = ({ element, attributes, children, styles }: Tex
|
|
|
42
42
|
return (
|
|
43
43
|
<p
|
|
44
44
|
{...attributes}
|
|
45
|
-
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)
|
|
45
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
46
|
+
style={styles}
|
|
46
47
|
>
|
|
47
|
-
|
|
48
|
+
{children}
|
|
48
49
|
</p>
|
|
49
50
|
);
|
|
50
51
|
};
|
|
@@ -43,9 +43,10 @@ const Custom3MarkupElementNode = ({ element, attributes, children, styles }: Tex
|
|
|
43
43
|
return (
|
|
44
44
|
<p
|
|
45
45
|
{...attributes}
|
|
46
|
-
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)
|
|
46
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
47
|
+
style={styles}
|
|
47
48
|
>
|
|
48
|
-
|
|
49
|
+
{children}
|
|
49
50
|
</p>
|
|
50
51
|
);
|
|
51
52
|
};
|
|
@@ -41,9 +41,10 @@ const Heading1MarkupElementNode = ({ element, attributes, children, styles }: Te
|
|
|
41
41
|
return (
|
|
42
42
|
<h1
|
|
43
43
|
{...attributes}
|
|
44
|
-
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)
|
|
44
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
45
|
+
style={styles}
|
|
45
46
|
>
|
|
46
|
-
|
|
47
|
+
{children}
|
|
47
48
|
</h1>
|
|
48
49
|
);
|
|
49
50
|
};
|
|
@@ -39,8 +39,12 @@ class Heading2MarkupElement extends MarkupElement {
|
|
|
39
39
|
const Heading2MarkupElementNode = ({ element, attributes, children, styles }: TextStyleRenderElementProps) => {
|
|
40
40
|
const align = element.align as string;
|
|
41
41
|
return (
|
|
42
|
-
<h2
|
|
43
|
-
|
|
42
|
+
<h2
|
|
43
|
+
{...attributes}
|
|
44
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
45
|
+
style={styles}
|
|
46
|
+
>
|
|
47
|
+
{children}
|
|
44
48
|
</h2>
|
|
45
49
|
);
|
|
46
50
|
};
|
|
@@ -39,8 +39,12 @@ class Heading3MarkupElement extends MarkupElement {
|
|
|
39
39
|
const Heading3MarkupElementNode = ({ element, attributes, children, styles }: TextStyleRenderElementProps) => {
|
|
40
40
|
const align = element.align as string;
|
|
41
41
|
return (
|
|
42
|
-
<h3
|
|
43
|
-
|
|
42
|
+
<h3
|
|
43
|
+
{...attributes}
|
|
44
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
45
|
+
style={styles}
|
|
46
|
+
>
|
|
47
|
+
{children}
|
|
44
48
|
</h3>
|
|
45
49
|
);
|
|
46
50
|
};
|
|
@@ -40,8 +40,12 @@ class Heading4MarkupElement extends MarkupElement {
|
|
|
40
40
|
const Heading4MarkupElementNode = ({ element, attributes, children, styles }: TextStyleRenderElementProps) => {
|
|
41
41
|
const align = element.align as string;
|
|
42
42
|
return (
|
|
43
|
-
<h4
|
|
44
|
-
|
|
43
|
+
<h4
|
|
44
|
+
{...attributes}
|
|
45
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
46
|
+
style={styles}
|
|
47
|
+
>
|
|
48
|
+
{children}
|
|
45
49
|
</h4>
|
|
46
50
|
);
|
|
47
51
|
};
|
|
@@ -41,9 +41,10 @@ const ImageCaptionMarkupElementNode = ({ element, attributes, children, styles }
|
|
|
41
41
|
return (
|
|
42
42
|
<p
|
|
43
43
|
{...attributes}
|
|
44
|
-
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)
|
|
44
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
45
|
+
style={styles}
|
|
45
46
|
>
|
|
46
|
-
|
|
47
|
+
{children}
|
|
47
48
|
</p>
|
|
48
49
|
);
|
|
49
50
|
};
|
|
@@ -41,9 +41,10 @@ const ImageTitleMarkupElementNode = ({ element, attributes, children, styles }:
|
|
|
41
41
|
return (
|
|
42
42
|
<p
|
|
43
43
|
{...attributes}
|
|
44
|
-
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)
|
|
44
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
45
|
+
style={styles}
|
|
45
46
|
>
|
|
46
|
-
|
|
47
|
+
{children}
|
|
47
48
|
</p>
|
|
48
49
|
);
|
|
49
50
|
};
|
|
@@ -42,9 +42,10 @@ export const QuoteMarkupElementNode = ({ element, attributes, children, styles }
|
|
|
42
42
|
return (
|
|
43
43
|
<blockquote
|
|
44
44
|
{...attributes}
|
|
45
|
-
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)
|
|
45
|
+
className={merge([align && alignmentClassnames[align], getColumnBreakClasses(element)])}
|
|
46
|
+
style={styles}
|
|
46
47
|
>
|
|
47
|
-
|
|
48
|
+
{children}
|
|
48
49
|
</blockquote>
|
|
49
50
|
);
|
|
50
51
|
};
|
|
@@ -4,7 +4,7 @@ import type { CSSProperties } from 'react';
|
|
|
4
4
|
import { LINK_PLUGIN } from './LinkPlugin/id';
|
|
5
5
|
import { BlockButtonStyles } from './ButtonPlugin';
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export enum TextStyles {
|
|
8
8
|
heading1 = 'heading1',
|
|
9
9
|
heading2 = 'heading2',
|
|
10
10
|
heading3 = 'heading3',
|
|
@@ -19,7 +19,6 @@ export const enum TextStyles {
|
|
|
19
19
|
}
|
|
20
20
|
export const BlockStyles: Record<string, CSSProperties & { hover?: CSSProperties }> = {
|
|
21
21
|
[TextStyles.heading1]: {
|
|
22
|
-
display: 'inline-block',
|
|
23
22
|
fontSize: 'var(--f-theme-settings-heading1-font-size)',
|
|
24
23
|
lineHeight: 'var(--f-theme-settings-heading1-line-height)',
|
|
25
24
|
marginTop: 'var(--f-theme-settings-heading1-margin-top)',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* (c) Copyright Frontify Ltd., all rights reserved. */
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { ColorInput, TinyColor, readability } from '@ctrl/tinycolor';
|
|
4
4
|
import { toShortRgba } from './toShortRgba';
|
|
5
5
|
import { Color } from '@frontify/sidebar-settings';
|
|
6
6
|
|
|
@@ -22,8 +22,8 @@ export const getReadableColor = (textColor: unknown, backgroundColor: unknown):
|
|
|
22
22
|
const inputBackgroundColor = isRgbaLongFormat(backgroundColor)
|
|
23
23
|
? toShortRgba(backgroundColor)
|
|
24
24
|
: (backgroundColor as ColorInput);
|
|
25
|
-
let parsedTextColor =
|
|
26
|
-
const parsedBackgroundColor =
|
|
25
|
+
let parsedTextColor = new TinyColor(inputTextColor);
|
|
26
|
+
const parsedBackgroundColor = new TinyColor(inputBackgroundColor);
|
|
27
27
|
|
|
28
28
|
//darken the text color until readability is good
|
|
29
29
|
while (readability(parsedTextColor, parsedBackgroundColor) < 4.5) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* (c) Copyright Frontify Ltd., all rights reserved. */
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { ColorInput, TinyColor } from '@ctrl/tinycolor';
|
|
4
4
|
import { toShortRgba } from './toShortRgba';
|
|
5
5
|
import { Color } from '@frontify/sidebar-settings';
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ const isRgbaLongFormat = (value: unknown): value is Color => {
|
|
|
19
19
|
|
|
20
20
|
export const isDark = (color: unknown, threshold?: number): boolean => {
|
|
21
21
|
const inputColor = isRgbaLongFormat(color) ? toShortRgba(color) : (color as ColorInput);
|
|
22
|
-
const parsedColor =
|
|
22
|
+
const parsedColor = new TinyColor(inputColor);
|
|
23
23
|
|
|
24
24
|
if (threshold) {
|
|
25
25
|
return parsedColor.getBrightness() < threshold;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* (c) Copyright Frontify Ltd., all rights reserved. */
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { TinyColor } from '@ctrl/tinycolor';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Sets alpha value and returns rgba string.
|
|
@@ -10,5 +10,5 @@ import tinycolor from '@ctrl/tinycolor';
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
export const setAlpha = (alpha: number, color?: string): string => {
|
|
13
|
-
return
|
|
13
|
+
return new TinyColor(color).setAlpha(alpha).toRgbString();
|
|
14
14
|
};
|