/* Control Icons For Accordions
* ============================= */
.vc_tta {
.vc_tta-controls-icon {
display: inline-block;
vertical-align: middle;
height: @vc_tta-control-icon-size;
width: @vc_tta-control-icon-size;
position: relative;
font-size: inherit;
margin: 0;
&:before,
&:after {
-webkit-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}
}
.vc_tta-title-text:not(:empty) {
~ .vc_tta-controls-icon {
margin-left: 0;
}
}
}
/* Control Icons
* ============================= */
.vc_tta {
.vc_tta-controls-icon {
// Plus Control Icon
&.vc_tta-controls-icon-plus {
&::before {
content: '';
display: block;
position: absolute;
box-sizing: border-box;
left: 0;
right: 0;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
border-style: solid;
border-width: @vc_tta-control-icon-width 0 0 0;
}
&::after {
content: '';
display: block;
position: absolute;
box-sizing: border-box;
left: 50%;
bottom: 0;
top: 0;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
border-style: solid;
border-width: 0 0 0 @vc_tta-control-icon-width;
}
}
// Chevron Control Icon
&.vc_tta-controls-icon-chevron {
&::before {
content: '';
display: block;
position: absolute;
box-sizing: border-box;
left: @vc_tta-control-icon-width;
right: @vc_tta-control-icon-width;
top: @vc_tta-control-icon-width;
bottom: @vc_tta-control-icon-width;
border-style: solid;
border-width: 0 @vc_tta-control-icon-width @vc_tta-control-icon-width 0;
-webkit-transform: rotate(45deg) translate(-25%, -25%);
-ms-transform: rotate(45deg) translate(-25%, -25%);
transform: rotate(45deg) translate(-25%, -25%);
}
}
// Triangle Control Icon
&.vc_tta-controls-icon-triangle {
&::before {
content: '';
display: block;
position: absolute;
box-sizing: border-box;
left: 0;
right: 0;
top: 0;
bottom: 0;
border-style: solid;
border-width: floor(@vc_tta-control-icon-size / 2);
border-bottom-color: transparent !important;
border-right-color: transparent !important;
border-left-color: transparent !important;
-webkit-transform: translateY(25%);
-ms-transform: translateY(25%);
transform: translateY(25%);
}
}
}
// active icon
.vc_active {
.vc_tta-controls-icon {
// Plus Control Icon
&.vc_tta-controls-icon-plus {
&::after {
display: none;
}
}
// Chevron Control Icon
&.vc_tta-controls-icon-chevron {
&::before {
-webkit-transform: rotate(225deg) translate(-25%, -25%);
-ms-transform: rotate(225deg) translate(-25%, -25%);
transform: rotate(225deg) translate(-25%, -25%);
}
}
// Triangle Control Icon
&.vc_tta-controls-icon-triangle {
&::before {
-webkit-transform: rotate(180deg) translateY(25%);
-ms-transform: rotate(180deg) translateY(25%);
transform: rotate(180deg) translateY(25%);
}
}
}
}
}
/* Control Icons Positions
* ============================= */
.vc_tta {
&.vc_tta-accordion {
// Icon From Left
.vc_tta-controls-icon-position-left {
&.vc_tta-panel-title {
> a {
padding-left: @vc_tta-panels-padding-horizontal + @vc_tta-icon-spacing + @vc_tta-control-icon-size;
}
}
.vc_tta-controls-icon {
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
left: @vc_tta-panels-padding-horizontal;
}
}
// Icon From Right
.vc_tta-controls-icon-position-right {
&.vc_tta-panel-title {
> a {
padding-right: @vc_tta-panels-padding-horizontal * 1.5 + @vc_tta-control-icon-size;
}
}
.vc_tta-controls-icon {
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
right: @vc_tta-panels-padding-horizontal;
}
}
}
}
/*! elementor-pro - v4.2.0 - 31-08-2026 */
[data-editable-elementor-document]{position:relative}[data-editable-elementor-document]:after,[data-editable-elementor-document]:before{content:"";display:table}[data-editable-elementor-document] .elementor-document-handle{border:2px solid var(--e-a-color-primary,#f3bafd);cursor:pointer;display:none;inset:0;position:absolute;z-index:2147483620}[data-editable-elementor-document] .elementor-document-handle:before{background:var(--e-a-color-primary,#f3bafd);content:"";inset:0;opacity:.3;position:absolute}[data-editable-elementor-document] .elementor-document-handle__inner{align-items:center;background:var(--e-a-color-primary,#f3bafd);border-radius:0 0 3px 3px;color:var(--e-p-border-global-invert,#0c0d0e);display:none;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:12px;gap:8px;left:50%;line-height:14px;padding:8px 16px;position:absolute;top:0;transform:translateX(-50%)}[data-editable-elementor-document] .elementor-document-handle__inner:after,[data-editable-elementor-document] .elementor-document-handle__inner:before{border:solid transparent;content:"";position:absolute}[data-editable-elementor-document] .elementor-document-handle__inner:before{border-inline-end-color:var(--e-a-color-primary,#f3bafd);border-width:0 14px 30px 0;right:calc(100% - 1px)}[data-editable-elementor-document] .elementor-document-handle__inner:after{border-inline-start-color:var(--e-a-color-primary,#f3bafd);border-width:0 0 30px 14px;left:calc(100% - 1px)}[data-editable-elementor-document].e-embedded-document-active .elementor-document-handle:not(.elementor-document-save-back-handle),[data-editable-elementor-document].elementor-widget-container .elementor-document-handle:not(.elementor-document-save-back-handle){border-block-end:unset;bottom:unset}[data-editable-elementor-document].e-embedded-document-active .elementor-document-handle:not(.elementor-document-save-back-handle):before,[data-editable-elementor-document].elementor-widget-container .elementor-document-handle:not(.elementor-document-save-back-handle):before{bottom:unset;display:none}.elementor-editor-active [data-editable-elementor-document]:not(.elementor-edit-mode):hover .elementor-document-handle:not(.elementor-document-save-back-handle),.elementor-editor-active [data-editable-elementor-document]:not(.elementor-edit-mode):hover .elementor-document-handle:not(.elementor-document-save-back-handle):before{display:block}.elementor-editor-active [data-editable-elementor-document]:not(.elementor-edit-mode):hover .elementor-document-handle:not(.elementor-document-save-back-handle) .elementor-document-handle__inner{display:flex}.elementor-editor-active [data-editable-elementor-document].loading{opacity:.5}.elementor-editor-active [data-editable-elementor-document][data-elementor-type=single]>.elementor-document-handle{border-radius:3px 3px 0 0;transform:translateX(-50%) translateY(-100%)}.elementor-editor-active [data-editable-elementor-document][data-elementor-type=single]>.elementor-document-handle:before{border-width:30px 14px 0 0}.elementor-editor-active [data-editable-elementor-document][data-elementor-type=single]>.elementor-document-handle:after{border-width:30px 0 0 14px}[data-elementor-post-type=elementor_library]>.elementor-document-handle{border:2px solid var(--e-p-border-global,#5eead4)}[data-elementor-post-type=elementor_library]>.elementor-document-handle .elementor-document-handle__inner,[data-elementor-post-type=elementor_library]>.elementor-document-handle:before{background-color:var(--e-p-border-global,#5eead4)}[data-elementor-post-type=elementor_library]>.elementor-document-handle .elementor-document-handle__inner:before{border-inline-end-color:var(--e-p-border-global,#5eead4)}[data-elementor-post-type=elementor_library]>.elementor-document-handle .elementor-document-handle__inner:after{border-inline-start-color:var(--e-p-border-global,#5eead4)}.elementor-widget.elementor-sticky--effects .elementor-editor-widget-settings{right:-14px}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid var(--e-p-border-global)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget.elementor-element-editable,.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget.elementor-element-editable:hover{box-shadow:0 0 0 2px var(--e-p-border-global)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-color:var(--e-p-border-global)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting{background-color:var(--e-p-border-global);color:var(--e-p-border-global-invert)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:var(--e-p-border-global-hover)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save,.elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty)+#elementor-add-new-section{display:none}.elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-add-section,.elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-add-section-inline,.elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-element-overlay,.elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-empty,.elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-empty-view,.elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-widget-empty{display:initial}.elementor.elementor-edit-area-active .elementor-document-handle.elementor-document-save-back-handle{border:unset;bottom:unset;display:block}.elementor.elementor-edit-area-active .elementor-document-handle.elementor-document-save-back-handle:before{display:none}.elementor.elementor-edit-area-active .elementor-document-handle.elementor-document-save-back-handle>.elementor-document-handle__inner{display:flex;opacity:1}.elementor-document-handle.elementor-document-save-back-handle .elementor-document-handle__inner{border-radius:3px 3px 0 0;transform:translateX(-50%) translateY(-100%)}.elementor-document-handle.elementor-document-save-back-handle .elementor-document-handle__inner:before{border-width:30px 14px 0 0}.elementor-document-handle.elementor-document-save-back-handle .elementor-document-handle__inner:after{border-width:30px 0 0 14px}.elementor-document-handle.elementor-document-save-back-handle .eicon-arrow-left,.elementor-document-handle.elementor-document-save-back-handle .eicon-arrow-right{margin-inline-end:5px}.elementor-loop-container>div.elementor-edit-area-active:first-of-type,div[class*=elementor-widget-loop] .elementor-edit-area-active.e-loop-first-edit:first-of-type,div[class*=elementor-widget-loop] .elementor-edit-area-active.swiper-slide-active,div[class*=elementor-widget-loop] .elementor-edit-area-active[data-editable-elementor-document]{border:2px solid #5eead4}div[class*=elementor-widget-loop] .elementor-edit-area-active .elementor-document-save-back-handle{display:flex;line-height:normal;white-space:nowrap}div[class*=elementor-widget-loop] #elementor-add-new-section{margin:30px auto}div[class*=elementor-widget-loop] .elementor-add-section-inner{padding:15px 0}.elementor-edit-area-active[data-elementor-type=loop-item] .elementor-section-wrap:not(:empty)+#elementor-add-new-section{display:none}.elementor-edit-area-active[data-elementor-type=loop-item] .elementor-section-wrap:empty{min-height:0}.elementor-editor-active [class*=elementor-widget-loop] .elementor:not([data-editable-elementor-document]):not(.e-loop-alternate-template):hover{box-shadow:none}.elementor-editor-active [class*=elementor-widget-loop]:hover .elementor-document-handle:not(.elementor-document-save-back-handle){display:flex;line-height:normal;white-space:nowrap}.elementor-editor-active [class*=elementor-widget-loop]:hover .elementor-document-handle:not(.elementor-document-save-back-handle):before{display:block}.elementor-editor-active [class*=elementor-widget-loop]:hover .elementor-document-handle:not(.elementor-document-save-back-handle) .elementor-document-handle__inner{display:flex}.elementor-editor-active [class*=elementor-widget-loop]:hover .e-loop-alternate-template{box-shadow:0 0 0 1px #9da5ae}.e-loop-template-canvas{align-items:center;display:flex;justify-content:center;min-height:100vh}.e-loop-template-canvas [data-elementor-type=loop-item].e-loop-item{max-width:var(--preview-width,410px);width:var(--preview-width,410px)}.e-loop-template-canvas [data-elementor-type=loop-item].e-loop-item #elementor-add-new-section{width:var(--preview-width,410px)}/**
* Schema runtime service.
*
* Reads PHP-provided schema contracts and exposes explicit runtime helpers
* consumed by core editor/save modules.
*
* Exposes:
* SFE.SchemaRuntime
* SFE.SchemaV2
*/
( function() {
'use strict';
window.MWP = window.MWP || {};
window.MWP.SFE = window.MWP.SFE || {};
const SFE = window.MWP.SFE;
SFE.ManagerData = SFE.ManagerData || {};
const RAW_SCHEMA_DATA = window.MWPSFE_Schema_Data || { version: 1, schemas: {} };
const VALID_COMPONENT_TYPES = new Set( [ 'text', 'file' ] );
const VALID_BLOCK_TYPES = new Set( [ 'text', 'media' ] );
const VALID_MEDIA_TYPES = new Set( [ 'image', 'audio', 'video', 'file', 'image_or_video', 'icon' ] );
const VALID_BINDING_SOURCES = new Set( [ 'html', 'plaintext', 'textalignment', 'columnalignment', 'url', 'id', 'media_type', 'list_block' ] );
const VALID_TARGET_SCOPES = new Set( [ 'component', 'block', 'column' ] );
const VALID_ENTER_MODES = new Set( [ 'auto', 'always', 'never', 'linebreak' ] );
const VALID_LINK_UI_MODES = new Set( [ 'auto', 'manual' ] );
const VALID_TAB_ACTIONS = new Set( [ 'none', 'indent', 'outdent', 'nextComponent', 'previousComponent' ] );
const VALID_MISSING_UI_MODES = new Set( [ 'ghost' ] );
const VALID_MISSING_UI_PLACEMENTS = new Set( [ 'append', 'prepend' ] );
const GHOST_COMPONENT_ATTR = 'data-mwp-sfe-ghost-component';
const GHOST_FLAG_ATTR = 'data-mwp-sfe-ghost';
const GHOST_CLASS = 'mwp-sfe-ghost-component';
function isPlainObject( value ) {
return !!value && typeof value === 'object' && !Array.isArray( value );
}
function isElementNode( value ) {
return !!value && value.nodeType === Node.ELEMENT_NODE;
}
function normalizeBindingDefinition( rawBinding ) {
if ( !isPlainObject( rawBinding ) ) return null;
const path = typeof rawBinding.path === 'string' ? rawBinding.path.trim() : '';
const source = typeof rawBinding.source === 'string' ? rawBinding.source.trim().toLowerCase() : '';
if ( !path || !VALID_BINDING_SOURCES.has( source ) ) return null;
const binding = { path, source };
if ( rawBinding.resolved === true ) {
binding.resolved = true;
}
if ( typeof rawBinding.value === 'string' && rawBinding.value.trim() ) {
binding.value = rawBinding.value.trim();
}
return binding;
}
function normalizeEditorExtractionOptions( rawOptions ) {
if ( !isPlainObject( rawOptions ) ) return null;
const options = {};
if ( rawOptions.preserveNewlines === true ) {
options.preserveNewlines = true;
}
if ( rawOptions.newlinesToBR === true ) {
options.newlinesToBR = true;
}
return Object.keys( options ).length ? options : null;
}
function normalizeEditorTabMode( rawTabMode ) {
if ( !isPlainObject( rawTabMode ) ) return null;
const tab = typeof rawTabMode.tab === 'string' ? rawTabMode.tab.trim() : '';
const shiftTab = typeof rawTabMode.shiftTab === 'string' ? rawTabMode.shiftTab.trim() : '';
const normalized = {};
if ( tab && VALID_TAB_ACTIONS.has( tab ) ) {
normalized.tab = tab;
}
if ( shiftTab && VALID_TAB_ACTIONS.has( shiftTab ) ) {
normalized.shiftTab = shiftTab;
}
return Object.keys( normalized ).length ? normalized : null;
}
function normalizeEditorTarget( rawTarget ) {
if ( typeof rawTarget === 'string' ) {
const value = rawTarget.trim();
return value || null;
}
if ( !isPlainObject( rawTarget ) ) return null;
const scope = typeof rawTarget.scope === 'string' ? rawTarget.scope.trim().toLowerCase() : '';
if ( scope && !VALID_TARGET_SCOPES.has( scope ) ) return null;
const selector = typeof rawTarget.selector === 'string' ? rawTarget.selector.trim() : '';
const contextKey = typeof rawTarget.contextKey === 'string' ? rawTarget.contextKey.trim() : 'column';
return {
scope: scope || 'component',
selector,
contextKey,
};
}
function normalizeEditorFormats( rawFormats, depth = 0 ) {
if ( depth > 3 || !Array.isArray( rawFormats ) ) return null;
const normalized = [];
rawFormats.forEach( item => {
if ( typeof item === 'string' ) {
const token = item.trim();
if ( token ) {
normalized.push( token );
}
return;
}
if ( Array.isArray( item ) ) {
const group = normalizeEditorFormats( item, depth + 1 );
if ( Array.isArray( group ) && group.length ) {
normalized.push( group );
}
}
} );
return normalized.length ? normalized : null;
}
function normalizeInlineFormatCapability( rawCapability ) {
if ( !isPlainObject( rawCapability ) ) return null;
const tag = typeof rawCapability.tag === 'string'
? rawCapability.tag.trim().toLowerCase()
: '';
if ( !tag ) return null;
const normalizeStringArray = rawValue => {
if ( !Array.isArray( rawValue ) ) return null;
const values = rawValue
.map( value => ( typeof value === 'string' ? value.trim() : '' ) )
.filter( Boolean );
return values.length ? values : null;
};
const normalized = { tag };
const attributes = normalizeStringArray( rawCapability.attributes );
const requiredAttributes = normalizeStringArray( rawCapability.requiredAttributes );
const allowedTargets = normalizeStringArray( rawCapability.allowedTargets );
const allowedRelTokens = normalizeStringArray( rawCapability.allowedRelTokens );
const allowedProtocols = normalizeStringArray( rawCapability.allowedProtocols );
if ( attributes ) normalized.attributes = attributes;
if ( requiredAttributes ) normalized.requiredAttributes = requiredAttributes;
if ( allowedTargets ) normalized.allowedTargets = allowedTargets;
if ( allowedRelTokens ) normalized.allowedRelTokens = allowedRelTokens;
if ( allowedProtocols ) normalized.allowedProtocols = allowedProtocols;
if ( typeof rawCapability.allowsRelativeUrls === 'boolean' ) {
normalized.allowsRelativeUrls = rawCapability.allowsRelativeUrls;
}
if ( typeof rawCapability.allowsAnchorLinks === 'boolean' ) {
normalized.allowsAnchorLinks = rawCapability.allowsAnchorLinks;
}
if ( typeof rawCapability.autoProtocol === 'string' && rawCapability.autoProtocol.trim() ) {
normalized.autoProtocol = rawCapability.autoProtocol.trim().toLowerCase();
}
if ( typeof rawCapability.preservesUnknownRelTokens === 'boolean' ) {
normalized.preservesUnknownRelTokens = rawCapability.preservesUnknownRelTokens;
}
return normalized;
}
function normalizeInlineFormatCapabilities( rawCapabilities ) {
if ( !isPlainObject( rawCapabilities ) ) return null;
const normalized = {};
Object.keys( rawCapabilities ).forEach( key => {
const cleanKey = typeof key === 'string' ? key.trim() : '';
if ( !cleanKey ) return;
const capability = normalizeInlineFormatCapability( rawCapabilities[ key ] );
if ( capability ) {
normalized[ cleanKey ] = capability;
}
} );
return Object.keys( normalized ).length ? normalized : null;
}
function normalizeEditorAttributeCapabilityValues( rawValues ) {
if ( !Array.isArray( rawValues ) ) return null;
const values = rawValues.filter( value => (
typeof value === 'string' ||
typeof value === 'number' ||
typeof value === 'boolean' ||
value === null
) );
return values.length ? values : null;
}
function normalizeEditorAttributeCapability( rawCapability ) {
if ( !isPlainObject( rawCapability ) ) return null;
const normalized = {};
const attribute = typeof rawCapability.attribute === 'string'
? rawCapability.attribute.trim()
: '';
const attributes = Array.isArray( rawCapability.attributes )
? rawCapability.attributes
.map( value => ( typeof value === 'string' ? value.trim() : '' ) )
.filter( Boolean )
: null;
if ( attribute ) {
normalized.attribute = attribute;
} else if ( attributes && attributes.length ) {
normalized.attributes = attributes;
} else {
return null;
}
const values = normalizeEditorAttributeCapabilityValues( rawCapability.values );
if ( values ) {
normalized.values = values;
}
if ( rawCapability.tagChange === true ) {
normalized.tagChange = true;
}
if ( rawCapability.preview === 'inline_style' ) {
normalized.preview = 'inline_style';
}
if (
Object.prototype.hasOwnProperty.call( rawCapability, 'unsetValue' ) &&
(
typeof rawCapability.unsetValue === 'string' ||
typeof rawCapability.unsetValue === 'number' ||
typeof rawCapability.unsetValue === 'boolean' ||
rawCapability.unsetValue === null
)
) {
normalized.unsetValue = rawCapability.unsetValue;
}
return normalized;
}
function normalizeEditorAttributeCapabilities( rawCapabilities ) {
if ( !isPlainObject( rawCapabilities ) ) return null;
const normalized = {};
Object.keys( rawCapabilities ).forEach( key => {
const cleanKey = typeof key === 'string' ? key.trim() : '';
if ( !cleanKey ) return;
const capability = normalizeEditorAttributeCapability( rawCapabilities[ key ] );
if ( capability ) {
normalized[ cleanKey ] = capability;
}
} );
return Object.keys( normalized ).length ? normalized : null;
}
function cloneEditorFormats( formats ) {
if ( !Array.isArray( formats ) ) return null;
return formats.map( item => (
Array.isArray( item ) ? cloneEditorFormats( item ) : item
) );
}
function cloneInlineFormatCapabilities( capabilities ) {
if ( !isPlainObject( capabilities ) ) return null;
const cloned = {};
Object.keys( capabilities ).forEach( key => {
const capability = normalizeInlineFormatCapability( capabilities[ key ] );
if ( !capability ) return;
cloned[ key ] = capability;
} );
return Object.keys( cloned ).length ? cloned : null;
}
function cloneEditorAttributeCapabilities( capabilities ) {
if ( !isPlainObject( capabilities ) ) return null;
const cloned = {};
Object.keys( capabilities ).forEach( key => {
const capability = capabilities[ key ];
if ( !isPlainObject( capability ) ) return;
cloned[ key ] = { ...capability };
if ( Array.isArray( capability.attributes ) ) {
cloned[ key ].attributes = [ ...capability.attributes ];
}
if ( Array.isArray( capability.values ) ) {
cloned[ key ].values = [ ...capability.values ];
}
} );
return Object.keys( cloned ).length ? cloned : null;
}
function normalizeEditorOperationValues( rawValues ) {
if ( !Array.isArray( rawValues ) ) return null;
const values = rawValues.filter( value => (
typeof value === 'string' ||
typeof value === 'number' ||
typeof value === 'boolean' ||
value === null
) );
return values.length ? values : null;
}
function normalizeEditorOperationStringArray( rawValues ) {
if ( !Array.isArray( rawValues ) ) return null;
const values = rawValues
.map( value => ( typeof value === 'string' ? value.trim() : '' ) )
.filter( Boolean );
return values.length ? values : null;
}
function normalizeEditorOperation( rawOperation ) {
if ( !isPlainObject( rawOperation ) ) return null;
const id = typeof rawOperation.id === 'string' ? rawOperation.id.trim() : '';
const kind = typeof rawOperation.kind === 'string' ? rawOperation.kind.trim() : '';
const component = typeof rawOperation.component === 'string' ? rawOperation.component.trim() : '';
if ( !id || !kind || !component ) return null;
const normalized = { id, kind, component };
const attribute = typeof rawOperation.attribute === 'string' ? rawOperation.attribute.trim() : '';
const format = typeof rawOperation.format === 'string' ? rawOperation.format.trim() : '';
const attributes = normalizeEditorOperationStringArray( rawOperation.attributes );
const formats = normalizeEditorOperationStringArray( rawOperation.formats );
const targetModes = normalizeEditorOperationStringArray( rawOperation.targetModes );
const values = normalizeEditorOperationValues( rawOperation.values );
if ( attribute ) {
normalized.attribute = attribute;
}
if ( attributes ) {
normalized.attributes = attributes;
}
if ( format ) {
normalized.format = format;
}
if ( formats ) {
normalized.formats = formats;
}
if ( targetModes ) {
normalized.targetModes = targetModes;
}
if ( values ) {
normalized.values = values;
}
if ( Object.prototype.hasOwnProperty.call( rawOperation, 'unsetValue' ) ) {
normalized.unsetValue = rawOperation.unsetValue;
}
if ( typeof rawOperation.preserveInlineFormatting === 'boolean' ) {
normalized.preserveInlineFormatting = rawOperation.preserveInlineFormatting;
}
if ( typeof rawOperation.preserveUnchangedText === 'boolean' ) {
normalized.preserveUnchangedText = rawOperation.preserveUnchangedText;
}
if ( typeof rawOperation.preserveUnspecifiedAttributes === 'boolean' ) {
normalized.preserveUnspecifiedAttributes = rawOperation.preserveUnspecifiedAttributes;
}
if ( typeof rawOperation.mergeRelTokens === 'boolean' ) {
normalized.mergeRelTokens = rawOperation.mergeRelTokens;
}
if ( rawOperation.tagChange === true ) {
normalized.tagChange = true;
}
return normalized;
}
function cloneEditorOperations( operations ) {
if ( !Array.isArray( operations ) ) return null;
const cloned = operations
.map( normalizeEditorOperation )
.filter( Boolean );
return cloned.length ? cloned : null;
}
function normalizeEditorDefinition( rawEditor ) {
if ( !isPlainObject( rawEditor ) ) return null;
const normalized = {};
const enterMode = typeof rawEditor.enterMode === 'string'
? rawEditor.enterMode.trim().toLowerCase()
: '';
if ( enterMode && VALID_ENTER_MODES.has( enterMode ) ) {
normalized.enterMode = enterMode;
}
const linkUIMode = typeof rawEditor.linkUIMode === 'string'
? rawEditor.linkUIMode.trim().toLowerCase()
: '';
if ( linkUIMode && VALID_LINK_UI_MODES.has( linkUIMode ) ) {
normalized.linkUIMode = linkUIMode;
}
const tabMode = normalizeEditorTabMode( rawEditor.tabMode );
if ( tabMode ) {
normalized.tabMode = tabMode;
}
if ( isPlainObject( rawEditor.formatTargets ) ) {
const formatTargets = {};
Object.keys( rawEditor.formatTargets ).forEach( key => {
const cleanKey = typeof key === 'string' ? key.trim() : '';
if ( !cleanKey ) return;
const normalizedTarget = normalizeEditorTarget( rawEditor.formatTargets[ key ] );
if ( normalizedTarget ) {
formatTargets[ cleanKey ] = normalizedTarget;
}
} );
if ( Object.keys( formatTargets ).length ) {
normalized.formatTargets = formatTargets;
}
}
const formats = normalizeEditorFormats( rawEditor.formats );
if ( formats ) {
normalized.formats = formats;
}
const inlineFormatCapabilities = normalizeInlineFormatCapabilities( rawEditor.inlineFormatCapabilities );
if ( inlineFormatCapabilities ) {
normalized.inlineFormatCapabilities = inlineFormatCapabilities;
}
const attributeCapabilities = normalizeEditorAttributeCapabilities( rawEditor.attributeCapabilities );
if ( attributeCapabilities ) {
normalized.attributeCapabilities = attributeCapabilities;
}
const operations = cloneEditorOperations( rawEditor.operations );
if ( operations ) {
normalized.operations = operations;
}
const options = normalizeEditorExtractionOptions( rawEditor.options );
if ( options ) {
normalized.options = options;
}
return Object.keys( normalized ).length ? normalized : null;
}
function normalizeRepeatDefinition( rawRepeat ) {
if ( !isPlainObject( rawRepeat ) ) return null;
const mode = typeof rawRepeat.mode === 'string'
? rawRepeat.mode.trim().toLowerCase()
: '';
if ( mode === 'tree_path' ) {
const itemSelector = typeof rawRepeat.itemSelector === 'string' ? rawRepeat.itemSelector.trim() : '';
const pathKey = typeof rawRepeat.pathKey === 'string' ? rawRepeat.pathKey.trim() : 'path';
if ( !itemSelector || !pathKey ) return null;
return {
mode: 'tree_path',
itemSelector,
pathKey,
};
}
const rowSelector = typeof rawRepeat.rowSelector === 'string' ? rawRepeat.rowSelector.trim() : '';
const cellSelector = typeof rawRepeat.cellSelector === 'string' ? rawRepeat.cellSelector.trim() : '';
if ( !rowSelector || !cellSelector ) return null;
return { rowSelector, cellSelector };
}
function normalizeFileTargetDefinition( rawTarget ) {
if ( !isPlainObject( rawTarget ) ) return null;
const selector = typeof rawTarget.selector === 'string' ? rawTarget.selector.trim() : '';
const attribute = typeof rawTarget.attribute === 'string' ? rawTarget.attribute.trim().toLowerCase() : '';
const mediaType = typeof rawTarget.mediaType === 'string' ? rawTarget.mediaType.trim().toLowerCase() : '';
if ( !selector || !attribute || !VALID_MEDIA_TYPES.has( mediaType ) ) {
return null;
}
return {
selector,
attribute,
mediaType,
};
}
function normalizeMissingUIDefinition( rawMissingUI ) {
if ( !isPlainObject( rawMissingUI ) ) return null;
const mode = typeof rawMissingUI.mode === 'string'
? rawMissingUI.mode.trim().toLowerCase()
: '';
const mountSelector = typeof rawMissingUI.mountSelector === 'string'
? rawMissingUI.mountSelector.trim()
: '';
const placement = typeof rawMissingUI.placement === 'string'
? rawMissingUI.placement.trim().toLowerCase()
: 'append';
const tag = typeof rawMissingUI.tag === 'string'
? rawMissingUI.tag.trim().toLowerCase()
: '';
if (
!VALID_MISSING_UI_MODES.has( mode ) ||
!mountSelector ||
!VALID_MISSING_UI_PLACEMENTS.has( placement ) ||
!tag
) {
return null;
}
const attributes = {};
if ( isPlainObject( rawMissingUI.attributes ) ) {
Object.keys( rawMissingUI.attributes ).forEach( key => {
const attrName = typeof key === 'string' ? key.trim() : '';
const attrValue = typeof rawMissingUI.attributes[ key ] === 'string'
? rawMissingUI.attributes[ key ].trim()
: '';
if ( attrName && attrValue ) {
attributes[ attrName ] = attrValue;
}
} );
}
let when = null;
if ( isPlainObject( rawMissingUI.when ) ) {
const path = typeof rawMissingUI.when.path === 'string'
? rawMissingUI.when.path.trim()
: '';
const hasEquals = Object.prototype.hasOwnProperty.call( rawMissingUI.when, 'equals' );
const equals = hasEquals ? rawMissingUI.when.equals : undefined;
const isComparableScalar = (
typeof equals === 'string' ||
typeof equals === 'number' ||
typeof equals === 'boolean' ||
equals === null
);
if ( path && hasEquals && isComparableScalar ) {
when = { path, equals };
}
}
let placementWhen = null;
if ( isPlainObject( rawMissingUI.placementWhen ) ) {
const path = typeof rawMissingUI.placementWhen.path === 'string'
? rawMissingUI.placementWhen.path.trim()
: '';
const hasEquals = Object.prototype.hasOwnProperty.call( rawMissingUI.placementWhen, 'equals' );
const equals = hasEquals ? rawMissingUI.placementWhen.equals : undefined;
const conditionalPlacement = typeof rawMissingUI.placementWhen.placement === 'string'
? rawMissingUI.placementWhen.placement.trim().toLowerCase()
: '';
const isComparableScalar = (
typeof equals === 'string' ||
typeof equals === 'number' ||
typeof equals === 'boolean' ||
equals === null
);
if ( path && hasEquals && isComparableScalar && VALID_MISSING_UI_PLACEMENTS.has( conditionalPlacement ) ) {
placementWhen = { path, equals, placement: conditionalPlacement };
}
}
return {
mode,
mountSelector,
placement,
tag,
attributes: Object.keys( attributes ).length ? attributes : {},
when,
placementWhen,
};
}
function normalizeComponentDefinition( rawComponent ) {
if ( !isPlainObject( rawComponent ) ) return null;
const id = typeof rawComponent.id === 'string' ? rawComponent.id.trim() : '';
const label = typeof rawComponent.label === 'string' ? rawComponent.label.trim() : '';
const type = typeof rawComponent.type === 'string' ? rawComponent.type.trim().toLowerCase() : '';
const selector = typeof rawComponent.selector === 'string' ? rawComponent.selector.trim() : '';
if ( !id || !label || !selector || !VALID_COMPONENT_TYPES.has( type ) ) {
return null;
}
const bindings = Array.isArray( rawComponent.bindings )
? rawComponent.bindings
.map( normalizeBindingDefinition )
.filter( Boolean )
: [];
if ( !bindings.length ) {
return null;
}
const normalized = {
id,
label,
type,
selector,
bindings,
default: !!rawComponent.default,
uiEditable: rawComponent.uiEditable !== false,
};
const placeholder = typeof rawComponent.placeholder === 'string'
? rawComponent.placeholder.trim()
: '';
if ( placeholder ) {
normalized.placeholder = placeholder;
}
const repeat = normalizeRepeatDefinition( rawComponent.repeat );
if ( repeat ) {
normalized.repeat = repeat;
}
const editor = normalizeEditorDefinition( rawComponent.editor );
if ( editor ) {
normalized.editor = editor;
}
if ( type === 'text' ) {
const missingUI = normalizeMissingUIDefinition( rawComponent.missingUI );
if ( missingUI ) {
normalized.missingUI = missingUI;
}
normalized.required = rawComponent.required === true;
}
if ( type === 'file' ) {
const target = normalizeFileTargetDefinition( rawComponent.target );
if ( !target ) return null;
normalized.target = target;
}
return normalized;
}
function normalizeSchemaDefinition( rawSchema, handlerId ) {
if ( !isPlainObject( rawSchema ) ) return null;
const version = Number.parseInt( rawSchema.version, 10 );
if ( !Number.isInteger( version ) || version < 1 ) return null;
if ( !isPlainObject( rawSchema.block ) ) return null;
const blockName = typeof rawSchema.block.name === 'string' ? rawSchema.block.name.trim() : '';
if ( !blockName ) return null;
const blockType = typeof rawSchema.block.type === 'string'
? rawSchema.block.type.trim().toLowerCase()
: '';
if ( !VALID_BLOCK_TYPES.has( blockType ) ) return null;
const components = Array.isArray( rawSchema.components )
? rawSchema.components
.map( normalizeComponentDefinition )
.filter( Boolean )
: [];
if ( !components.length ) return null;
return {
handlerId,
version,
block: {
name: blockName,
type: blockType,
},
components,
};
}
function buildSchemaRegistry( rawData ) {
if ( !isPlainObject( rawData ) || !isPlainObject( rawData.schemas ) ) {
return {};
}
const registry = {};
Object.keys( rawData.schemas ).forEach( handlerId => {
const normalized = normalizeSchemaDefinition( rawData.schemas[ handlerId ], handlerId );
if ( normalized ) {
registry[ handlerId ] = normalized;
}
} );
return registry;
}
function getSchemaForHandler( handler, registry ) {
if ( !handler || typeof handler.id !== 'string' ) return null;
return registry[ handler.id ] || null;
}
function findScopedElements( rootElement, selector ) {
if ( !isElementNode( rootElement ) || !selector ) return [];
const scoped = [];
if ( rootElement.matches( selector ) ) {
const owner = rootElement.closest( '[data-mwp-sfe-uuid]' );
if ( !owner || owner === rootElement ) {
scoped.push( rootElement );
}
}
const matches = rootElement.querySelectorAll( selector );
matches.forEach( candidate => {
const owner = candidate.closest( '[data-mwp-sfe-uuid]' );
if ( !owner || owner === rootElement ) {
scoped.push( candidate );
}
} );
return scoped;
}
function findScopedElement( rootElement, selector ) {
const matches = findScopedElements( rootElement, selector );
return matches.length ? matches[ 0 ] : null;
}
function isGhostElement( element ) {
return isElementNode( element ) && element.getAttribute( GHOST_FLAG_ATTR ) === '1';
}
function findRealScopedElements( rootElement, selector ) {
return findScopedElements( rootElement, selector ).filter( element => !isGhostElement( element ) );
}
function getManagedMissingComponentElements( rootElement, componentId ) {
if ( !isElementNode( rootElement ) || !componentId ) return [];
return Array.from( rootElement.querySelectorAll( `[${ GHOST_COMPONENT_ATTR }]` ) ).filter( element => (
element.getAttribute( GHOST_COMPONENT_ATTR ) === componentId
) );
}
function getManagedMissingComponentElement( rootElement, componentId ) {
const matches = getManagedMissingComponentElements( rootElement, componentId );
return matches.length ? matches[ 0 ] : null;
}
function getGhostComponentElements( rootElement, componentId ) {
return getManagedMissingComponentElements( rootElement, componentId ).filter( isGhostElement );
}
function getGhostComponentElement( rootElement, componentId ) {
const matches = getGhostComponentElements( rootElement, componentId );
return matches.length ? matches[ 0 ] : null;
}
function removeGhostComponentElements( rootElement, componentId ) {
getGhostComponentElements( rootElement, componentId ).forEach( element => element.remove() );
}
function resolveGhostMountElement( rootElement, mountSelector ) {
const selector = typeof mountSelector === 'string' ? mountSelector.trim() : '';
if ( !selector ) return null;
if ( selector === ':scope' ) return rootElement;
return findScopedElement( rootElement, selector );
}
function applyGhostShellAttributes( ghostElement, componentDefinition ) {
if ( !isElementNode( ghostElement ) || !componentDefinition ) return;
const ghostAttributes = isPlainObject( componentDefinition?.missingUI?.attributes )
? componentDefinition.missingUI.attributes
: {};
Object.keys( ghostAttributes ).forEach( attrName => {
const attrValue = ghostAttributes[ attrName ];
if ( typeof attrValue === 'string' && attrValue ) {
if ( attrName === 'class' ) {
attrValue.split( /\s+/ ).filter( Boolean ).forEach( cls => ghostElement.classList.add( cls ) );
} else {
ghostElement.setAttribute( attrName, attrValue );
}
}
} );
ghostElement.setAttribute( GHOST_COMPONENT_ATTR, componentDefinition.id );
}
function insertGhostElement( mountElement, ghostElement, placement ) {
if ( !isElementNode( mountElement ) || !isElementNode( ghostElement ) ) return;
if ( placement === 'prepend' ) {
mountElement.insertBefore( ghostElement, mountElement.firstChild );
return;
}
mountElement.appendChild( ghostElement );
}
function resolveComponentAttributeState( options = {} ) {
const directAttributeState = isPlainObject( options.attributeState )
? options.attributeState
: null;
if ( directAttributeState ) {
return directAttributeState;
}
const blockAttributes = isPlainObject( options.blockAttributes )
? options.blockAttributes
: null;
const attributeChanges = isPlainObject( options.attributeChanges )
? options.attributeChanges
: null;
if ( blockAttributes && attributeChanges ) {
return applyAttributeChangesToAttributes( blockAttributes, attributeChanges );
}
if ( blockAttributes ) {
return deepCloneAttributes( blockAttributes );
}
if ( attributeChanges ) {
return applyAttributeChangesToAttributes( {}, attributeChanges );
}
return null;
}
function isRequiredTextComponent( componentDefinition ) {
return !!(
componentDefinition &&
componentDefinition.type === 'text' &&
componentDefinition.required === true
);
}
function supportsGhostManagedTextComponent( componentDefinition ) {
return !!(
componentDefinition &&
componentDefinition.type === 'text' &&
componentDefinition?.missingUI?.mode === 'ghost'
);
}
function shouldMaterializeGhostComponent( componentDefinition, options = {} ) {
if (
!componentDefinition ||
componentDefinition.type !== 'text' ||
componentDefinition?.missingUI?.mode !== 'ghost'
) {
return false;
}
const when = isPlainObject( componentDefinition.missingUI.when )
? componentDefinition.missingUI.when
: null;
if ( when?.path ) {
const attributeState = resolveComponentAttributeState( options );
if ( !attributeState ) {
return false;
}
if ( getValueByPath( attributeState, when.path ) !== when.equals ) {
return false;
}
}
return true;
}
function hasMeaningfulManagedComponentContent( element ) {
if ( !isElementNode( element ) ) return false;
const placeholderApi = SFE.RichTextPlaceholder || null;
if ( placeholderApi && typeof placeholderApi.hasMeaningfulContent === 'function' ) {
return placeholderApi.hasMeaningfulContent( element );
}
const text = String( element.textContent || '' )
.replace( /\uFEFF/g, '' )
.replace( /\u00A0/g, ' ' )
.trim();
if ( text.length ) {
return true;
}
return !!element.querySelector?.( 'img, audio, video, iframe, embed, object, svg, canvas, hr, input, textarea, select, button, table' );
}
function hasMeaningfulComponentBindingValue( value, source ) {
if ( value === undefined || value === null ) return false;
if ( source === 'plaintext' ) {
return String( value )
.replace( /\uFEFF/g, '' )
.replace( /\u00A0/g, ' ' )
.trim()
.length > 0;
}
if ( source === 'html' ) {
const html = String( value || '' );
if ( !html.trim() ) {
return false;
}
const probe = document.createElement( 'div' );
probe.innerHTML = html;
return hasMeaningfulManagedComponentContent( probe );
}
return !!value;
}
function componentHasMeaningfulAttributeContent( componentDefinition, attributeState ) {
if ( !componentDefinition || !Array.isArray( componentDefinition.bindings ) || !attributeState ) {
return false;
}
return componentDefinition.bindings.some( binding => {
if ( !binding || ( binding.source !== 'html' && binding.source !== 'plaintext' ) ) {
return false;
}
return hasMeaningfulComponentBindingValue(
getValueByPath( attributeState, binding.path ),
binding.source
);
} );
}
function resolveAttributeStateFromRawContent( rawContent ) {
const content = typeof rawContent === 'string' ? rawContent.trim() : '';
if ( !content || !window.wp?.blocks?.parse ) {
return null;
}
try {
const parsedBlocks = wp.blocks.parse( content );
const parsedBlock = Array.isArray( parsedBlocks ) ? parsedBlocks[ 0 ] : null;
return isPlainObject( parsedBlock?.attributes ) ? parsedBlock.attributes : {};
} catch ( error ) {
console.error( 'FrontEdit Schema: failed to parse raw block content for rendered snapshot reconciliation', error );
return null;
}
}
/**
* Reconcile a cloned live block snapshot against canonical schema attrs.
*
* Keeps full-page/theme-aware DOM classes from the rendered block while removing
* empty optional missingUI shells that no longer exist in the serialized block
* payload. This prevents batch-edit state from restoring stale optional markup.
*
* @param {HTMLElement} rootElement Snapshot root to mutate.
* @param {Object} handler Active edit handler.
* @param {Object} options Reconciliation options.
* @returns {HTMLElement|null} The mutated root element, or null when no schema applies.
*/
function reconcileRenderedSnapshot( rootElement, handler, options = {} ) {
if ( !isElementNode( rootElement ) || !handler ) return null;
const schema = getSchemaForHandler( handler, schemaRegistry );
if ( !schema || !Array.isArray( schema.components ) ) {
return null;
}
const attributeState = resolveComponentAttributeState( options )
|| resolveAttributeStateFromRawContent( options.rawContent || '' );
if ( !attributeState ) {
return rootElement;
}
schema.components.forEach( componentDefinition => {
if ( !supportsGhostManagedTextComponent( componentDefinition ) ) {
return;
}
const shouldMaterialize = shouldMaterializeGhostComponent( componentDefinition, {
attributeState,
} );
const hasCanonicalContent = componentHasMeaningfulAttributeContent( componentDefinition, attributeState );
if ( shouldMaterialize && hasCanonicalContent ) {
return;
}
findScopedElements( rootElement, componentDefinition.selector ).forEach( element => {
if ( hasMeaningfulManagedComponentContent( element ) ) {
return;
}
element.remove();
} );
} );
return rootElement;
}
/**
* Synchronize schema-managed optional component shell state.
*
* @param {HTMLElement} element Candidate schema component element.
* @param {?Object} componentDefinition Optional schema component definition.
* @param {Object} options Sync options.
* @param {boolean} options.removeInactiveEmpty Remove empty inactive shells.
* @param {boolean} options.forceRemoveInactive Remove inactive empties even when block root is still marked editing-active.
* @returns {void}
*/
function syncManagedMissingComponentState( element, componentDefinition = null, options = {} ) {
if ( !isElementNode( element ) ) return;
const managesGhostState = !!element.getAttribute( GHOST_COMPONENT_ATTR )
|| supportsGhostManagedTextComponent( componentDefinition );
if ( !managesGhostState ) return;
const persistGhostFlag = !!element.getAttribute( GHOST_COMPONENT_ATTR );
if ( hasMeaningfulManagedComponentContent( element ) ) {
element.classList.remove( GHOST_CLASS );
element.removeAttribute( GHOST_FLAG_ATTR );
return;
}
const removeInactiveEmpty = options?.removeInactiveEmpty !== false;
const forceRemoveInactive = options?.forceRemoveInactive === true;
const ownerElement = element.closest( '[data-mwp-sfe-uuid]' );
const ownerIsInlineEditing = !!(
isElementNode( ownerElement ) && (
ownerElement.classList.contains( 'mwp-sfe-element-active' )
|| ownerElement.classList.contains( 'mwp-sfe-editing-active' )
|| ownerElement.classList.contains( 'mwp-sfe-inline-editor' )
)
);
const isInactiveManagedComponent = (
element.getAttribute( 'contenteditable' ) !== 'true'
&& !element.getAttribute( 'data-mwp-sfe-active-component' )
&& !element.classList.contains( 'mwp-sfe-component-active' )
&& !element.classList.contains( 'mwp-sfe-inline-editor' )
&& !element.classList.contains( 'mwp-sfe-editable-component' )
);
if ( removeInactiveEmpty && isInactiveManagedComponent && ( forceRemoveInactive || !ownerIsInlineEditing ) ) {
element.remove();
return;
}
element.classList.add( GHOST_CLASS );
if ( persistGhostFlag ) {
element.setAttribute( GHOST_FLAG_ATTR, '1' );
return;
}
element.removeAttribute( GHOST_FLAG_ATTR );
}
/**
* Resolve the schema-declared placement for one optional ghost component.
*
* @param {Object} componentDefinition Normalized component schema.
* @param {Object} options Runtime block attribute state.
* @returns {'append'|'prepend'} Effective ghost placement.
*/
function resolveGhostPlacement( componentDefinition, options = {} ) {
const missingUI = componentDefinition?.missingUI || null;
const placementWhen = isPlainObject( missingUI?.placementWhen ) ? missingUI.placementWhen : null;
const attributeState = resolveComponentAttributeState( options );
if ( placementWhen?.path && attributeState && getValueByPath( attributeState, placementWhen.path ) === placementWhen.equals ) {
return placementWhen.placement;
}
return missingUI?.placement || 'append';
}
/**
* Materialize one schema-managed optional text component when its canonical
* node is absent from rendered markup.
*
* @param {HTMLElement} rootElement Block root element.
* @param {Object} componentDefinition Normalized component schema.
* @param {Object} options Runtime block attribute state.
* @returns {HTMLElement|null} Materialized ghost element, if active.
*/
function materializeGhostComponentElement( rootElement, componentDefinition, options = {} ) {
if (
!isElementNode( rootElement ) ||
!componentDefinition ||
componentDefinition.type !== 'text' ||
componentDefinition?.missingUI?.mode !== 'ghost'
) {
return null;
}
const mountElement = resolveGhostMountElement( rootElement, componentDefinition.missingUI.mountSelector );
if ( !mountElement ) {
removeGhostComponentElements( rootElement, componentDefinition.id );
return null;
}
const existingManaged = getManagedMissingComponentElements( rootElement, componentDefinition.id );
let ghostElement = existingManaged.find( element => element.parentNode ) || null;
existingManaged.slice( ghostElement ? 1 : 0 ).forEach( element => element.remove() );
const desiredTag = componentDefinition.missingUI.tag.toUpperCase();
if ( ghostElement && ghostElement.tagName !== desiredTag ) {
ghostElement.remove();
ghostElement = null;
}
if ( !ghostElement ) {
ghostElement = document.createElement( componentDefinition.missingUI.tag );
}
applyGhostShellAttributes( ghostElement, componentDefinition );
if ( ghostElement.parentNode !== mountElement ) {
insertGhostElement( mountElement, ghostElement, resolveGhostPlacement( componentDefinition, options ) );
}
// Sync ghost lifecycle only after the shell is attached so owner-state
// checks can see whether the block is actually active. When this runs
// outside an edit session, empty optional shells are removed immediately
// instead of lingering as bare DOM nodes.
syncManagedMissingComponentState( ghostElement, componentDefinition );
return ghostElement.parentNode ? ghostElement : null;
}
function materializeRepeatedComponentElements( rootElement, componentDefinition ) {
if (
!isElementNode( rootElement ) ||
!componentDefinition?.repeat ||
componentDefinition.repeat.mode !== 'tree_path'
) {
return [];
}
const listTracker = SFE.ListBlockTracker || null;
if ( listTracker && typeof listTracker.syncEditableTextSurfaces === 'function' ) {
listTracker.syncEditableTextSurfaces( rootElement );
}
return findRealScopedElements( rootElement, componentDefinition.selector );
}
function resolveSchemaComponentElements( rootElement, componentDefinition, options = {} ) {
if ( !isElementNode( rootElement ) || !componentDefinition ) return [];
const {
materializeGhost = false,
} = options;
let realMatches = findRealScopedElements( rootElement, componentDefinition.selector );
if ( !realMatches.length ) {
realMatches = materializeRepeatedComponentElements( rootElement, componentDefinition );
}
if ( realMatches.length ) {
removeGhostComponentElements( rootElement, componentDefinition.id );
return realMatches;
}
if ( componentDefinition.type !== 'text' || componentDefinition?.missingUI?.mode !== 'ghost' ) {
removeGhostComponentElements( rootElement, componentDefinition.id );
return [];
}
if ( !shouldMaterializeGhostComponent( componentDefinition, options ) ) {
removeGhostComponentElements( rootElement, componentDefinition.id );
return [];
}
const ghostElement = materializeGhost
? materializeGhostComponentElement( rootElement, componentDefinition, options )
: getManagedMissingComponentElement( rootElement, componentDefinition.id );
return ghostElement ? [ ghostElement ] : [];
}
function resolveLiveComponentElement( rootElement, component ) {
if ( !isElementNode( rootElement ) || !component || typeof component !== 'object' ) {
return null;
}
const existingElement = component.element;
if ( isElementNode( existingElement ) && rootElement.contains( existingElement ) ) {
return existingElement;
}
const selector = typeof component.selector === 'string' ? component.selector.trim() : '';
if ( selector ) {
const resolvedBySelector = findScopedElement( rootElement, selector );
if ( resolvedBySelector ) {
return resolvedBySelector;
}
}
if ( typeof component.id === 'string' && component.id ) {
const ghostElement = getManagedMissingComponentElement( rootElement, component.id );
if ( ghostElement ) {
return ghostElement;
}
}
return isElementNode( existingElement ) ? existingElement : null;
}
function getNthOfTypeIndex( node ) {
let index = 1;
let cursor = node;
while ( cursor && cursor.previousElementSibling ) {
cursor = cursor.previousElementSibling;
if ( cursor.tagName === node.tagName ) {
index++;
}
}
return index;
}
function buildSelectorWithinRoot( rootElement, targetElement ) {
if ( !isElementNode( rootElement ) || !isElementNode( targetElement ) ) return '';
if ( targetElement === rootElement ) return ':scope';
const segments = [];
let cursor = targetElement;
while ( cursor && cursor !== rootElement ) {
const tag = cursor.tagName.toLowerCase();
const nth = getNthOfTypeIndex( cursor );
segments.unshift( `${ tag }:nth-of-type(${ nth })` );
cursor = cursor.parentElement;
}
if ( cursor !== rootElement ) return '';
return segments.join( ' > ' );
}
function resolveRepeatedContext( rootElement, element, repeatDefinition ) {
if ( repeatDefinition?.mode === 'tree_path' ) {
const itemSelector = typeof repeatDefinition.itemSelector === 'string'
? repeatDefinition.itemSelector.trim()
: '';
const pathKey = typeof repeatDefinition.pathKey === 'string'
? repeatDefinition.pathKey.trim()
: 'path';
const itemNode = itemSelector ? element.closest( itemSelector ) : null;
if ( !itemNode || !rootElement.contains( itemNode ) ) {
return null;
}
const indexes = [];
let currentItem = itemNode;
while ( currentItem && rootElement.contains( currentItem ) ) {
const parentList = currentItem.parentElement;
if ( !isElementNode( parentList ) ) {
return null;
}
const siblingItems = Array.from( parentList.children || [] ).filter( child => child.tagName === 'LI' );
const itemIndex = siblingItems.indexOf( currentItem );
if ( itemIndex < 0 ) {
return null;
}
indexes.unshift( itemIndex );
const nextItem = parentList.closest( itemSelector );
if ( !nextItem || !rootElement.contains( nextItem ) ) {
break;
}
currentItem = nextItem;
}
if ( !indexes.length ) {
return null;
}
const humanPath = indexes.map( index => index + 1 ).join( '.' );
return {
[ pathKey ]: indexes.join( '_' ),
pathLabel: humanPath,
depth: indexes.length - 1,
};
}
const rowNodes = findScopedElements( rootElement, repeatDefinition.rowSelector );
const rowNode = element.closest( repeatDefinition.rowSelector );
if ( !rowNode ) return null;
const rowIndex = rowNodes.indexOf( rowNode );
if ( rowIndex < 0 ) return null;
const rowChildren = Array.from( rowNode.children ).filter( isElementNode );
let columnIndex = Number.isInteger( element?.cellIndex ) ? element.cellIndex : -1;
// Prefer the DOM cellIndex (true sibling position) so column targets stay aligned
// across mixed th/td rows; fall back to selector-filtered indexing for non-table cases.
if (
columnIndex < 0
|| columnIndex >= rowChildren.length
|| rowChildren[ columnIndex ] !== element
) {
const cellNodes = rowChildren.filter( child => child.matches( repeatDefinition.cellSelector ) );
columnIndex = cellNodes.indexOf( element );
}
if ( columnIndex < 0 ) return null;
return {
row: rowIndex,
column: columnIndex,
};
}
function applyContextTokens( template, context ) {
return template.replace( /\{([a-zA-Z0-9_]+)\}/g, ( _, token ) => {
if ( Object.prototype.hasOwnProperty.call( context, token ) ) {
return String( context[ token ] );
}
return '';
} );
}
function buildRuntimeComponentId( componentDefinition, context, fallbackIndex ) {
if ( !componentDefinition.repeat ) {
return componentDefinition.id;
}
if ( typeof context?.path === 'string' && context.path.trim() ) {
return `${ componentDefinition.id }__p${ context.path.trim() }`;
}
const parts = [];
if ( Number.isInteger( context.row ) ) {
parts.push( `r${ context.row }` );
}
if ( Number.isInteger( context.column ) ) {
parts.push( `c${ context.column }` );
}
if ( !parts.length ) {
parts.push( String( fallbackIndex ) );
}
return `${ componentDefinition.id }__${ parts.join( '_' ) }`;
}
function resolveRuntimeFormatTarget( targetDefinition, context ) {
if ( typeof targetDefinition === 'string' ) {
return targetDefinition;
}
if ( !isPlainObject( targetDefinition ) ) return '';
if ( targetDefinition.scope === 'block' ) {
return 'block';
}
if ( targetDefinition.scope === 'component' ) {
return 'selection';
}
if ( targetDefinition.scope === 'column' ) {
const selector = typeof targetDefinition.selector === 'string' ? targetDefinition.selector.trim() : '';
const contextKey = targetDefinition.contextKey || 'column';
const contextValue = Number.parseInt( context[ contextKey ], 10 );
if ( !selector || !Number.isInteger( contextValue ) || contextValue < 0 ) {
return '';
}
return `all:${ selector }:nth-child(${ contextValue + 1 })`;
}
if ( targetDefinition.selector ) {
return targetDefinition.selector;
}
return '';
}
function buildRuntimeEditorOptions( componentDefinition, context ) {
const editorDefinition = componentDefinition.editor;
if ( !editorDefinition ) {
return null;
}
const editorOptions = {};
if ( editorDefinition.enterMode ) {
editorOptions.enterMode = editorDefinition.enterMode;
}
if ( editorDefinition.linkUIMode ) {
editorOptions.linkUIMode = editorDefinition.linkUIMode;
}
if ( isPlainObject( editorDefinition.tabMode ) ) {
editorOptions.tabMode = { ...editorDefinition.tabMode };
}
if ( isPlainObject( editorDefinition.formatTargets ) ) {
const formatTargets = {};
Object.keys( editorDefinition.formatTargets ).forEach( key => {
const resolved = resolveRuntimeFormatTarget( editorDefinition.formatTargets[ key ], context );
if ( resolved ) {
formatTargets[ key ] = resolved;
}
} );
if ( Object.keys( formatTargets ).length ) {
editorOptions.formatTargets = formatTargets;
}
}
if ( Array.isArray( editorDefinition.formats ) ) {
editorOptions.formats = cloneEditorFormats( editorDefinition.formats );
}
if ( isPlainObject( editorDefinition.inlineFormatCapabilities ) ) {
const inlineFormatCapabilities = cloneInlineFormatCapabilities( editorDefinition.inlineFormatCapabilities );
if ( inlineFormatCapabilities ) {
editorOptions.inlineFormatCapabilities = inlineFormatCapabilities;
}
}
if ( isPlainObject( editorDefinition.attributeCapabilities ) ) {
const attributeCapabilities = cloneEditorAttributeCapabilities( editorDefinition.attributeCapabilities );
if ( attributeCapabilities ) {
editorOptions.attributeCapabilities = attributeCapabilities;
}
}
if ( Array.isArray( editorDefinition.operations ) ) {
const operations = cloneEditorOperations( editorDefinition.operations );
if ( operations ) {
editorOptions.operations = operations;
}
}
if ( isPlainObject( editorDefinition.options ) ) {
editorOptions.options = { ...editorDefinition.options };
}
return Object.keys( editorOptions ).length ? editorOptions : null;
}
function buildRuntimeFromSchema( rootElement, schema, options = {} ) {
if ( !schema || !isElementNode( rootElement ) ) return null;
const runtime = {
schemaHandlerId: schema.handlerId,
blockName: schema.block.name,
mode: 'text',
editableComponents: [],
componentsById: {},
mediaComponent: null,
primaryTextComponent: null,
};
let defaultAssigned = false;
let hasTextComponent = false;
let hasFileComponent = false;
schema.components.forEach( componentDefinition => {
const matches = resolveSchemaComponentElements( rootElement, componentDefinition, {
materializeGhost: true,
blockAttributes: options.blockAttributes,
attributeChanges: options.attributeChanges,
} );
if ( !matches.length ) return;
matches.forEach( ( matchedElement, matchIndex ) => {
const context = componentDefinition.repeat
? resolveRepeatedContext( rootElement, matchedElement, componentDefinition.repeat )
: {};
if ( componentDefinition.repeat && !context ) {
return;
}
const resolvedBindings = componentDefinition.bindings.map( binding => ( {
path: applyContextTokens( binding.path, context || {} ),
source: binding.source,
resolved: !!binding.resolved,
value: typeof binding.value === 'string' ? binding.value : '',
} ) );
const selector = buildSelectorWithinRoot( rootElement, matchedElement );
if ( !selector ) return;
const runtimeId = buildRuntimeComponentId( componentDefinition, context || {}, matchIndex );
const editorOptions = buildRuntimeEditorOptions( componentDefinition, context || {} );
const label = buildRuntimeComponentLabel( componentDefinition, context || {} );
if ( componentDefinition.type === 'file' ) {
hasFileComponent = true;
const target = componentDefinition.target || null;
if ( !target ) return;
const urlBinding = resolvedBindings.find( binding => binding.source === 'url' ) || null;
const idBinding = resolvedBindings.find( binding => binding.source === 'id' ) || null;
const mediaDescriptor = {
componentId: runtimeId,
scopeSelector: selector,
targetSelector: target.selector,
attribute: target.attribute,
mediaType: target.mediaType,
};
const editableComponent = {
id: runtimeId,
label,
selector,
element: matchedElement,
type: 'file',
default: !!componentDefinition.default && !defaultAssigned,
target: {
selector: target.selector,
attribute: target.attribute,
mediaType: target.mediaType,
},
mediaDescriptor,
urlBindingPath: urlBinding?.path || '',
idBindingPath: idBinding?.path || '',
};
if ( editorOptions ) {
editableComponent.editor = editorOptions;
}
if ( editableComponent.default ) {
defaultAssigned = true;
}
if ( componentDefinition.uiEditable !== false ) {
runtime.editableComponents.push( editableComponent );
}
runtime.componentsById[ runtimeId ] = {
id: runtimeId,
label,
element: matchedElement,
selector,
type: 'file',
uiEditable: componentDefinition.uiEditable !== false,
bindings: resolvedBindings,
schemaSelector: componentDefinition.selector,
mediaDescriptor,
target: {
selector: target.selector,
attribute: target.attribute,
mediaType: target.mediaType,
},
editorOptions: editorOptions || null,
};
if ( !runtime.mediaComponent ) {
runtime.mediaComponent = {
id: runtimeId,
selector,
mediaDescriptor,
target: {
selector: target.selector,
attribute: target.attribute,
mediaType: target.mediaType,
},
bindings: resolvedBindings,
};
}
return;
}
const contentBinding = resolvedBindings.find( binding => (
binding.source === 'html' ||
binding.source === 'plaintext' ||
binding.source === 'list_block'
) );
if ( !contentBinding ) return;
hasTextComponent = true;
const editableComponent = {
id: runtimeId,
label,
selector,
element: matchedElement,
attribute: contentBinding.path,
type: 'text',
default: !!componentDefinition.default && !defaultAssigned,
isGhost: isGhostElement( matchedElement ),
};
if ( componentDefinition.placeholder ) {
editableComponent.placeholder = componentDefinition.placeholder;
}
if ( componentDefinition.missingUI ) {
editableComponent.missingUI = componentDefinition.missingUI;
}
editableComponent.required = componentDefinition.required === true;
if ( editorOptions ) {
editableComponent.editor = editorOptions;
}
if ( editableComponent.default ) {
defaultAssigned = true;
}
if ( componentDefinition.uiEditable !== false ) {
runtime.editableComponents.push( editableComponent );
}
runtime.componentsById[ runtimeId ] = {
id: runtimeId,
label,
element: matchedElement,
selector,
type: 'text',
uiEditable: componentDefinition.uiEditable !== false,
bindings: resolvedBindings,
schemaSelector: componentDefinition.selector,
missingUI: componentDefinition.missingUI || null,
required: componentDefinition.required === true,
editorOptions: editorOptions || null,
};
} );
} );
if ( !runtime.editableComponents.length ) {
return null;
}
if ( !runtime.editableComponents.some( component => component.default ) ) {
runtime.editableComponents[ 0 ].default = true;
}
const primaryTextComponent = runtime.editableComponents.find( component => component.type === 'text' && component.default )
|| runtime.editableComponents.find( component => component.type === 'text' )
|| null;
if ( primaryTextComponent ) {
runtime.primaryTextComponent = {
selector: primaryTextComponent.selector,
attribute: primaryTextComponent.attribute,
};
}
if ( hasTextComponent && hasFileComponent ) {
runtime.mode = 'mixed';
} else if ( hasTextComponent ) {
runtime.mode = 'text';
} else if ( hasFileComponent ) {
runtime.mode = 'media';
} else {
return null;
}
return runtime;
}
function createSchemaAwareHandler( handler, runtime ) {
const baseConfig = isPlainObject( handler.client_config ) ? { ...handler.client_config } : {};
const runtimeHandler = {
...handler,
client_config: baseConfig,
};
if ( runtime.mode === 'text' || runtime.mode === 'mixed' ) {
runtimeHandler.contentType = 'text';
runtimeHandler.client_config.editableComponents = runtime.editableComponents;
return runtimeHandler;
}
if ( runtime.mode === 'media' && runtime.mediaComponent ) {
runtimeHandler.contentType = 'media';
runtimeHandler.client_config.editableComponents = runtime.editableComponents;
return runtimeHandler;
}
return runtimeHandler;
}
function readTextAlignmentFromElement( element ) {
if ( !isElementNode( element ) || !element.classList ) return undefined;
const dataAlign = typeof element.getAttribute === 'function'
? String( element.getAttribute( 'data-align' ) || '' ).trim().toLowerCase()
: '';
if ( dataAlign === 'left' || dataAlign === 'center' || dataAlign === 'right' || dataAlign === 'justify' ) {
return dataAlign;
}
if ( element.classList.contains( 'has-text-align-justify' ) ) return 'justify';
if ( element.classList.contains( 'has-text-align-right' ) ) return 'right';
if ( element.classList.contains( 'has-text-align-center' ) ) return 'center';
if ( element.classList.contains( 'has-text-align-left' ) ) return 'left';
return undefined;
}
function isVideoUrl( url ) {
return /\.(mp4|webm|ogv|mov|avi|wmv|m4v)(\?.*)?$/i.test( String( url || '' ) );
}
function splitBindingPath( path ) {
return String( path || '' )
.split( '.' )
.map( segment => segment.trim() )
.filter( Boolean )
.map( segment => ( /^\d+$/.test( segment ) ? Number.parseInt( segment, 10 ) : segment ) );
}
/**
* Determine whether one existing nested attribute container matches the
* structure required by the next path segment.
*
* WordPress can round-trip empty nested style objects such as
* `style.typography` back into array-shaped containers. When that happens we
* must coerce the container back to an object before assigning a nested key,
* otherwise JSON serialization silently drops string-key writes on arrays.
*
* @param {*} value Existing nested container candidate.
* @param {number|string} nextKey Upcoming path segment.
* @returns {boolean} True when the container already has the required shape.
*/
function isCompatiblePathContainer( value, nextKey ) {
return ( typeof nextKey === 'number' )
? Array.isArray( value )
: isPlainObject( value );
}
/**
* Determine whether one nested attribute value is structurally empty.
*
* Empty objects/arrays left behind after unsetting one deep attribute should
* be pruned so default/unset block attrs disappear cleanly instead of
* persisting as `style: { typography: [] }`.
*
* @param {*} value Candidate nested value.
* @returns {boolean} True when the value is an empty container.
*/
function isEmptyPathContainer( value ) {
if ( Array.isArray( value ) ) {
return value.length === 0 && Object.keys( value ).length === 0;
}
if ( !isPlainObject( value ) ) {
return false;
}
return Object.keys( value ).length === 0;
}
function setValueByPath( target, path, value ) {
const parts = splitBindingPath( path );
if ( !parts.length ) return;
let cursor = target;
const parentTrail = [];
for ( let i = 0; i < parts.length - 1; i++ ) {
const key = parts[ i ];
const nextKey = parts[ i + 1 ];
if ( typeof key === 'number' ) {
if ( !Array.isArray( cursor ) ) return;
if (
cursor[ key ] === undefined ||
cursor[ key ] === null ||
!isCompatiblePathContainer( cursor[ key ], nextKey )
) {
cursor[ key ] = ( typeof nextKey === 'number' ) ? [] : {};
}
parentTrail.push( { container: cursor, key } );
cursor = cursor[ key ];
continue;
}
if ( !isPlainObject( cursor ) && !Array.isArray( cursor ) ) return;
if (
cursor[ key ] === undefined ||
cursor[ key ] === null ||
!isCompatiblePathContainer( cursor[ key ], nextKey )
) {
cursor[ key ] = ( typeof nextKey === 'number' ) ? [] : {};
}
parentTrail.push( { container: cursor, key } );
cursor = cursor[ key ];
}
const finalKey = parts[ parts.length - 1 ];
if ( typeof finalKey === 'number' ) {
if ( !Array.isArray( cursor ) ) return;
cursor[ finalKey ] = value;
return;
}
if ( value === undefined || value === null ) {
if ( isPlainObject( cursor ) || Array.isArray( cursor ) ) {
delete cursor[ finalKey ];
for ( let i = parentTrail.length - 1; i >= 0; i-- ) {
const parentEntry = parentTrail[ i ];
const childValue = parentEntry?.container?.[ parentEntry.key ];
if ( !isEmptyPathContainer( childValue ) ) {
break;
}
delete parentEntry.container[ parentEntry.key ];
}
}
return;
}
cursor[ finalKey ] = value;
}
function getValueByPath( source, path ) {
const parts = splitBindingPath( path );
if ( !parts.length ) return undefined;
let cursor = source;
for ( let i = 0; i < parts.length; i++ ) {
const key = parts[ i ];
if ( cursor === undefined || cursor === null ) {
return undefined;
}
if ( typeof key === 'number' ) {
if ( !Array.isArray( cursor ) ) {
return undefined;
}
cursor = cursor[ key ];
continue;
}
if ( !isPlainObject( cursor ) && !Array.isArray( cursor ) ) {
return undefined;
}
cursor = cursor[ key ];
}
return cursor;
}
function stripEditorPlaceholderChars( value ) {
return ( typeof value === 'string' ) ? value.replace( /\uFEFF/g, '' ) : value;
}
function extractBindingValue( binding, component, editorState, componentMeta = null ) {
const ElementPrep = SFE.ElementPrep;
const element = component?.element || null;
const editorOptions = isPlainObject( componentMeta?.editorOptions )
? componentMeta.editorOptions
: null;
const extractionOptions = isPlainObject( editorOptions?.options )
? editorOptions.options
: null;
if ( binding.source === 'url' ) {
const mediaChanges = element?._mwpMediaChanges || editorState?.element?._mwpMediaChanges || null;
if ( !mediaChanges ) {
return undefined;
}
if ( binding.resolved ) {
const resolvedValueKey = binding.value === 'width'
? 'resolvedWidth'
: ( binding.value === 'height' ? 'resolvedHeight' : 'resolvedUrl' );
const resolvedValue = mediaChanges?.[ resolvedValueKey ];
return ( resolvedValue === undefined || resolvedValue === null ) ? undefined : resolvedValue;
}
return mediaChanges.url || undefined;
}
if ( binding.source === 'id' ) {
const idValue = element?._mwpMediaChanges?.id ?? editorState?.element?._mwpMediaChanges?.id;
return ( idValue === undefined || idValue === null ) ? undefined : idValue;
}
if ( binding.source === 'media_type' ) {
const urlValue = element?._mwpMediaChanges?.url || editorState?.element?._mwpMediaChanges?.url || '';
if ( typeof urlValue !== 'string' || !urlValue.trim() ) {
return undefined;
}
return isVideoUrl( urlValue ) ? 'video' : 'image';
}
if ( !element || !ElementPrep || typeof ElementPrep.clean !== 'function' ) {
return undefined;
}
const cleaned = ElementPrep.clean( element, {
removeIdentity: true,
removeControls: true,
clone: true,
} );
if ( binding.source === 'html' ) {
let html = cleaned.innerHTML;
if ( extractionOptions?.preserveNewlines ) {
const clone = cleaned.cloneNode( true );
clone.querySelectorAll( 'br' ).forEach( br => {
br.replaceWith( '\n' );
} );
html = clone.innerHTML;
}
if ( extractionOptions?.newlinesToBR && typeof html === 'string' ) {
html = html.replace( /\n/g, '
' );
}
if ( typeof html === 'string' ) {
html = html.replace( /(?:\u00A0| | )/g, ' ' );
}
return stripEditorPlaceholderChars( html );
}
if ( binding.source === 'plaintext' ) {
return stripEditorPlaceholderChars( cleaned.textContent.replace( /\u00A0/g, ' ' ).trim() );
}
if ( binding.source === 'textalignment' || binding.source === 'columnalignment' ) {
return readTextAlignmentFromElement( element );
}
return undefined;
}
function deepCloneAttributes( attrs ) {
try {
return JSON.parse( JSON.stringify( attrs || {} ) );
} catch ( error ) {
return { ...( attrs || {} ) };
}
}
/**
* Clone one attribute change payload value so schema merges never retain
* live references back into editor state.
*
* @param {*} value Attribute change value.
* @returns {*} Cloned value when structured, otherwise the original scalar.
*/
function cloneAttributeChangeValue( value ) {
if ( Array.isArray( value ) || isPlainObject( value ) ) {
try {
return JSON.parse( JSON.stringify( value ) );
} catch ( error ) {
if ( Array.isArray( value ) ) {
return [ ...value ];
}
return { ...value };
}
}
return value;
}
/**
* Apply unsaved editor attr changes onto canonical block attrs using the
* same dotted-path semantics exposed through the schema contract.
*
* @param {?Object} baseAttributes Canonical parsed block attrs.
* @param {?Object} attributeChanges Unsaved editor attr mutations.
* @returns {Object} Merged attribute snapshot.
*/
function applyAttributeChangesToAttributes( baseAttributes, attributeChanges ) {
const mergedAttributes = deepCloneAttributes( baseAttributes || {} );
if ( !isPlainObject( attributeChanges ) ) {
return mergedAttributes;
}
Object.keys( attributeChanges ).forEach( rawPath => {
const path = typeof rawPath === 'string' ? rawPath.trim() : '';
if ( !path ) {
return;
}
const value = attributeChanges[ rawPath ];
if (
path.indexOf( '.' ) === -1 &&
isPlainObject( value ) &&
isPlainObject( mergedAttributes[ path ] )
) {
mergedAttributes[ path ] = applyAttributeChangesToAttributes(
mergedAttributes[ path ],
value
);
return;
}
setValueByPath( mergedAttributes, path, cloneAttributeChangeValue( value ) );
} );
return mergedAttributes;
}
function isListElement( element ) {
return !!element && (
element.tagName === 'UL' ||
element.tagName === 'OL'
);
}
function findSchemaListBindingState( rootElement, editorState, runtime ) {
const editableComponents = Array.isArray( editorState?.editableComponents )
? editorState.editableComponents
: [];
for ( const component of editableComponents ) {
const componentMeta = runtime?.componentsById?.[ component.id ];
if ( !componentMeta || !Array.isArray( componentMeta.bindings ) ) {
continue;
}
const hasListBinding = componentMeta.bindings.some( binding => binding.source === 'list_block' );
if ( !hasListBinding ) {
continue;
}
const liveComponentElement = resolveLiveComponentElement( rootElement, component );
if ( liveComponentElement && component.element !== liveComponentElement ) {
component.element = liveComponentElement;
}
const componentElement = liveComponentElement || component.element || null;
let listElement = null;
if ( isListElement( componentElement ) ) {
listElement = componentElement;
} else if ( componentElement && typeof componentElement.querySelector === 'function' ) {
listElement = componentElement.querySelector( ':scope > ul, :scope > ol' )
|| componentElement.querySelector( 'ul, ol' );
}
if ( !isListElement( listElement ) ) {
return {
component,
componentMeta,
listElement: null,
};
}
return {
component,
componentMeta,
listElement,
};
}
return null;
}
function buildRuntimeComponentLabel( componentDefinition, context ) {
if ( typeof context?.pathLabel === 'string' && context.pathLabel.trim() ) {
return `${ componentDefinition.label } (${ context.pathLabel.trim() })`;
}
if ( Number.isInteger( context?.row ) && Number.isInteger( context?.column ) ) {
return `${ componentDefinition.label } (${ context.row + 1 },${ context.column + 1 })`;
}
return componentDefinition.label;
}
/**
* Determine whether a list item contains meaningful inline or nested-list
* content after placeholder artifacts have been stripped.
*
* Empty parent items that only own empty descendants should still fail
* required validation, while parent items with meaningful nested list content
* remain valid even if their own inline text span is blank.
*
* @param {HTMLElement|null} listItem List item to inspect.
* @returns {boolean} True when the list item is meaningfully populated.
*/
function listItemHasMeaningfulSchemaContent( listItem ) {
if ( !isElementNode( listItem ) || listItem.tagName !== 'LI' ) {
return false;
}
const directText = Array.from( listItem.childNodes || [] ).some( node => {
if ( !node ) return false;
if ( node.nodeType === Node.TEXT_NODE ) {
return String( node.textContent || '' )
.replace( /\uFEFF/g, '' )
.replace( /\u00A0/g, ' ' )
.trim()
.length > 0;
}
if ( node.nodeType !== Node.ELEMENT_NODE ) {
return false;
}
if ( node.tagName === 'OL' || node.tagName === 'UL' || node.tagName === 'BR' ) {
return false;
}
return hasMeaningfulManagedComponentContent( node );
} );
if ( directText ) {
return true;
}
const nestedLists = Array.from( listItem.children || [] ).filter( child => (
child.tagName === 'OL' || child.tagName === 'UL'
) );
return nestedLists.some( nestedList => (
Array.from( nestedList.children || [] ).some( child => listItemHasMeaningfulSchemaContent( child ) )
) );
}
/**
* Validate that a required list component does not contain empty list items.
*
* @param {Object|null} listBindingState Resolved list binding state.
* @returns {string|null} Validation error message when the list is invalid.
*/
function validateRequiredSchemaListBindingState( listBindingState ) {
const componentMeta = listBindingState?.componentMeta || null;
const listElement = listBindingState?.listElement || null;
if ( !isRequiredTextComponent( componentMeta ) ) {
return null;
}
if ( !isListElement( listElement ) ) {
return `${ listBindingState?.component?.label || 'Required text field' } is missing and cannot be saved empty. Add some text or cancel to restore original.`;
}
const allListItems = Array.from( listElement.querySelectorAll( 'li' ) );
const hasEmptyItem = allListItems.some( listItem => !listItemHasMeaningfulSchemaContent( listItem ) );
if ( hasEmptyItem ) {
return `${ listBindingState?.component?.label || 'Required text field' } cannot contain empty items. Add text to each item or cancel to restore original.`;
}
return null;
}
function buildSchemaListPayload( listBindingState, editorState, attrChanges ) {
const ListBlockTracker = SFE.ListBlockTracker;
const listElement = listBindingState?.listElement || null;
const tracker = editorState?.listTracker
|| listElement?._mwpListTracker
|| ListBlockTracker?.active
|| null;
if (
!listElement ||
!ListBlockTracker ||
typeof ListBlockTracker.parseListToBlock !== 'function' ||
!tracker
) {
return null;
}
const parsedListBlock = ListBlockTracker.parseListToBlock( listElement, tracker );
if ( !parsedListBlock || typeof parsedListBlock !== 'object' ) {
return null;
}
const safeAttrChanges = isPlainObject( attrChanges ) ? { ...attrChanges } : {};
if ( Object.prototype.hasOwnProperty.call( safeAttrChanges, 'ordered' ) ) {
delete safeAttrChanges.ordered;
}
const nextBlock = {
...parsedListBlock,
attributes: applyAttributeChangesToAttributes(
parsedListBlock.attributes || {},
safeAttrChanges
),
};
let serialized = '';
try {
serialized = wp.blocks.serialize( [ nextBlock ] );
} catch ( error ) {
console.error( 'FrontEdit Schema: wp.blocks.serialize failed for list binding', error );
return null;
}
return {
_type: 'raw_block_content',
rawContent: serialized,
};
}
function applySchemaBindingToAttributes( attrs, binding, component, editorState, componentMeta = null ) {
if ( binding.source === 'list_block' ) {
return;
}
const value = extractBindingValue( binding, component, editorState, componentMeta );
// URL/id bindings are sparse patch values; when unchanged, preserve attrs from parsed raw block content.
if (
(
binding.source === 'url'
|| binding.source === 'id'
|| binding.source === 'media_type'
) &&
( value === undefined || value === null )
) {
return;
}
setValueByPath( attrs, binding.path, value );
}
function validateRequiredSchemaTextComponents( rootElement, editorState, runtime ) {
if ( !runtime || !Array.isArray( editorState?.editableComponents ) ) {
return null;
}
for ( const component of editorState.editableComponents ) {
const componentMeta = runtime.componentsById?.[ component?.id ] || null;
if ( !isRequiredTextComponent( componentMeta ) ) {
continue;
}
const liveComponentElement = resolveLiveComponentElement( rootElement, component );
if ( liveComponentElement && component.element !== liveComponentElement ) {
component.element = liveComponentElement;
}
const componentElement = liveComponentElement || component?.element || null;
if ( !isElementNode( componentElement ) ) {
return `${ component?.label || 'Required text field' } is missing and cannot be saved empty. Add some text or cancel to restore original.`;
}
if ( !hasMeaningfulManagedComponentContent( componentElement ) ) {
return `${ component?.label || 'Required text field' } cannot be empty. Add some text or cancel to restore original.`;
}
}
return null;
}
function buildSchemaPayload( element, editorState ) {
const runtime = editorState?._mwpSchemaRuntime;
const blockState = editorState?.blockState;
if ( !runtime || !blockState?.rawContent ) return null;
if ( !window.wp?.blocks?.parse || !window.wp?.blocks?.serialize ) return null;
let parsedBlock = null;
try {
[ parsedBlock ] = wp.blocks.parse( blockState.rawContent );
} catch ( error ) {
console.error( 'FrontEdit Schema: failed to parse raw block content', error );
return null;
}
if ( !parsedBlock ) return null;
const attrChanges = {
...( isPlainObject( editorState?.attributeChanges ) ? editorState.attributeChanges : {} ),
...( isPlainObject( element?._mwpEditor?.attributeChanges ) ? element._mwpEditor.attributeChanges : {} ),
...( isPlainObject( element?._mwpMediaChanges ) ? element._mwpMediaChanges : {} ),
};
const listBindingState = findSchemaListBindingState( element, editorState, runtime );
if ( listBindingState ) {
const requiredListValidationError = validateRequiredSchemaListBindingState( listBindingState );
if ( requiredListValidationError ) {
throw new Error( requiredListValidationError );
}
const listPayload = buildSchemaListPayload( listBindingState, editorState, attrChanges );
if ( listPayload ) {
return listPayload;
}
return null;
}
const requiredValidationError = validateRequiredSchemaTextComponents( element, editorState, runtime );
if ( requiredValidationError ) {
throw new Error( requiredValidationError );
}
const newAttrs = applyAttributeChangesToAttributes(
parsedBlock.attributes || {},
attrChanges
);
if ( runtime.mode === 'media' && runtime.mediaComponent ) {
const mediaComponentMeta = runtime.componentsById?.[ runtime.mediaComponent.id ] || null;
runtime.mediaComponent.bindings.forEach( binding => {
applySchemaBindingToAttributes( newAttrs, binding, { element }, editorState, mediaComponentMeta );
} );
}
const editableComponents = Array.isArray( editorState.editableComponents )
? editorState.editableComponents
: [];
editableComponents.forEach( component => {
const componentMeta = runtime.componentsById[ component.id ];
if ( !componentMeta ) return;
const liveComponentElement = resolveLiveComponentElement( element, component );
if ( liveComponentElement && component.element !== liveComponentElement ) {
component.element = liveComponentElement;
}
const componentState = liveComponentElement
? { ...component, element: liveComponentElement }
: component;
componentMeta.bindings.forEach( binding => {
applySchemaBindingToAttributes( newAttrs, binding, componentState, editorState, componentMeta );
} );
} );
const nextBlock = {
...parsedBlock,
attributes: newAttrs,
};
let serialized = '';
try {
serialized = wp.blocks.serialize( [ nextBlock ] );
} catch ( error ) {
console.error( 'FrontEdit Schema: wp.blocks.serialize failed', error );
return null;
}
return {
_type: 'raw_block_content',
rawContent: serialized,
};
}
/**
* Sync schema placeholders and optional missingUI shell lifecycle for a block.
*
* @param {HTMLElement} rootElement Block root element.
* @param {Object} handler Active edit handler.
* @param {Object} options Runtime options.
* @param {Object|null} options.blockAttributes Canonical block attributes.
* @param {Object|null} options.attributeChanges Unsaved attribute changes.
* @param {boolean} options.removeInactiveEmpty Remove empty inactive shells.
* @returns {void}
*/
function syncSchemaPlaceholders( rootElement, handler, options = {} ) {
const placeholderApi = SFE.RichTextPlaceholder || null;
if (
!isElementNode( rootElement ) ||
!handler ||
!placeholderApi ||
typeof placeholderApi.syncElement !== 'function'
) {
return;
}
const schema = getSchemaForHandler( handler, schemaRegistry );
if ( !schema || !Array.isArray( schema.components ) ) {
return;
}
schema.components.forEach( componentDefinition => {
if ( !componentDefinition || componentDefinition.type !== 'text' ) {
return;
}
const matches = resolveSchemaComponentElements( rootElement, componentDefinition, {
materializeGhost: true,
blockAttributes: options.blockAttributes,
attributeChanges: options.attributeChanges,
} );
if ( !matches.length ) return;
matches.forEach( matchedElement => {
if (
typeof componentDefinition.placeholder === 'string' &&
componentDefinition.placeholder.trim()
) {
placeholderApi.syncElement( matchedElement, componentDefinition.placeholder );
}
syncManagedMissingComponentState( matchedElement, componentDefinition, {
removeInactiveEmpty: options.removeInactiveEmpty !== false,
} );
} );
} );
}
function syncExistingBoundPlaceholders() {
if ( typeof document === 'undefined' ) return;
document.querySelectorAll( '[data-mwp-sfe-uuid]' ).forEach( element => {
const handlers = Array.isArray( element._mwpSfeHandlers )
? element._mwpSfeHandlers
: [];
const editHandler = handlers.find( handler => handler?.capability === 'edit' ) || null;
if ( editHandler ) {
syncSchemaPlaceholders( element, editHandler );
}
} );
}
/**
* Sync missingUI shell visibility/removal for a concrete component element.
*
* @param {HTMLElement} element Component element.
* @param {?Object} componentDefinition Optional schema component definition.
* @param {Object} options Sync options.
* @param {boolean} options.removeInactiveEmpty Remove empty inactive shells.
* @returns {void}
*/
function syncManagedMissingComponentStateForElement( element, componentDefinition = null, options = {} ) {
if ( !isElementNode( element ) ) return;
syncManagedMissingComponentState( element, componentDefinition, options );
}
const schemaRegistry = buildSchemaRegistry( RAW_SCHEMA_DATA );
/**
* Resolve schema runtime metadata for an edit session.
*
* @param {HTMLElement} rootElement Block root element.
* @param {Object} handler Candidate edit handler.
* @param {Object} options Resolution options.
* @param {?Object} options.blockState Block-state payload containing attrs.
* @param {?Object} options.blockAttributes Canonical block attrs.
* @param {?Object} options.attributeChanges Unsaved attribute overrides.
* @param {boolean} options.removeInactiveEmpty Remove empty inactive shells.
* @returns {?Object} Schema resolution bundle, or null when not schema-backed.
*/
function resolveForEditing( rootElement, handler, options = {} ) {
if ( !isElementNode( rootElement ) || !handler ) return null;
const schema = getSchemaForHandler( handler, schemaRegistry );
if ( !schema ) return null;
const blockAttributes = isPlainObject( options.blockState?.attrs )
? options.blockState.attrs
: ( isPlainObject( options.blockAttributes ) ? options.blockAttributes : null );
const attributeChanges = isPlainObject( options.attributeChanges )
? options.attributeChanges
: null;
syncSchemaPlaceholders( rootElement, handler, {
blockAttributes,
attributeChanges,
removeInactiveEmpty: options.removeInactiveEmpty !== false,
} );
const runtime = buildRuntimeFromSchema( rootElement, schema, {
blockAttributes,
attributeChanges,
} );
if ( !runtime ) return null;
return {
schema,
runtime,
runtimeHandler: createSchemaAwareHandler( handler, runtime ),
};
}
function refreshEditorState( editorState, options = {} ) {
if ( !editorState?.element || !editorState?.handler ) return null;
const resolved = resolveForEditing( editorState.element, editorState.handler, {
blockState: options.blockState || editorState.blockState || null,
blockAttributes: options.blockAttributes || null,
attributeChanges: options.attributeChanges || editorState.attributeChanges || null,
} );
if ( !resolved?.runtimeHandler ) {
return null;
}
editorState.handler = resolved.runtimeHandler;
editorState._mwpSchemaRuntime = resolved.runtime;
editorState._mwpSchemaHandlerId = resolved.schema?.handlerId || editorState.handler.id || '';
return resolved;
}
function runtimeHasListBinding( runtime ) {
if ( !runtime || !isPlainObject( runtime.componentsById ) ) return false;
const componentIds = Object.keys( runtime.componentsById );
for ( const id of componentIds ) {
const componentMeta = runtime.componentsById[ id ];
if ( !componentMeta || !Array.isArray( componentMeta.bindings ) ) {
continue;
}
if ( componentMeta.bindings.some( binding => binding.source === 'list_block' ) ) {
return true;
}
}
return false;
}
function hasListBinding( editorState, runtimeOverride = null ) {
const runtime = runtimeOverride || editorState?._mwpSchemaRuntime || null;
return runtimeHasListBinding( runtime );
}
function collectRuntimeMediaUrlBindingPaths( runtime, editorState = null ) {
if ( !runtime ) return [];
const paths = [];
const seen = new Set();
const addPath = path => {
const cleanPath = typeof path === 'string' ? path.trim() : '';
if ( !cleanPath || seen.has( cleanPath ) ) return;
seen.add( cleanPath );
paths.push( cleanPath );
};
const addFromBindings = bindings => {
if ( !Array.isArray( bindings ) ) return;
bindings.forEach( binding => {
if ( binding && binding.source === 'url' ) {
addPath( binding.path );
}
} );
};
if ( runtime.mediaComponent && Array.isArray( runtime.mediaComponent.bindings ) ) {
addFromBindings( runtime.mediaComponent.bindings );
}
const componentsById = isPlainObject( runtime.componentsById ) ? runtime.componentsById : {};
if ( Array.isArray( editorState?.editableComponents ) ) {
editorState.editableComponents.forEach( component => {
const componentMeta = componentsById[ component?.id ];
if ( componentMeta?.type === 'file' ) {
addFromBindings( componentMeta.bindings );
}
} );
}
if ( !paths.length ) {
Object.keys( componentsById ).forEach( id => {
const componentMeta = componentsById[ id ];
if ( componentMeta?.type === 'file' ) {
addFromBindings( componentMeta.bindings );
}
} );
}
return paths;
}
function resolveInitialMediaSource( editorState, blockState = null, runtimeOverride = null ) {
const runtime = runtimeOverride || editorState?._mwpSchemaRuntime || null;
if ( !runtime ) return '';
const attrs = isPlainObject( blockState?.attrs )
? blockState.attrs
: ( isPlainObject( editorState?.originalAttributes ) ? editorState.originalAttributes : null );
if ( !attrs ) return '';
const urlPaths = collectRuntimeMediaUrlBindingPaths( runtime, editorState );
for ( const path of urlPaths ) {
const value = getValueByPath( attrs, path );
if ( typeof value === 'string' && value.trim() ) {
return value;
}
}
return '';
}
const schemaRuntimeApi = {
version: RAW_SCHEMA_DATA.version || 1,
schemas: schemaRegistry,
getSchemaForHandler: handler => getSchemaForHandler( handler, schemaRegistry ),
buildRuntimeFromSchema,
createRuntimeHandler: createSchemaAwareHandler,
resolveForEditing,
refreshEditorState,
buildPayloadFromRuntime: buildSchemaPayload,
syncPlaceholders: syncSchemaPlaceholders,
reconcileRenderedSnapshot,
syncManagedMissingComponentStateForElement,
hasListBinding,
resolveInitialMediaSource,
splitBindingPath,
getValueByPath,
collectMediaUrlBindingPaths: collectRuntimeMediaUrlBindingPaths,
};
SFE.SchemaRuntime = schemaRuntimeApi;
SFE.SchemaV2 = {
version: RAW_SCHEMA_DATA.version || 1,
schemas: schemaRegistry,
buildRuntimeFromSchema,
resolveForEditing,
refreshEditorState,
buildSchemaPayload,
reconcileRenderedSnapshot,
syncManagedMissingComponentStateForElement,
};
syncExistingBoundPlaceholders();
} )();
:root{--color-primary: #196BDE;--color-primary-dark: #1A4884;--color-primary-light: #CCDCF4;--color-primary-lighter: #949FB1;--color-secondary: #FCD34D;--color-secondary-dark: #E9B404;--color-secondary-light: #FEF6D9;--color-secondary-lighter: #FEF6D9;--color-title: #0F172A;--color-text: #4A5567;--color-link: #2271B1;--color-border: #E2E8F0;--color-success: #388E3C;--color-warning: #F57C00;--color-error: #D32F2F;--color-white: #FFFFFF;--color-off-white: #F0F0F5;--color-black: #000000;--color-success-contrast: #DFF2E0;--color-warning-contrast: #FFE3C6;--color-error-contrast: #F6D3D3;--color-canvas: #F1F5F9;--color-mid: #91BEF7;--color-mid-dark: #68A5F2;--color-blue: #336AD7;--color-blue-dark: #1B4393;--color-blue-light: #EAF4FB;--color-blue-lighter: #F0F5FF}@media screen and (min-width: 782px){html{overflow:-moz-scrollbars-vertical;overflow-y:scroll}}
body.toplevel_page_bluehost{--wp-admin-theme-color: var(--color-primary);--wp-admin-theme-color-darker-10: var(--color-primary-dark);--wp-admin-theme-color-darker-20: var(--color-title);--wp-admin-border-width-focus: 2px;--bluehostbrand-focus: inset 0 0 0 1px var(--color-white), 0 0 0 var(--wp-admin-border-width-focus) var(--color-primary);background-color:var(--color-canvas)}body.toplevel_page_bluehost a{color:var(--color-link)}@media screen and (max-width: 782px){body.toplevel_page_bluehost .wp-responsive-open #wpbody{right:-190px}}
body.toplevel_page_bluehost #wpwrap{background-color:var(--color-canvas)}body.toplevel_page_bluehost #wpcontent{padding-left:0 !important}body.toplevel_page_bluehost #wpadminbar .ab-top-menu li{transition:opacity .33s ease}body.toplevel_page_bluehost #wpadminbar .ab-top-menu .hideme{max-height:32px;opacity:0;overflow:hidden;pointer-events:none;width:0}body.toplevel_page_bluehost #wpbody-content .notice,body.toplevel_page_bluehost #wpbody-content #dolly,body.toplevel_page_bluehost #wpbody-content .update-nag{display:none}body.toplevel_page_bluehost #wpbody-content .newfold-notifications-wrapper{padding-top:2rem}body.toplevel_page_bluehost #wpbody-content .newfold-notifications-wrapper .notice{display:block}.nfd-disabled{opacity:.5;pointer-events:none}.wppbh .components-card__body .components-toggle-control .components-base-control__field .components-toggle-control__label,.wppbh .components-card__body .components-input-control__label,.wppbh .components-card__body .components-input-control__label *,.wppbh .components-card__body .components-radio-control__option label strong{color:var(--color-text)}.wppbh .components-button,.wppbh .nfd-button{font-size:15px;font-weight:500;transition:all .25s ease;white-space:nowrap}.wppbh .components-button .dashicons,.wppbh .components-button .dashicons-before:before,.wppbh .nfd-button .dashicons,.wppbh .nfd-button .dashicons-before:before{transition:all .25s ease}.wppbh .components-button:focus:not(:disabled),.wppbh .nfd-button:focus:not(:disabled){box-shadow:var(--bluehostbrand-focus)}.wppbh .components-button.is-primary,.wppbh .components-button.nfd-button-primary,.wppbh .components-button[variant=primary],.wppbh .nfd-button.is-primary,.wppbh .nfd-button.nfd-button-primary,.wppbh .nfd-button[variant=primary]{background-color:var(--color-primary);color:var(--color-white)}.wppbh .components-button.is-secondary,.wppbh .components-button.nfd-button--secondary,.wppbh .components-button[variant=secondary],.wppbh .nfd-button.is-secondary,.wppbh .nfd-button.nfd-button--secondary,.wppbh .nfd-button[variant=secondary]{border-color:var(--color-primary);color:var(--color-primary);background:none}.wppbh .components-button.is-secondary:hover,.wppbh .components-button.nfd-button--secondary:hover,.wppbh .components-button[variant=secondary]:hover,.wppbh .nfd-button.is-secondary:hover,.wppbh .nfd-button.nfd-button--secondary:hover,.wppbh .nfd-button[variant=secondary]:hover{color:var(--color-primary)}.wppbh .components-button:last-child,.wppbh .nfd-button:last-child{padding-right:1rem}.wppbh .components-button.has-icon,.wppbh .nfd-button.has-icon{padding-right:1rem}.wppbh .components-button.has-icon .dashicon,.wppbh .nfd-button.has-icon .dashicon{margin-right:10px}.wppbh a:focus{box-shadow:var(--bluehostbrand-focus);outline:0}.wppbh .components-base-control__help,.wppbh .components-radio-control__option label span span{color:var(--color-text);margin-top:.25rem}.wppbh,.wppbh *{box-sizing:border-box}.wppbh-app-body-content{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:2rem;position:relative}.wppbh-app-body-content .wppbh-app-body-inner{flex-grow:1}.wppbh-app-body-content .wppbh-app-aside{flex-shrink:0;flex-grow:0;width:300px;min-width:0;overflow:hidden}@media screen and (max-width: 782px){.wppbh-app-body-content{flex-direction:column}.wppbh-app-body-content .wppbh-app-aside{width:100%;min-width:0;position:relative}}
.wppbh-app-aside{position:sticky;top:4rem;z-index:2}.wppbh-app-aside-content{min-width:0;max-width:100%;overflow:hidden}.components-snackbar__content{color:var(--color-off-white) !important}.grid{display:grid;gap:clamp(.5rem,1rem + 1vw,2rem);padding:.5rem}@media screen and (min-width: 600px){.grid.col2,.grid.col3,.grid.col4{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media screen and (min-width: 800px){.grid.col3,.grid.col4{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media screen and (min-width: 1020px){.grid.col4{grid-template-columns:repeat(4, minmax(0, 1fr))}}
.wppbh-app-snackbar{padding:0 24px;position:relative}.wppbh-app-snackbar .components-snackbar-list{bottom:.5rem;position:fixed}.has-page-graphic{padding-bottom:26rem}.wppbh-page-graphic{bottom:3.5rem;opacity:.5;position:absolute;right:1rem;z-index:-1}.wppbh .components-card{box-shadow:inset 0px 0px 0px 1px var(--color-border)}.wppbh .components-card.short{margin-bottom:auto}.wppbh .components-card.disabled{opacity:.5}.wppbh .components-card-body.disabled,.wppbh .components-card__body.disabled{opacity:.5}.newfold-notifications-wrapper .newfold-notification{max-width:1600px;margin:0 auto .75rem;transition:opacity .2s ease}.newfold-notifications-wrapper .newfold-notification:first-of-type{margin-top:1.35rem}.newfold-notifications-wrapper .newfold-notification.is-dismissed{opacity:0}.newfold-notifications-wrapper .notice{margin:0}.wppbh-animation-blink{animation:blink 2.5s ease 1s 3 normal forwards}@keyframes blink{0%,50%,100%{background-color:initial}25%,75%{background-color:#e9f1fd}}.coming-soon-status{text-transform:uppercase}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-link-mini){display:flex}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg) .nfd-card{transition:all .5s ease}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg) .nfd-title,.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg) .nfd-button{transition:color .5s ease,background-color .5s ease}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg) p{color:var(--color-text)}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg) svg:not(.nfd-bg-img) path{stroke-width:1.5;stroke:var(--color-text);transition:all .5s ease}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg) svg.nfd-bg-img path{stroke-width:.3}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg):hover .nfd-card:not(.nfd-card-has-bg){background-color:var(--color-blue-lighter);border-color:var(--color-blue)}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg):hover .nfd-card:not(.nfd-card-has-bg) .nfd-title{color:var(--color-blue)}.nfd-root .wppbh-home .nfd-card-link:not(.nfd-card-has-bg):hover .nfd-card:not(.nfd-card-has-bg) svg path{stroke:var(--color-blue)}.nfd-root .wppbh-home .nfd-card.nfd-card-has-bg{transition:all .5s ease;min-width:100%;min-height:320px}.nfd-root .wppbh-home .nfd-card.nfd-card-has-bg .nfd-card__content{position:relative}.nfd-root .wppbh-home .nfd-card.nfd-card-has-bg .nfd-card__content .nfd-bg-img{position:absolute;z-index:0;width:60%;height:auto;right:-1rem;bottom:-1rem}.nfd-root .wppbh-home .nfd-card.nfd-card-has-bg .nfd-card__content .nfd-title,.nfd-root .wppbh-home .nfd-card.nfd-card-has-bg .nfd-card__content p,.nfd-root .wppbh-home .nfd-card.nfd-card-has-bg .nfd-card__content .nfd-card-bottom{z-index:1}.nfd-root .wppbh-home .nfd-card.nfd-card-has-bg .nfd-card__content .nfd-button{position:absolute;bottom:0}.nfd-root .wppbh-home .nfd-card.nfd-card-mid{background-color:var(--color-mid);border-color:var(--color-mid)}.nfd-root .wppbh-home .nfd-card.nfd-card-mid .nfd-title,.nfd-root .wppbh-home .nfd-card.nfd-card-mid p{color:var(--color-black) !important}.nfd-root .wppbh-home .nfd-card.nfd-card-mid .nfd-button{background-color:var(--color-black)}.nfd-root .wppbh-home .nfd-card.nfd-card-mid:hover{background-color:var(--color-mid-dark);border-color:var(--color-mid-dark)}.nfd-root .wppbh-home .nfd-card.nfd-card-mid:hover .nfd-button{background-color:var(--color-black)}.nfd-root .wppbh-home .nfd-card.nfd-card-dark{background-color:var(--color-blue);border-color:var(--color-blue)}.nfd-root .wppbh-home .nfd-card.nfd-card-dark .nfd-title,.nfd-root .wppbh-home .nfd-card.nfd-card-dark p{color:var(--color-white) !important}.nfd-root .wppbh-home .nfd-card.nfd-card-dark .nfd-button{background-color:var(--color-blue-dark)}.nfd-root .wppbh-home .nfd-card.nfd-card-dark:hover{background-color:var(--color-blue-dark);border-color:var(--color-blue-dark)}.nfd-root .wppbh-home .nfd-card.nfd-card-dark:hover .nfd-button{background-color:var(--color-black)}.nfd-root .wppbh-home .nfd-card-link-mini .nfd-arrow{opacity:0;fill:var(--color-primary);padding-right:1rem;transition:all .5s ease}.nfd-root .wppbh-home .nfd-card-link-mini .nfd-card-hover-cta{opacity:0;transition:opacity .25s ease}.nfd-root .wppbh-home .nfd-card-link-mini:hover p{color:var(--color-primary)}.nfd-root .wppbh-home .nfd-card-link-mini:hover .nfd-arrow{opacity:1;padding-right:0}.nfd-root .wppbh-home .nfd-card-link-mini:hover .nfd-card-hover-cta{opacity:1}.nfd-root .wppbh-home .nfd-no-stroke path{stroke:none !important}.wppbh-app-marketplace-page .nfd-marketplace-sidebar ul{margin-left:0 !important}.wppbh-app-marketplace-page .nfd-marketplace-categories .nfd-select.nfd-marketing-page-category-selector .nfd-select__options{width:auto !important}.wppbh-app-marketplace-page .nfd-flex-col{flex-direction:column !important}@media(min-width: 768px){.wppbh-app-marketplace-page .md\:nfd-flex-row{flex-direction:row !important}.wppbh-app-marketplace-page .md\:nfd-grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}}@media(min-width: 1120px){.wppbh-app-marketplace-page .min-\[1120px\]\:nfd-grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}}@media(min-width: 1400px){.wppbh-app-marketplace-page .min-\[1400px\]\:nfd-grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr)) !important}}
#nfd-portal-apps{display:none}.wppbh-app-settings-page{min-width:100%}.settings-app-wrapper{width:100%}.performance-fill .nfd-page>div:first-child{display:none}.staging-fill .nfd-page .newfold-staging-header{display:none}.nfd-root .nfd-details summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none;padding:2rem}.nfd-root .nfd-details .nfd-details-icon{flex-shrink:0;font-size:2rem;transform:rotate(180deg);width:2rem;transition:color .25s ease}.nfd-root .nfd-details[open] .nfd-details-icon{transform:rotate(0deg)}.nfd-root .nfd-details:hover .nfd-details-icon,.nfd-root .nfd-details[open] .nfd-details-icon{color:var(--color-primary)}.nfd-root .wppbh-app-body header nav>svg{flex-shrink:0}@media screen and (max-width: 600px){.nfd-root .wppbh-app-body header nav{top:46px !important}.nfd-root .wppbh-app-body header nav .nfd-button{display:none !important}}
.nfd-pointer-events-none+.nfd-appbar-nav-dialog{pointer-events:none !important}.nfd-root .wppbh-app-body .wppbh-logo-wrap{padding:0 1rem}.nfd-root .wppbh-app-body .wppbh-logo-wrap .components-button.logo-mark:focus:not(:disabled){box-shadow:none !important;outline:0}.nfd-root .wppbh-app-body .wppbh-logo-wrap .components-button.logo-mark:focus-visible{box-shadow:var(--bluehostbrand-focus)}.nfd-root .nfd-appbar-item .focus\:nfd-outline-none:focus-visible{outline-color:var(--color-primary) !important}.nfd-validation-input button[data-id=nfd-marketing-page-category-selector] .nfd-select__button-label{padding-right:2rem}.wppbh-app-marketplace-page{width:100%}.wppbh-app-marketplace-page .nfd-pp-yoast-hero-content>div{min-width:400px;max-width:50%;margin-left:auto;align-items:center}.nfd-root aside.nfd-notifications{z-index:9991}.nfd-coming-soon-content{align-items:center}
/* Import main CSS including all components. */
/**
* Tailwind CSS preflight, but scoped to the Yoast root class.
* This is added to the base layer by design.
*
* Source: https://github.com/tailwindlabs/tailwindcss/blob/v3.1.2/src/css/preflight.css
* Changed `html` and `body` to affect the `.nfd-root` instead.
*/
/**
* Styles from Tailwind CSS forms, but scoped to the Yoast root class.
*
* See: https://github.com/tailwindlabs/tailwindcss-forms#using-classes-to-style
*/
/**
* Custom base styles, separate from TailwindCSS.
*/
/* Tailwind layers */
*, ::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(59 130 246 / 0.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-contain-size: ;
--tw-contain-layout: ;
--tw-contain-paint: ;
--tw-contain-style: ;
}
::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(59 130 246 / 0.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-contain-size: ;
--tw-contain-layout: ;
--tw-contain-paint: ;
--tw-contain-style: ;
}
/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/
.nfd-root *,
.nfd-root ::before,
.nfd-root ::after {
box-sizing: border-box; /* 1 */
border-width: 0; /* 2 */
border-style: solid; /* 2 */
border-color: #e5e7eb; /* 2 */
}
.nfd-root ::before,
.nfd-root ::after {
--tw-content: '';
}
.nfd-root {
line-height: 1.5;
-webkit-text-size-adjust: 100%;
tab-size: 4;
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
margin: 0;
}
/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
*/ /* 1 */ /* 2 */ /* 3 */ /* 3 */ /* 4 */
/*
1. Remove the margin in all browsers.
*/ /* 1 */
/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/
.nfd-root hr {
height: 0; /* 1 */
color: inherit; /* 2 */
border-top-width: 1px; /* 3 */
}
/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/
.nfd-root abbr:where([title]) {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
}
/*
Remove the default font size and weight for headings.
*/
.nfd-root h1,
.nfd-root h2,
.nfd-root h3,
.nfd-root h4,
.nfd-root h5,
.nfd-root h6 {
font-size: inherit;
font-weight: inherit;
}
/*
Reset links to optimize for opt-in styling instead of opt-out.
*/
.nfd-root a {
color: inherit;
text-decoration: inherit;
}
/*
Add the correct font weight in Edge and Safari.
*/
.nfd-root b,
.nfd-root strong {
font-weight: bolder;
}
/*
1. Use the user's configured `mono` font family by default.
2. Correct the odd `em` font sizing in all browsers.
*/
.nfd-root code,
.nfd-root kbd,
.nfd-root samp,
.nfd-root pre {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
font-size: 1em; /* 2 */
}
/*
Add the correct font size in all browsers.
*/
.nfd-root small {
font-size: 80%;
}
/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/
.nfd-root sub,
.nfd-root sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
.nfd-root sub {
bottom: -0.25em;
}
.nfd-root sup {
top: -0.5em;
}
/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/
.nfd-root table {
text-indent: 0; /* 1 */
border-color: inherit; /* 2 */
border-collapse: collapse; /* 3 */
}
/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/
.nfd-root button,
.nfd-root input,
.nfd-root optgroup,
.nfd-root select,
.nfd-root textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
font-weight: inherit; /* 1 */
line-height: inherit; /* 1 */
color: inherit; /* 1 */
margin: 0; /* 2 */
padding: 0; /* 3 */
}
/*
Remove the inheritance of text transform in Edge and Firefox.
*/
.nfd-root button,
.nfd-root select {
text-transform: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/
.nfd-root button,
.nfd-root [type='button'],
.nfd-root [type='reset'],
.nfd-root [type='submit'] {
-webkit-appearance: button; /* 1 */
background-color: transparent; /* 2 */
background-image: none; /* 2 */
}
/*
Use the modern Firefox focus style for all focusable elements.
*/
.nfd-root :-moz-focusring {
outline: auto;
}
/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/
.nfd-root :-moz-ui-invalid {
box-shadow: none;
}
/*
Add the correct vertical alignment in Chrome and Firefox.
*/
.nfd-root progress {
vertical-align: baseline;
}
/*
Correct the cursor style of increment and decrement buttons in Safari.
*/
.nfd-root ::-webkit-inner-spin-button,
.nfd-root ::-webkit-outer-spin-button {
height: auto;
}
/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
.nfd-root [type='search'] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/*
Remove the inner padding in Chrome and Safari on macOS.
*/
.nfd-root ::-webkit-search-decoration {
-webkit-appearance: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/
.nfd-root ::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/*
Add the correct display in Chrome and Safari.
*/
.nfd-root summary {
display: list-item;
}
/*
Removes the default spacing and border for appropriate elements.
*/
.nfd-root blockquote,
.nfd-root dl,
.nfd-root dd,
.nfd-root h1,
.nfd-root h2,
.nfd-root h3,
.nfd-root h4,
.nfd-root h5,
.nfd-root h6,
.nfd-root hr,
.nfd-root figure,
.nfd-root p,
.nfd-root pre {
margin: 0;
}
.nfd-root fieldset {
margin: 0;
padding: 0;
}
.nfd-root legend {
padding: 0;
}
.nfd-root ol,
.nfd-root ul,
.nfd-root menu {
list-style: none;
margin: 0;
padding: 0;
}
/*
Prevent resizing textareas horizontally by default.
*/
.nfd-root textarea {
resize: vertical;
}
/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/
.nfd-root input::placeholder,
.nfd-root textarea::placeholder {
opacity: 1; /* 1 */
color: #6b7280; /* 2 */
}
/*
Set the default cursor for buttons.
*/
.nfd-root button,
.nfd-root [role="button"] {
cursor: pointer;
}
/*
Make sure disabled buttons don't get the pointer cursor.
*/
.nfd-root :disabled {
cursor: default;
}
/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
This can trigger a poorly considered lint error in some tools but is included by design.
*/
.nfd-root img,
.nfd-root svg,
.nfd-root video,
.nfd-root canvas,
.nfd-root audio,
.nfd-root iframe,
.nfd-root embed,
.nfd-root object {
display: block; /* 1 */
vertical-align: middle; /* 2 */
}
/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/
.nfd-root img,
.nfd-root video {
max-width: 100%;
height: auto;
}
.nfd-root [type='text'],
.nfd-root [type='email'],
.nfd-root [type='url'],
.nfd-root [type='password'],
.nfd-root [type='number'],
.nfd-root [type='date'],
.nfd-root [type='datetime-local'],
.nfd-root [type='month'],
.nfd-root [type='search'],
.nfd-root [type='tel'],
.nfd-root [type='time'],
.nfd-root [type='week'] {
appearance: none;
background-color: #fff;
border-color: #6b7280;
border-width: 1px;
border-radius: 0px;
padding-top: 0.5rem;
padding-right: 0.75rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
font-size: 1rem;
line-height: 1.5rem;
--tw-shadow: 0 0 #0000;
}
.nfd-root [type='text']:focus,
.nfd-root [type='email']:focus,
.nfd-root [type='url']:focus,
.nfd-root [type='password']:focus,
.nfd-root [type='number']:focus,
.nfd-root [type='date']:focus,
.nfd-root [type='datetime-local']:focus,
.nfd-root [type='month']:focus,
.nfd-root [type='search']:focus,
.nfd-root [type='tel']:focus,
.nfd-root [type='time']:focus,
.nfd-root [type='week']:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-color: #2563eb;
}
.nfd-root [type='text']::placeholder,
.nfd-root [type='email']::placeholder,
.nfd-root [type='url']::placeholder,
.nfd-root [type='password']::placeholder,
.nfd-root [type='number']::placeholder,
.nfd-root [type='date']::placeholder,
.nfd-root [type='datetime-local']::placeholder,
.nfd-root [type='month']::placeholder,
.nfd-root [type='search']::placeholder,
.nfd-root [type='tel']::placeholder,
.nfd-root [type='time']::placeholder,
.nfd-root [type='week']::placeholder {
color: #6b7280;
opacity: 1;
}
.nfd-root [type='text']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='email']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='url']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='password']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='number']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='date']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='month']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='search']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='tel']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='time']::-webkit-datetime-edit-fields-wrapper,
.nfd-root [type='week']::-webkit-datetime-edit-fields-wrapper {
padding: 0;
}
.nfd-root [type='text']::-webkit-date-and-time-value,
.nfd-root [type='email']::-webkit-date-and-time-value,
.nfd-root [type='url']::-webkit-date-and-time-value,
.nfd-root [type='password']::-webkit-date-and-time-value,
.nfd-root [type='number']::-webkit-date-and-time-value,
.nfd-root [type='date']::-webkit-date-and-time-value,
.nfd-root [type='datetime-local']::-webkit-date-and-time-value,
.nfd-root [type='month']::-webkit-date-and-time-value,
.nfd-root [type='search']::-webkit-date-and-time-value,
.nfd-root [type='tel']::-webkit-date-and-time-value,
.nfd-root [type='time']::-webkit-date-and-time-value,
.nfd-root [type='week']::-webkit-date-and-time-value {
min-height: 1.5em;
text-align: inherit;
}
.nfd-root [type='text']::-webkit-datetime-edit,
.nfd-root [type='email']::-webkit-datetime-edit,
.nfd-root [type='url']::-webkit-datetime-edit,
.nfd-root [type='password']::-webkit-datetime-edit,
.nfd-root [type='number']::-webkit-datetime-edit,
.nfd-root [type='date']::-webkit-datetime-edit,
.nfd-root [type='datetime-local']::-webkit-datetime-edit,
.nfd-root [type='month']::-webkit-datetime-edit,
.nfd-root [type='search']::-webkit-datetime-edit,
.nfd-root [type='tel']::-webkit-datetime-edit,
.nfd-root [type='time']::-webkit-datetime-edit,
.nfd-root [type='week']::-webkit-datetime-edit {
display: inline-flex;
}
.nfd-root [type='text']::-webkit-datetime-edit,.nfd-root [type='text']::-webkit-datetime-edit-year-field,.nfd-root [type='text']::-webkit-datetime-edit-month-field,.nfd-root [type='text']::-webkit-datetime-edit-day-field,.nfd-root [type='text']::-webkit-datetime-edit-hour-field,.nfd-root [type='text']::-webkit-datetime-edit-minute-field,.nfd-root [type='text']::-webkit-datetime-edit-second-field,.nfd-root [type='text']::-webkit-datetime-edit-millisecond-field,.nfd-root [type='text']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='email']::-webkit-datetime-edit,
.nfd-root [type='email']::-webkit-datetime-edit-year-field,
.nfd-root [type='email']::-webkit-datetime-edit-month-field,
.nfd-root [type='email']::-webkit-datetime-edit-day-field,
.nfd-root [type='email']::-webkit-datetime-edit-hour-field,
.nfd-root [type='email']::-webkit-datetime-edit-minute-field,
.nfd-root [type='email']::-webkit-datetime-edit-second-field,
.nfd-root [type='email']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='email']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='url']::-webkit-datetime-edit,
.nfd-root [type='url']::-webkit-datetime-edit-year-field,
.nfd-root [type='url']::-webkit-datetime-edit-month-field,
.nfd-root [type='url']::-webkit-datetime-edit-day-field,
.nfd-root [type='url']::-webkit-datetime-edit-hour-field,
.nfd-root [type='url']::-webkit-datetime-edit-minute-field,
.nfd-root [type='url']::-webkit-datetime-edit-second-field,
.nfd-root [type='url']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='url']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='password']::-webkit-datetime-edit,
.nfd-root [type='password']::-webkit-datetime-edit-year-field,
.nfd-root [type='password']::-webkit-datetime-edit-month-field,
.nfd-root [type='password']::-webkit-datetime-edit-day-field,
.nfd-root [type='password']::-webkit-datetime-edit-hour-field,
.nfd-root [type='password']::-webkit-datetime-edit-minute-field,
.nfd-root [type='password']::-webkit-datetime-edit-second-field,
.nfd-root [type='password']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='password']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='number']::-webkit-datetime-edit,
.nfd-root [type='number']::-webkit-datetime-edit-year-field,
.nfd-root [type='number']::-webkit-datetime-edit-month-field,
.nfd-root [type='number']::-webkit-datetime-edit-day-field,
.nfd-root [type='number']::-webkit-datetime-edit-hour-field,
.nfd-root [type='number']::-webkit-datetime-edit-minute-field,
.nfd-root [type='number']::-webkit-datetime-edit-second-field,
.nfd-root [type='number']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='number']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='date']::-webkit-datetime-edit,
.nfd-root [type='date']::-webkit-datetime-edit-year-field,
.nfd-root [type='date']::-webkit-datetime-edit-month-field,
.nfd-root [type='date']::-webkit-datetime-edit-day-field,
.nfd-root [type='date']::-webkit-datetime-edit-hour-field,
.nfd-root [type='date']::-webkit-datetime-edit-minute-field,
.nfd-root [type='date']::-webkit-datetime-edit-second-field,
.nfd-root [type='date']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='date']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-year-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-month-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-day-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-hour-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-minute-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-second-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='datetime-local']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='month']::-webkit-datetime-edit,
.nfd-root [type='month']::-webkit-datetime-edit-year-field,
.nfd-root [type='month']::-webkit-datetime-edit-month-field,
.nfd-root [type='month']::-webkit-datetime-edit-day-field,
.nfd-root [type='month']::-webkit-datetime-edit-hour-field,
.nfd-root [type='month']::-webkit-datetime-edit-minute-field,
.nfd-root [type='month']::-webkit-datetime-edit-second-field,
.nfd-root [type='month']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='month']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='search']::-webkit-datetime-edit,
.nfd-root [type='search']::-webkit-datetime-edit-year-field,
.nfd-root [type='search']::-webkit-datetime-edit-month-field,
.nfd-root [type='search']::-webkit-datetime-edit-day-field,
.nfd-root [type='search']::-webkit-datetime-edit-hour-field,
.nfd-root [type='search']::-webkit-datetime-edit-minute-field,
.nfd-root [type='search']::-webkit-datetime-edit-second-field,
.nfd-root [type='search']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='search']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='tel']::-webkit-datetime-edit,
.nfd-root [type='tel']::-webkit-datetime-edit-year-field,
.nfd-root [type='tel']::-webkit-datetime-edit-month-field,
.nfd-root [type='tel']::-webkit-datetime-edit-day-field,
.nfd-root [type='tel']::-webkit-datetime-edit-hour-field,
.nfd-root [type='tel']::-webkit-datetime-edit-minute-field,
.nfd-root [type='tel']::-webkit-datetime-edit-second-field,
.nfd-root [type='tel']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='tel']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='time']::-webkit-datetime-edit,
.nfd-root [type='time']::-webkit-datetime-edit-year-field,
.nfd-root [type='time']::-webkit-datetime-edit-month-field,
.nfd-root [type='time']::-webkit-datetime-edit-day-field,
.nfd-root [type='time']::-webkit-datetime-edit-hour-field,
.nfd-root [type='time']::-webkit-datetime-edit-minute-field,
.nfd-root [type='time']::-webkit-datetime-edit-second-field,
.nfd-root [type='time']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='time']::-webkit-datetime-edit-meridiem-field,
.nfd-root [type='week']::-webkit-datetime-edit,
.nfd-root [type='week']::-webkit-datetime-edit-year-field,
.nfd-root [type='week']::-webkit-datetime-edit-month-field,
.nfd-root [type='week']::-webkit-datetime-edit-day-field,
.nfd-root [type='week']::-webkit-datetime-edit-hour-field,
.nfd-root [type='week']::-webkit-datetime-edit-minute-field,
.nfd-root [type='week']::-webkit-datetime-edit-second-field,
.nfd-root [type='week']::-webkit-datetime-edit-millisecond-field,
.nfd-root [type='week']::-webkit-datetime-edit-meridiem-field {
padding-top: 0;
padding-bottom: 0;
}
.nfd-root textarea {
appearance: none;
background-color: #fff;
border-color: #6b7280;
border-width: 1px;
border-radius: 0px;
padding-top: 0.5rem;
padding-right: 0.75rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
font-size: 1rem;
line-height: 1.5rem;
--tw-shadow: 0 0 #0000;
}
.nfd-root textarea:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-color: #2563eb;
}
.nfd-root textarea::placeholder {
color: #6b7280;
opacity: 1;
}
.nfd-root select {
appearance: none;
background-color: #fff;
border-color: #6b7280;
border-width: 1px;
border-radius: 0px;
padding-top: 0.5rem;
padding-right: 0.75rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
font-size: 1rem;
line-height: 1.5rem;
--tw-shadow: 0 0 #0000;
}
.nfd-root select:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-color: #2563eb;
}
.nfd-root select {
background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27none%27 viewBox=%270 0 20 20%27%3e%3cpath stroke=%27%236b7280%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%271.5%27 d=%27M6 8l4 4 4-4%27/%3e%3c/svg%3e");
background-position: right 0.5rem center;
background-repeat: no-repeat;
background-size: 1.5em 1.5em;
padding-right: 2.5rem;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
.nfd-root select:where([size]:not([size="1"])) {
background-image: initial;
background-position: initial;
background-repeat: unset;
background-size: initial;
padding-right: 0.75rem;
-webkit-print-color-adjust: unset;
print-color-adjust: unset;
}
.nfd-root select[multiple] {
appearance: none;
background-color: #fff;
border-color: #6b7280;
border-width: 1px;
border-radius: 0px;
padding-top: 0.5rem;
padding-right: 0.75rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
font-size: 1rem;
line-height: 1.5rem;
--tw-shadow: 0 0 #0000;
}
.nfd-root select[multiple]:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-color: #2563eb;
}
.nfd-root [type='checkbox'] {
appearance: none;
padding: 0;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
display: inline-block;
vertical-align: middle;
background-origin: border-box;
-webkit-user-select: none;
user-select: none;
flex-shrink: 0;
height: 1rem;
width: 1rem;
color: #2563eb;
background-color: #fff;
border-color: #6b7280;
border-width: 1px;
--tw-shadow: 0 0 #0000;
border-radius: 0px;
}
.nfd-root [type='checkbox']:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
--tw-ring-offset-width: 2px;
--tw-ring-offset-color: #fff;
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.nfd-root [type='checkbox']:checked {
border-color: transparent;
background-color: currentColor;
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
background-image: url("data:image/svg+xml,%3csvg viewBox=%270 0 16 16%27 fill=%27white%27 xmlns=%27http://www.w3.org/2000/svg%27%3e%3cpath d=%27M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z%27/%3e%3c/svg%3e");
}
@media (forced-colors: active) {
.nfd-root [type='checkbox']:checked {
appearance: auto;
}
}
.nfd-root [type='checkbox']:checked:hover,.nfd-root [type='checkbox']:checked:focus {
border-color: transparent;
background-color: currentColor;
}
.nfd-root [type='checkbox']:indeterminate {
background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27none%27 viewBox=%270 0 16 16%27%3e%3cpath stroke=%27white%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M4 8h8%27/%3e%3c/svg%3e");
border-color: transparent;
background-color: currentColor;
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
}
@media (forced-colors: active) {
.nfd-root [type='checkbox']:indeterminate {
appearance: auto;
}
}
.nfd-root [type='checkbox']:indeterminate:hover,.nfd-root [type='checkbox']:indeterminate:focus {
border-color: transparent;
background-color: currentColor;
}
.nfd-root [type='radio'] {
appearance: none;
padding: 0;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
display: inline-block;
vertical-align: middle;
background-origin: border-box;
-webkit-user-select: none;
user-select: none;
flex-shrink: 0;
height: 1rem;
width: 1rem;
color: #2563eb;
background-color: #fff;
border-color: #6b7280;
border-width: 1px;
--tw-shadow: 0 0 #0000;
border-radius: 100%;
}
.nfd-root [type='radio']:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
--tw-ring-offset-width: 2px;
--tw-ring-offset-color: #fff;
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.nfd-root [type='radio']:checked {
border-color: transparent;
background-color: currentColor;
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
background-image: url("data:image/svg+xml,%3csvg viewBox=%270 0 16 16%27 fill=%27white%27 xmlns=%27http://www.w3.org/2000/svg%27%3e%3ccircle cx=%278%27 cy=%278%27 r=%273%27/%3e%3c/svg%3e");
}
@media (forced-colors: active) {
.nfd-root [type='radio']:checked {
appearance: auto;
}
}
.nfd-root [type='radio']:checked:hover,.nfd-root [type='radio']:checked:focus {
border-color: transparent;
background-color: currentColor;
}
.nfd-root {
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: .8125rem;
font-weight: 400;
line-height: 1.5;
--tw-text-opacity: 1;
color: rgb(71 85 105 / var(--tw-text-opacity, 1));
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.nfd-root a {
--tw-text-opacity: 1;
color: rgb(79 70 229 / var(--tw-text-opacity, 1));
text-decoration-line: underline;
}
.nfd-root a:visited {
color: rgb(242 113 33 );
}
.nfd-root a:hover {
--tw-text-opacity: 1;
color: rgb(99 102 241 / var(--tw-text-opacity, 1));
}
.nfd-root a:hover:visited {
color: rgb(243 123 49 );
}
.nfd-root a:focus {
border-radius: 0.125rem;
--tw-text-opacity: 1;
color: rgb(99 102 241 / var(--tw-text-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 1px;
--tw-ring-offset-color: transparent;
}
.nfd-root [type='text']::placeholder,
.nfd-root [type='email']::placeholder,
.nfd-root [type='url']::placeholder,
.nfd-root [type='password']::placeholder,
.nfd-root [type='number']::placeholder,
.nfd-root [type='date']::placeholder,
.nfd-root [type='datetime-local']::placeholder,
.nfd-root [type='month']::placeholder,
.nfd-root [type='search']::placeholder,
.nfd-root [type='tel']::placeholder,
.nfd-root [type='time']::placeholder,
.nfd-root [type='week']::placeholder,
.nfd-root textarea::placeholder {
--tw-placeholder-opacity: 1;
color: rgb(100 116 139 / var(--tw-placeholder-opacity, 1));
}
.nfd-root svg path {
stroke-width: inherit;
}
.nfd-root {
--tw-text-opacity: 1;
color: rgb(74 85 103 / var(--tw-text-opacity, 1));
}
.nfd-root a {
--tw-text-opacity: 1;
color: rgb(25 107 222 / var(--tw-text-opacity, 1));
text-decoration-line: none;
}
.nfd-root a:visited {
color: rgb(25 107 222 );
}
.nfd-root a:hover {
--tw-text-opacity: 1;
color: rgb(26 72 132 / var(--tw-text-opacity, 1));
}
.nfd-root a:hover:visited {
color: rgb(26 72 132 );
}
.nfd-root a:focus {
border-radius: 0.125rem;
--tw-text-opacity: 1;
color: rgb(26 72 132 / var(--tw-text-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(26 72 132 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 1px;
--tw-ring-offset-color: transparent;
}
.nfd-container {
width: 100%;
}
@media (min-width: 640px) {
.nfd-container {
max-width: 640px;
}
}
@media (min-width: 768px) {
.nfd-container {
max-width: 768px;
}
}
@media (min-width: 1024px) {
.nfd-container {
max-width: 1024px;
}
}
@media (min-width: 1280px) {
.nfd-container {
max-width: 1280px;
}
}
@media (min-width: 1536px) {
.nfd-container {
max-width: 1536px;
}
}
.nfd-root .nfd-alert {
display: flex;
gap: 0.75rem;
border-radius: 0.375rem;
padding: 1rem;
}
/* Variants */
.nfd-root .nfd-alert--info {
--tw-bg-opacity: 1;
background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-alert--info .nfd-alert__message {
--tw-text-opacity: 1;
color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-alert--warning {
--tw-bg-opacity: 1;
background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-alert--warning .nfd-alert__message {
--tw-text-opacity: 1;
color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-alert--success {
--tw-bg-opacity: 1;
background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-alert--success .nfd-alert__message {
--tw-text-opacity: 1;
color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-alert--error {
--tw-bg-opacity: 1;
background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-alert--error .nfd-alert__message {
--tw-text-opacity: 1;
color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
/* Elements */
.nfd-root .nfd-alert__icon {
height: 1.25rem;
width: 1.25rem;
flex-shrink: 0;
flex-grow: 0;
}
.nfd-root .nfd-autocomplete {
position: relative;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-autocomplete--error .nfd-autocomplete__button {
--tw-border-opacity: 1;
border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}
.nfd-root .nfd-autocomplete--error .nfd-autocomplete__button:focus {
--tw-border-opacity: 1;
border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-opacity: 1;
--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-autocomplete--error .nfd-autocomplete__input::placeholder {
--tw-placeholder-opacity: 1;
color: rgb(252 165 165 / var(--tw-placeholder-opacity, 1));
}
.nfd-root .nfd-autocomplete--disabled {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-autocomplete--disabled:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-autocomplete__button {
display: flex;
height: 100%;
width: 100%;
align-items: center;
border-radius: 0.375rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
padding-left: 0.75rem;
padding-right: 0.75rem;
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-autocomplete__button:focus-within {
--tw-border-opacity: 1;
border-color: rgb(242 113 33 / var(--tw-border-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-autocomplete__button-icon {
pointer-events: none;
position: absolute;
top: 0.6875rem;
right: 0.625rem;
height: 1.25rem;
width: 1.25rem;
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-autocomplete__input {
width: 100%;
border-width: 0px;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 0px;
padding-right: 2.5rem;
font-size: .8125rem;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-autocomplete__input:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-autocomplete__options {
position: absolute;
z-index: 20;
margin-top: 0.25rem;
max-height: 15rem;
width: 100%;
overflow: auto;
border-radius: 0.375rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
font-size: .8125rem;
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1));
--tw-ring-opacity: 0.05;
}
.nfd-root .nfd-autocomplete__options:focus {
outline: 2px solid transparent;
outline-offset: 2px;
}
.nfd-root .nfd-autocomplete__option {
position: relative;
display: flex;
cursor: default;
-webkit-user-select: none;
user-select: none;
align-items: center;
justify-content: space-between;
padding-left: 0.75rem;
padding-right: 0.75rem;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
--tw-text-opacity: 1;
color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-autocomplete__option--active {
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-autocomplete__option--selected {
--tw-bg-opacity: 1;
background-color: rgb(242 113 33 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-select__option-label {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nfd-root .nfd-autocomplete__option-check {
height: 1.25rem;
width: 1.25rem;
flex-shrink: 0;
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-badge {
display: inline-flex;
align-items: center;
white-space: nowrap;
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
padding-left: 0.5rem;
padding-right: 0.5rem;
padding-top: 0.125rem;
padding-bottom: 0.125rem;
vertical-align: middle;
font-size: .75rem;
font-weight: 500;
line-height: 1.25;
--tw-text-opacity: 1;
color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}
/* Variants */
.nfd-root .nfd-badge--info {
--tw-bg-opacity: 1;
background-color: rgb(191 219 254 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-badge--upsell {
--tw-bg-opacity: 1;
background-color: rgb(253 230 138 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-badge--plain {
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
/* Sizes */
.nfd-root .nfd-badge--small {
font-size: 0.675rem;
}
.nfd-root .nfd-badge--large {
padding-left: 0.75rem;
padding-right: 0.75rem;
font-size: 1rem;
}
.nfd-root .nfd-button {
display: inline-flex;
cursor: pointer;
align-items: center;
justify-content: center;
border-radius: 0.375rem;
border-width: 1px;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
padding-right: 0.75rem;
text-align: center;
font-size: .8125rem;
font-weight: 500;
line-height: 1rem;
text-decoration-line: none;
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-button:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
/* Special styling for buttons rendered `as` "a" (to override anchor defaults). */
.nfd-root a.nfd-button:focus {
border-radius: 0.375rem;
--tw-ring-offset-color: #FFFFFF;
}
/* Variants */
.nfd-root .nfd-button--primary {
border-color: transparent;
--tw-bg-opacity: 1;
background-color: rgb(242 113 33 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--primary:visited {
color: rgb(255 255 255 );
}
.nfd-root .nfd-button--primary:hover {
--tw-bg-opacity: 1;
background-color: rgb(242 90 33 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--primary:hover:visited {
color: rgb(255 255 255 );
}
.nfd-root .nfd-button--primary:focus {
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 90 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-button--secondary {
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--secondary:visited {
color: rgb(30 41 59 );
}
.nfd-root .nfd-button--secondary:hover {
--tw-bg-opacity: 1;
background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--secondary:hover:visited {
color: rgb(30 41 59 );
}
.nfd-root .nfd-button--secondary:focus {
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 90 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-button--error {
border-color: transparent;
--tw-bg-opacity: 1;
background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--error:visited {
color: rgb(255 255 255 );
}
.nfd-root .nfd-button--error:hover {
--tw-bg-opacity: 1;
background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--error:hover:visited {
color: rgb(255 255 255 );
}
.nfd-root .nfd-button--error:focus {
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-button--upsell {
border-color: transparent;
--tw-bg-opacity: 1;
background-color: rgb(252 211 77 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--upsell:visited {
color: rgb(120 53 15 );
}
.nfd-root .nfd-button--upsell:hover {
--tw-bg-opacity: 1;
background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--upsell:hover:visited {
color: rgb(120 53 15 );
}
.nfd-root .nfd-button--upsell:focus {
--tw-text-opacity: 1;
color: rgb(120 53 15 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity, 1));
}
/* Sizes */
.nfd-root .nfd-button--large {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
padding-left: 1.5rem;
padding-right: 1.5rem;
font-size: 1rem;
line-height: 1.25rem;
}
.nfd-root .nfd-button--small {
padding-top: 0.375rem;
padding-bottom: 0.375rem;
padding-left: 0.625rem;
padding-right: 0.625rem;
font-size: .75rem;
}
/* States */
.nfd-root .nfd-button--disabled {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-button--disabled:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-checkbox {
display: flex;
align-items: center;
}
.nfd-root .nfd-checkbox--disabled .nfd-checkbox__input,
.nfd-root .nfd-checkbox--disabled .nfd-checkbox__label {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-checkbox__input {
height: 1rem;
width: 1rem;
cursor: default;
border-radius: 0.25rem;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-checkbox__input:focus {
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-checkbox__input:checked::before {
display: none;
--tw-content: none;
content: var(--tw-content);
}
.nfd-root .nfd-checkbox__label {
margin-left: 0.75rem;
}
.nfd-root .nfd-code {
margin: 0px;
display: inline-block;
border-radius: 0.25rem;
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
padding: 0.25rem;
font-size: .75rem;
line-height: 1.25;
--tw-text-opacity: 1;
color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-code--block {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
display: block;
max-width: 100%;
overflow-x: auto;
white-space: nowrap;
padding-left: 0.5rem;
padding-right: 0.5rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
.nfd-root .nfd-drop-zone {
width: 100%;
border-radius: 0.375rem;
border-width: 2px;
border-style: dashed;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-left: 1.5rem;
padding-right: 1.5rem;
padding-top: 1.25rem;
padding-bottom: 1.5rem;
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 300ms;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.nfd-root .nfd-drop-zone.nfd-drop-zone-is-dragging-over {
--tw-border-opacity: 1;
border-color: rgb(247 164 112 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(254 245 239 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-drop-zone.nfd-drop-zone-is-dragging-over .nfd-drop-zone__content {
pointer-events: none;
}
.nfd-root .nfd-drop-zone.nfd-drop-zone-is-disabled {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-file-input {
width: 100%;
border-radius: 0.375rem;
border-width: 2px;
border-style: dashed;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-left: 1.5rem;
padding-right: 1.5rem;
padding-top: 1.25rem;
padding-bottom: 1.5rem;
text-align: center;
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 300ms;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.nfd-root .nfd-file-input.nfd-is-drag-over {
--tw-border-opacity: 1;
border-color: rgb(247 164 112 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(254 245 239 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-file-input.nfd-is-drag-over .nfd-file-input__content {
pointer-events: none;
}
.nfd-root .nfd-file-input.nfd-is-drag-over .nfd-file-input__icon {
--tw-translate-y: -0.5rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
--tw-text-opacity: 1;
color: rgb(243 123 49 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-file-input.nfd-is-disabled {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-file-input.nfd-is-disabled .nfd-file-input__select-label {
cursor: not-allowed;
}
.nfd-root .nfd-file-input__content {
display: inline-flex;
max-width: 20rem;
flex-direction: column;
align-items: center;
}
.nfd-root .nfd-file-input__content > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.nfd-root .nfd-file-input__content {
text-align: center;
}
.nfd-root .nfd-file-input__icon {
margin-left: auto;
margin-right: auto;
height: 3rem;
width: 3rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
stroke-width: 1;
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 300ms;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.nfd-root .nfd-file-input__icon > path {
stroke-width: 1;
}
.nfd-root .nfd-file-input__input {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
.nfd-root .nfd-file-input__input:focus + .nfd-file-input__select-label {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-file-input__labels {
display: flex;
font-weight: 400;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-file-input__select-label {
border-radius: 0.375rem;
font-weight: 500;
}
[dir=rtl] .nfd-root .nfd-file-input__labels {
flex-direction: row-reverse;
}
.nfd-root .nfd-image-input {
display: flex;
min-width: max-content;
align-items: center;
gap: 1rem;
}
.nfd-root .nfd-image-input .nfd-image-input__preview {
position: relative;
display: flex;
height: 3rem;
width: 3rem;
align-items: center;
justify-content: center;
overflow: hidden;
}
.nfd-root .nfd-image-input .nfd-image-input__preview:focus-within {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-image-input .nfd-image-input__preview-img {
z-index: 10;
height: 100%;
width: 100%;
object-fit: cover;
}
.nfd-root .nfd-image-input .nfd-image-input__preview-reset {
position: absolute;
inset: 0px;
z-index: 20;
cursor: pointer;
background-color: rgb(15 23 42 / 0.6);
padding: 0.5rem;
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
opacity: 0;
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-delay: 100ms;
transition-duration: 100ms;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.nfd-root .nfd-image-input .nfd-image-input__preview-reset:focus {
opacity: 1;
}
.nfd-root .nfd-image-input .nfd-image-input__icon {
height: 3rem;
width: 3rem;
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-image-input.nfd-has-preview .nfd-image-input__preview {
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}
.nfd-root .nfd-image-input.nfd-is-disabled .nfd-image-input__preview {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-image-input.nfd-is-disabled .nfd-image-input__preview-reset {
display: none;
cursor: not-allowed;
}
.nfd-root .nfd-image-input.nfd-is-disabled .nfd-image-input__icon {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-label {
font-size: .8125rem;
font-weight: 500;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-label__required {
margin-left: 0.125rem;
--tw-text-opacity: 1;
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link {
cursor: pointer;
--tw-text-opacity: 1;
color: rgb(79 70 229 / var(--tw-text-opacity, 1));
text-decoration-line: underline;
}
.nfd-root .nfd-link:visited {
color: rgb(242 113 33 );
}
.nfd-root .nfd-link:hover {
--tw-text-opacity: 1;
color: rgb(99 102 241 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link:hover:visited {
color: rgb(243 123 49 );
}
.nfd-root .nfd-link:focus {
border-radius: 0.125rem;
--tw-text-opacity: 1;
color: rgb(99 102 241 / var(--tw-text-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 1px;
--tw-ring-offset-color: transparent;
}
/* Variants */
.nfd-root .nfd-link--default {
}
.nfd-root .nfd-link--primary {
--tw-text-opacity: 1;
color: rgb(241 101 15 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--primary:hover {
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--primary:focus {
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(241 101 15 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-link--error {
--tw-text-opacity: 1;
color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--error:hover {
--tw-text-opacity: 1;
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--error:focus {
--tw-text-opacity: 1;
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-paper {
display: flex;
flex-direction: column;
border-radius: 0.5rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 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);
}
.nfd-root .nfd-paper__header {
border-bottom-width: 1px;
padding: 2rem;
}
.nfd-root .nfd-paper__content {
flex-grow: 1;
padding: 2rem;
}
.nfd-root .nfd-progress-bar {
display: block;
width: 100%;
overflow: hidden;
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-progress-bar__progress {
display: block;
height: 0.375rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(242 113 33 / var(--tw-bg-opacity, 1));
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 200ms;
transition-timing-function: linear;
}
.nfd-root .nfd-radio {
display: flex;
align-items: center;
}
/* Variants */
.nfd-root .nfd-radio--disabled .nfd-radio__input,
.nfd-root .nfd-radio--disabled .nfd-radio__label,
.nfd-root .nfd-radio--disabled .nfd-radio__check {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-radio--disabled .nfd-radio__input:focus,
.nfd-root .nfd-radio--disabled .nfd-radio__label:focus,
.nfd-root .nfd-radio--disabled .nfd-radio__check:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-radio--inline-block {
display: inline-flex;
}
/* Elements of the inline-block variant */
.nfd-root .nfd-radio--inline-block .nfd-radio__input {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
.nfd-root .nfd-radio--inline-block .nfd-radio__input:checked + .nfd-radio__content .nfd-radio__label {
border-color: transparent;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-radio--inline-block .nfd-radio__input:checked + .nfd-radio__content .nfd-radio__check {
visibility: visible;
}
.nfd-root .nfd-radio--inline-block .nfd-radio__input:focus + .nfd-radio__content .nfd-radio__label {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-radio--inline-block .nfd-radio__input:checked:focus + .nfd-radio__content .nfd-radio__label {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-offset-width: 1px;
}
.nfd-root .nfd-radio--inline-block .nfd-radio__content {
position: relative;
}
.nfd-root .nfd-radio--inline-block .nfd-radio__label {
margin-left: 0px;
display: flex;
height: 3.5rem;
width: 3.5rem;
cursor: pointer;
align-items: center;
justify-content: center;
border-radius: 0.5rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
font-size: 1rem;
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-radio--inline-block .nfd-radio__label:hover {
--tw-border-opacity: 1;
border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
}
.nfd-root .nfd-radio--inline-block .nfd-radio__label:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-radio--inline-block .nfd-radio__check {
visibility: hidden;
position: absolute;
top: 0.125rem;
right: 0.125rem;
height: 1.25rem;
width: 1.25rem;
--tw-text-opacity: 1;
color: rgb(241 101 15 / var(--tw-text-opacity, 1));
}
/* State */
.nfd-root .nfd-radio__input {
height: 1rem;
width: 1rem;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-radio__input:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-radio__label {
margin-left: 0.75rem;
}
.nfd-root .nfd-select {
position: relative;
}
.nfd-root .nfd-select--disabled .nfd-select__label,
.nfd-root .nfd-select--disabled .nfd-select__button {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-select__button {
position: relative;
display: flex;
width: 100%;
cursor: default;
align-items: center;
justify-content: space-between;
border-radius: 0.375rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
padding-right: 2.25rem;
text-align: left;
line-height: 1.5rem;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-select__button:focus {
--tw-border-opacity: 1;
border-color: rgb(242 113 33 / var(--tw-border-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-select__button-icon {
pointer-events: none;
position: absolute;
top: 0.625rem;
right: 0.625rem;
height: 1.25rem;
width: 1.25rem;
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-select__options {
position: absolute;
z-index: 10;
margin-top: 0.25rem;
max-height: 15rem;
width: 100%;
overflow: auto;
border-radius: 0.375rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
font-size: .8125rem;
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1));
--tw-ring-opacity: 0.05;
}
.nfd-root .nfd-select__options:focus {
outline: 2px solid transparent;
outline-offset: 2px;
}
.nfd-root .nfd-select__option {
position: relative;
display: flex;
cursor: default;
-webkit-user-select: none;
user-select: none;
align-items: center;
justify-content: space-between;
padding-left: 0.75rem;
padding-right: 0.75rem;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
--tw-text-opacity: 1;
color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-select__option--active {
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-select__option--selected {
--tw-bg-opacity: 1;
background-color: rgb(241 101 15 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-select__option-label,
.nfd-root .nfd-select__button-label {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nfd-root .nfd-select__option-check {
height: 1.25rem;
width: 1.25rem;
flex-shrink: 0;
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-tag-input {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.375rem;
border-radius: 0.375rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
padding-right: 0.75rem;
font-size: .8125rem;
line-height: 1.5rem;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-tag-input::placeholder {
--tw-placeholder-opacity: 1;
color: rgb(100 116 139 / var(--tw-placeholder-opacity, 1));
}
.nfd-root .nfd-tag-input {
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-tag-input:focus-within {
--tw-border-opacity: 1;
border-color: rgb(242 113 33 / var(--tw-border-opacity, 1));
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-tag-input--disabled {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-tag-input--disabled:focus-within {
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__tag {
cursor: not-allowed;
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__tag:hover {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__tag:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__tag:focus-visible {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__remove-tag {
cursor: not-allowed;
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__remove-tag:hover {
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__remove-tag:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-tag-input--disabled .nfd-tag-input__input {
cursor: not-allowed;
}
.nfd-root .nfd-tag-input__tag {
min-height: 20px;
padding-inline-end: 0.125rem;
cursor: pointer;
gap: 0.125rem;
}
.nfd-root .nfd-tag-input__tag:hover {
--tw-border-opacity: 1;
border-color: rgb(242 113 33 / var(--tw-border-opacity, 1));
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-tag-input__tag:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-tag-input__tag:focus-visible {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-tag-input__remove-tag {
display: inline-flex;
height: 1rem;
width: 1rem;
flex-shrink: 0;
align-items: center;
justify-content: center;
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-tag-input__remove-tag:hover {
--tw-bg-opacity: 1;
background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-tag-input__remove-tag:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-tag-input__input {
margin: 0px;
display: inline-flex;
flex: 1 1 0%;
border-style: none;
padding: 0px;
font-size: .8125rem;
}
.nfd-root .nfd-tag-input__input:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-text-input {
width: 100%;
border-radius: 0.375rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
padding-right: 0.75rem;
font-size: .8125rem;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-text-input:focus {
--tw-border-opacity: 1;
border-color: rgb(242 113 33 / var(--tw-border-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-text-input--read-only, .nfd-root .nfd-text-input--disabled {
cursor: default;
--tw-border-opacity: 1;
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(100 116 139 / var(--tw-text-opacity, 1));
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-text-input--disabled {
cursor: not-allowed;
}
.nfd-root .nfd-text-input--disabled:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-textarea {
width: 100%;
border-radius: 0.375rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
padding-right: 0.75rem;
font-size: .8125rem;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-textarea:focus {
--tw-border-opacity: 1;
border-color: rgb(242 113 33 / var(--tw-border-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-textarea--disabled {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-textarea--disabled:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.nfd-root .nfd-title {
font-weight: 500;
line-height: 1.25;
--tw-text-opacity: 1;
color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-title--1 {
font-size: 1.5rem;
}
.nfd-root .nfd-title--2 {
font-size: 1.125rem;
}
.nfd-root .nfd-title--3 {
font-size: .875rem;
}
.nfd-root .nfd-title--4 {
font-size: 1rem;
}
.nfd-root .nfd-title--5 {
font-size: .8125rem;
}
.nfd-root .nfd-toggle {
position: relative;
display: inline-flex;
height: 1.5rem;
width: 2.75rem;
flex-shrink: 0;
cursor: pointer;
border-radius: 9999px;
border-width: 2px;
border-color: transparent;
--tw-bg-opacity: 1;
background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
transition-duration: 200ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.nfd-root .nfd-toggle:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
/* States */
.nfd-root .nfd-toggle--checked {
--tw-bg-opacity: 1;
background-color: rgb(242 113 33 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-toggle--checked .nfd-toggle__handle {
--tw-translate-x: 1.25rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.nfd-root .nfd-toggle--disabled {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-toggle--disabled:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
/* Elements */
.nfd-root .nfd-toggle__handle {
pointer-events: none;
position: relative;
display: flex;
height: 1.25rem;
width: 1.25rem;
--tw-translate-x: 0px;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
align-items: center;
justify-content: center;
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 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-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-duration: 200ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.nfd-root .nfd-toggle__icon {
height: 0.625rem;
width: 0.625rem;
flex-shrink: 0;
flex-grow: 0;
stroke: currentColor;
stroke-width: 2;
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 100ms;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.nfd-root .nfd-toggle__icon--check {
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-toggle__icon--x {
--tw-text-opacity: 1;
color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
/* RTL styles */
[dir=rtl] .nfd-root .nfd-toggle--checked .nfd-toggle__handle {
--tw-translate-x: -1.25rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
/* Validation icon */
.nfd-root .nfd-validation-icon {
pointer-events: none;
}
.nfd-root .nfd-validation-icon--success {
--tw-text-opacity: 1;
color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-validation-icon--info {
--tw-text-opacity: 1;
color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-validation-icon--warning {
--tw-text-opacity: 1;
color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-validation-icon--error {
--tw-text-opacity: 1;
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
/* Validation input */
.nfd-root .nfd-validation-input {
position: relative;
}
.nfd-root .nfd-validation-input--success .nfd-validation-input__input {
--tw-border-opacity: 1;
border-color: rgb(134 239 172 / var(--tw-border-opacity, 1));
padding-right: 2.5rem;
}
.nfd-root .nfd-validation-input--success .nfd-validation-input__input:focus-within {
--tw-border-opacity: 1;
border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input--success .nfd-validation-input__input:focus {
--tw-border-opacity: 1;
border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input--info .nfd-validation-input__input {
--tw-border-opacity: 1;
border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
padding-right: 2.5rem;
}
.nfd-root .nfd-validation-input--info .nfd-validation-input__input:focus-within {
--tw-border-opacity: 1;
border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input--info .nfd-validation-input__input:focus {
--tw-border-opacity: 1;
border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input--warning .nfd-validation-input__input {
--tw-border-opacity: 1;
border-color: rgb(252 211 77 / var(--tw-border-opacity, 1));
padding-right: 2.5rem;
}
.nfd-root .nfd-validation-input--warning .nfd-validation-input__input:focus-within {
--tw-border-opacity: 1;
border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input--warning .nfd-validation-input__input:focus {
--tw-border-opacity: 1;
border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input--error .nfd-validation-input__input {
--tw-border-opacity: 1;
border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
padding-right: 2.5rem;
}
.nfd-root .nfd-validation-input--error .nfd-validation-input__input:focus-within {
--tw-border-opacity: 1;
border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input--error .nfd-validation-input__input:focus {
--tw-border-opacity: 1;
border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-validation-input__input {
}
.nfd-root .nfd-validation-input__icon {
position: absolute;
top: 0.6875rem;
right: 0.625rem;
height: 1.25rem;
width: 1.25rem;
}
/* Validation message */
.nfd-root .nfd-validation-message a {
font-weight: 500;
color: inherit;
}
.nfd-root .nfd-validation-message a:visited:hover {
color: inherit;
}
.nfd-root .nfd-validation-message a:focus {
--tw-ring-color: currentColor;
}
.nfd-root .nfd-validation-message--success {
--tw-text-opacity: 1;
color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-validation-message--info {
--tw-text-opacity: 1;
color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-validation-message--warning {
--tw-text-opacity: 1;
color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-validation-message--error {
--tw-text-opacity: 1;
color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-mobile-navigation__top {
position: sticky;
top: 0px;
z-index: 50;
width: 100%;
}
.nfd-root .nfd-mobile-navigation__dialog {
position: fixed;
inset: 0px;
z-index: 50;
display: flex;
}
.nfd-root .nfd-autocomplete-field__description {
margin-top: 0.5rem;
}
.nfd-root .nfd-autocomplete-field__validation {
margin-top: 0.5rem;
}
.nfd-root .nfd-card {
position: relative;
display: flex;
flex-direction: column;
}
.nfd-root .nfd-card > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.nfd-root .nfd-card {
overflow: hidden;
border-radius: 0.5rem;
border-width: 1px;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding: 1.5rem;
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
transition-property: transform;
transition-duration: 150ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.nfd-root .nfd-card__header {
position: relative;
margin-left: -1.5rem;
margin-right: -1.5rem;
margin-top: -1.5rem;
display: flex;
height: 6rem;
align-items: center;
justify-content: center;
--tw-bg-opacity: 1;
background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
padding: 1.5rem;
}
.nfd-root .nfd-card__content {
flex-grow: 1;
}
.nfd-root .nfd-card__footer {
border-top-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
padding-top: 1.5rem;
}
.nfd-root .nfd-checkbox-group {}
.nfd-root .nfd-checkbox-group--disabled .nfd-checkbox-group__label,
.nfd-root .nfd-checkbox-group--disabled .nfd-checkbox-group__description {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-checkbox-group__label {
margin-bottom: 0.5rem;
}
.nfd-root .nfd-checkbox-group__options {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.nfd-root .nfd-checkbox-group__description {
margin-top: -0.5rem;
margin-bottom: 1rem;
}
.nfd-root .nfd-container {
width: 100%;
border-radius: 0.5rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 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);
}
.nfd-root .nfd-container__header {
display: flex;
flex-direction: column;
gap: 1rem;
border-bottom-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
padding: 2rem;
}
.nfd-root .nfd-container__block {
padding: 2rem;
padding-bottom: 0px;
}
.nfd-root .nfd-container__settings-field {
display: grid;
}
@media (min-width: 1280px) {
.nfd-root .nfd-container__settings-field {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 3rem;
}
}
.nfd-root .nfd-container__footer {
display: flex;
flex-direction: column;
gap: 1rem;
border-top-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
padding: 2rem;
}
.nfd-root .nfd-drawer {
position: relative;
inset: 0px;
z-index: 10;
overflow: hidden;
}
.nfd-root .nfd-drawer.nfd-drawer--offset .nfd-drawer__content {
margin: 1.25rem;
border-radius: 0.5rem;
}
.nfd-root .nfd-drawer.nfd-drawer--offset .nfd-drawer__panel {
border-radius: 0.5rem;
}
.nfd-root .nfd-drawer.nfd-drawer--right .nfd-drawer__content {
right: 0px;
}
.nfd-root .nfd-drawer.nfd-drawer--left .nfd-drawer__content {
left: 0px;
}
.nfd-root .nfd-drawer__overlay {
position: fixed;
inset: 0px;
background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1));
--tw-bg-opacity: 0.75;
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.nfd-root .nfd-drawer__container {
position: fixed;
inset: 0px;
overflow: hidden;
}
.nfd-root .nfd-drawer__content {
pointer-events: none;
position: fixed;
top: 0px;
bottom: 0px;
}
.nfd-root .nfd-drawer__header {
display: flex;
width: 100%;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
.nfd-root .nfd-drawer__close {
align-self: flex-end;
}
.nfd-root .nfd-drawer__close-button {
position: relative;
z-index: 10;
border-radius: 0.375rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-drawer__close-button:hover {
--tw-text-opacity: 1;
color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-drawer__close-button:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-drawer__panel {
pointer-events: auto;
display: flex;
height: 100%;
max-width: 100%;
flex-direction: column;
gap: 0.75rem;
overflow-y: auto;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding: 1.5rem;
--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-feature-upsell {
position: relative;
}
.nfd-root .nfd-feature-upsell--default {
--tw-grayscale: grayscale(100%);
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.nfd-root .nfd-feature-upsell--card {
padding: 1.5rem;
}
.nfd-root .nfd-features-select {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.nfd-root .nfd-features-select__feature {
display: flex;
flex-direction: column;
gap: 0.625rem;
}
.nfd-root .nfd-features-select__feature .nfd-label:not(.nfd-features-select__feature-label) {
cursor: pointer;
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-input {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-input:checked + .nfd-label .nfd-features-select__feature-content {
border-color: transparent;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-input:checked + .nfd-label .nfd-features-select__feature-content .nfd-features-select__feature-check {
visibility: visible;
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-input:focus + .nfd-label .nfd-features-select__feature-content {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-input:checked:focus + .nfd-label .nfd-features-select__feature-content {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-offset-width: 1px;
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-content {
position: relative;
border-radius: 0.5rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding-left: 1.25rem;
padding-right: 1.25rem;
padding-top: 1.25rem;
padding-bottom: 18px;
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-content:hover {
--tw-border-opacity: 1;
border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-features-select__feature .nfd-features-select__feature-check {
visibility: hidden;
position: absolute;
top: 0.125rem;
right: 0.125rem;
height: 1.25rem;
width: 1.25rem;
--tw-text-opacity: 1;
color: rgb(241 101 15 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-features-select__feature.nfd-is-disabled .nfd-label {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-file-import > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.nfd-root .nfd-file-import__feedback {
border-radius: 0.375rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding: 1rem;
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-file-import__feedback-header {
display: flex;
align-items: flex-start;
}
.nfd-root .nfd-file-import__feedback-header > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(1rem * var(--tw-space-x-reverse));
margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.nfd-root .nfd-file-import__feedback-figure {
display: flex;
height: 2rem;
width: 2rem;
align-items: center;
justify-content: center;
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(251 215 192 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-file-import__feedback-figure > svg {
height: 1.25rem;
width: 1.25rem;
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-file-import__feedback-title {
margin-bottom: 0.125rem;
display: block;
overflow-wrap: break-word;
font-weight: 500;
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-file-import__feedback-description {
display: block;
font-size: .75rem;
font-weight: 500;
}
.nfd-root .nfd-file-import__abort-button {
display: inline-flex;
height: 1.25rem;
width: 1.25rem;
flex-shrink: 0;
align-items: center;
justify-content: center;
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-file-import__abort-button:hover {
--tw-bg-opacity: 1;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-file-import__abort-button:focus {
--tw-bg-opacity: 1;
background-color: rgb(242 113 33 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
outline: 2px solid transparent;
outline-offset: 2px;
}
.nfd-root .nfd-file-import__abort-button > svg {
height: 0.75rem;
width: 0.75rem;
}
.nfd-root .nfd-file-import__abort-button > svg > path {
stroke-width: 3;
}
.nfd-root .nfd-image-import .nfd-image-import__drop-zone-content {
display: flex;
flex-direction: column-reverse;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
@container nfd-image-import (min-width: 32rem) {
.nfd-root .nfd-image-import .nfd-image-import__drop-zone-content {
flex-direction: row;
}
}
.nfd-root .nfd-image-import .nfd-image-import__drop-label {
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-image-import .nfd-image-import__drop-label:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-image-import.nfd-is-disabled .nfd-image-input .nfd-image-input__icon,
.nfd-root .nfd-image-import.nfd-is-disabled .nfd-image-input .nfd-image-input__preview-img,
.nfd-root .nfd-image-import.nfd-is-disabled .nfd-image-input .nfd-button--disabled {
/* Reset opacity to prevent opacity stacking from DropZone */
opacity: 1;
}
.nfd-root .nfd-image-import.nfd-is-disabled .nfd-image-import__drop-label {
cursor: not-allowed;
}
.nfd-root .nfd-image-import .nfd-image-import__content {
margin-top: 1rem;
}
.nfd-root .nfd-modal {
position: fixed;
inset: 0px;
z-index: 50;
padding: 1rem;
}
@media (min-width: 640px) {
.nfd-root .nfd-modal {
padding: 2rem;
}
}
@media (min-width: 768px) {
.nfd-root .nfd-modal {
padding: 5rem;
}
}
.nfd-root .nfd-modal__layout {
display: flex;
min-height: 100%;
}
.nfd-root .nfd-modal--center .nfd-modal__layout {
align-items: center;
justify-content: center;
}
.nfd-root .nfd-modal--top-center .nfd-modal__layout {
align-items: flex-start;
justify-content: center;
}
.nfd-root .nfd-modal__overlay {
position: absolute;
inset: 0px;
background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1));
--tw-bg-opacity: 0.75;
}
.nfd-root .nfd-modal__panel {
position: relative;
width: 100%;
max-width: 36rem;
overflow: hidden;
border-radius: 0.5rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding: 1.5rem;
--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-modal__close {
position: absolute;
top: 1rem;
right: 1rem;
display: block;
}
.nfd-root .nfd-modal__close-button {
position: relative;
z-index: 10;
border-radius: 0.375rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-modal__close-button:hover {
--tw-text-opacity: 1;
color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-modal__close-button:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-opacity: 1;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1));
--tw-ring-offset-width: 2px;
}
.nfd-root .nfd-notifications {
max-width: calc(100% - 4rem); /* 100% - top and left of 2rem = 4rem. */
max-height: calc(100% - 4rem); /* 100% - ( top of 2rem * 2 ) = 4rem. */ pointer-events: none; position: fixed; z-index: 20; display: flex; width: 100%; flex-direction: column;
}
.nfd-root .nfd-notifications > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.nfd-root .nfd-notifications--bottom-center {
bottom: 2rem;
align-items: center;
}
.nfd-root .nfd-notifications--bottom-left {
bottom: 2rem;
left: 2rem;
}
.nfd-root .nfd-notifications--top-center {
top: 2rem;
align-items: center;
}
.nfd-root .nfd-notification {
pointer-events: auto;
z-index: 20;
width: 20rem;
max-width: 100%;
overflow-y: auto;
border-radius: 0.5rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
padding: 1rem;
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1));
--tw-ring-opacity: 0.05;
}
.nfd-root .nfd-notification--large {
width: 24rem;
}
.nfd-root .nfd-notification__icon {
height: 1.25rem;
width: 1.25rem;
}
.nfd-root .nfd-page {
display: flex;
flex-direction: column;
gap: 2rem;
}
.nfd-root .nfd-price-field--disabled .nfd-price-field__label,
.nfd-root .nfd-price-field--disabled .nfd-price-field__description {
opacity: 0.5;
}
.nfd-root .nfd-price-field--disabled .nfd-price-field__label {
cursor: not-allowed;
}
.nfd-root .nfd-price-field--read-only .nfd-price-field__label {
cursor: default;
}
.nfd-root .nfd-price-field__description {
margin-top: 0.5rem;
}
.nfd-root .nfd-price-field__validation {
margin-top: 0.5rem;
}
.nfd-root .nfd-price-field__input.nfd-price-field--input-with-icon {
padding-right: calc(1.25rem + 24px);
}
.nfd-root .nfd-radio-group--inline-block .nfd-radio-group__options {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 0.5rem;
}
.nfd-root .nfd-radio-group--disabled .nfd-radio-group__label,
.nfd-root .nfd-radio-group--disabled .nfd-radio-group__description {
opacity: 0.5;
}
.nfd-root .nfd-radio-group--disabled .nfd-radio-group__label {
cursor: not-allowed;
}
.nfd-root .nfd-radio-group__label {
margin-bottom: 0.5rem;
}
.nfd-root .nfd-radio-group__options {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.nfd-root .nfd-radio-group__description {
margin-top: -0.5rem;
margin-bottom: 1rem;
}
.nfd-root .nfd-select-field {}
.nfd-root .nfd-select-field--disabled .nfd-select-field__label,
.nfd-root .nfd-select-field--disabled .nfd-select-field__description {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-select-field__options {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.nfd-root .nfd-select-field__description {
margin-top: 0.5rem;
}
.nfd-root .nfd-select-field__validation {
margin-top: 0.5rem;
}
.nfd-root .nfd-mobile-navigation__top {
position: sticky;
top: 0px;
z-index: 50;
width: 100%;
}
.nfd-root .nfd-mobile-navigation__dialog {
position: fixed;
inset: 0px;
z-index: 50;
display: flex;
}
.nfd-root .nfd-tag-field--disabled .nfd-tag-field__label,
.nfd-root .nfd-tag-field--disabled .nfd-tag-field__description {
cursor: not-allowed;
opacity: 0.5;
}
.nfd-root .nfd-tag-field__description {
margin-top: 0.5rem;
}
.nfd-root .nfd-tag-field__validation {
margin-top: 0.5rem;
}
.nfd-root .nfd-text-field--disabled .nfd-text-field__label,
.nfd-root .nfd-text-field--disabled .nfd-text-field__description {
opacity: 0.5;
}
.nfd-root .nfd-text-field--disabled .nfd-text-field__label {
cursor: not-allowed;
}
.nfd-root .nfd-text-field--read-only .nfd-text-field__label {
cursor: default;
}
.nfd-root .nfd-text-field__description {
margin-top: 0.5rem;
}
.nfd-root .nfd-text-field__validation {
margin-top: 0.5rem;
}
.nfd-root .nfd-text-field__input.nfd-text-field--input-with-icon {
padding-right: calc(1.25rem + 24px);
}
.nfd-root .nfd-textarea-field__label {}
.nfd-root .nfd-textarea-field__description {
margin-top: 0.5rem;
}
.nfd-root .nfd-textarea-field__validation {
margin-top: 0.5rem;
}
.nfd-root .nfd-toggle-field {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.nfd-root .nfd-toggle-field--disabled .nfd-toggle-field__label-wrapper,
.nfd-root .nfd-toggle-field--disabled .nfd-toggle-field__description {
opacity: 0.5;
}
.nfd-root .nfd-toggle-field--disabled .nfd-toggle-field__label,
.nfd-root .nfd-toggle-field--disabled .nfd-toggle-field__label-wrapper,
.nfd-root .nfd-toggle-field--disabled .nfd-toggle-field__description {
cursor: not-allowed;
}
.nfd-root .nfd-toggle-field__header {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 1.5rem;
}
.nfd-root .nfd-toggle-field__label-wrapper {
display: flex;
align-items: center;
gap: 0.25rem;
}
.nfd-root .nfd-toggle-field__description {
margin-right: 4.25rem;
}
.nfd-root .nfd-title {
--tw-text-opacity: 1;
color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link {
--tw-text-opacity: 1;
color: rgb(25 107 222 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link:visited {
color: rgb(26 72 132 );
}
.nfd-root .nfd-link:hover {
--tw-text-opacity: 1;
color: rgb(26 72 132 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link:hover:visited {
color: rgb(26 72 132 );
}
.nfd-root .nfd-link--primary {
--tw-text-opacity: 1;
color: rgb(241 101 15 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--primary:hover {
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--primary:focus {
--tw-text-opacity: 1;
color: rgb(242 113 33 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(241 101 15 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-link--error {
--tw-text-opacity: 1;
color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--error:hover {
--tw-text-opacity: 1;
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-link--error:focus {
--tw-text-opacity: 1;
color: rgb(239 68 68 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-button {
gap: 0.5rem;
padding-left: 1rem;
padding-right: 1rem;
}
.nfd-root .nfd-button:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-button svg {
height: 1.25rem;
width: 1.25rem;
}
/* Variants */
.nfd-root .nfd-button--primary {
--tw-bg-opacity: 1;
background-color: rgb(25 107 222 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-button--primary:hover {
--tw-bg-opacity: 1;
background-color: rgb(26 72 132 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-button--primary:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-button--secondary {
--tw-border-opacity: 1;
border-color: rgb(25 107 222 / var(--tw-border-opacity, 1));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--secondary:visited {
color: rgb(0 0 0 );
}
.nfd-root .nfd-button--secondary:hover {
--tw-bg-opacity: 1;
background-color: rgb(204 220 244 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--secondary:hover:visited {
color: rgb(15 23 42 );
}
.nfd-root .nfd-button--secondary:focus {
--tw-text-opacity: 1;
color: rgb(15 23 42 / var(--tw-text-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-button--standout {
--tw-bg-opacity: 1;
background-color: rgb(252 211 77 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--standout:hover {
--tw-bg-opacity: 1;
background-color: rgb(233 180 4 / var(--tw-bg-opacity, 1));
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-button--standout:focus {
--tw-text-opacity: 1;
color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-toggle {
--tw-bg-opacity: 1;
background-color: rgb(205 208 214 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-toggle:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-toggle--checked {
--tw-bg-opacity: 1;
background-color: rgb(25 107 222 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-toggle__icon--check {
--tw-text-opacity: 1;
color: rgb(25 107 222 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-toggle__icon--x {
--tw-text-opacity: 1;
color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.nfd-root .nfd-toggle-field__description {
margin-top: 0.75rem;
margin-right: 0.5rem;
}
@media (min-width: 640px) {
.nfd-root .nfd-toggle-field__description {
margin-right: 10.5rem;
margin-top: 0px;
}
}
.nfd-root .nfd-checkbox .nfd-checkbox__input {
--tw-text-opacity: 1;
color: rgb(25 107 222 / var(--tw-text-opacity, 1));
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-checkbox .nfd-checkbox__input:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-checkbox .nfd-checkbox__input:checked::before {
display: none;
}
.nfd-root .nfd-radio-group .nfd-radio__description {
margin-bottom: 0.5rem;
margin-left: 1.75rem;
}
@media (min-width: 1024px) {
.nfd-root .nfd-radio-group .nfd-radio__description {
margin-right: 10.5rem;
}
}
.nfd-root .nfd-radio__input {
--tw-text-opacity: 1;
color: rgb(25 107 222 / var(--tw-text-opacity, 1));
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.nfd-root .nfd-radio__input:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-radio__input:checked::before {
background-color: transparent;
}
.nfd-root .nfd-select__button:focus {
--tw-border-opacity: 1;
border-color: rgb(25 107 222 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-select__option--active {
--tw-bg-opacity: 1;
background-color: rgb(205 208 214 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-select__option--selected {
--tw-bg-opacity: 1;
background-color: rgb(25 107 222 / var(--tw-bg-opacity, 1));
}
.nfd-root .nfd-select-field__spaced .nfd-select-field__select {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
.nfd-root .nfd-select-field__spaced .nfd-select__button {
width: 6rem;
}
.nfd-root .nfd-select-field__spaced .nfd-select__options {
right: 0px;
width: 10rem;
}
@media (min-width: 1024px) {
.nfd-root .nfd-select-field__spaced .nfd-select-field__description {
margin-right: 10.5rem;
}
}
.nfd-root .nfd-notifications {
z-index: 9991;
}
.nfd-root .nfd-notifications--bottom-left {
left: 12%;
}
/* mobile menu modal */
.nfd-root .wppbh-app-sidenav-mobile .nfd-modal__close {
top: -36px;
right: 0px;
display: flex;
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.nfd-root .wppbh-app-sidenav-mobile .nfd-modal__close-button {
border-radius: 9999px;
padding: 0.25rem;
--tw-text-opacity: 1;
color: rgb(74 85 103 / var(--tw-text-opacity, 1));
}
.nfd-root .wppbh-app-sidenav-mobile .nfd-modal__close-button:hover {
--tw-text-opacity: 1;
color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.nfd-root .wppbh-app-sidenav-mobile .nfd-modal__close-button:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-root .nfd-text-input:focus {
--tw-border-opacity: 1;
border-color: rgb(25 107 222 / var(--tw-border-opacity, 1));
--tw-ring-opacity: 1;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1));
}
.nfd-sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border-width: 0 !important;
}
.nfd-pointer-events-none {
pointer-events: none !important;
}
.nfd-fixed {
position: fixed !important;
}
.nfd-absolute {
position: absolute !important;
}
.nfd-relative {
position: relative !important;
}
.nfd-sticky {
position: sticky !important;
}
.nfd-inset-0 {
inset: 0px !important;
}
.nfd-inset-y-0 {
top: 0px !important;
bottom: 0px !important;
}
.nfd-bottom-0 {
bottom: 0px !important;
}
.nfd-left-0 {
left: 0px !important;
}
.nfd-right-0 {
right: 0px !important;
}
.nfd-right-3 {
right: 0.75rem !important;
}
.nfd-start-0 {
inset-inline-start: 0px !important;
}
.nfd-top-0 {
top: 0px !important;
}
.nfd-top-1\/2 {
top: 50% !important;
}
.nfd-top-full {
top: 100% !important;
}
.nfd-z-10 {
z-index: 10 !important;
}
.nfd-z-30 {
z-index: 30 !important;
}
.nfd-z-40 {
z-index: 40 !important;
}
.nfd-z-50 {
z-index: 50 !important;
}
.nfd-z-\[9999\] {
z-index: 9999 !important;
}
.nfd-col-span-1 {
grid-column: span 1 / span 1 !important;
}
.nfd-col-span-full {
grid-column: 1 / -1 !important;
}
.nfd-m-0 {
margin: 0px !important;
}
.nfd-m-2 {
margin: 0.5rem !important;
}
.nfd-m-3 {
margin: 0.75rem !important;
}
.nfd-m-auto {
margin: auto !important;
}
.nfd-mx-4 {
margin-left: 1rem !important;
margin-right: 1rem !important;
}
.nfd-mx-auto {
margin-left: auto !important;
margin-right: auto !important;
}
.nfd-my-0 {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.nfd-my-6 {
margin-top: 1.5rem !important;
margin-bottom: 1.5rem !important;
}
.nfd--ml-1 {
margin-left: -0.25rem !important;
}
.nfd--mr-14 {
margin-right: -3.5rem !important;
}
.nfd-mb-0 {
margin-bottom: 0px !important;
}
.nfd-mb-1 {
margin-bottom: 0.25rem !important;
}
.nfd-mb-1\.5 {
margin-bottom: 0.375rem !important;
}
.nfd-mb-2 {
margin-bottom: 0.5rem !important;
}
.nfd-mb-2\.5 {
margin-bottom: 0.625rem !important;
}
.nfd-mb-3 {
margin-bottom: 0.75rem !important;
}
.nfd-mb-4 {
margin-bottom: 1rem !important;
}
.nfd-mb-6 {
margin-bottom: 1.5rem !important;
}
.nfd-mb-8 {
margin-bottom: 2rem !important;
}
.nfd-mb-px {
margin-bottom: 1px !important;
}
.nfd-ml-4 {
margin-left: 1rem !important;
}
.nfd-ml-8 {
margin-left: 2rem !important;
}
.nfd-ml-auto {
margin-left: auto !important;
}
.nfd-mr-2 {
margin-right: 0.5rem !important;
}
.nfd-mr-4 {
margin-right: 1rem !important;
}
.nfd-mt-0 {
margin-top: 0px !important;
}
.nfd-mt-1 {
margin-top: 0.25rem !important;
}
.nfd-mt-1\.5 {
margin-top: 0.375rem !important;
}
.nfd-mt-10 {
margin-top: 2.5rem !important;
}
.nfd-mt-2 {
margin-top: 0.5rem !important;
}
.nfd-mt-3 {
margin-top: 0.75rem !important;
}
.nfd-mt-4 {
margin-top: 1rem !important;
}
.nfd-mt-6 {
margin-top: 1.5rem !important;
}
.nfd-mt-8 {
margin-top: 2rem !important;
}
.nfd-mt-auto {
margin-top: auto !important;
}
.nfd-box-content {
box-sizing: content-box !important;
}
.nfd-flex {
display: flex !important;
}
.nfd-inline-flex {
display: inline-flex !important;
}
.nfd-grid {
display: grid !important;
}
.nfd-hidden {
display: none !important;
}
.nfd-aspect-video {
aspect-ratio: 16 / 9 !important;
}
.nfd-h-0 {
height: 0px !important;
}
.nfd-h-10 {
height: 2.5rem !important;
}
.nfd-h-12 {
height: 3rem !important;
}
.nfd-h-16 {
height: 4rem !important;
}
.nfd-h-24 {
height: 6rem !important;
}
.nfd-h-3 {
height: 0.75rem !important;
}
.nfd-h-3\.5 {
height: 0.875rem !important;
}
.nfd-h-4 {
height: 1rem !important;
}
.nfd-h-5 {
height: 1.25rem !important;
}
.nfd-h-6 {
height: 1.5rem !important;
}
.nfd-h-7 {
height: 1.75rem !important;
}
.nfd-h-8 {
height: 2rem !important;
}
.nfd-h-\[130px\] {
height: 130px !important;
}
.nfd-h-\[24px\] {
height: 24px !important;
}
.nfd-h-\[64px\] {
height: 64px !important;
}
.nfd-h-auto {
height: auto !important;
}
.nfd-h-full {
height: 100% !important;
}
.nfd-h-screen {
height: 100vh !important;
}
.nfd-max-h-\[70vh\] {
max-height: 70vh !important;
}
.nfd-min-h-0\.5 {
min-height: 0.125rem !important;
}
.nfd-min-h-\[200px\] {
min-height: 200px !important;
}
.nfd-min-h-\[35vh\] {
min-height: 35vh !important;
}
.nfd-min-h-\[calc\(100dvh-220px\)\] {
min-height: calc(100dvh - 220px) !important;
}
.nfd-w-0 {
width: 0px !important;
}
.nfd-w-1\/4 {
width: 25% !important;
}
.nfd-w-10 {
width: 2.5rem !important;
}
.nfd-w-10\/12 {
width: 83.333333% !important;
}
.nfd-w-12 {
width: 3rem !important;
}
.nfd-w-2 {
width: 0.5rem !important;
}
.nfd-w-3 {
width: 0.75rem !important;
}
.nfd-w-36 {
width: 9rem !important;
}
.nfd-w-4 {
width: 1rem !important;
}
.nfd-w-5 {
width: 1.25rem !important;
}
.nfd-w-56 {
width: 14rem !important;
}
.nfd-w-6 {
width: 1.5rem !important;
}
.nfd-w-7\/12 {
width: 58.333333% !important;
}
.nfd-w-8 {
width: 2rem !important;
}
.nfd-w-\[24px\] {
width: 24px !important;
}
.nfd-w-\[32px\] {
width: 32px !important;
}
.nfd-w-auto {
width: auto !important;
}
.nfd-w-fit {
width: fit-content !important;
}
.nfd-w-full {
width: 100% !important;
}
.nfd-w-max {
width: max-content !important;
}
.nfd-w-screen {
width: 100vw !important;
}
.nfd-min-w-0 {
min-width: 0px !important;
}
.nfd-min-w-60 {
min-width: 15rem !important;
}
.nfd-min-w-\[200px\] {
min-width: 200px !important;
}
.nfd-min-w-full {
min-width: 100% !important;
}
.nfd-max-w-12 {
max-width: 3rem !important;
}
.nfd-max-w-3xl {
max-width: 48rem !important;
}
.nfd-max-w-6 {
max-width: 1.5rem !important;
}
.nfd-max-w-full {
max-width: 100% !important;
}
.nfd-max-w-screen-sm {
max-width: 640px !important;
}
.nfd-max-w-xs {
max-width: 20rem !important;
}
.nfd-flex-1 {
flex: 1 1 0% !important;
}
.nfd-flex-shrink-0 {
flex-shrink: 0 !important;
}
.nfd-shrink {
flex-shrink: 1 !important;
}
.nfd-shrink-0 {
flex-shrink: 0 !important;
}
.nfd-grow {
flex-grow: 1 !important;
}
.nfd-basis-full {
flex-basis: 100% !important;
}
.nfd--translate-x-full {
--tw-translate-x: -100% !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd--translate-y-1\/2 {
--tw-translate-y: -50% !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd--translate-y-full {
--tw-translate-y: -100% !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd-translate-x-0 {
--tw-translate-x: 0px !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd-translate-x-full {
--tw-translate-x: 100% !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd-translate-y-0 {
--tw-translate-y: 0px !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd-translate-y-full {
--tw-translate-y: 100% !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd-scale-100 {
--tw-scale-x: 1 !important;
--tw-scale-y: 1 !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd-scale-95 {
--tw-scale-x: .95 !important;
--tw-scale-y: .95 !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.nfd-transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
@keyframes nfd-spin {
to {
transform: rotate(360deg);
}
}
.nfd-animate-spin {
animation: nfd-spin 1s linear infinite !important;
}
.nfd-cursor-pointer {
cursor: pointer !important;
}
.nfd-cursor-wait {
cursor: wait !important;
}
.nfd-list-inside {
list-style-position: inside !important;
}
.nfd-list-disc {
list-style-type: disc !important;
}
.nfd-list-none {
list-style-type: none !important;
}
.nfd-grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
}
.nfd-grid-cols-4 {
grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.nfd-flex-row {
flex-direction: row !important;
}
.nfd-flex-row-reverse {
flex-direction: row-reverse !important;
}
.nfd-flex-col {
flex-direction: column !important;
}
.nfd-flex-wrap {
flex-wrap: wrap !important;
}
.nfd-items-start {
align-items: flex-start !important;
}
.nfd-items-center {
align-items: center !important;
}
.nfd-items-baseline {
align-items: baseline !important;
}
.nfd-justify-start {
justify-content: flex-start !important;
}
.nfd-justify-end {
justify-content: flex-end !important;
}
.nfd-justify-center {
justify-content: center !important;
}
.nfd-justify-between {
justify-content: space-between !important;
}
.nfd-gap-1 {
gap: 0.25rem !important;
}
.nfd-gap-1\.5 {
gap: 0.375rem !important;
}
.nfd-gap-2 {
gap: 0.5rem !important;
}
.nfd-gap-2\.5 {
gap: 0.625rem !important;
}
.nfd-gap-3 {
gap: 0.75rem !important;
}
.nfd-gap-4 {
gap: 1rem !important;
}
.nfd-gap-6 {
gap: 1.5rem !important;
}
.nfd-gap-7 {
gap: 1.75rem !important;
}
.nfd-gap-8 {
gap: 2rem !important;
}
.nfd-gap-x-4 {
column-gap: 1rem !important;
}
.nfd-gap-y-4 {
row-gap: 1rem !important;
}
.nfd-space-y-1 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0 !important;
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))) !important;
margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)) !important;
}
.nfd-space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0 !important;
margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse))) !important;
margin-bottom: calc(0.375rem * var(--tw-space-y-reverse)) !important;
}
.nfd-space-y-4 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0 !important;
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))) !important;
margin-bottom: calc(1rem * var(--tw-space-y-reverse)) !important;
}
.nfd-space-y-6 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0 !important;
margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))) !important;
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)) !important;
}
.nfd-space-y-8 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0 !important;
margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))) !important;
margin-bottom: calc(2rem * var(--tw-space-y-reverse)) !important;
}
.nfd-divide-y > :not([hidden]) ~ :not([hidden]) {
--tw-divide-y-reverse: 0 !important;
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))) !important;
border-bottom-width: calc(1px * var(--tw-divide-y-reverse)) !important;
}
.nfd-divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
--tw-divide-opacity: 1 !important;
border-color: rgb(229 231 235 / var(--tw-divide-opacity, 1)) !important;
}
.nfd-divide-slate-300 > :not([hidden]) ~ :not([hidden]) {
--tw-divide-opacity: 1 !important;
border-color: rgb(203 213 225 / var(--tw-divide-opacity, 1)) !important;
}
.nfd-self-center {
align-self: center !important;
}
.nfd-overflow-hidden {
overflow: hidden !important;
}
.nfd-overflow-visible {
overflow: visible !important;
}
.nfd-overflow-y-auto {
overflow-y: auto !important;
}
.nfd-overflow-x-hidden {
overflow-x: hidden !important;
}
.nfd-whitespace-nowrap {
white-space: nowrap !important;
}
.nfd-text-balance {
text-wrap: balance !important;
}
.nfd-rounded-\[5px\] {
border-radius: 5px !important;
}
.nfd-rounded-full {
border-radius: 9999px !important;
}
.nfd-rounded-lg {
border-radius: 0.5rem !important;
}
.nfd-rounded-md {
border-radius: 0.375rem !important;
}
.nfd-rounded-none {
border-radius: 0px !important;
}
.nfd-rounded-xl {
border-radius: 0.75rem !important;
}
.nfd-border {
border-width: 1px !important;
}
.nfd-border-0 {
border-width: 0px !important;
}
.nfd-border-b {
border-bottom-width: 1px !important;
}
.nfd-border-r {
border-right-width: 1px !important;
}
.nfd-border-t {
border-top-width: 1px !important;
}
.nfd-border-solid {
border-style: solid !important;
}
.nfd-border-none {
border-style: none !important;
}
.nfd-border-\[\#CBD5E1\] {
--tw-border-opacity: 1 !important;
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1)) !important;
}
.nfd-border-\[\#D1D5DC\] {
--tw-border-opacity: 1 !important;
border-color: rgb(209 213 220 / var(--tw-border-opacity, 1)) !important;
}
.nfd-border-\[\#D5D5D5\] {
--tw-border-opacity: 1 !important;
border-color: rgb(213 213 213 / var(--tw-border-opacity, 1)) !important;
}
.nfd-border-\[\#DCE2EA\] {
--tw-border-opacity: 1 !important;
border-color: rgb(220 226 234 / var(--tw-border-opacity, 1)) !important;
}
.nfd-border-\[\#dbd1d1\] {
--tw-border-opacity: 1 !important;
border-color: rgb(219 209 209 / var(--tw-border-opacity, 1)) !important;
}
.nfd-border-line {
--tw-border-opacity: 1 !important;
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1)) !important;
}
.nfd-border-slate-200 {
--tw-border-opacity: 1 !important;
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1)) !important;
}
.nfd-border-transparent {
border-color: transparent !important;
}
.nfd-border-r-slate-200 {
--tw-border-opacity: 1 !important;
border-right-color: rgb(226 232 240 / var(--tw-border-opacity, 1)) !important;
}
.\!nfd-bg-black {
--tw-bg-opacity: 1 !important;
background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-\[\#212936\] {
--tw-bg-opacity: 1 !important;
background-color: rgb(33 41 54 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-\[\#2c5ead\] {
--tw-bg-opacity: 1 !important;
background-color: rgb(44 94 173 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-\[\#383F4A\] {
--tw-bg-opacity: 1 !important;
background-color: rgb(56 63 74 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-\[\#E2E8F0\] {
--tw-bg-opacity: 1 !important;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-\[\#E5F6FE\] {
--tw-bg-opacity: 1 !important;
background-color: rgb(229 246 254 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-\[\#ddecff\] {
--tw-bg-opacity: 1 !important;
background-color: rgb(221 236 255 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-\[\#f0f3f9\] {
--tw-bg-opacity: 1 !important;
background-color: rgb(240 243 249 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-black {
--tw-bg-opacity: 1 !important;
background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-canvas {
--tw-bg-opacity: 1 !important;
background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-gray-200 {
--tw-bg-opacity: 1 !important;
background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-slate-100 {
--tw-bg-opacity: 1 !important;
background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-slate-200 {
--tw-bg-opacity: 1 !important;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-slate-50 {
--tw-bg-opacity: 1 !important;
background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-slate-600 {
--tw-bg-opacity: 1 !important;
background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-transparent {
background-color: transparent !important;
}
.nfd-bg-white {
--tw-bg-opacity: 1 !important;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important;
}
.nfd-bg-opacity-75 {
--tw-bg-opacity: 0.75 !important;
}
.nfd-stroke-current {
stroke: currentColor !important;
}
.nfd-stroke-3 {
stroke-width: 3px !important;
}
.nfd-object-contain {
object-fit: contain !important;
}
.nfd-object-center {
object-position: center !important;
}
.nfd-p-0 {
padding: 0px !important;
}
.nfd-p-1 {
padding: 0.25rem !important;
}
.nfd-p-2 {
padding: 0.5rem !important;
}
.nfd-p-2\.5 {
padding: 0.625rem !important;
}
.nfd-p-4 {
padding: 1rem !important;
}
.nfd-p-5 {
padding: 1.25rem !important;
}
.nfd-p-6 {
padding: 1.5rem !important;
}
.nfd-p-8 {
padding: 2rem !important;
}
.nfd-p-\[4px\] {
padding: 4px !important;
}
.nfd-px-0 {
padding-left: 0px !important;
padding-right: 0px !important;
}
.nfd-px-0\.5 {
padding-left: 0.125rem !important;
padding-right: 0.125rem !important;
}
.nfd-px-2 {
padding-left: 0.5rem !important;
padding-right: 0.5rem !important;
}
.nfd-px-3 {
padding-left: 0.75rem !important;
padding-right: 0.75rem !important;
}
.nfd-px-4 {
padding-left: 1rem !important;
padding-right: 1rem !important;
}
.nfd-px-6 {
padding-left: 1.5rem !important;
padding-right: 1.5rem !important;
}
.nfd-px-8 {
padding-left: 2rem !important;
padding-right: 2rem !important;
}
.nfd-py-1 {
padding-top: 0.25rem !important;
padding-bottom: 0.25rem !important;
}
.nfd-py-10 {
padding-top: 2.5rem !important;
padding-bottom: 2.5rem !important;
}
.nfd-py-12 {
padding-top: 3rem !important;
padding-bottom: 3rem !important;
}
.nfd-py-2 {
padding-top: 0.5rem !important;
padding-bottom: 0.5rem !important;
}
.nfd-py-4 {
padding-top: 1rem !important;
padding-bottom: 1rem !important;
}
.nfd-py-6 {
padding-top: 1.5rem !important;
padding-bottom: 1.5rem !important;
}
.\!nfd-pl-0 {
padding-left: 0px !important;
}
.nfd-pb-0 {
padding-bottom: 0px !important;
}
.nfd-pb-1 {
padding-bottom: 0.25rem !important;
}
.nfd-pb-4 {
padding-bottom: 1rem !important;
}
.nfd-pb-6 {
padding-bottom: 1.5rem !important;
}
.nfd-pb-8 {
padding-bottom: 2rem !important;
}
.nfd-pl-3 {
padding-left: 0.75rem !important;
}
.nfd-pr-2 {
padding-right: 0.5rem !important;
}
.nfd-pr-2\.5 {
padding-right: 0.625rem !important;
}
.nfd-ps-10 {
padding-inline-start: 2.5rem !important;
}
.nfd-ps-3 {
padding-inline-start: 0.75rem !important;
}
.nfd-pt-1 {
padding-top: 0.25rem !important;
}
.nfd-pt-2 {
padding-top: 0.5rem !important;
}
.nfd-pt-28 {
padding-top: 7rem !important;
}
.nfd-text-left {
text-align: left !important;
}
.nfd-text-center {
text-align: center !important;
}
.nfd-text-right {
text-align: right !important;
}
.nfd-text-2xl {
font-size: 1.5rem !important;
}
.nfd-text-\[13px\] {
font-size: 13px !important;
}
.nfd-text-\[14px\] {
font-size: 14px !important;
}
.nfd-text-base {
font-size: 1rem !important;
}
.nfd-text-sm {
font-size: .8125rem !important;
}
.nfd-text-tiny {
font-size: .875rem !important;
}
.nfd-text-xl {
font-size: 1.25rem !important;
}
.nfd-font-bold {
font-weight: 700 !important;
}
.nfd-font-medium {
font-weight: 500 !important;
}
.nfd-font-normal {
font-weight: 400 !important;
}
.nfd-font-semibold {
font-weight: 600 !important;
}
.nfd-text-\[\#000000\] {
--tw-text-opacity: 1 !important;
color: rgb(0 0 0 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#008112\] {
--tw-text-opacity: 1 !important;
color: rgb(0 129 18 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#111729\] {
--tw-text-opacity: 1 !important;
color: rgb(17 23 41 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#18181B\] {
--tw-text-opacity: 1 !important;
color: rgb(24 24 27 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#196BDE\] {
--tw-text-opacity: 1 !important;
color: rgb(25 107 222 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#196CDF\] {
--tw-text-opacity: 1 !important;
color: rgb(25 108 223 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#196bde\] {
--tw-text-opacity: 1 !important;
color: rgb(25 107 222 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#1CD67D\] {
--tw-text-opacity: 1 !important;
color: rgb(28 214 125 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#1E293B\] {
--tw-text-opacity: 1 !important;
color: rgb(30 41 59 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#212936\] {
--tw-text-opacity: 1 !important;
color: rgb(33 41 54 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#404040\] {
--tw-text-opacity: 1 !important;
color: rgb(64 64 64 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#4A5565\] {
--tw-text-opacity: 1 !important;
color: rgb(74 85 101 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#4A5567\] {
--tw-text-opacity: 1 !important;
color: rgb(74 85 103 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#d61c1c\] {
--tw-text-opacity: 1 !important;
color: rgb(214 28 28 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-\[\#e10001\] {
--tw-text-opacity: 1 !important;
color: rgb(225 0 1 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-body {
--tw-text-opacity: 1 !important;
color: rgb(74 85 103 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-gray-500 {
--tw-text-opacity: 1 !important;
color: rgb(107 114 128 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-gray-900 {
--tw-text-opacity: 1 !important;
color: rgb(17 24 39 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-primary {
--tw-text-opacity: 1 !important;
color: rgb(25 107 222 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-primary-500 {
--tw-text-opacity: 1 !important;
color: rgb(242 113 33 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-slate-400 {
--tw-text-opacity: 1 !important;
color: rgb(148 163 184 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-slate-500 {
--tw-text-opacity: 1 !important;
color: rgb(100 116 139 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-slate-600 {
--tw-text-opacity: 1 !important;
color: rgb(71 85 105 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-slate-800 {
--tw-text-opacity: 1 !important;
color: rgb(30 41 59 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-slate-900 {
--tw-text-opacity: 1 !important;
color: rgb(15 23 42 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-title {
--tw-text-opacity: 1 !important;
color: rgb(15 23 42 / var(--tw-text-opacity, 1)) !important;
}
.nfd-text-white {
--tw-text-opacity: 1 !important;
color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
}
.nfd-line-through {
text-decoration-line: line-through !important;
}
.nfd-no-underline {
text-decoration-line: none !important;
}
.nfd-opacity-0 {
opacity: 0 !important;
}
.nfd-opacity-100 {
opacity: 1 !important;
}
.nfd-opacity-25 {
opacity: 0.25 !important;
}
.nfd-opacity-30 {
opacity: 0.3 !important;
}
.nfd-opacity-75 {
opacity: 0.75 !important;
}
.nfd-shadow {
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) !important;
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.nfd-shadow-lg {
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1) !important;
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color) !important;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.nfd-shadow-none {
--tw-shadow: 0 0 #0000 !important;
--tw-shadow-colored: 0 0 #0000 !important;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.nfd-shadow-amber-700\/30 {
--tw-shadow-color: rgb(180 83 9 / 0.3) !important;
--tw-shadow: var(--tw-shadow-colored) !important;
}
.nfd-outline-none {
outline: 2px solid transparent !important;
outline-offset: 2px !important;
}
.nfd-ring-1 {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) !important;
}
.nfd-ring-black {
--tw-ring-opacity: 1 !important;
--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1)) !important;
}
.nfd-ring-opacity-5 {
--tw-ring-opacity: 0.05 !important;
}
.nfd-grayscale {
--tw-grayscale: grayscale(100%) !important;
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
}
.nfd-transition {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
transition-duration: 150ms !important;
}
.nfd-transition-all {
transition-property: all !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
transition-duration: 150ms !important;
}
.nfd-transition-opacity {
transition-property: opacity !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
transition-duration: 150ms !important;
}
.nfd-delay-200 {
transition-delay: 200ms !important;
}
.nfd-duration-100 {
transition-duration: 100ms !important;
}
.nfd-duration-1000 {
transition-duration: 1000ms !important;
}
.nfd-duration-150 {
transition-duration: 150ms !important;
}
.nfd-duration-200 {
transition-duration: 200ms !important;
}
.nfd-duration-300 {
transition-duration: 300ms !important;
}
.nfd-duration-75 {
transition-duration: 75ms !important;
}
.nfd-ease-in {
transition-timing-function: cubic-bezier(0.4, 0, 1, 1) !important;
}
.nfd-ease-in-out {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.nfd-ease-out {
transition-timing-function: cubic-bezier(0, 0, 0.2, 1) !important;
}
.nfd-\@container\/nfd-image-import {
container-type: inline-size !important;
container-name: nfd-image-import !important;
}
/* Configs */
/* Titles */
/* Links */
/* Buttons */
/* Toggle / Toggle Field */
/* Checkbox */
/* Radio Input */
/* Select Field */
/* Notifications */
/* Modal */
/* Text Input Field */
.odd\:nfd-bg-white:nth-child(odd) {
--tw-bg-opacity: 1 !important;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important;
}
.even\:nfd-bg-slate-50:nth-child(even) {
--tw-bg-opacity: 1 !important;
background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1)) !important;
}
.hover\:\!nfd-bg-black:hover {
--tw-bg-opacity: 1 !important;
background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) !important;
}
.hover\:nfd-bg-\[\#ccdcf4\]:hover {
--tw-bg-opacity: 1 !important;
background-color: rgb(204 220 244 / var(--tw-bg-opacity, 1)) !important;
}
.hover\:nfd-bg-slate-50:hover {
--tw-bg-opacity: 1 !important;
background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1)) !important;
}
.hover\:nfd-text-primary:hover {
--tw-text-opacity: 1 !important;
color: rgb(25 107 222 / var(--tw-text-opacity, 1)) !important;
}
.hover\:nfd-text-slate-500:hover {
--tw-text-opacity: 1 !important;
color: rgb(100 116 139 / var(--tw-text-opacity, 1)) !important;
}
.hover\:nfd-text-slate-900:hover {
--tw-text-opacity: 1 !important;
color: rgb(15 23 42 / var(--tw-text-opacity, 1)) !important;
}
.hover\:nfd-shadow-md:hover {
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important;
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color) !important;
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.focus\:nfd-border-transparent:focus {
border-color: transparent !important;
}
.focus\:nfd-outline-none:focus {
outline: 2px solid transparent !important;
outline-offset: 2px !important;
}
.focus\:nfd-ring-0:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) !important;
}
.focus\:nfd-ring-1:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) !important;
}
.focus\:nfd-ring-2:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) !important;
}
.focus\:nfd-ring-inset:focus {
--tw-ring-inset: inset !important;
}
.focus\:nfd-ring-primary:focus {
--tw-ring-opacity: 1 !important;
--tw-ring-color: rgb(25 107 222 / var(--tw-ring-opacity, 1)) !important;
}
.focus\:nfd-ring-primary-500:focus {
--tw-ring-opacity: 1 !important;
--tw-ring-color: rgb(242 113 33 / var(--tw-ring-opacity, 1)) !important;
}
.focus\:nfd-ring-transparent:focus {
--tw-ring-color: transparent !important;
}
.focus\:nfd-ring-offset-1:focus {
--tw-ring-offset-width: 1px !important;
}
.focus\:nfd-ring-offset-2:focus {
--tw-ring-offset-width: 2px !important;
}
.focus\:nfd-ring-offset-transparent:focus {
--tw-ring-offset-color: transparent !important;
}
.nfd-group:hover .group-hover\:nfd-text-slate-500 {
--tw-text-opacity: 1 !important;
color: rgb(100 116 139 / var(--tw-text-opacity, 1)) !important;
}
.nfd-group:hover .group-hover\:nfd-opacity-100 {
opacity: 1 !important;
}
.nfd-group.nfd-appbar-item--active .group-\[\.nfd-appbar-item--active\]\:nfd-bg-\[\#DBF1FC80\] {
background-color: #DBF1FC80 !important;
}
.nfd-group.nfd-appbar-item .group-\[\.nfd-appbar-item\]\:\!nfd-bg-transparent {
background-color: transparent !important;
}
.nfd-group.nfd-appbar-item--active .group-\[\.nfd-appbar-item--active\]\:nfd-font-bold {
font-weight: 700 !important;
}
.nfd-group.nfd-appbar-item--active .group-\[\.nfd-appbar-item--active\]\:nfd-text-\[var\(--color-primary\)\] {
color: var(--color-primary) !important;
}
.data-\[closed\]\:nfd-scale-95[data-closed] {
--tw-scale-x: .95 !important;
--tw-scale-y: .95 !important;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.data-\[closed\]\:nfd-opacity-0[data-closed] {
opacity: 0 !important;
}
.data-\[enter\]\:nfd-duration-300[data-enter] {
transition-duration: 300ms !important;
}
.data-\[leave\]\:nfd-duration-200[data-leave] {
transition-duration: 200ms !important;
}
@media (max-width: 1378px) {
.max-\[1378px\]\:nfd-hidden {
display: none !important;
}
}
@media (max-width: 781px) {
.max-\[781px\]\:nfd-flex-col {
flex-direction: column !important;
}
}
@media (max-width: 575px) {
.max-\[575px\]\:nfd-grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.max-\[575px\]\:nfd-items-start {
align-items: flex-start !important;
}
}
@media (min-width: 400px) {
.min-\[400px\]\:nfd-w-auto {
width: auto !important;
}
}
@media (min-width: 540px) {
.min-\[540px\]\:nfd-grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
}
@media (min-width: 575px) {
.min-\[575px\]\:nfd-grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
}
@media (min-width: 600px) {
.min-\[600px\]\:nfd-top-\[46px\] {
top: 46px !important;
}
}
@media (min-width: 640px) {
.sm\:nfd-grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
}
@media (min-width: 768px) {
.md\:nfd-grow-0 {
flex-grow: 0 !important;
}
.md\:nfd-grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
}
.md\:nfd-grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.md\:nfd-flex-row {
flex-direction: row !important;
}
}
@media (min-width: 782px) {
.min-\[782px\]\:nfd-mb-6 {
margin-bottom: 1.5rem !important;
}
}
@media (min-width: 783px) {
.min-\[783px\]\:nfd-block {
display: block !important;
}
.min-\[783px\]\:nfd-flex {
display: flex !important;
}
.min-\[783px\]\:nfd-gap-6 {
gap: 1.5rem !important;
}
.min-\[783px\]\:nfd-p-0 {
padding: 0px !important;
}
.min-\[783px\]\:nfd-p-8 {
padding: 2rem !important;
}
}
@media (min-width: 960px) {
.min-\[960px\]\:nfd-grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
}
@media (min-width: 1024px) {
.lg\:nfd-grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
}
@media (min-width: 1060px) {
.min-\[1060px\]\:nfd-grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
}
@media (min-width: 1280px) {
.xl\:nfd-col-span-2 {
grid-column: span 2 / span 2 !important;
}
.xl\:nfd-mt-0 {
margin-top: 0px !important;
}
.xl\:nfd-w-5\/12 {
width: 41.666667% !important;
}
.xl\:nfd-w-7\/12 {
width: 58.333333% !important;
}
.xl\:nfd-max-w-screen-lg {
max-width: 1024px !important;
}
.xl\:nfd-max-w-screen-xl {
max-width: 1280px !important;
}
.xl\:nfd-grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.xl\:nfd-flex-row {
flex-direction: row !important;
}
.xl\:nfd-items-center {
align-items: center !important;
}
}
@media (min-width: 1360px) {
.min-\[1360px\]\:nfd-grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
}
@media (min-width: 1536px) {
.\32xl\:nfd-col-span-2 {
grid-column: span 2 / span 2 !important;
}
.\32xl\:nfd-mt-0 {
margin-top: 0px !important;
}
.\32xl\:nfd-max-w-screen-2xl {
max-width: 1536px !important;
}
.\32xl\:nfd-grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.\32xl\:nfd-grid-cols-4 {
grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.\32xl\:nfd-gap-12 {
gap: 3rem !important;
}
}
.\[\&\.active\]\:nfd-bg-\[\#E2E8F0\].active {
--tw-bg-opacity: 1 !important;
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)) !important;
}
.\[\&\.active\]\:nfd-text-title.active {
--tw-text-opacity: 1 !important;
color: rgb(15 23 42 / var(--tw-text-opacity, 1)) !important;
}
.nfd-root .nfd-modal.no-overlay .nfd-modal__overlay{display:none}.nfd-root .nfd-feature-upsell.hide-html .nfd-flex{background-color:hsla(0,0%,100%,.5)}.nfd-root .nfd-button-xl{padding:1rem 1.75rem !important;font-size:1.05rem !important}
.newfold-marketplace-isloading{overflow-x:hidden}.filterbar-skeleton{margin-bottom:1.8rem}.marketplace-item-skeleton{overflow:hidden}.marketplace-item-skeleton .marketplace-item-img-skeleton{aspect-ratio:16/9}.marketplace-item-skeleton .skeleton-item-body{margin:16px 10px}.marketplace-item-skeleton .marketplace-item-title-skeleton{margin-bottom:16px}.marketplace-item-skeleton .marketplace-item-desc-skeleton{margin-bottom:6px}.marketplace-item-skeleton .marketplace-item-button-skeleton{margin-top:20px}
.newfold-marketplace-skeleton{position:relative;background-color:rgba(160,170,192,.35);overflow:hidden;border-radius:4px}.newfold-marketplace-skeleton::after{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateX(-100%);background-image:linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0));animation:marketplace-skeleton 3s infinite;content:""}@keyframes marketplace-skeleton{100%{transform:translateX(100%)}}
.wppbh .error-card{background-color:var(--color-error-light);border-color:var(--color-error);border-width:1px 1px 1px 4px;border-style:solid}