datocms-plugin-ai-translations 3.4.9 → 3.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:700;src:url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff2"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:700;src:url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff2"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:500;src:url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff2"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:500;src:url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff2"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:400;src:url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("woff2"),url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("woff"),url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:400;src:url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("woff2"),url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("woff"),url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("opentype")}html{font-size:16px;height:auto}body,html{margin:0;padding:0}@layer datocms-react-ui{html{scrollbar-color:var(--color--scrollbar--fill) transparent}}._button_18hrg_1{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;border-radius:4px;box-sizing:border-box;color:var(--color--ink);cursor:pointer;display:inline-block;font-family:inherit;font-weight:var(--font-weight-bold);line-height:inherit;opacity:1;text-decoration:none;transition:all .3s var(--material-ease);vertical-align:middle;white-space:nowrap}._button_18hrg_1:focus,._button_18hrg_1:hover{opacity:.8}._button_18hrg_1:active{opacity:.7}._disabled_18hrg_30{cursor:not-allowed}._buttonType-muted_18hrg_34{background-color:var(--color--primary-soft--surface);color:var(--color--primary-soft--ink)}._buttonType-muted_18hrg_34._disabled_18hrg_30{background-color:var(--color--disabled--surface);color:var(--color--disabled--ink)}._buttonType-muted_18hrg_34._disabled_18hrg_30:active,._buttonType-muted_18hrg_34._disabled_18hrg_30:focus,._buttonType-muted_18hrg_34._disabled_18hrg_30:hover{color:var(--color--disabled--ink)}._buttonType-primary_18hrg_50{background-color:var(--color--primary--surface)}._buttonType-primary_18hrg_50,._buttonType-primary_18hrg_50:active,._buttonType-primary_18hrg_50:focus,._buttonType-primary_18hrg_50:hover{color:var(--color--primary--ink)}._buttonType-primary_18hrg_50:hover{background-color:var(--color--primary--surface-hover)}._buttonType-primary_18hrg_50:active,._buttonType-primary_18hrg_50:focus{background-color:var(--color--primary--surface-active)}._buttonType-primary_18hrg_50._disabled_18hrg_30{background-color:var(--color--disabled--surface);color:var(--color--disabled--ink)}._buttonType-primary_18hrg_50._disabled_18hrg_30:active,._buttonType-primary_18hrg_50._disabled_18hrg_30:focus,._buttonType-primary_18hrg_50._disabled_18hrg_30:hover{color:var(--color--disabled--ink)}._buttonType-negative_18hrg_80,._buttonType-negative_18hrg_80:active,._buttonType-negative_18hrg_80:focus,._buttonType-negative_18hrg_80:hover{background-color:var(--color--danger--surface);color:var(--color--danger--ink)}._buttonType-negative_18hrg_80._disabled_18hrg_30{background-color:var(--color--disabled--surface);color:var(--color--disabled--ink)}._buttonSize-xxs_18hrg_97{font-size:1em;padding:.5em .8em}._buttonSize-xs_18hrg_102{font-size:1em;padding:.6em .8em}._buttonSize-s_18hrg_107{font-size:1em;padding:.7em 1em}._buttonSize-m_18hrg_112{font-size:1.1em;padding:.7em 1em}._buttonSize-l_18hrg_117{font-size:1.2em;padding:.7em 1em}._buttonSize-xl_18hrg_122{font-size:1.2em;padding:1em}._fullWidth_18hrg_127{display:block;text-align:center;width:100%}._button__leftIcon_18hrg_133,._button__rightIcon_18hrg_134{display:inline-block;line-height:.6;vertical-align:middle}._button__leftIcon_18hrg_133 svg,._button__rightIcon_18hrg_134 svg{fill:var(--color--ink-link)}._button__leftIcon_18hrg_133{margin-right:.5em}._button__leftIcon_18hrg_133:last-child{margin-right:0}._button__rightIcon_18hrg_134{margin-left:.5em}._button__rightIcon_18hrg_134:first-child{margin-left:0}._Button_1653r_1{justify-column:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:var(--color--surface);border:0;border:1px solid var(--color--border);box-sizing:border-box;color:var(--color--ink);color:var(--color--ink-subtle);cursor:pointer;display:flex;font-family:inherit;font-size:inherit;line-height:inherit;padding:7px 13px}._Button_1653r_1:hover{background-color:var(--color--surface-hover)}._Button_1653r_1 svg{fill:var(--color--ink-subtle)}._Button--s_1653r_30{padding:3px 10px}._Button--disabled_1653r_34{color:var(--color--disabled--ink);cursor:not-allowed}._Button--disabled_1653r_34:hover{background:var(--color--surface)}._Button--selected_1653r_43{background-color:var(--color--primary--surface-secondary);color:var(--color--primary--ink)}._Button--selected_1653r_43 svg{fill:var(--color--primary--ink)}._Button--selected_1653r_43._Button--disabled_1653r_34,._Button--selected_1653r_43:hover{background-color:var(--color--primary--surface-secondary)}._Button_1653r_1:first-child{border-left-width:1px;border-radius:4px 0 0 4px}._Button_1653r_1:last-child{border-radius:0 4px 4px 0}._Group_1b5yn_1{align-items:stretch;background-color:var(--color--surface);display:flex;overflow:hidden}._themeVariables_11af8_1{--base-body-color-rgb-components:52,54,58;--base-body-color:var(--color--ink);--light-body-color-rgb-components:132,132,132;--light-body-color:var(--color--ink-subtle);--placeholder-body-color-rgb-components:198,198,198;--placeholder-body-color:var(--color--ink-placeholder);--light-bg-color-rgb-components:245,245,245;--light-bg-color:var(--color--surface-muted);--lighter-bg-color-rgb-components:248,248,248;--lighter-bg-color:var(--color--surface-muted);--disabled-bg-color-rgb-components:237,237,237;--disabled-bg-color:var(--color--disabled--surface);--border-color-rgb-components:240,240,240;--border-color:var(--color--border);--darker-border-color-rgb-components:215,215,215;--darker-border-color:var(--color--border-hover);--alert-color-rgb-components:255,94,73;--alert-color:var(--color--ink-danger);--warning-color-rgb-components:255,215,0;--warning-color:var(--color--ink-warning);--notice-color-rgb-components:70,215,0;--notice-color:var(--color--ink-success);--warning-bg-color-rgb-components:255,255,229;--warning-bg-color:var(--color--warning-soft--surface);--add-color-rgb-components:76,176,109;--add-color:var(--color--diff-added--surface);--remove-color-rgb-components:235,87,106;--remove-color:var(--color--diff-removed--surface);--base-font-family:"colfax-web","Roboto","Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;--monospaced-font-family:"Roboto Mono","Menlo","Bitstream Vera Sans Mono",Consolas,Courier,monospace;--font-weight-bold:500;--spacing-xs:.1875rem;--spacing-s:.375rem;--spacing-m:.75rem;--spacing-l:1.5rem;--spacing-xl:2.25rem;--spacing-xxl:3.75rem;--spacing-xxxl:6rem;--negative-spacing-xs:-.1875rem;--negative-spacing-s:-.375rem;--negative-spacing-m:-.75rem;--negative-spacing-l:-1.5rem;--negative-spacing-xl:-2.25rem;--negative-spacing-xxl:-3.75rem;--negative-spacing-xxxl:-6rem;--font-size-xxs:.6875rem;--font-size-xs:.75rem;--font-size-s:.875rem;--font-size-m:.9375rem;--font-size-l:1.0625rem;--font-size-xl:1.1875rem;--font-size-xxl:1.5625rem;--font-size-xxxl:1.875rem;--material-ease:cubic-bezier(.55,0,.1,1);--inertial-ease:cubic-bezier(.19,1,.22,1)}._canvas_11af8_85{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;color:var(--color--ink);font-family:var(--base-font-family);font-size:var(--font-size-m);line-height:1.5}._inspector_4pnoo_1{margin:var(--spacing-l) 0}._panel_4pnoo_5{border-bottom:1px solid var(--color--border)}._panelHandle_4pnoo_9{all:inherit;background:var(--color--surface-muted);border:0;box-sizing:border-box;cursor:pointer;display:block;font-weight:var(--font-weight-bold);padding:5px 10px;width:100%}._panelHandle_4pnoo_9:hover{background:var(--color--surface-hover)}._panelBody_4pnoo_25{border-left:1px solid var(--color--border);border-right:1px solid var(--color--border);padding:20px}._groupDescription_4pnoo_31{font-size:var(--font-size-s);line-height:1.2;margin-bottom:20px}._propertyGroup_4pnoo_37{border:1px solid var(--color--border);border-radius:5px}._propertyOrMethod_4pnoo_42{border-bottom:1px solid var(--color--border);line-height:1.2}._propertyOrMethod_4pnoo_42 p{margin:0}._propertyOrMethodBody_4pnoo_51{padding:15px}._propertyOrMethodExample_4pnoo_55{position:relative}._propertyOrMethodExample_4pnoo_55 pre{background:var(--color--surface-muted);font-size:.8em;margin:0;max-height:240px;overflow:auto;padding:15px}._propertyOrMethodName_4pnoo_68{color:var(--color--ink-subtle);display:block;font-family:var(--monospaced-font-family);font-size:.9em;font-weight:700;margin-bottom:5px;text-decoration:none}._propertyOrMethodName_4pnoo_68:hover{text-decoration:underline}._propertyOrMethodExampleActions_4pnoo_82{background:var(--color--surface);display:flex;padding:15px}._propertyOrMethodExampleActions_4pnoo_82>*{margin-right:10px}._fieldError_kqzsn_1{color:var(--color--ink-danger);font-size:var(--font-size-xs);line-height:1.2;margin-top:var(--spacing-s)}._FieldGroup_uz9ju_1{display:block}._FieldGroup__item_uz9ju_5{display:block;margin-bottom:var(--spacing-l)}._FieldGroup__item_uz9ju_5:last-child{margin-bottom:0}._fieldHint_1q1d1_1{color:var(--color--ink-subtle);font-size:var(--font-size-xs);line-height:1.2;margin-top:var(--spacing-s)}._fieldHint_1q1d1_1 a{color:inherit}._fieldHint_1q1d1_1 a:hover{text-decoration:none}._Form_5qspp_1,._Form__item_5qspp_5{display:block}._Form__item_5qspp_5:last-child{margin-bottom:0}._Form__item--default_5qspp_13{margin-bottom:var(--spacing-l)}._Form__item--condensed_5qspp_17{margin-bottom:var(--spacing-m)}._formLabel_12h4v_1{align-items:center;color:var(--color--ink-subtle);display:flex;margin-bottom:var(--spacing-s)}._formLabel_12h4v_1:hover ._formLabel__code_12h4v_8{opacity:1}._formLabel--error_12h4v_14{color:var(--color--ink-danger)}._formLabel__label_12h4v_18{flex:1}._formLabel__code_12h4v_8{font-family:var(--monospaced-font-family);font-size:.95em;opacity:0;position:absolute;transition:opacity .2s var(--material-ease)}._hotKey_17bh5_1{align-items:center;display:inline-flex;gap:15px}._label_17bh5_7{align-items:center;display:flex}._keys_17bh5_12{align-items:center;display:inline-flex;gap:4px}._hotKeyKey_17bh5_18{background:var(--color--primary-soft--surface);border-radius:3px;padding:5px 8px}._Section_12uz1_1{display:flex;flex-direction:column;gap:var(--spacing-m);position:relative}._Section--highlighted_12uz1_8:before{animation:_pageContentSectionHighligh_12uz1_1 4s ease-in-out .25s forwards;border-radius:4px;box-shadow:0 0 0 4px var(--color--focus--border);content:"";inset:-20px -30px;pointer-events:none;position:absolute;z-index:10}._Section__header_12uz1_22{margin-left:var(--negative-spacing-l);margin-right:var(--negative-spacing-l)}._Section__header--clickable_12uz1_27{cursor:pointer;-webkit-user-select:none;user-select:none}._Section__header--clickable_12uz1_27:hover ._Section__arrow_12uz1_31:before{opacity:.7}._Section__title_12uz1_36{align-items:center;display:flex;gap:var(--spacing-m)}._Section__title_12uz1_36:after,._Section__title_12uz1_36:before{background-color:var(--color--border);content:"";height:1px}._Section__title_12uz1_36:before{width:calc(var(--spacing-l) - var(--spacing-m))}._Section__title_12uz1_36:after{flex:1;margin-right:var(--spacing-l)}._Section__title__content_12uz1_58{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--font-size-l);font-weight:var(--font-weight-bold)}._Section__arrow_12uz1_31{align-self:stretch;margin-right:.3em;position:relative;width:15px}._Section__arrow_12uz1_31:before{border-bottom:6px solid transparent;border-left:6px solid var(--color--ink);border-top:6px solid transparent;content:"";height:0;left:6px;margin-top:-6px;position:absolute;top:50%;transform-origin:50% 50%;transition:transform .2s ease-out;width:0}._Section__arrow--is-open_12uz1_88:before{transform:rotate(90deg)}@keyframes _pageContentSectionHighligh_12uz1_1{0%{box-shadow:0 0 0 4px var(--color--focus--border),0 0 0 4px var(--color--focus--outline)}15%{box-shadow:0 0 0 4px var(--color--focus--border),0 0 0 80px transparent}75%{box-shadow:0 0 0 4px var(--color--focus--border),0 0 0 80px transparent}to{box-shadow:0 0 0 4px transparent,0 0 0 80px transparent}}._SidebarPanel_a4c7y_1{border-bottom:1px solid var(--color--border)}._SidebarPanel__header_a4c7y_5{align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:var(--color--surface);background-color:var(--color--surface-muted);border:0;box-sizing:border-box;color:var(--color--ink);cursor:pointer;display:flex;font-family:inherit;font-size:inherit;line-height:inherit;padding:0;text-align:left;-webkit-user-select:none;user-select:none;width:100%}._SidebarPanel__header_a4c7y_5:focus,._SidebarPanel__header_a4c7y_5:hover{background-color:var(--color--surface-hover)}._SidebarPanel__header__title_a4c7y_30{flex:1;font-weight:500;padding:0 20px}._SidebarPanel__header__chevron_a4c7y_36{align-items:center;display:flex;padding:13px 15px}._SidebarPanel__content_a4c7y_42{padding:20px}._SidebarPanel__content--no-padding_a4c7y_46{padding:0}._Spinner--inline_1u42l_1{display:inline-block;position:relative;vertical-align:middle}._Spinner--centered_1u42l_7{left:50%;position:absolute;top:50%}._Spinner__bar_1u42l_13{animation:_Spinner__spin_1u42l_1 1.2s linear infinite;background-color:var(--color--ink-subtle);height:14%;left:-20%;position:absolute;top:0;width:40%}@keyframes _Spinner__spin_1u42l_1{0%{opacity:1}to{opacity:.15}}._switchField__flex_ietsf_1{align-items:center;display:flex}._switchField__switchInput_ietsf_6{width:55px}._switchField__label_ietsf_10{color:var(--color--ink);flex:1;line-height:1.1;line-height:20px;margin-bottom:0;pointer-events:none;-moz-user-select:text;-ms-user-select:text;-webkit-user-select:text;user-select:text}._switchField__below_ietsf_22{margin-left:55px;margin-top:var(--spacing-s)}._switchInput__inner_vh6pt_1{color:var(--color--primary--ink);font-size:12px;left:24px;position:absolute;transition:left .3s cubic-bezier(.35,0,.25,1)}._switchInput_vh6pt_1{background-color:var(--color--ink-muted);border:1px solid var(--color--border);border-radius:20px;box-sizing:border-box;cursor:pointer;display:inline-block;height:22px;line-height:20px;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1);vertical-align:middle;width:44px}._switchInput_vh6pt_1:after{animation-duration:.3s;animation-name:_switchInput__off_vh6pt_1;animation-timing-function:cubic-bezier(.35,0,.25,1);background-color:var(--color--surface);border-radius:50%;box-shadow:var(--shadow--raised);content:" ";cursor:pointer;height:18px;left:2px;position:absolute;top:1px;transform:scale(1);transition:left .3s cubic-bezier(.35,0,.25,1),transform .3s cubic-bezier(.35,0,.25,1);width:18px}._switchInput_vh6pt_1:focus:after,._switchInput_vh6pt_1:hover:after{animation-name:_switchInput__on_vh6pt_1;transform:scale(1.1)}._switchInput__checked_vh6pt_50{background-color:var(--color--primary--surface);border-color:var(--color--primary--surface)}._switchInput__checked_vh6pt_50 ._switchInput__inner_vh6pt_1{left:6px}._switchInput__checked_vh6pt_50:after{left:22px}._switchInput__disabled_vh6pt_63{background:var(--color--disabled--surface);border-color:var(--color--border);cursor:no-drop}._switchInput__disabled_vh6pt_63:after{animation-name:_none_vh6pt_1;background:var(--color--disabled--ink);cursor:no-drop}._switchInput__disabled_vh6pt_63:focus:after,._switchInput__disabled_vh6pt_63:hover:after{animation-name:_none_vh6pt_1;transform:scale(1)}@keyframes _switchInput__on_vh6pt_1{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1.1)}}@keyframes _switchInput__off_vh6pt_1{0%{transform:scale(1.1)}to{transform:scale(1)}}._TextInput_1kqkh_1{appearance:none;background-color:var(--color--surface);background-image:none;border:1px solid var(--color--border);border-radius:0;box-sizing:border-box;color:inherit;display:block;font-family:inherit;font-size:var(--font-size-m);padding:10px;resize:none;transition:border .2s var(--material-ease);width:100%}._TextInput_1kqkh_1::placeholder{color:var(--color--ink-placeholder)}._TextInput_1kqkh_1:hover{border-color:var(--color--border-hover)}._TextInput_1kqkh_1:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline);outline:0}._TextInput--monospaced_1kqkh_32{font-family:var(--monospaced-font-family);font-size:var(--font-size-s)}._TextInput--disabled_1kqkh_37{background:var(--color--disabled--surface);border-color:var(--color--border);color:var(--color--disabled--ink)}._TextInput--error_1kqkh_43,._TextInput--error_1kqkh_43:focus,._TextInput--error_1kqkh_43:hover{border-color:var(--color--danger-soft--border)}._TextInput--error_1kqkh_43:focus{box-shadow:0 0 0 4px var(--color--danger-soft--outline)}._TextareaInput_1xr0a_1{appearance:none;background-color:var(--color--surface);background-image:none;border:1px solid var(--color--border);border-radius:0;box-sizing:border-box;color:inherit;display:block;font-family:inherit;font-size:var(--font-size-m);padding:10px;resize:none;transition:border .2s var(--material-ease);width:100%}._TextareaInput_1xr0a_1::placeholder{color:var(--color--ink-placeholder)}._TextareaInput_1xr0a_1:hover{border-color:var(--color--border-hover)}._TextareaInput_1xr0a_1:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline);outline:0}._TextareaInput--monospaced_1xr0a_32{font-family:var(--monospaced-font-family);font-size:var(--font-size-s)}._TextareaInput--disabled_1xr0a_37{background:var(--color--disabled--surface);border-color:var(--color--border);color:var(--color--disabled--ink)}._TextareaInput--error_1xr0a_43,._TextareaInput--error_1xr0a_43:focus,._TextareaInput--error_1xr0a_43:hover{border-color:var(--color--danger-soft--border)}._TextareaInput--error_1xr0a_43:focus{box-shadow:0 0 0 4px var(--color--danger-soft--outline)}._Button_36kvr_1{align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;border-left:1px solid var(--color--border);border-right:1px solid var(--color--border);box-sizing:border-box;color:var(--color--ink);cursor:pointer;display:flex;font-family:inherit;justify-content:center;line-height:inherit;min-height:49px;padding:0;width:49px}._Button_36kvr_1:focus,._Button_36kvr_1:hover{background-color:var(--color--surface-hover)}._Button_36kvr_1:first-child{border-left:0}._Button_36kvr_1:last-child{border-right:0}@media screen and (min-width:380px){._Button_36kvr_1{min-height:59px;width:59px}._Button_36kvr_1 svg{font-size:20px}}._Stack_1nnzo_1{align-items:center;display:flex;flex:1;flex-direction:row;justify-content:center;padding:10px 15px}._Stack--s_1nnzo_10{padding-bottom:var(--spacing-s);padding-top:var(--spacing-s)}._Stack--l_1nnzo_15{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}._Title_1dx5n_1{font-size:var(--font-size-l);font-weight:500;line-height:1.1;margin-right:15px}@media screen and (min-width:380px){._Title_1dx5n_1{font-size:var(--font-size-xl)}}._Toolbar_50246_1{align-items:stretch;border-bottom:1px solid var(--color--border);border-top:1px solid var(--color--border);display:flex;position:relative}._Toolbar_50246_1:first-child{border-top-width:0}._Toolbar_50246_1:last-child{border-bottom-width:0}._tooltip_6pcmg_1{word-wrap:break-word;background:var(--color--tooltip--surface);border-radius:4px;box-shadow:var(--shadow--floating);color:var(--color--tooltip--ink);-webkit-hyphens:auto;hyphens:auto;max-width:400px;overflow-wrap:break-word;padding:10px 15px}._Dropdown_1mqss_1{position:relative}._Dropdown__spacer_1mqss_5{inset:0;pointer-events:none;position:absolute}._Dropdown__menu__search_1mqss_11{border-bottom:1px solid var(--color--border);padding:7px}._Dropdown__menu__search__input_1mqss_16{appearance:none;background-color:var(--color--surface);background-image:none;border:1px solid var(--color--border);border-radius:3px;box-sizing:border-box;color:inherit;display:block;font-family:inherit;font-size:.9em;padding:8px;resize:none;transition:border .2s var(--material-ease);width:100%}._Dropdown__menu__search__input_1mqss_16::placeholder{color:var(--color--ink-placeholder)}._Dropdown__menu__search__input_1mqss_16:hover{border-color:var(--color--border-hover)}._Dropdown__menu__search__input_1mqss_16:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline);outline:0}._Dropdown__menu-container_1mqss_47{position:fixed;visibility:hidden}._Dropdown__menu_1mqss_11{background-color:var(--color--surface-raised);border-radius:4px;box-shadow:var(--shadow--floating);margin-bottom:var(--spacing-xl);margin-top:10px;min-width:200px;padding:1px 0;text-align:initial}._Dropdown__menu__inner_1mqss_63{margin:7px 0}._Dropdown__menu__group__title_1mqss_67{background-color:var(--color--surface-muted);color:var(--color--ink-subtle);font-size:var(--font-size-xs);padding:5px 15px 3px;text-transform:uppercase}._Dropdown__menu__group__content_1mqss_75{margin:8px 0}._Dropdown__menu__text_1mqss_79{color:var(--color--ink-subtle);display:block;line-height:1.2;padding:4px 15px;position:relative;text-align:left}._Dropdown__menu__option_1mqss_88{align-items:center;color:var(--color--ink);display:flex;padding:4px 15px;position:relative;text-align:left;text-decoration:none;white-space:nowrap}._Dropdown__menu__option_1mqss_88:focus,._Dropdown__menu__option_1mqss_88:hover{background-color:var(--color--surface-hover)}._Dropdown__menu__option_1mqss_88>a{color:inherit;display:block;text-decoration:none}._Dropdown__menu__option--is-selected_1mqss_110{background-color:var(--color--selected--surface)}._Dropdown__menu__option--is-disabled_1mqss_114{opacity:.5}._Dropdown__menu__option--is-disabled_1mqss_114 ._Dropdown__menu__option__content_1mqss_117{cursor:not-allowed}._Dropdown__menu__option--is-dangerous_1mqss_122{color:var(--color--danger--ink)}._Dropdown__menu__option--is-dangerous_1mqss_122 svg{fill:var(--color--danger--ink)}._Dropdown__menu__option--is-dangerous_1mqss_122:focus,._Dropdown__menu__option--is-dangerous_1mqss_122:hover{background-color:var(--color--danger--surface);color:var(--color--danger--ink)}._Dropdown__menu__option--is-dangerous_1mqss_122:focus svg,._Dropdown__menu__option--is-dangerous_1mqss_122:hover svg{fill:var(--color--danger--ink)}._Dropdown__menu__option--is-active_1mqss_140{font-weight:500}._Dropdown__menu__option--is-active_1mqss_140:focus,._Dropdown__menu__option--is-active_1mqss_140:hover{background-color:none}._Dropdown__menu__option--is-invalid_1mqss_153,._Dropdown__menu__option--is-valid_1mqss_149{padding-left:35px}._Dropdown__menu__option--is-invalid_1mqss_153:before{background-color:var(--color--danger--surface);border-radius:4px;content:"";font-size:12px;height:8px;left:15px;position:absolute;top:50%;transform:translateY(-50%);width:8px}._Dropdown__menu__option__content_1mqss_117{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:inherit;cursor:pointer;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0;text-align:left}._Dropdown__menu__option__content_1mqss_117>svg{fill:var(--color--ink-subtle);color:var(--color--ink-subtle);display:inline-block;font-size:13px;padding-right:8px;vertical-align:middle}._Dropdown__menu__option__icons_1mqss_196{align-items:center;display:flex;padding-left:15px}._Dropdown__menu__option__icon_1mqss_196{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:var(--color--ink);color:var(--color--ink-subtle);cursor:pointer;display:inline-block;font-family:inherit;font-size:inherit;font-size:13px;line-height:inherit;line-height:10px;opacity:0;padding:3px;position:relative;top:-1px;transition:transform .1s ease-in-out;width:100%;width:auto}._Dropdown__menu__option_1mqss_88:focus ._Dropdown__menu__option__icon_1mqss_196,._Dropdown__menu__option_1mqss_88:hover ._Dropdown__menu__option__icon_1mqss_196{opacity:1}._Dropdown__menu__option__icon_1mqss_196:focus,._Dropdown__menu__option__icon_1mqss_196:hover{transform:scale(1.2)}._Dropdown__menu__option__icon_1mqss_196 svg{fill:var(--color--ink-subtle)}._Dropdown__menu__option__icon--delete_1mqss_243{color:var(--color--danger--ink)}._Dropdown__menu__option__icon--delete_1mqss_243 svg{fill:var(--color--danger--ink)}._Dropdown__menu__separator_1mqss_250{background-color:var(--color--border);height:1px;margin:8px 0}._Dropdown__menu_1mqss_11{overflow-y:auto}._SplitViewPane_1cl1f_1{height:100%;overflow-y:auto;position:absolute;width:100%}._SplitViewSash_9ds0h_1{align-items:center;background-color:transparent;display:flex;height:100%;justify-content:center;position:absolute;top:0;transition:background-color .2s .15s;width:100%;z-index:2}._SplitViewSash--dragging_9ds0h_15,._SplitViewSash_9ds0h_1:hover{background-color:var(--color--primary-soft--surface)}._SplitViewSash--dragging_9ds0h_15:has(._SplitViewSash__content_9ds0h_19:hover),._SplitViewSash_9ds0h_1:hover:has(._SplitViewSash__content_9ds0h_19:hover){background-color:transparent}._SplitViewSash--no-resize_9ds0h_24{pointer-events:none}._SplitViewSash--vertical_9ds0h_28{cursor:col-resize}._SplitViewSash--horizontal_9ds0h_32{cursor:row-resize}._SplitViewSash__content_9ds0h_19{cursor:pointer;left:50%;padding:15px 0;pointer-events:auto;position:absolute;top:50%;transform:translate(-50%,-50%)}._SplitViewSash__content__button_9ds0h_46{align-items:center;background:var(--color--surface);border:1px solid var(--color--border);border-radius:6px;color:var(--color--ink-subtle);display:flex;font-size:10px;height:20px;justify-content:center;width:20px;z-index:2}._SplitViewSash__content__button_9ds0h_46 svg{fill:currentColor;display:block}._SplitViewSash__content_9ds0h_19:hover ._SplitViewSash__content__button_9ds0h_46{background:var(--color--surface-hover);color:var(--color--ink)}._SplitView_1oi17_1{flex:1;height:100%;position:relative;width:100%}._SplitView--dragging_1oi17_8._SplitView--vertical_1oi17_8{cursor:col-resize}._SplitView--dragging_1oi17_8._SplitView--horizontal_1oi17_12{cursor:row-resize}._SplitView--disable-select_1oi17_16{-webkit-user-select:none;user-select:none}._SplitView--disable-select_1oi17_16 ._SplitViewPane_1oi17_20{pointer-events:none}._VerticalSplitPane__expand_28erb_1{background:var(--color--surface);cursor:pointer;inset:0;position:absolute;transition:all .3s cubic-bezier(.55,0,.1,1)}._VerticalSplitPane__expand_28erb_1:hover{animation:_VerticalSplitPane__expand_28erb_1 .6s cubic-bezier(.55,0,.1,1);background:var(--color--surface-hover)}._VerticalSplitPane__expand_28erb_1._VerticalSplitPane__expand_28erb_1{border-right:1px solid var(--color--border);transform-origin:left}._VerticalSplitPane__expand_28erb_1._VerticalSplitPane__expand--right_28erb_25{border-left:1px solid var(--color--border);transform-origin:right}@keyframes _VerticalSplitPane__expand_28erb_1{0%{transform:scaleX(1)}50%{transform:scaleX(2)}to{transform:scaleX(1)}}._VerticalSplitPaneOverlay_28erb_42{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--color--backdrop--surface);height:100%;inset:0;overflow:hidden;position:absolute;z-index:12}._VerticalSplitPaneOverlay__primary_28erb_55{inset:0;position:absolute;z-index:1}._VerticalSplitPaneOverlay__primary--left_28erb_64{margin-right:20px}._VerticalSplitPaneOverlay__primary--right_28erb_68{margin-left:20px}._VerticalSplitPaneOverlay__secondary_28erb_72{background:var(--color--surface);bottom:0;box-shadow:var(--shadow--ambient);position:absolute;top:0}._VerticalSplitPaneOverlay__secondary--left_28erb_80{left:0}._VerticalSplitPaneOverlay__secondary--right_28erb_84{right:0}._VerticalSplitPaneOverlay__sash_28erb_88{height:100%;position:absolute;top:0}._VerticalSplitPaneOverlay__secondary--left_28erb_80 ._VerticalSplitPaneOverlay__sash_28erb_88{right:0}._VerticalSplitPaneOverlay__secondary--right_28erb_84 ._VerticalSplitPaneOverlay__sash_28erb_88{left:0}.TranslationProgressModal{padding:16px 0 0;max-width:760px;margin:0 auto;text-align:left;display:flex;flex-direction:column;align-items:stretch;font-family:var(--font-family);background:transparent;border:0;border-radius:0;box-shadow:none}.TranslationProgressModal__intro{width:100%;margin-bottom:16px}.TranslationProgressModal__languages{margin-bottom:16px}.TranslationProgressModal__languages p{margin:0 0 6px;font-size:var(--font-size-s)}.TranslationProgressModal__progress-text{font-weight:600;margin-bottom:2px!important}.TranslationProgressModal__stats{margin:4px 0 0!important;font-size:14px;color:var(--color--ink-subtle)}.TranslationProgressModal__progress-bar{height:8px;width:100%;background-color:var(--color--surface-muted);border:1px solid var(--color--border);border-radius:999px;margin:8px 0 16px;overflow:hidden}.TranslationProgressModal__progress-bar-fill{height:100%;background-color:var(--color--ink-primary);box-shadow:inset 0 0 0 1px var(--color--primary--border);transition:width .3s ease-in-out}.TranslationProgressModal__updates{max-height:260px;overflow-y:auto;margin-bottom:16px;width:100%;scrollbar-gutter:stable both-edges}.TranslationProgressModal__update-list{margin:0;padding:0;list-style-type:none}.TranslationProgressModal__update-item{padding:8px 0;display:flex;align-items:center;gap:8px;font-size:var(--font-size-s);color:var(--color--ink);text-align:left;border-top:1px solid var(--color--border)}.TranslationProgressModal__update-item:first-child{border-top:0}.TranslationProgressModal__update-status{display:flex;align-items:center;justify-content:center;width:20px}.TranslationProgressModal__update-item--completed .TranslationProgressModal__update-status{color:var(--color--success-soft--ink);font-weight:700}.TranslationProgressModal__update-item--error .TranslationProgressModal__update-status{color:var(--color--danger-soft--ink);font-weight:700}.TranslationProgressModal__update-item--processing .TranslationProgressModal__update-status{color:var(--color--ink-primary)}.TranslationProgressModal__update-message{flex:1}.TranslationProgressModal__initializing{padding:20px;text-align:center;color:var(--color--ink-subtle)}.TranslationProgressModal__spinner-container{display:flex;align-items:center;justify-content:center;gap:8px}.TranslationProgressModal__errors{padding:12px;background-color:var(--color--danger-soft--surface);border:1px solid var(--color--danger-soft--border);color:var(--color--danger-soft--ink);border-radius:4px;margin-bottom:20px;font-size:14px;width:100%;text-align:left}.TranslationProgressModal__errors p{margin:8px 0}.TranslationProgressModal__footer{display:flex;justify-content:flex-end;width:100%;gap:var(--spacing-m);padding-top:var(--spacing-m);border-top:1px solid var(--color--border)}._modelSelect_gaeub_8{display:flex;align-items:center;gap:8px;margin-bottom:16px}._dropdownLabel_gaeub_15{margin-bottom:8px;margin-top:16px}._optionContainer_gaeub_20{display:flex;gap:8px;font-size:var(--font-size-xxs);justify-content:right;align-items:center;margin-top:-8px;margin-bottom:-24px;height:50px;overflow:hidden}._buttonsContainer_gaeub_32{display:flex;-webkit-user-select:none;user-select:none;gap:4px}._promptBar_gaeub_38{width:100%;gap:4px;display:flex;margin-bottom:24px}._dropdown_gaeub_15{height:100%;font-size:medium}._promptButton_gaeub_50{height:100%}._imageGrid_gaeub_54{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:10px}._tooltipConfig_gaeub_61{background-color:var(--color--primary-soft--surface);border:1px solid var(--color--primary-soft--border);border-radius:4px;padding:8px 12px;font-size:14px;color:var(--color--primary-soft--ink);display:inline-block;cursor:pointer;transition:transform .2s ease}._tooltipConfig_gaeub_61:hover{transform:scale(1.025)}._tooltipConfig_gaeub_61:active{transform:scale(.98);transition:transform .1s ease}._buttons_gaeub_32{display:flex;flex-direction:column;gap:8px;margin-top:16px}._inlineStatus_gaeub_89{margin-top:8px;font-size:12px}._fieldSpacing_gaeub_94{margin-bottom:16px}._ai-indeterminateBar_gaeub_99{position:relative;width:100%;height:4px;border-radius:4px;background:var(--color--surface-muted);overflow:hidden}._ai-indeterminateBarInner_gaeub_108{position:absolute;height:100%;width:40%;left:-40%;background:linear-gradient(90deg,transparent,var(--color--surface-raised),transparent);animation:_ai-indet_gaeub_99 1.2s infinite ease-in-out}@keyframes _ai-indet_gaeub_99{0%{left:-40%}50%{left:60%}to{left:140%}}._configContainer_gaeub_134{max-width:650px;margin:0 auto;padding:var(--spacing-l) var(--spacing-xxxl);display:flex;flex-direction:column;gap:16px}._textarea_gaeub_143{width:96%;border:1px solid var(--color--border);padding:12px;resize:none;outline:none;font-family:inherit;font-size:inherit;background-color:var(--color--surface);color:var(--color--ink)}._textarea_gaeub_143:hover{border-color:var(--color--border-hover)}._textarea_gaeub_143:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline)}._label_gaeub_164{color:var(--color--ink-subtle)}._hint_gaeub_168{font-size:var(--font-size-xs);color:var(--color--ink-subtle)}._fieldLabelTitle_gaeub_173{font-size:var(--font-size-xl);font-weight:600;color:var(--color--ink);margin-top:16px}._fieldLabelHint_gaeub_180{margin-top:-16px;font-size:var(--font-size-m);color:var(--color--ink-subtle);margin-bottom:16px}._switchField_gaeub_187{margin-top:16px;margin-bottom:16px}._sectionSpacing_gaeub_192{margin-top:var(--spacing-l)}._buttonRow_gaeub_196{display:flex;align-items:center;gap:8px}._exclusionRules_gaeub_202{border-left:2px solid var(--color--border);padding-left:16px;margin-left:4px}._promptContainer_gaeub_208{margin-top:16px;display:flex;flex-direction:column;gap:4px}._tooltipContainer_gaeub_216{position:relative;display:inline-block;cursor:help;margin-left:8px}._warningTooltip_gaeub_223{position:relative;display:inline-block;cursor:help;margin-left:8px;color:var(--color--warning-soft--ink)}._tooltipText_gaeub_232{visibility:hidden;width:250px;background-color:var(--color--tooltip--surface);color:var(--color--tooltip--ink);text-align:center;border-radius:6px;padding:12px;position:absolute;z-index:9999;top:100%;left:50%;transform:translate(-50%);margin-top:10px;opacity:0;transition:opacity .3s;box-shadow:var(--shadow--floating);max-width:90vw;overflow:hidden}._tooltipText_gaeub_232 img{display:block;max-width:100%;height:auto;margin:0 auto;border:1px solid var(--color--border);border-radius:4px}._imageTooltip_gaeub_266{width:450px!important}._leftAnchorTooltip_gaeub_271{left:0!important;transform:none!important}._rightAnchorTooltip_gaeub_277{left:auto!important;right:0!important;transform:none!important}._tooltipText_gaeub_232:before{content:"";position:absolute;bottom:100%;left:50%;margin-left:-8px;border-width:8px;border-style:solid;border-color:transparent transparent var(--color--tooltip--surface) transparent}._leftAnchorTooltip_gaeub_271:before{left:20px;margin-left:0}._rightAnchorTooltip_gaeub_277:before{left:auto;right:20px;margin-left:0}._tooltipContainer_gaeub_216:hover ._tooltipText_gaeub_232,._warningTooltip_gaeub_223:hover ._tooltipText_gaeub_232{visibility:visible;opacity:1}._inspector_gaeub_320{margin-top:var(--spacing-l)}._page_1vzyn_1{width:100%;min-height:calc(100vh - 96px);padding:36px 24px 52px;display:flex;justify-content:flex-start;align-items:center;flex-direction:column;background:var(--color--surface)}._container_1vzyn_12{width:min(560px,100%);position:relative}._card_1vzyn_17{position:relative;background:var(--color--surface-muted);border-radius:18px;padding:26px 26px 24px;border:1px solid var(--color--border);box-shadow:var(--shadow--raised);display:flex;flex-direction:column;gap:24px}._card_1vzyn_17:before{content:"";position:absolute;top:0;left:26px;right:26px;height:1px;background:var(--color--border)}._cardHeader_1vzyn_39{display:flex;flex-direction:column;gap:4px}._cardTitle_1vzyn_45{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--color--ink)}._cardCaption_1vzyn_52{margin:0;font-size:var(--font-size-xs);line-height:1.5;color:var(--color--ink-subtle)}._section_1vzyn_59{display:flex;flex-direction:column;gap:var(--spacing-s)}._sectionLabel_1vzyn_65{font-size:11px;letter-spacing:.08em;font-weight:600;text-transform:uppercase;color:var(--color--ink-subtle)}._localeRow_1vzyn_73{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:var(--spacing-m);align-items:center}._localeArrow_1vzyn_80{align-self:center;width:40px;display:flex;align-items:center;justify-content:center;color:var(--color--ink);font-size:18px;font-weight:600}._selectionChips_1vzyn_91{display:flex;flex-wrap:wrap;gap:8px}._chip_1vzyn_97{padding:6px 14px;border-radius:999px;font-size:12px;font-weight:500;background:var(--color--primary--surface-secondary);color:var(--color--primary--ink);border:1px solid var(--color--primary--ink)}._actions_1vzyn_107{display:flex;flex-direction:column;gap:10px}._helperText_1vzyn_113{font-size:12px;color:var(--color--ink-subtle);text-align:center}._statusReady_1vzyn_119{color:var(--color--ink-primary);font-weight:600}._statusPending_1vzyn_124{color:var(--color--warning-soft--ink);font-weight:600}._loadingOverlay_1vzyn_129{position:absolute;inset:0;background:var(--color--overlay--surface);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}._loadingText_1vzyn_141{font-size:13px;color:var(--color--ink-subtle)}._footerNote_1vzyn_146{margin-top:22px;font-size:12px;color:var(--color--ink-subtle);text-align:center}@media(max-width:720px){._localeRow_1vzyn_73{grid-template-columns:minmax(0,1fr)}._localeArrow_1vzyn_80{display:none}}@media(max-width:640px){._page_1vzyn_1{padding:28px 16px 44px}._card_1vzyn_17{padding:24px 20px}}._inspector_q1qxx_1{margin-top:var(--spacing-l)}._bubbleContainer_q1qxx_6{display:flex;flex-direction:column;width:100%;position:relative;gap:8px}._bubbleContainer_q1qxx_6+._bubbleContainer_q1qxx_6{margin-top:8px}._bubbleContainer_q1qxx_6._done_q1qxx_18,._bubbleContainer_q1qxx_6._error_q1qxx_22{min-height:auto}._bubbleContainer_q1qxx_6._error_q1qxx_22 ._bubble_q1qxx_6{background-color:var(--color--danger-soft--surface);color:var(--color--danger-soft--ink);border-color:var(--color--danger-soft--border)}._bubbleStatusIcon_q1qxx_32{color:var(--color--ink-primary)}._bubbleContainer_q1qxx_6._error_q1qxx_22 ._bubbleStatusIcon_q1qxx_32{color:var(--color--ink-danger)}._bubble_q1qxx_6{background-color:var(--color--primary-soft--surface);color:var(--color--primary-soft--ink);border:1px solid var(--color--primary-soft--border);position:relative;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4;letter-spacing:.01em;box-shadow:var(--shadow--raised);cursor:pointer;width:100%;box-sizing:border-box}._bubbleIcon_q1qxx_63{display:flex}._bubbleContent_q1qxx_67{flex:1;font-weight:500}._bubbleText_q1qxx_72 strong{font-weight:600}._streamingContainer_q1qxx_77{position:relative;margin-left:32px;width:calc(100% - 32px);box-sizing:border-box}._pendingHint_q1qxx_84{color:var(--color--ink-subtle);padding:10px 14px;border-radius:10px;font-size:12px;width:100%;position:relative;box-sizing:border-box;background-color:var(--color--primary-soft--surface)!important;border:1px solid var(--color--primary-soft--border)!important;margin-top:0;margin-bottom:12px;box-shadow:var(--shadow--ambient);animation:_ai-pendingPulse_q1qxx_1 2.8s ease-in-out infinite;will-change:opacity,transform;transform-origin:center}@keyframes _ai-pendingPulse_q1qxx_1{0%{opacity:.6;transform:scale(.985)}50%{opacity:1;transform:scale(1.02)}to{opacity:.6;transform:scale(.985)}}@media(prefers-reduced-motion:reduce){._pendingHint_q1qxx_84{animation:none;transform:none}}._pendingPulseText_q1qxx_126{display:inline-block}@media(prefers-reduced-motion:reduce){._pendingPulseText_q1qxx_126{animation:none}}._hierarchyLine_q1qxx_137{position:absolute;left:-24px;top:-8px;width:2px;height:24px;background-color:var(--color--border);opacity:.5}._hierarchyLine_q1qxx_137:before{content:"";position:absolute;left:0;bottom:0;width:24px;height:2px;background-color:inherit}._streamingBubble_q1qxx_157{padding:8px 14px;border-radius:8px;font-size:12px;width:100%;cursor:pointer;position:relative;height:calc(3em + 16px);overflow:hidden;box-sizing:border-box;background-color:var(--color--primary-soft--surface)!important;border:1px solid var(--color--border)!important;transition:height .2s ease-out;margin-top:-6px}._streamingBubble_q1qxx_157:hover{height:calc(7.5em + 16px)}._streamingBubble_q1qxx_157:hover:after{content:"";position:absolute;right:5px;top:50%;transform:translateY(-50%);width:3px;height:40px;background:var(--color--primary-soft--border);border-radius:2px;opacity:0;animation:_fadeIn_q1qxx_1 .2s ease-out .1s forwards}._streamingBubble_q1qxx_157:hover:before{content:"";position:absolute;right:2.5px;top:58%;transform:translateY(-32px) rotate(45deg);width:6px;height:6px;border-left:2px solid var(--color--primary-soft--border);border-top:2px solid var(--color--primary-soft--border);opacity:0;animation:_fadeIn_q1qxx_1 .2s ease-out .2s forwards}._streamingBubble_q1qxx_157:hover ._streamingContent_q1qxx_207:after{content:"";position:absolute;right:2.5px;top:42%;transform:translateY(26px) rotate(45deg);width:6px;height:6px;border-right:2px solid var(--color--primary-soft--border);border-bottom:2px solid var(--color--primary-soft--border);opacity:0;animation:_fadeIn_q1qxx_1 .2s ease-out .2s forwards;pointer-events:none;z-index:1}._streamingBubble_q1qxx_157:hover:after{height:32px;top:calc(50% + 2px)}@keyframes _fadeIn_q1qxx_1{0%{opacity:0}to{opacity:1}}._streamingContent_q1qxx_207{line-height:1.5;height:100%;scroll-behavior:smooth;padding:0 12px 0 0;-ms-overflow-style:none;scrollbar-width:none;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;opacity:.7;font-weight:400}._streamingBubble_q1qxx_157:hover ._streamingContent_q1qxx_207{-webkit-line-clamp:unset;line-clamp:unset;display:block;overflow-y:auto}._streamingContent_q1qxx_207::-webkit-scrollbar{display:none}._fadeGradient_q1qxx_268{position:absolute;bottom:0;left:0;right:0;height:16px;pointer-events:none;opacity:1;transition:opacity .2s ease-out;background:linear-gradient(transparent,var(--color--primary-soft--surface))!important}._streamingBubble_q1qxx_157:hover ._fadeGradient_q1qxx_268{opacity:0}
|
|
1
|
+
@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:700;src:url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff2"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:700;src:url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff2"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:500;src:url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff2"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("woff"),url(https://use.typekit.net/af/522c51/00000000000000003b9acde6/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:500;src:url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff2"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("woff"),url(https://use.typekit.net/af/4e71b3/00000000000000003b9acde7/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i5&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:normal;font-weight:400;src:url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("woff2"),url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("woff"),url(https://use.typekit.net/af/bac079/00000000000000003b9acde4/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n4&v=3) format("opentype")}@font-face{font-display:auto;font-family:colfax-web;font-style:italic;font-weight:400;src:url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("woff2"),url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("woff"),url(https://use.typekit.net/af/c1cc04/00000000000000003b9acde5/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i4&v=3) format("opentype")}html{font-size:16px;height:auto}body,html{margin:0;padding:0}@layer datocms-react-ui{html{scrollbar-color:var(--color--scrollbar--fill) transparent}}._button_18hrg_1{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;border-radius:4px;box-sizing:border-box;color:var(--color--ink);cursor:pointer;display:inline-block;font-family:inherit;font-weight:var(--font-weight-bold);line-height:inherit;opacity:1;text-decoration:none;transition:all .3s var(--material-ease);vertical-align:middle;white-space:nowrap}._button_18hrg_1:focus,._button_18hrg_1:hover{opacity:.8}._button_18hrg_1:active{opacity:.7}._disabled_18hrg_30{cursor:not-allowed}._buttonType-muted_18hrg_34{background-color:var(--color--primary-soft--surface);color:var(--color--primary-soft--ink)}._buttonType-muted_18hrg_34._disabled_18hrg_30{background-color:var(--color--disabled--surface);color:var(--color--disabled--ink)}._buttonType-muted_18hrg_34._disabled_18hrg_30:active,._buttonType-muted_18hrg_34._disabled_18hrg_30:focus,._buttonType-muted_18hrg_34._disabled_18hrg_30:hover{color:var(--color--disabled--ink)}._buttonType-primary_18hrg_50{background-color:var(--color--primary--surface)}._buttonType-primary_18hrg_50,._buttonType-primary_18hrg_50:active,._buttonType-primary_18hrg_50:focus,._buttonType-primary_18hrg_50:hover{color:var(--color--primary--ink)}._buttonType-primary_18hrg_50:hover{background-color:var(--color--primary--surface-hover)}._buttonType-primary_18hrg_50:active,._buttonType-primary_18hrg_50:focus{background-color:var(--color--primary--surface-active)}._buttonType-primary_18hrg_50._disabled_18hrg_30{background-color:var(--color--disabled--surface);color:var(--color--disabled--ink)}._buttonType-primary_18hrg_50._disabled_18hrg_30:active,._buttonType-primary_18hrg_50._disabled_18hrg_30:focus,._buttonType-primary_18hrg_50._disabled_18hrg_30:hover{color:var(--color--disabled--ink)}._buttonType-negative_18hrg_80,._buttonType-negative_18hrg_80:active,._buttonType-negative_18hrg_80:focus,._buttonType-negative_18hrg_80:hover{background-color:var(--color--danger--surface);color:var(--color--danger--ink)}._buttonType-negative_18hrg_80._disabled_18hrg_30{background-color:var(--color--disabled--surface);color:var(--color--disabled--ink)}._buttonSize-xxs_18hrg_97{font-size:1em;padding:.5em .8em}._buttonSize-xs_18hrg_102{font-size:1em;padding:.6em .8em}._buttonSize-s_18hrg_107{font-size:1em;padding:.7em 1em}._buttonSize-m_18hrg_112{font-size:1.1em;padding:.7em 1em}._buttonSize-l_18hrg_117{font-size:1.2em;padding:.7em 1em}._buttonSize-xl_18hrg_122{font-size:1.2em;padding:1em}._fullWidth_18hrg_127{display:block;text-align:center;width:100%}._button__leftIcon_18hrg_133,._button__rightIcon_18hrg_134{display:inline-block;line-height:.6;vertical-align:middle}._button__leftIcon_18hrg_133 svg,._button__rightIcon_18hrg_134 svg{fill:var(--color--ink-link)}._button__leftIcon_18hrg_133{margin-right:.5em}._button__leftIcon_18hrg_133:last-child{margin-right:0}._button__rightIcon_18hrg_134{margin-left:.5em}._button__rightIcon_18hrg_134:first-child{margin-left:0}._Button_1653r_1{justify-column:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:var(--color--surface);border:0;border:1px solid var(--color--border);box-sizing:border-box;color:var(--color--ink);color:var(--color--ink-subtle);cursor:pointer;display:flex;font-family:inherit;font-size:inherit;line-height:inherit;padding:7px 13px}._Button_1653r_1:hover{background-color:var(--color--surface-hover)}._Button_1653r_1 svg{fill:var(--color--ink-subtle)}._Button--s_1653r_30{padding:3px 10px}._Button--disabled_1653r_34{color:var(--color--disabled--ink);cursor:not-allowed}._Button--disabled_1653r_34:hover{background:var(--color--surface)}._Button--selected_1653r_43{background-color:var(--color--primary--surface-secondary);color:var(--color--primary--ink)}._Button--selected_1653r_43 svg{fill:var(--color--primary--ink)}._Button--selected_1653r_43._Button--disabled_1653r_34,._Button--selected_1653r_43:hover{background-color:var(--color--primary--surface-secondary)}._Button_1653r_1:first-child{border-left-width:1px;border-radius:4px 0 0 4px}._Button_1653r_1:last-child{border-radius:0 4px 4px 0}._Group_1b5yn_1{align-items:stretch;background-color:var(--color--surface);display:flex;overflow:hidden}._themeVariables_11af8_1{--base-body-color-rgb-components:52,54,58;--base-body-color:var(--color--ink);--light-body-color-rgb-components:132,132,132;--light-body-color:var(--color--ink-subtle);--placeholder-body-color-rgb-components:198,198,198;--placeholder-body-color:var(--color--ink-placeholder);--light-bg-color-rgb-components:245,245,245;--light-bg-color:var(--color--surface-muted);--lighter-bg-color-rgb-components:248,248,248;--lighter-bg-color:var(--color--surface-muted);--disabled-bg-color-rgb-components:237,237,237;--disabled-bg-color:var(--color--disabled--surface);--border-color-rgb-components:240,240,240;--border-color:var(--color--border);--darker-border-color-rgb-components:215,215,215;--darker-border-color:var(--color--border-hover);--alert-color-rgb-components:255,94,73;--alert-color:var(--color--ink-danger);--warning-color-rgb-components:255,215,0;--warning-color:var(--color--ink-warning);--notice-color-rgb-components:70,215,0;--notice-color:var(--color--ink-success);--warning-bg-color-rgb-components:255,255,229;--warning-bg-color:var(--color--warning-soft--surface);--add-color-rgb-components:76,176,109;--add-color:var(--color--diff-added--surface);--remove-color-rgb-components:235,87,106;--remove-color:var(--color--diff-removed--surface);--base-font-family:"colfax-web","Roboto","Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;--monospaced-font-family:"Roboto Mono","Menlo","Bitstream Vera Sans Mono",Consolas,Courier,monospace;--font-weight-bold:500;--spacing-xs:.1875rem;--spacing-s:.375rem;--spacing-m:.75rem;--spacing-l:1.5rem;--spacing-xl:2.25rem;--spacing-xxl:3.75rem;--spacing-xxxl:6rem;--negative-spacing-xs:-.1875rem;--negative-spacing-s:-.375rem;--negative-spacing-m:-.75rem;--negative-spacing-l:-1.5rem;--negative-spacing-xl:-2.25rem;--negative-spacing-xxl:-3.75rem;--negative-spacing-xxxl:-6rem;--font-size-xxs:.6875rem;--font-size-xs:.75rem;--font-size-s:.875rem;--font-size-m:.9375rem;--font-size-l:1.0625rem;--font-size-xl:1.1875rem;--font-size-xxl:1.5625rem;--font-size-xxxl:1.875rem;--material-ease:cubic-bezier(.55,0,.1,1);--inertial-ease:cubic-bezier(.19,1,.22,1)}._canvas_11af8_85{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;color:var(--color--ink);font-family:var(--base-font-family);font-size:var(--font-size-m);line-height:1.5}._inspector_4pnoo_1{margin:var(--spacing-l) 0}._panel_4pnoo_5{border-bottom:1px solid var(--color--border)}._panelHandle_4pnoo_9{all:inherit;background:var(--color--surface-muted);border:0;box-sizing:border-box;cursor:pointer;display:block;font-weight:var(--font-weight-bold);padding:5px 10px;width:100%}._panelHandle_4pnoo_9:hover{background:var(--color--surface-hover)}._panelBody_4pnoo_25{border-left:1px solid var(--color--border);border-right:1px solid var(--color--border);padding:20px}._groupDescription_4pnoo_31{font-size:var(--font-size-s);line-height:1.2;margin-bottom:20px}._propertyGroup_4pnoo_37{border:1px solid var(--color--border);border-radius:5px}._propertyOrMethod_4pnoo_42{border-bottom:1px solid var(--color--border);line-height:1.2}._propertyOrMethod_4pnoo_42 p{margin:0}._propertyOrMethodBody_4pnoo_51{padding:15px}._propertyOrMethodExample_4pnoo_55{position:relative}._propertyOrMethodExample_4pnoo_55 pre{background:var(--color--surface-muted);font-size:.8em;margin:0;max-height:240px;overflow:auto;padding:15px}._propertyOrMethodName_4pnoo_68{color:var(--color--ink-subtle);display:block;font-family:var(--monospaced-font-family);font-size:.9em;font-weight:700;margin-bottom:5px;text-decoration:none}._propertyOrMethodName_4pnoo_68:hover{text-decoration:underline}._propertyOrMethodExampleActions_4pnoo_82{background:var(--color--surface);display:flex;padding:15px}._propertyOrMethodExampleActions_4pnoo_82>*{margin-right:10px}._fieldError_kqzsn_1{color:var(--color--ink-danger);font-size:var(--font-size-xs);line-height:1.2;margin-top:var(--spacing-s)}._FieldGroup_uz9ju_1{display:block}._FieldGroup__item_uz9ju_5{display:block;margin-bottom:var(--spacing-l)}._FieldGroup__item_uz9ju_5:last-child{margin-bottom:0}._fieldHint_1q1d1_1{color:var(--color--ink-subtle);font-size:var(--font-size-xs);line-height:1.2;margin-top:var(--spacing-s)}._fieldHint_1q1d1_1 a{color:inherit}._fieldHint_1q1d1_1 a:hover{text-decoration:none}._Form_5qspp_1,._Form__item_5qspp_5{display:block}._Form__item_5qspp_5:last-child{margin-bottom:0}._Form__item--default_5qspp_13{margin-bottom:var(--spacing-l)}._Form__item--condensed_5qspp_17{margin-bottom:var(--spacing-m)}._formLabel_12h4v_1{align-items:center;color:var(--color--ink-subtle);display:flex;margin-bottom:var(--spacing-s)}._formLabel_12h4v_1:hover ._formLabel__code_12h4v_8{opacity:1}._formLabel--error_12h4v_14{color:var(--color--ink-danger)}._formLabel__label_12h4v_18{flex:1}._formLabel__code_12h4v_8{font-family:var(--monospaced-font-family);font-size:.95em;opacity:0;position:absolute;transition:opacity .2s var(--material-ease)}._hotKey_17bh5_1{align-items:center;display:inline-flex;gap:15px}._label_17bh5_7{align-items:center;display:flex}._keys_17bh5_12{align-items:center;display:inline-flex;gap:4px}._hotKeyKey_17bh5_18{background:var(--color--primary-soft--surface);border-radius:3px;padding:5px 8px}._Section_12uz1_1{display:flex;flex-direction:column;gap:var(--spacing-m);position:relative}._Section--highlighted_12uz1_8:before{animation:_pageContentSectionHighligh_12uz1_1 4s ease-in-out .25s forwards;border-radius:4px;box-shadow:0 0 0 4px var(--color--focus--border);content:"";inset:-20px -30px;pointer-events:none;position:absolute;z-index:10}._Section__header_12uz1_22{margin-left:var(--negative-spacing-l);margin-right:var(--negative-spacing-l)}._Section__header--clickable_12uz1_27{cursor:pointer;-webkit-user-select:none;user-select:none}._Section__header--clickable_12uz1_27:hover ._Section__arrow_12uz1_31:before{opacity:.7}._Section__title_12uz1_36{align-items:center;display:flex;gap:var(--spacing-m)}._Section__title_12uz1_36:after,._Section__title_12uz1_36:before{background-color:var(--color--border);content:"";height:1px}._Section__title_12uz1_36:before{width:calc(var(--spacing-l) - var(--spacing-m))}._Section__title_12uz1_36:after{flex:1;margin-right:var(--spacing-l)}._Section__title__content_12uz1_58{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--font-size-l);font-weight:var(--font-weight-bold)}._Section__arrow_12uz1_31{align-self:stretch;margin-right:.3em;position:relative;width:15px}._Section__arrow_12uz1_31:before{border-bottom:6px solid transparent;border-left:6px solid var(--color--ink);border-top:6px solid transparent;content:"";height:0;left:6px;margin-top:-6px;position:absolute;top:50%;transform-origin:50% 50%;transition:transform .2s ease-out;width:0}._Section__arrow--is-open_12uz1_88:before{transform:rotate(90deg)}@keyframes _pageContentSectionHighligh_12uz1_1{0%{box-shadow:0 0 0 4px var(--color--focus--border),0 0 0 4px var(--color--focus--outline)}15%{box-shadow:0 0 0 4px var(--color--focus--border),0 0 0 80px transparent}75%{box-shadow:0 0 0 4px var(--color--focus--border),0 0 0 80px transparent}to{box-shadow:0 0 0 4px transparent,0 0 0 80px transparent}}._SidebarPanel_a4c7y_1{border-bottom:1px solid var(--color--border)}._SidebarPanel__header_a4c7y_5{align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:var(--color--surface);background-color:var(--color--surface-muted);border:0;box-sizing:border-box;color:var(--color--ink);cursor:pointer;display:flex;font-family:inherit;font-size:inherit;line-height:inherit;padding:0;text-align:left;-webkit-user-select:none;user-select:none;width:100%}._SidebarPanel__header_a4c7y_5:focus,._SidebarPanel__header_a4c7y_5:hover{background-color:var(--color--surface-hover)}._SidebarPanel__header__title_a4c7y_30{flex:1;font-weight:500;padding:0 20px}._SidebarPanel__header__chevron_a4c7y_36{align-items:center;display:flex;padding:13px 15px}._SidebarPanel__content_a4c7y_42{padding:20px}._SidebarPanel__content--no-padding_a4c7y_46{padding:0}._Spinner--inline_1u42l_1{display:inline-block;position:relative;vertical-align:middle}._Spinner--centered_1u42l_7{left:50%;position:absolute;top:50%}._Spinner__bar_1u42l_13{animation:_Spinner__spin_1u42l_1 1.2s linear infinite;background-color:var(--color--ink-subtle);height:14%;left:-20%;position:absolute;top:0;width:40%}@keyframes _Spinner__spin_1u42l_1{0%{opacity:1}to{opacity:.15}}._switchField__flex_ietsf_1{align-items:center;display:flex}._switchField__switchInput_ietsf_6{width:55px}._switchField__label_ietsf_10{color:var(--color--ink);flex:1;line-height:1.1;line-height:20px;margin-bottom:0;pointer-events:none;-moz-user-select:text;-ms-user-select:text;-webkit-user-select:text;user-select:text}._switchField__below_ietsf_22{margin-left:55px;margin-top:var(--spacing-s)}._switchInput__inner_vh6pt_1{color:var(--color--primary--ink);font-size:12px;left:24px;position:absolute;transition:left .3s cubic-bezier(.35,0,.25,1)}._switchInput_vh6pt_1{background-color:var(--color--ink-muted);border:1px solid var(--color--border);border-radius:20px;box-sizing:border-box;cursor:pointer;display:inline-block;height:22px;line-height:20px;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1);vertical-align:middle;width:44px}._switchInput_vh6pt_1:after{animation-duration:.3s;animation-name:_switchInput__off_vh6pt_1;animation-timing-function:cubic-bezier(.35,0,.25,1);background-color:var(--color--surface);border-radius:50%;box-shadow:var(--shadow--raised);content:" ";cursor:pointer;height:18px;left:2px;position:absolute;top:1px;transform:scale(1);transition:left .3s cubic-bezier(.35,0,.25,1),transform .3s cubic-bezier(.35,0,.25,1);width:18px}._switchInput_vh6pt_1:focus:after,._switchInput_vh6pt_1:hover:after{animation-name:_switchInput__on_vh6pt_1;transform:scale(1.1)}._switchInput__checked_vh6pt_50{background-color:var(--color--primary--surface);border-color:var(--color--primary--surface)}._switchInput__checked_vh6pt_50 ._switchInput__inner_vh6pt_1{left:6px}._switchInput__checked_vh6pt_50:after{left:22px}._switchInput__disabled_vh6pt_63{background:var(--color--disabled--surface);border-color:var(--color--border);cursor:no-drop}._switchInput__disabled_vh6pt_63:after{animation-name:_none_vh6pt_1;background:var(--color--disabled--ink);cursor:no-drop}._switchInput__disabled_vh6pt_63:focus:after,._switchInput__disabled_vh6pt_63:hover:after{animation-name:_none_vh6pt_1;transform:scale(1)}@keyframes _switchInput__on_vh6pt_1{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1.1)}}@keyframes _switchInput__off_vh6pt_1{0%{transform:scale(1.1)}to{transform:scale(1)}}._TextInput_1kqkh_1{appearance:none;background-color:var(--color--surface);background-image:none;border:1px solid var(--color--border);border-radius:0;box-sizing:border-box;color:inherit;display:block;font-family:inherit;font-size:var(--font-size-m);padding:10px;resize:none;transition:border .2s var(--material-ease);width:100%}._TextInput_1kqkh_1::placeholder{color:var(--color--ink-placeholder)}._TextInput_1kqkh_1:hover{border-color:var(--color--border-hover)}._TextInput_1kqkh_1:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline);outline:0}._TextInput--monospaced_1kqkh_32{font-family:var(--monospaced-font-family);font-size:var(--font-size-s)}._TextInput--disabled_1kqkh_37{background:var(--color--disabled--surface);border-color:var(--color--border);color:var(--color--disabled--ink)}._TextInput--error_1kqkh_43,._TextInput--error_1kqkh_43:focus,._TextInput--error_1kqkh_43:hover{border-color:var(--color--danger-soft--border)}._TextInput--error_1kqkh_43:focus{box-shadow:0 0 0 4px var(--color--danger-soft--outline)}._TextareaInput_1xr0a_1{appearance:none;background-color:var(--color--surface);background-image:none;border:1px solid var(--color--border);border-radius:0;box-sizing:border-box;color:inherit;display:block;font-family:inherit;font-size:var(--font-size-m);padding:10px;resize:none;transition:border .2s var(--material-ease);width:100%}._TextareaInput_1xr0a_1::placeholder{color:var(--color--ink-placeholder)}._TextareaInput_1xr0a_1:hover{border-color:var(--color--border-hover)}._TextareaInput_1xr0a_1:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline);outline:0}._TextareaInput--monospaced_1xr0a_32{font-family:var(--monospaced-font-family);font-size:var(--font-size-s)}._TextareaInput--disabled_1xr0a_37{background:var(--color--disabled--surface);border-color:var(--color--border);color:var(--color--disabled--ink)}._TextareaInput--error_1xr0a_43,._TextareaInput--error_1xr0a_43:focus,._TextareaInput--error_1xr0a_43:hover{border-color:var(--color--danger-soft--border)}._TextareaInput--error_1xr0a_43:focus{box-shadow:0 0 0 4px var(--color--danger-soft--outline)}._Button_36kvr_1{align-items:center;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;border-left:1px solid var(--color--border);border-right:1px solid var(--color--border);box-sizing:border-box;color:var(--color--ink);cursor:pointer;display:flex;font-family:inherit;justify-content:center;line-height:inherit;min-height:49px;padding:0;width:49px}._Button_36kvr_1:focus,._Button_36kvr_1:hover{background-color:var(--color--surface-hover)}._Button_36kvr_1:first-child{border-left:0}._Button_36kvr_1:last-child{border-right:0}@media screen and (min-width:380px){._Button_36kvr_1{min-height:59px;width:59px}._Button_36kvr_1 svg{font-size:20px}}._Stack_1nnzo_1{align-items:center;display:flex;flex:1;flex-direction:row;justify-content:center;padding:10px 15px}._Stack--s_1nnzo_10{padding-bottom:var(--spacing-s);padding-top:var(--spacing-s)}._Stack--l_1nnzo_15{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}._Title_1dx5n_1{font-size:var(--font-size-l);font-weight:500;line-height:1.1;margin-right:15px}@media screen and (min-width:380px){._Title_1dx5n_1{font-size:var(--font-size-xl)}}._Toolbar_50246_1{align-items:stretch;border-bottom:1px solid var(--color--border);border-top:1px solid var(--color--border);display:flex;position:relative}._Toolbar_50246_1:first-child{border-top-width:0}._Toolbar_50246_1:last-child{border-bottom-width:0}._tooltip_6pcmg_1{word-wrap:break-word;background:var(--color--tooltip--surface);border-radius:4px;box-shadow:var(--shadow--floating);color:var(--color--tooltip--ink);-webkit-hyphens:auto;hyphens:auto;max-width:400px;overflow-wrap:break-word;padding:10px 15px}._Dropdown_1mqss_1{position:relative}._Dropdown__spacer_1mqss_5{inset:0;pointer-events:none;position:absolute}._Dropdown__menu__search_1mqss_11{border-bottom:1px solid var(--color--border);padding:7px}._Dropdown__menu__search__input_1mqss_16{appearance:none;background-color:var(--color--surface);background-image:none;border:1px solid var(--color--border);border-radius:3px;box-sizing:border-box;color:inherit;display:block;font-family:inherit;font-size:.9em;padding:8px;resize:none;transition:border .2s var(--material-ease);width:100%}._Dropdown__menu__search__input_1mqss_16::placeholder{color:var(--color--ink-placeholder)}._Dropdown__menu__search__input_1mqss_16:hover{border-color:var(--color--border-hover)}._Dropdown__menu__search__input_1mqss_16:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline);outline:0}._Dropdown__menu-container_1mqss_47{position:fixed;visibility:hidden}._Dropdown__menu_1mqss_11{background-color:var(--color--surface-raised);border-radius:4px;box-shadow:var(--shadow--floating);margin-bottom:var(--spacing-xl);margin-top:10px;min-width:200px;padding:1px 0;text-align:initial}._Dropdown__menu__inner_1mqss_63{margin:7px 0}._Dropdown__menu__group__title_1mqss_67{background-color:var(--color--surface-muted);color:var(--color--ink-subtle);font-size:var(--font-size-xs);padding:5px 15px 3px;text-transform:uppercase}._Dropdown__menu__group__content_1mqss_75{margin:8px 0}._Dropdown__menu__text_1mqss_79{color:var(--color--ink-subtle);display:block;line-height:1.2;padding:4px 15px;position:relative;text-align:left}._Dropdown__menu__option_1mqss_88{align-items:center;color:var(--color--ink);display:flex;padding:4px 15px;position:relative;text-align:left;text-decoration:none;white-space:nowrap}._Dropdown__menu__option_1mqss_88:focus,._Dropdown__menu__option_1mqss_88:hover{background-color:var(--color--surface-hover)}._Dropdown__menu__option_1mqss_88>a{color:inherit;display:block;text-decoration:none}._Dropdown__menu__option--is-selected_1mqss_110{background-color:var(--color--selected--surface)}._Dropdown__menu__option--is-disabled_1mqss_114{opacity:.5}._Dropdown__menu__option--is-disabled_1mqss_114 ._Dropdown__menu__option__content_1mqss_117{cursor:not-allowed}._Dropdown__menu__option--is-dangerous_1mqss_122{color:var(--color--danger--ink)}._Dropdown__menu__option--is-dangerous_1mqss_122 svg{fill:var(--color--danger--ink)}._Dropdown__menu__option--is-dangerous_1mqss_122:focus,._Dropdown__menu__option--is-dangerous_1mqss_122:hover{background-color:var(--color--danger--surface);color:var(--color--danger--ink)}._Dropdown__menu__option--is-dangerous_1mqss_122:focus svg,._Dropdown__menu__option--is-dangerous_1mqss_122:hover svg{fill:var(--color--danger--ink)}._Dropdown__menu__option--is-active_1mqss_140{font-weight:500}._Dropdown__menu__option--is-active_1mqss_140:focus,._Dropdown__menu__option--is-active_1mqss_140:hover{background-color:none}._Dropdown__menu__option--is-invalid_1mqss_153,._Dropdown__menu__option--is-valid_1mqss_149{padding-left:35px}._Dropdown__menu__option--is-invalid_1mqss_153:before{background-color:var(--color--danger--surface);border-radius:4px;content:"";font-size:12px;height:8px;left:15px;position:absolute;top:50%;transform:translateY(-50%);width:8px}._Dropdown__menu__option__content_1mqss_117{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:inherit;cursor:pointer;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0;text-align:left}._Dropdown__menu__option__content_1mqss_117>svg{fill:var(--color--ink-subtle);color:var(--color--ink-subtle);display:inline-block;font-size:13px;padding-right:8px;vertical-align:middle}._Dropdown__menu__option__icons_1mqss_196{align-items:center;display:flex;padding-left:15px}._Dropdown__menu__option__icon_1mqss_196{-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:var(--color--ink);color:var(--color--ink-subtle);cursor:pointer;display:inline-block;font-family:inherit;font-size:inherit;font-size:13px;line-height:inherit;line-height:10px;opacity:0;padding:3px;position:relative;top:-1px;transition:transform .1s ease-in-out;width:100%;width:auto}._Dropdown__menu__option_1mqss_88:focus ._Dropdown__menu__option__icon_1mqss_196,._Dropdown__menu__option_1mqss_88:hover ._Dropdown__menu__option__icon_1mqss_196{opacity:1}._Dropdown__menu__option__icon_1mqss_196:focus,._Dropdown__menu__option__icon_1mqss_196:hover{transform:scale(1.2)}._Dropdown__menu__option__icon_1mqss_196 svg{fill:var(--color--ink-subtle)}._Dropdown__menu__option__icon--delete_1mqss_243{color:var(--color--danger--ink)}._Dropdown__menu__option__icon--delete_1mqss_243 svg{fill:var(--color--danger--ink)}._Dropdown__menu__separator_1mqss_250{background-color:var(--color--border);height:1px;margin:8px 0}._Dropdown__menu_1mqss_11{overflow-y:auto}._SplitViewPane_1cl1f_1{height:100%;overflow-y:auto;position:absolute;width:100%}._SplitViewSash_9ds0h_1{align-items:center;background-color:transparent;display:flex;height:100%;justify-content:center;position:absolute;top:0;transition:background-color .2s .15s;width:100%;z-index:2}._SplitViewSash--dragging_9ds0h_15,._SplitViewSash_9ds0h_1:hover{background-color:var(--color--primary-soft--surface)}._SplitViewSash--dragging_9ds0h_15:has(._SplitViewSash__content_9ds0h_19:hover),._SplitViewSash_9ds0h_1:hover:has(._SplitViewSash__content_9ds0h_19:hover){background-color:transparent}._SplitViewSash--no-resize_9ds0h_24{pointer-events:none}._SplitViewSash--vertical_9ds0h_28{cursor:col-resize}._SplitViewSash--horizontal_9ds0h_32{cursor:row-resize}._SplitViewSash__content_9ds0h_19{cursor:pointer;left:50%;padding:15px 0;pointer-events:auto;position:absolute;top:50%;transform:translate(-50%,-50%)}._SplitViewSash__content__button_9ds0h_46{align-items:center;background:var(--color--surface);border:1px solid var(--color--border);border-radius:6px;color:var(--color--ink-subtle);display:flex;font-size:10px;height:20px;justify-content:center;width:20px;z-index:2}._SplitViewSash__content__button_9ds0h_46 svg{fill:currentColor;display:block}._SplitViewSash__content_9ds0h_19:hover ._SplitViewSash__content__button_9ds0h_46{background:var(--color--surface-hover);color:var(--color--ink)}._SplitView_1oi17_1{flex:1;height:100%;position:relative;width:100%}._SplitView--dragging_1oi17_8._SplitView--vertical_1oi17_8{cursor:col-resize}._SplitView--dragging_1oi17_8._SplitView--horizontal_1oi17_12{cursor:row-resize}._SplitView--disable-select_1oi17_16{-webkit-user-select:none;user-select:none}._SplitView--disable-select_1oi17_16 ._SplitViewPane_1oi17_20{pointer-events:none}._VerticalSplitPane__expand_28erb_1{background:var(--color--surface);cursor:pointer;inset:0;position:absolute;transition:all .3s cubic-bezier(.55,0,.1,1)}._VerticalSplitPane__expand_28erb_1:hover{animation:_VerticalSplitPane__expand_28erb_1 .6s cubic-bezier(.55,0,.1,1);background:var(--color--surface-hover)}._VerticalSplitPane__expand_28erb_1._VerticalSplitPane__expand_28erb_1{border-right:1px solid var(--color--border);transform-origin:left}._VerticalSplitPane__expand_28erb_1._VerticalSplitPane__expand--right_28erb_25{border-left:1px solid var(--color--border);transform-origin:right}@keyframes _VerticalSplitPane__expand_28erb_1{0%{transform:scaleX(1)}50%{transform:scaleX(2)}to{transform:scaleX(1)}}._VerticalSplitPaneOverlay_28erb_42{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--color--backdrop--surface);height:100%;inset:0;overflow:hidden;position:absolute;z-index:12}._VerticalSplitPaneOverlay__primary_28erb_55{inset:0;position:absolute;z-index:1}._VerticalSplitPaneOverlay__primary--left_28erb_64{margin-right:20px}._VerticalSplitPaneOverlay__primary--right_28erb_68{margin-left:20px}._VerticalSplitPaneOverlay__secondary_28erb_72{background:var(--color--surface);bottom:0;box-shadow:var(--shadow--ambient);position:absolute;top:0}._VerticalSplitPaneOverlay__secondary--left_28erb_80{left:0}._VerticalSplitPaneOverlay__secondary--right_28erb_84{right:0}._VerticalSplitPaneOverlay__sash_28erb_88{height:100%;position:absolute;top:0}._VerticalSplitPaneOverlay__secondary--left_28erb_80 ._VerticalSplitPaneOverlay__sash_28erb_88{right:0}._VerticalSplitPaneOverlay__secondary--right_28erb_84 ._VerticalSplitPaneOverlay__sash_28erb_88{left:0}.TranslationProgressModal{padding:16px 0 0;max-width:760px;margin:0 auto;text-align:left;display:flex;flex-direction:column;align-items:stretch;font-family:var(--font-family);background:transparent;border:0;border-radius:0;box-shadow:none}.TranslationProgressModal__intro{width:100%;margin-bottom:16px}.TranslationProgressModal__languages{margin-bottom:16px}.TranslationProgressModal__languages p{margin:0 0 6px;font-size:var(--font-size-s)}.TranslationProgressModal__progress-text{font-weight:600;margin-bottom:2px!important}.TranslationProgressModal__stats{margin:4px 0 0!important;font-size:14px;color:var(--color--ink-subtle)}.TranslationProgressModal__progress-bar{height:8px;width:100%;background-color:var(--color--progress--track);border:1px solid var(--color--border);border-radius:999px;margin:8px 0 16px;overflow:hidden}.TranslationProgressModal__progress-bar-fill{height:100%;background-color:var(--color--progress--fill);transition:width .3s ease-in-out}.TranslationProgressModal__updates{max-height:260px;overflow-y:auto;margin-bottom:16px;width:100%;scrollbar-gutter:stable both-edges}.TranslationProgressModal__update-list{margin:0;padding:0;list-style-type:none}.TranslationProgressModal__update-item{padding:8px 0;display:flex;align-items:center;gap:8px;font-size:var(--font-size-s);color:var(--color--ink);text-align:left;border-top:1px solid var(--color--border)}.TranslationProgressModal__update-item:first-child{border-top:0}.TranslationProgressModal__update-status{display:flex;align-items:center;justify-content:center;width:20px}.TranslationProgressModal__update-item--completed .TranslationProgressModal__update-status{color:var(--color--success-soft--ink);font-weight:700}.TranslationProgressModal__update-item--error .TranslationProgressModal__update-status{color:var(--color--danger-soft--ink);font-weight:700}.TranslationProgressModal__update-item--processing .TranslationProgressModal__update-status{color:var(--color--ink-primary)}.TranslationProgressModal__update-message{flex:1}.TranslationProgressModal__initializing{padding:20px;text-align:center;color:var(--color--ink-subtle)}.TranslationProgressModal__spinner-container{display:flex;align-items:center;justify-content:center;gap:8px}.TranslationProgressModal__errors{padding:12px;background-color:var(--color--danger-soft--surface);border:1px solid var(--color--danger-soft--border);color:var(--color--danger-soft--ink);border-radius:4px;margin-bottom:20px;font-size:14px;width:100%;text-align:left}.TranslationProgressModal__errors p{margin:8px 0}.TranslationProgressModal__footer{display:flex;justify-content:flex-end;width:100%;gap:var(--spacing-m);padding-top:var(--spacing-m);border-top:1px solid var(--color--border)}._modelSelect_ntd7r_8{display:flex;align-items:center;gap:8px;margin-bottom:16px}._dropdownLabel_ntd7r_15{margin-bottom:8px;margin-top:16px}._optionContainer_ntd7r_20{display:flex;gap:8px;font-size:var(--font-size-xxs);justify-content:right;align-items:center;margin-top:-8px;margin-bottom:-24px;height:50px;overflow:hidden}._buttonsContainer_ntd7r_32{display:flex;-webkit-user-select:none;user-select:none;gap:4px}._promptBar_ntd7r_38{width:100%;gap:4px;display:flex;margin-bottom:24px}._dropdown_ntd7r_15{height:100%;font-size:medium}._promptButton_ntd7r_50{height:100%}._imageGrid_ntd7r_54{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:10px}._tooltipConfig_ntd7r_61{background-color:var(--color--surface-muted);border:1px solid var(--color--border);border-radius:4px;padding:8px 12px;font-size:14px;color:var(--color--ink);display:inline-block;cursor:pointer;transition:transform .2s ease}._tooltipConfig_ntd7r_61:hover{transform:scale(1.025)}._tooltipConfig_ntd7r_61:active{transform:scale(.98);transition:transform .1s ease}._buttons_ntd7r_32{display:flex;flex-direction:column;gap:8px;margin-top:16px}._inlineStatus_ntd7r_89{margin-top:8px;font-size:12px}._fieldSpacing_ntd7r_94{margin-bottom:16px}._ai-indeterminateBar_ntd7r_99{position:relative;width:100%;height:4px;border-radius:4px;background:var(--color--surface-muted);overflow:hidden}._ai-indeterminateBarInner_ntd7r_108{position:absolute;height:100%;width:40%;left:-40%;background:linear-gradient(90deg,transparent,var(--color--surface-raised),transparent);animation:_ai-indet_ntd7r_99 1.2s infinite ease-in-out}@keyframes _ai-indet_ntd7r_99{0%{left:-40%}50%{left:60%}to{left:140%}}._configContainer_ntd7r_134{max-width:650px;margin:0 auto;padding:var(--spacing-l) var(--spacing-xxxl);display:flex;flex-direction:column;gap:16px}._textarea_ntd7r_143{width:96%;border:1px solid var(--color--border);padding:12px;resize:none;outline:none;font-family:inherit;font-size:inherit;background-color:var(--color--surface);color:var(--color--ink)}._textarea_ntd7r_143:hover{border-color:var(--color--border-hover)}._textarea_ntd7r_143:focus{border-color:var(--color--focus--border);box-shadow:0 0 0 4px var(--color--focus--outline)}._label_ntd7r_164{color:var(--color--ink-subtle)}._hint_ntd7r_168{font-size:var(--font-size-xs);color:var(--color--ink-subtle)}._fieldLabelTitle_ntd7r_173{font-size:var(--font-size-xl);font-weight:600;color:var(--color--ink);margin-top:16px}._fieldLabelHint_ntd7r_180{margin-top:-16px;font-size:var(--font-size-m);color:var(--color--ink-subtle);margin-bottom:16px}._switchField_ntd7r_187{margin-top:16px;margin-bottom:16px}._sectionSpacing_ntd7r_192{margin-top:var(--spacing-l)}._buttonRow_ntd7r_196{display:flex;align-items:center;gap:8px}._exclusionRules_ntd7r_202{border-left:2px solid var(--color--border);padding-left:16px;margin-left:4px}._promptContainer_ntd7r_208{margin-top:16px;display:flex;flex-direction:column;gap:4px}._tooltipContainer_ntd7r_216{position:relative;display:inline-block;cursor:help;margin-left:8px}._warningTooltip_ntd7r_223{position:relative;display:inline-block;cursor:help;margin-left:8px;color:var(--color--warning-soft--ink)}._tooltipText_ntd7r_232{visibility:hidden;width:250px;background-color:var(--color--tooltip--surface);color:var(--color--tooltip--ink);text-align:center;border-radius:6px;padding:12px;position:absolute;z-index:9999;top:100%;left:50%;transform:translate(-50%);margin-top:10px;opacity:0;transition:opacity .3s;box-shadow:var(--shadow--floating);max-width:90vw;overflow:hidden}._tooltipText_ntd7r_232 img{display:block;max-width:100%;height:auto;margin:0 auto;border:1px solid var(--color--border);border-radius:4px}._imageTooltip_ntd7r_266{width:450px!important}._leftAnchorTooltip_ntd7r_271{left:0!important;transform:none!important}._rightAnchorTooltip_ntd7r_277{left:auto!important;right:0!important;transform:none!important}._tooltipText_ntd7r_232:before{content:"";position:absolute;bottom:100%;left:50%;margin-left:-8px;border-width:8px;border-style:solid;border-color:transparent transparent var(--color--tooltip--surface) transparent}._leftAnchorTooltip_ntd7r_271:before{left:20px;margin-left:0}._rightAnchorTooltip_ntd7r_277:before{left:auto;right:20px;margin-left:0}._tooltipContainer_ntd7r_216:hover ._tooltipText_ntd7r_232,._warningTooltip_ntd7r_223:hover ._tooltipText_ntd7r_232{visibility:visible;opacity:1}._inspector_ntd7r_320{margin-top:var(--spacing-l)}._page_1pu9c_1{width:100%;min-height:calc(100vh - 96px);padding:36px 24px 52px;display:flex;justify-content:flex-start;align-items:center;flex-direction:column;background:var(--color--surface)}._container_1pu9c_12{width:min(560px,100%);position:relative}._card_1pu9c_17{position:relative;background:var(--color--surface-muted);border-radius:18px;padding:26px 26px 24px;border:1px solid var(--color--border);box-shadow:var(--shadow--raised);display:flex;flex-direction:column;gap:24px}._card_1pu9c_17:before{content:"";position:absolute;top:0;left:26px;right:26px;height:1px;background:var(--color--border)}._cardHeader_1pu9c_39{display:flex;flex-direction:column;gap:4px}._cardTitle_1pu9c_45{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--color--ink)}._cardCaption_1pu9c_52{margin:0;font-size:var(--font-size-xs);line-height:1.5;color:var(--color--ink-subtle)}._section_1pu9c_59{display:flex;flex-direction:column;gap:var(--spacing-s)}._sectionLabel_1pu9c_65{font-size:11px;letter-spacing:.08em;font-weight:600;text-transform:uppercase;color:var(--color--ink-subtle)}._localeRow_1pu9c_73{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:var(--spacing-m);align-items:center}._localeArrow_1pu9c_80{align-self:center;width:40px;display:flex;align-items:center;justify-content:center;color:var(--color--ink);font-size:18px;font-weight:600}._selectionChips_1pu9c_91{display:flex;flex-wrap:wrap;gap:8px}._chip_1pu9c_97{padding:6px 14px;border-radius:999px;font-size:12px;font-weight:500;background:var(--color--selected--surface);color:var(--color--selected--ink);border:1px solid var(--color--selected--border)}._actions_1pu9c_107{display:flex;flex-direction:column;gap:10px}._helperText_1pu9c_113{font-size:12px;color:var(--color--ink-subtle);text-align:center}._statusReady_1pu9c_119{color:var(--color--success-soft--ink);font-weight:600}._statusPending_1pu9c_124{color:var(--color--warning-soft--ink);font-weight:600}._loadingOverlay_1pu9c_129{position:absolute;inset:0;background:var(--color--overlay--surface);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}._loadingText_1pu9c_141{font-size:13px;color:var(--color--ink-subtle)}._footerNote_1pu9c_146{margin-top:22px;font-size:12px;color:var(--color--ink-subtle);text-align:center}@media(max-width:720px){._localeRow_1pu9c_73{grid-template-columns:minmax(0,1fr)}._localeArrow_1pu9c_80{display:none}}@media(max-width:640px){._page_1pu9c_1{padding:28px 16px 44px}._card_1pu9c_17{padding:24px 20px}}._inspector_q1qxx_1{margin-top:var(--spacing-l)}._bubbleContainer_q1qxx_6{display:flex;flex-direction:column;width:100%;position:relative;gap:8px}._bubbleContainer_q1qxx_6+._bubbleContainer_q1qxx_6{margin-top:8px}._bubbleContainer_q1qxx_6._done_q1qxx_18,._bubbleContainer_q1qxx_6._error_q1qxx_22{min-height:auto}._bubbleContainer_q1qxx_6._error_q1qxx_22 ._bubble_q1qxx_6{background-color:var(--color--danger-soft--surface);color:var(--color--danger-soft--ink);border-color:var(--color--danger-soft--border)}._bubbleStatusIcon_q1qxx_32{color:var(--color--ink-primary)}._bubbleContainer_q1qxx_6._error_q1qxx_22 ._bubbleStatusIcon_q1qxx_32{color:var(--color--ink-danger)}._bubble_q1qxx_6{background-color:var(--color--primary-soft--surface);color:var(--color--primary-soft--ink);border:1px solid var(--color--primary-soft--border);position:relative;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4;letter-spacing:.01em;box-shadow:var(--shadow--raised);cursor:pointer;width:100%;box-sizing:border-box}._bubbleIcon_q1qxx_63{display:flex}._bubbleContent_q1qxx_67{flex:1;font-weight:500}._bubbleText_q1qxx_72 strong{font-weight:600}._streamingContainer_q1qxx_77{position:relative;margin-left:32px;width:calc(100% - 32px);box-sizing:border-box}._pendingHint_q1qxx_84{color:var(--color--ink-subtle);padding:10px 14px;border-radius:10px;font-size:12px;width:100%;position:relative;box-sizing:border-box;background-color:var(--color--primary-soft--surface)!important;border:1px solid var(--color--primary-soft--border)!important;margin-top:0;margin-bottom:12px;box-shadow:var(--shadow--ambient);animation:_ai-pendingPulse_q1qxx_1 2.8s ease-in-out infinite;will-change:opacity,transform;transform-origin:center}@keyframes _ai-pendingPulse_q1qxx_1{0%{opacity:.6;transform:scale(.985)}50%{opacity:1;transform:scale(1.02)}to{opacity:.6;transform:scale(.985)}}@media(prefers-reduced-motion:reduce){._pendingHint_q1qxx_84{animation:none;transform:none}}._pendingPulseText_q1qxx_126{display:inline-block}@media(prefers-reduced-motion:reduce){._pendingPulseText_q1qxx_126{animation:none}}._hierarchyLine_q1qxx_137{position:absolute;left:-24px;top:-8px;width:2px;height:24px;background-color:var(--color--border);opacity:.5}._hierarchyLine_q1qxx_137:before{content:"";position:absolute;left:0;bottom:0;width:24px;height:2px;background-color:inherit}._streamingBubble_q1qxx_157{padding:8px 14px;border-radius:8px;font-size:12px;width:100%;cursor:pointer;position:relative;height:calc(3em + 16px);overflow:hidden;box-sizing:border-box;background-color:var(--color--primary-soft--surface)!important;border:1px solid var(--color--border)!important;transition:height .2s ease-out;margin-top:-6px}._streamingBubble_q1qxx_157:hover{height:calc(7.5em + 16px)}._streamingBubble_q1qxx_157:hover:after{content:"";position:absolute;right:5px;top:50%;transform:translateY(-50%);width:3px;height:40px;background:var(--color--primary-soft--border);border-radius:2px;opacity:0;animation:_fadeIn_q1qxx_1 .2s ease-out .1s forwards}._streamingBubble_q1qxx_157:hover:before{content:"";position:absolute;right:2.5px;top:58%;transform:translateY(-32px) rotate(45deg);width:6px;height:6px;border-left:2px solid var(--color--primary-soft--border);border-top:2px solid var(--color--primary-soft--border);opacity:0;animation:_fadeIn_q1qxx_1 .2s ease-out .2s forwards}._streamingBubble_q1qxx_157:hover ._streamingContent_q1qxx_207:after{content:"";position:absolute;right:2.5px;top:42%;transform:translateY(26px) rotate(45deg);width:6px;height:6px;border-right:2px solid var(--color--primary-soft--border);border-bottom:2px solid var(--color--primary-soft--border);opacity:0;animation:_fadeIn_q1qxx_1 .2s ease-out .2s forwards;pointer-events:none;z-index:1}._streamingBubble_q1qxx_157:hover:after{height:32px;top:calc(50% + 2px)}@keyframes _fadeIn_q1qxx_1{0%{opacity:0}to{opacity:1}}._streamingContent_q1qxx_207{line-height:1.5;height:100%;scroll-behavior:smooth;padding:0 12px 0 0;-ms-overflow-style:none;scrollbar-width:none;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;opacity:.7;font-weight:400}._streamingBubble_q1qxx_157:hover ._streamingContent_q1qxx_207{-webkit-line-clamp:unset;line-clamp:unset;display:block;overflow-y:auto}._streamingContent_q1qxx_207::-webkit-scrollbar{display:none}._fadeGradient_q1qxx_268{position:absolute;bottom:0;left:0;right:0;height:16px;pointer-events:none;opacity:1;transition:opacity .2s ease-out;background:linear-gradient(transparent,var(--color--primary-soft--surface))!important}._streamingBubble_q1qxx_157:hover ._fadeGradient_q1qxx_268{opacity:0}
|
|
@@ -75,9 +75,9 @@ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
|
75
75
|
|
|
76
76
|
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
77
77
|
`);this.baseURL=d.baseURL,this.timeout=d.timeout??Gy.DEFAULT_TIMEOUT,this.logger=d.logger??console;const f="warn";this.logLevel=f,this.logLevel=Sw(d.logLevel,"ClientOptions.logLevel",this)??Sw(fr("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??f,this.fetchOptions=d.fetchOptions,this.maxRetries=d.maxRetries??2,this.fetch=d.fetch??oG(),Ae(this,Qc,uG),this._options=d,this.apiKey=typeof n=="string"?n:"Missing Key",this.organization=i,this.project=r,this.webhookSecret=l}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:n}){}async authHeaders(e){return de([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return pG(e)}getUserAgent(){return`${this.constructor.name}/JS ${gr}`}defaultIdempotencyKey(){return`stainless-node-retry-${MR()}`}makeStatusError(e,n,i,r){return Ft.generate(e,n,i,r)}async _callApiKey(){const e=this._options.apiKey;if(typeof e!="function")return!1;let n;try{n=await e()}catch(i){throw i instanceof Se?i:new Se(`Failed to get token from 'apiKey' function: ${i.message}`,{cause:i})}if(typeof n!="string"||!n)throw new Se(`Expected 'apiKey' function argument to return a string but it returned ${n}`);return this.apiKey=n,!0}buildURL(e,n,i){const r=!q(this,Sp,"m",uA).call(this)&&i||this.baseURL,l=Jq(e)?new URL(e):new URL(r+(r.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),c=this.defaultQuery(),d=Object.fromEntries(l.searchParams);return(!cw(c)||!cw(d))&&(n={...d,...c,...n}),typeof n=="object"&&n&&!Array.isArray(n)&&(l.search=this.stringifyQuery(n)),l.toString()}async prepareOptions(e){await this._callApiKey()}async prepareRequest(e,{url:n,options:i}){}get(e,n){return this.methodRequest("get",e,n)}post(e,n){return this.methodRequest("post",e,n)}patch(e,n){return this.methodRequest("patch",e,n)}put(e,n){return this.methodRequest("put",e,n)}delete(e,n){return this.methodRequest("delete",e,n)}methodRequest(e,n,i){return this.request(Promise.resolve(i).then(r=>({method:e,path:n,...r})))}request(e,n=null){return new of(this,this.makeRequest(e,n,void 0))}async makeRequest(e,n,i){const r=await e,l=r.maxRetries??this.maxRetries;n==null&&(n=l),await this.prepareOptions(r);const{req:c,url:d,timeout:f}=await this.buildRequest(r,{retryCount:l-n});await this.prepareRequest(c,{url:d,options:r});const h="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),m=i===void 0?"":`, retryOf: ${i}`,y=Date.now();if(Bt(this).debug(`[${h}] sending request`,rs({retryOfRequestLogID:i,method:r.method,url:d,options:r,headers:c.headers})),r.signal?.aborted)throw new Fn;const v=new AbortController,b=await this.fetchWithTimeout(d,c,f,v).catch(lp),_=Date.now();if(b instanceof globalThis.Error){const R=`retrying, ${n} attempts remaining`;if(r.signal?.aborted)throw new Fn;const C=op(b)||/timed? ?out/i.test(String(b)+("cause"in b?String(b.cause):""));if(n)return Bt(this).info(`[${h}] connection ${C?"timed out":"failed"} - ${R}`),Bt(this).debug(`[${h}] connection ${C?"timed out":"failed"} (${R})`,rs({retryOfRequestLogID:i,url:d,durationMs:_-y,message:b.message})),this.retryRequest(r,n,i??h);throw Bt(this).info(`[${h}] connection ${C?"timed out":"failed"} - error; no more retries left`),Bt(this).debug(`[${h}] connection ${C?"timed out":"failed"} (error; no more retries left)`,rs({retryOfRequestLogID:i,url:d,durationMs:_-y,message:b.message})),C?new wy:new sf({cause:b})}const w=[...b.headers.entries()].filter(([R])=>R==="x-request-id").map(([R,C])=>", "+R+": "+JSON.stringify(C)).join(""),T=`[${h}${m}${w}] ${c.method} ${d} ${b.ok?"succeeded":"failed"} with status ${b.status} in ${_-y}ms`;if(!b.ok){const R=await this.shouldRetry(b);if(n&&R){const L=`retrying, ${n} attempts remaining`;return await lG(b.body),Bt(this).info(`${T} - ${L}`),Bt(this).debug(`[${h}] response error (${L})`,rs({retryOfRequestLogID:i,url:b.url,status:b.status,headers:b.headers,durationMs:_-y})),this.retryRequest(r,n,i??h,b.headers)}const C=R?"error; no more retries left":"error; not retryable";Bt(this).info(`${T} - ${C}`);const A=await b.text().catch(L=>lp(L).message),M=tG(A),x=M?void 0:A;throw Bt(this).debug(`[${h}] response error (${C})`,rs({retryOfRequestLogID:i,url:b.url,status:b.status,headers:b.headers,message:x,durationMs:Date.now()-y})),this.makeStatusError(b.status,M,x,b.headers)}return Bt(this).info(T),Bt(this).debug(`[${h}] response start`,rs({retryOfRequestLogID:i,url:b.url,status:b.status,headers:b.headers,durationMs:_-y})),{response:b,options:r,controller:v,requestLogID:h,retryOfRequestLogID:i,startTime:y}}getAPIList(e,n,i){return this.requestAPIList(n,i&&"then"in i?i.then(r=>({method:"get",path:e,...r})):{method:"get",path:e,...i})}requestAPIList(e,n){const i=this.makeRequest(n,null,void 0);return new RG(this,i,e)}async fetchWithTimeout(e,n,i,r){const{signal:l,method:c,...d}=n||{},f=this._makeAbort(r);l&&l.addEventListener("abort",f,{once:!0});const h=setTimeout(f,i),m=globalThis.ReadableStream&&d.body instanceof globalThis.ReadableStream||typeof d.body=="object"&&d.body!==null&&Symbol.asyncIterator in d.body,y={signal:r.signal,...m?{duplex:"half"}:{},method:"GET",...d};c&&(y.method=c.toUpperCase());try{return await this.fetch.call(void 0,e,y)}finally{clearTimeout(h)}}async shouldRetry(e){const n=e.headers.get("x-should-retry");return n==="true"?!0:n==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,n,i,r){let l;const c=r?.get("retry-after-ms");if(c){const f=parseFloat(c);Number.isNaN(f)||(l=f)}const d=r?.get("retry-after");if(d&&!l){const f=parseFloat(d);Number.isNaN(f)?l=Date.parse(d)-Date.now():l=f*1e3}if(l===void 0){const f=e.maxRetries??this.maxRetries;l=this.calculateDefaultRetryTimeoutMillis(n,f)}return await Il(l),this.makeRequest(e,n-1,i)}calculateDefaultRetryTimeoutMillis(e,n){const l=n-e,c=Math.min(.5*Math.pow(2,l),8),d=1-Math.random()*.25;return c*d*1e3}async buildRequest(e,{retryCount:n=0}={}){const i={...e},{method:r,path:l,query:c,defaultBaseURL:d}=i,f=this.buildURL(l,c,d);"timeout"in i&&eG("timeout",i.timeout),i.timeout=i.timeout??this.timeout;const{bodyHeaders:h,body:m}=this.buildBody({options:i}),y=await this.buildHeaders({options:e,method:r,bodyHeaders:h,retryCount:n});return{req:{method:r,headers:y,...i.signal&&{signal:i.signal},...globalThis.ReadableStream&&m instanceof globalThis.ReadableStream&&{duplex:"half"},...m&&{body:m},...this.fetchOptions??{},...i.fetchOptions??{}},url:f,timeout:i.timeout}}async buildHeaders({options:e,method:n,bodyHeaders:i,retryCount:r}){let l={};this.idempotencyHeader&&n!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),l[this.idempotencyHeader]=e.idempotencyKey);const c=de([l,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...rG(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,i,e.headers]);return this.validateHeaders(c),c.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:n}}){if(!e)return{bodyHeaders:void 0,body:void 0};const i=de([n]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&i.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:$R(e)}:typeof e=="object"&&i.values.get("content-type")==="application/x-www-form-urlencoded"?{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(e)}:q(this,Qc,"f").call(this,{body:e,headers:i})}}Gy=ke,Qc=new WeakMap,Sp=new WeakSet,uA=function(){return this.baseURL!=="https://api.openai.com/v1"};ke.OpenAI=Gy;ke.DEFAULT_TIMEOUT=6e5;ke.OpenAIError=Se;ke.APIError=Ft;ke.APIConnectionError=sf;ke.APIConnectionTimeoutError=wy;ke.APIUserAbortError=Fn;ke.NotFoundError=IR;ke.ConflictError=BR;ke.RateLimitError=PR;ke.BadRequestError=kR;ke.AuthenticationError=LR;ke.InternalServerError=jR;ke.PermissionDeniedError=DR;ke.UnprocessableEntityError=NR;ke.InvalidWebhookSignatureError=Xo;ke.toFile=MG;ke.Completions=NC;ke.Chat=ky;ke.Embeddings=zC;ke.Files=UC;ke.Images=KC;ke.Audio=Nl;ke.Moderations=XC;ke.Models=YC;ke.FineTuning=Ur;ke.Graders=Uy;ke.VectorStores=pf;ke.Webhooks=lA;ke.Beta=Fr;ke.Batches=xC;ke.Uploads=qy;ke.Responses=gf;ke.Realtime=hf;ke.Conversations=By;ke.Evals=Py;ke.Containers=Iy;ke.Skills=mf;ke.Videos=rA;class a7{vendor="openai";client;model;constructor(e){this.client=new ke({apiKey:e.apiKey,baseURL:e.baseUrl,organization:e.organization,dangerouslyAllowBrowser:!0}),this.model=e.model}async*streamText(e,n){if(_l(e))return;const i=this.client,r=this.model;yield*ER(n,async function*(l){const c=await i.chat.completions.create({model:r,messages:[{role:"user",content:e}],stream:!0},{signal:l});for await(const d of c){const f=d.choices?.[0]?.delta,h=f&&"content"in f?f.content:null;h&&(yield h)}})}async completeText(e,n){return _l(e)?"":Sy(n,async i=>(await this.client.chat.completions.create({model:this.model,messages:[{role:"user",content:e}],stream:!1},{signal:i})).choices?.[0]?.message?.content??"")}}function Mc(t){return!t||t.length<16?t:`${t.slice(0,8)}...${t.length}...${t.slice(-4)}`}const Pw=new Map;function i7(t,e,n){return n==="free"?"https://api-free.deepl.com":n==="pro"?"https://api.deepl.com":e||/:fx\b/i.test(t)?"https://api-free.deepl.com":"https://api.deepl.com"}function s7(t){const e=t.googleApiKey??"",n=t.geminiModel??"";return e&&n?{vendor:"google",apiKey:e,model:n}:null}function r7(t){const e=t.anthropicApiKey??"",n=t.anthropicModel??"";return e&&n?{vendor:"anthropic",apiKey:e,model:n}:null}function o7(t){const e=t.deeplApiKey??"";if(!e)return null;const n=t.deeplUseFree===!0,i=t.deeplEndpoint??"auto",r=i7(e,n,i);return{vendor:"deepl",apiKey:e,baseUrl:r}}function l7(t){const e=t.apiKey??"",n=t.gptModel??"";return e&&n&&n!=="None"?{vendor:"openai",apiKey:e,model:n}:null}function cA(t){switch(t.vendor??"openai"){case"google":return s7(t);case"anthropic":return r7(t);case"deepl":return o7(t);default:return l7(t)}}function u7(t){switch(t){case"google":return"Google API key and Gemini model must be configured in settings.";case"anthropic":return"Anthropic API key and Claude model must be configured in settings.";case"deepl":return"DeepL API key must be configured in settings.";default:return"OpenAI API key and model must be configured in settings."}}function Ir(t){const e=t.vendor??"openai",n=cA(t);if(!n)throw new _R(e,u7(e));let i;switch(n.vendor){case"google":i=`google:${Mc(n.apiKey)}:${n.model}`;break;case"anthropic":i=`anthropic:${Mc(n.apiKey)}:${n.model}`;break;case"deepl":i=`deepl:${Mc(n.apiKey)}:${n.baseUrl}`;break;default:i=`openai:${Mc(n.apiKey)}:${n.model}`}const r=Pw.get(i);if(r)return r;let l;switch(n.vendor){case"google":l=new Wq({apiKey:n.apiKey,model:n.model});break;case"anthropic":l=new mq({apiKey:n.apiKey,model:n.model});break;case"deepl":l=new bq({apiKey:n.apiKey,baseUrl:n.baseUrl});break;default:l=new a7({apiKey:n.apiKey,model:n.model})}return Pw.set(i,l),l}function cl(t){return cA(t)!==null}const Sm=60,_m=160,jw=3;async function c7(t,e,n,i,r,l,c,d=""){const f=Za(e,"translateSeoFieldValue");if(f.info("Starting SEO field translation",{fromLocale:i,toLocale:n}),!t)return{title:"",description:""};const h=t.title||"",m=t.description||"";f.info("SEO object to translate",{title:h,description:m});try{const y=wd.getByTag(i)?.name||i,v=wd.getByTag(n)?.name||n;f.info(`Translating from ${y} to ${v}`);const _=`${(e.prompt||"").replace("{fieldValue}",JSON.stringify({title:h,description:m})).replace("{fromLocale}",y).replace("{toLocale}",v).replace("{recordContext}",d||"Record context: No additional context available.")}
|
|
78
|
-
${l}`;f.info("Formatted prompt prepared for translation"),f.logPrompt("SEO translation prompt",_);const[w,T]=await af(r,e,[h,m],i,n,{isHTML:!1,recordContext:d}),R={...t};let C=w||h;C.length>Sm&&(f.info(`SEO title exceeds ${Sm} character limit (${C.length}). Truncating...`),C=`${C.substring(0,Sm-jw)}...`);let A=T||m;return A.length>_m&&(f.info(`SEO description exceeds ${_m} character limit (${A.length}). Truncating...`),A=`${A.substring(0,_m-jw)}...`),R.title=C,R.description=A,f.info("SEO translation completed successfully"),R}catch(y){Ll(y,r.vendor,f,"SEO translation error")}}function d7(t){if(Array.isArray(t))return t;if(t&&typeof t=="object"){const e=t.document;if(e&&typeof e=="object"){const n=e.children;if(Array.isArray(n))return n}}return null}function f7(t){const e=typeof t.type=="string"?t.type:void 0;return typeof t.text=="string"&&t.text.trim().length>0||e==="span"&&typeof t.value=="string"&&t.value.trim().length>0}function _p(t,e){if(e.hasVisibleText||e.hasBlocks)return;if(Array.isArray(t)){for(const r of t)_p(r,e);return}if(!t||typeof t!="object")return;const n=t;if((typeof n.type=="string"?n.type:void 0)==="block"){e.hasBlocks=!0;return}if(f7(n)){e.hasVisibleText=!0;return}if(Array.isArray(n.children))for(const r of n.children)_p(r,e)}function wp(t){const e=d7(t);if(!e)return!1;if(e.length===0)return!0;const n={hasVisibleText:!1,hasBlocks:!1};return _p(e,n),!n.hasVisibleText&&!n.hasBlocks}function Tp(t){if(Array.isArray(t))return t.map(Tp);if(typeof t=="object"&&t!==null){const e={};for(const[n,i]of Object.entries(t)){if(n==="data"){e[n]=i;continue}n==="id"&&t.value!==void 0&&Object.keys(t).length===2?e[n]=i:n!=="id"&&(e[n]=Tp(i))}return e}return t}function h7(t,e,n){return[...t.slice(0,n),e,...t.slice(n)]}function g7(t){if(t===null||typeof t!="object")return!1;const e=t;if(!e.document||typeof e.document!="object")return!1;const n=e.document;return Array.isArray(n.children)&&n.children.length>0}const m7=/^[\s\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+$/;function Bd(t){return t===""||m7.test(t)}function p7(t){return t?{bypassFieldTypeAllowlist:!0,cmaBaseUrl:t}:{bypassFieldTypeAllowlist:!0}}function Ep(t){return Array.isArray(t)?t.map(e=>Ep(e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([e,n])=>[e,Ep(n)])):t}function Rp(t,e=[]){if(Array.isArray(t))return t.flatMap((r,l)=>Rp(r,[...e,l]));if(!t||typeof t!="object")return[];const n=t,i=typeof n.type=="string"?n.type:void 0;return typeof n.text=="string"?[{path:[...e,"text"],value:n.text}]:i==="span"&&typeof n.value=="string"?[{path:[...e,"value"],value:n.value}]:i==="block"?[]:Array.isArray(n.children)?Rp(n.children,[...e,"children"]):[]}function y7(t,e,n){let i=t;for(let r=0;r<e.length-1;r++){if(i===null||typeof i!="object")return;i=i[e[r]]}i!==null&&typeof i=="object"&&(i[e[e.length-1]]=n)}function v7(t,e,n){const i=Ep(t);return e.forEach((r,l)=>{const c=n[l];c!==void 0&&y7(i,r.path,c)}),i}function b7(t,e){return t.length===e.length?e:e.length<t.length?[...e,...t.slice(e.length)]:e.slice(0,t.length)}function S7(t,e){const n=new Array(e.length);for(let i=0;i<e.length;i++){const r=String(t[i]??""),l=String(e[i]??"");if(Bd(r)){n[i]=r;continue}const c=(r.match(/^\s+/)||[""])[0],d=(r.match(/\s+$/)||[""])[0];let f=l;c&&!/^\s/.test(f)&&(f=`${c}${f}`),d&&!/\s$/.test(f)&&(f=`${f}${d}`),n[i]=f}return n}function _7(t,e){const n=[];let i=0;for(let r=0;r<t.length;r++){const l=String(t[r]??"");if(Bd(l))n.push(l);else{const c=i<e.length?String(e[i++]):l;n.push(c)}}return n}function w7(t,e){const n=e.slice();for(let i=0;i<t.length-1;i++){const r=String(t[i]??""),l=String(t[i+1]??"");if(Bd(r)||Bd(l)||!(/[\s\u00A0]$/.test(r)||/^[\s\u00A0]/.test(l)))continue;const d=String(n[i]??""),f=String(n[i+1]??""),h=/[\s\u00A0]$/.test(d),m=/^[\s\u00A0]/.test(f);!h&&!m&&(n[i]=`${d} `)}return n}function T7(t,e){const n=e.slice();for(let i=0;i<t.length-1;i++){const r=String(t[i]??""),l=String(t[i+1]??""),c=/[.,;:!?]$/.test(r.trimEnd()),d=/^[.,;:!?]/.test(l.trimStart());if(!c&&!d)continue;const f=String(n[i]??""),h=String(n[i+1]??""),m=/[\s\u00A0]$/.test(f)||/^[\s\u00A0]/.test(h),y=/[.,;:!?]$/.test(f)||/^[.,;:!?]/.test(h);!m&&!y&&(n[i]=`${f} `)}return n}async function E7(t,e,n,i,r,l,c,d,f="",h,m){const y=Za(e,"StructuredTextTranslation");let v=t,b=!1;if(g7(t)&&(v=t.document.children,b=!0),!v||!Array.isArray(v)||v.length===0)return y.info("Invalid structured text value",v),v;y.info("Translating structured text field",{nodeCount:v.length});const _=Tp(v),w=_.reduce((A,M,x)=>(M?.type==="block"&&A.push({...M,originalIndex:x}),A),[]),T=_.filter(A=>A?.type!=="block"),R=Rp(T),C=R.map(A=>A.value);if(C.length===0)return y.info("No text values found to translate"),v;y.info(`Found ${C.length} text nodes to translate`);try{const A=await af(r,e,C,i,n,{isHTML:!1,recordContext:f});let M=A;A.length!==C.length&&(y.warning(`Translation mismatch: got ${A.length} values, expected ${C.length}`,{original:C,translated:A}),M=_7(C,A),M.length!==C.length&&(M=b7(C,M)),y.info("Adjusted translated values to match original length",{adjustedLength:M.length})),M=S7(C,M),M=w7(C,M),M=T7(C,M);let k=v7(T,R,M);if(w.length>0){y.info(`Translating ${w.length} block nodes`);const N=await Pl(w,e,n,i,"rich_text",r,"",l,"",c,d,f,h,p7(m));for(const U of N)U.originalIndex!==void 0&&(k=h7(k,U,U.originalIndex))}const L=k.map(({originalIndex:N,...U})=>U);return b?{document:{children:L,type:"root"},schema:"dast"}:(y.info("Successfully translated structured text"),L)}catch(A){Ll(A,r.vendor,y,"Error during structured text translation")}}function R7(t){return t.item!==void 0&&typeof t.item=="object"&&t.item!==null&&"attributes"in t.item&&typeof t.item.attributes=="object"}function C7(t){if(t.itemTypeId)return String(t.itemTypeId);if(t.blockModelId)return String(t.blockModelId);const e=t.relationships?.item_type?.data?.id;if(e)return e;const n=t.item?.relationships?.item_type?.data?.id;if(n)return n}class A7 extends Error{constructor(){super("Operation cancelled"),this.name="CancellationError"}}function Nd(t){return Array.isArray(t)?t.map(e=>Nd(e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([e,n])=>[e,Nd(n)])):t}function x7(t){const e=Nd(t),n=e;return delete n.id,delete n.itemId,n.item&&typeof n.item=="object"&&(delete n.item.id,delete n.item.itemId),e}async function O7(t,e,n){const i=t.map((m,y)=>({index:y,completed:!1}));let r=0,l=!1;async function c(){if(l||r>=t.length)return;const m=r++;try{n?.()}catch{l=!0;return}try{const y=await t[m]();i[m]={index:m,result:y,completed:!0}}catch(y){if(y instanceof A7){l=!0;return}throw y}return c()}const d=()=>c(),f=Math.min(e,t.length),h=Array(f).fill(null).map(()=>d());return await Promise.all(h),i}async function Pl(t,e,n,i,r,l,c,d,f,h,m,y="",v,b={}){if(Za(e,"translateFieldValue").info(`Translating field of type: ${r}`,{fromLocale:i,toLocale:n}),vy(e.apiKeysToBeExcludedFromThisPlugin,[f,b.fieldApiKey])||!yy(r,e.translationFields,by)&&!b.bypassFieldTypeAllowlist||!t)return t;let T;switch(r){case"seo":T=await c7(t,e,n,i,l,c,m,y);break;case"structured_text":T=await E7(t,e,n,i,l,d,h,m,y,v,b.cmaBaseUrl);break;case"rich_text":case"framed_single_block":case"frameless_single_block":T=await j7(t,e,n,i,l,d,r,h,m,y,v,b.cmaBaseUrl);break;case"file":case"gallery":T=await oq(t,e,n,i,l,d,h,m,y,b.cmaBaseUrl);break;default:T=await sq(t,e,n,i,l,m,y);break}if(r==="slug"){const R=G$(T);if(!R)throw new Error("Translated slug is empty after normalization");return R}return T}const M7=100,k7=3,br=new Map;function L7(t,e){if(br.size>=M7){const n=br.keys().next().value;n&&br.delete(n)}br.set(t,e)}async function Cp(t,e,n,i,r){if(i)return _$(i,n);const l=`${r??""}:${e}:${n}`,c=br.get(l);if(c)return c;const d=(async()=>(await tf({apiToken:t,environment:e,baseUrl:r}).fields.list(n)).reduce((m,y)=>(m[y.api_key]={editor:y.appearance.editor,id:y.id,localized:y.localized,validators:y.validators},m),{}))();L7(l,d);try{return await d}catch(f){throw br.delete(l),f}}const D7=["itemTypeId","originalIndex","blockModelId","type","children","relationships","attributes"];function dA(t){if(!t||typeof t!="object")return;const n=t.single_block_blocks;if(!n||typeof n!="object")return;const i=n.item_types;if(!(!Array.isArray(i)||i.length===0))return String(i[0])}function I7(t,e){return nf(t,e)??e}async function B7(t,e,n){if(!t||typeof t!="object"||Array.isArray(t))return t;const i=dA(e?.validators);if(!i)return n.logger.warning("Frameless single block missing item type validators",e),t;const r=await Cp(n.apiToken,n.environment,i,n.schemaRepository,n.cmaBaseUrl),l=Nd(t);return delete l.id,delete l.itemId,await fA(l,r,n),l}function N7(t,e,n,i){if(!e||!t||typeof t!="object"||Array.isArray(t))return{valueToTranslate:t,localizedContainer:null,targetLocaleKey:null,skip:!1};const r=Nr(t,n);if(r==null||r==="")return{valueToTranslate:t,localizedContainer:null,targetLocaleKey:null,skip:!0};const l={...t},c=I7(l,i);return{valueToTranslate:r,localizedContainer:l,targetLocaleKey:c,skip:!1}}async function P7(t,e,n,i){const r=e?.editor||"text";if(r==="frameless_single_block")return B7(n,e,i);const l=" Return the response in the format of "+(py[r]||"");return Pl(n,i.pluginParams,i.toLocale,i.fromLocale,r,i.provider,l,i.apiToken,e?.id||"",i.environment,i.streamCallbacks,i.recordContext,i.schemaRepository,{fieldApiKey:t,cmaBaseUrl:i.cmaBaseUrl})}async function fA(t,e,n){const i=Object.keys(t).filter(d=>!D7.includes(d));if(i.length===0)return;const r=i.map(d=>async()=>{n.streamCallbacks?.onStream?.(`Translating block field: ${d}...`);const f=e[d],h=f?.localized===!0,m=N7(t[d],h,n.fromLocale,n.toLocale);if(m.skip)return{field:d,value:t[d]};const y=await P7(d,f,m.valueToTranslate,n);return m.localizedContainer&&m.targetLocaleKey?(m.localizedContainer[m.targetLocaleKey]=y,{field:d,value:m.localizedContainer}):{field:d,value:y}}),l=await O7(r,k7,n.streamCallbacks?.checkCancellation);for(const d of l)d.completed&&d.result&&(t[d.result.field]=d.result.value);const c=l.filter(d=>d.completed).length;c<i.length&&n.logger.info(`Translation cancelled: ${c}/${i.length} fields translated`)}async function j7(t,e,n,i,r,l,c,d,f,h="",m,y){const v=Za(e,"translateBlockValue");v.info("Translating block value");const b=c==="framed_single_block"||c==="frameless_single_block",w=(b?[t]:t).map(x7),T={pluginParams:e,toLocale:n,fromLocale:i,provider:r,apiToken:l,environment:d,cmaBaseUrl:y,streamCallbacks:f,recordContext:h,logger:v,schemaRepository:m};async function R(A,M,x,k,L){if(A in x)return;const N=dA(M.validators);if(!N){v.warning("Frameless single block missing validators",{fieldKey:A,blockModelId:k});return}const U=await Cp(l,d,N,m,y);for(const[K,Y]of Object.entries(U))K in L||(L[K]=Y)}async function C(A){const M=C7(A);if(!M){v.warning("Block model ID not found",A);return}const x=await Cp(l,d,M,m,y),k=A.attributes?A.attributes:R7(A)?A.item.attributes:A;let L=x;const N=Object.entries(x).filter(([,U])=>U.editor==="frameless_single_block");if(N.length>0){const U={...x};await N.reduce(async(K,[Y,se])=>{await K,await R(Y,se,k,M,U)},Promise.resolve()),L=U}await fA(k,L,T)}return await w.reduce((A,M)=>A.then(()=>C(M)),Promise.resolve()),v.info("Block translation completed"),b?w[0]:w}async function wm(t,e,n,i,r,l,c,d,f=""){const h=await e.currentUserAccessToken,m=Ir(n),y=Za(n,"TranslateField");try{y.info("Starting field translation",{fieldType:l,fromLocale:r,toLocale:i});const v=e.formValues&&!f?Hy(e.formValues,r):f;d?.onStream;const b=e.field.attributes.api_key??"",_=e.field.id??e.fieldPath??"";let w="Return the response in the format of ";const T=py;l!=="structured_text"&&l!=="rich_text"&&(w+=(T||{})[l]||"");const C=await Pl(t,n,i,r,l,m,w,h,_,c,d,v,void 0,{fieldApiKey:b,cmaBaseUrl:e.cmaBaseUrl});return y.info("Field translation completed"),C}catch(v){Ll(v,m.vendor,y,"Translation failed")}}const z7=["title","name","content","description"];function F7(t){const e=t.toLowerCase();return z7.some(n=>e.includes(n))}function U7(t,e){if(typeof t!="object"||t===null)return null;const i=t[e];return typeof i!="string"||!i||i.length>=300?null:i}function Hy(t,e){if(!t)return"";let n="Content context: ",i=!1;for(const r in t){if(!F7(r))continue;const l=U7(t[r],e);l&&(n+=`${r}: ${l}. `,i=!0)}return i?n:""}const zw=64,V7=15,Fw=3e5,$7=33,Uw=10,q7=1e3,G7=1e4,H7=50,K7=200;function hA(t,e,n,i){const r=yy(t,n.translationFields,by),l=vy(n.apiKeysToBeExcludedFromThisPlugin,[e,i]);return r&&!l}function Ky(t,e){return e==null||e===""?!1:t==="structured_text"?!wp(e):!(Array.isArray(e)&&e.length===0)}function Y7(t){const e=t.vendor??"openai",n=e==="google"?String(t.geminiModel??"").toLowerCase():String(t.gptModel??"").toLowerCase();return e==="google"?/(^|[-])nano\b/.test(n)||/flash|lite/.test(n)?3:(/pro/.test(n),2):/(^|[-])nano\b/.test(n)||/flash|mini|lite/.test(n)?6:/mini/.test(n)||/1\.5/.test(n)?5:/pro/.test(n)?3:4}function X7(t){return(t.vendor??"openai")==="google"?K7:H7}function W7(t){const e=q7*2**(t-1);return Math.min(e,G7)}function Z7(t){if(t===null||typeof t!="object")return!1;const e=t;return e?.status===429||e?.code==="rate_limit_exceeded"||/\b429\b|rate limit|Too Many Requests/i.test(String(e?.message??""))}function J7(t){return t instanceof DOMException&&t.name==="AbortError"}function Vw(t){return new Promise(e=>setTimeout(e,t))}const Q7=["title","name","headline","heading","label","internal_name","internalName","slug"];function eH(t,e){const n=Nr(t,e);if(typeof n=="string"&&n.trim())return n;for(const i of Object.values(t))if(typeof i=="string"&&i.trim())return i;return null}function tH(t,e){return t==null?null:typeof t=="string"?t:typeof t=="number"?String(t):Array.isArray(t)?t.filter(n=>typeof n=="string")[0]??null:typeof t=="object"?eH(t,e):null}function nH(t,e){for(const n of Q7)if(t[n]!==void 0){const i=tH(t[n],e);if(i?.trim()){const r=i.trim();return r.length>80?`${r.slice(0,77)}…`:r}}return`Record ${t.id}`}function aH(t){const e="translateRecord-",i=(t.startsWith(e)?t.substring(e.length):t).split("-");if(i.length<2)return console.error(`Invalid action ID format: ${t}`),{fromLocale:"en",toLocale:"en"};const r=d=>{const[f,...h]=d.split("-");return!f||!/^[a-z]{2,3}$/.test(f)?!1:h.every(m=>/^[A-Za-z0-9]{2,8}$/.test(m))};for(let d=1;d<i.length;d++){const f=i.slice(0,d).join("-"),h=i.slice(d).join("-");if(r(f)&&r(h))return{fromLocale:f,toLocale:h}}const l=i[0],c=i.slice(1).join("-")||l;return{fromLocale:l,toLocale:c}}async function iH(t,e){const n=[],r=e.join(",");async function l(c){const d=await t.items.list({filter:{ids:r},nested:!0,version:"current",page:{offset:(c-1)*30,limit:30}});n.push(...d),d.length===30&&await l(c+1)}return await l(1),n}function gA(t,e){if(!t||typeof t!="object")return!1;const n=e.toLowerCase();for(const i in t)if(i.toLowerCase()===n)return!0;return Object.values(t).some(i=>typeof i=="object"&&i!==null?gA(i,e):!1)}function sH(t){if(t===null||typeof t!="object")return;const e=t;return Tm(e,["response","data","errors"])||Tm(e,["response","errors"])||Tm(e,["data","errors"])||(Array.isArray(e.errors)?e.errors:void 0)}function Tm(t,e){let n=t;for(const i of e){if(n===null||typeof n!="object")return;n=n[i]}return Array.isArray(n)?n:void 0}function rH(t){if(t===null||typeof t!="object")return null;const e=t;if(e.attributes&&typeof e.attributes=="object"){const n=e.attributes;if(typeof n.code=="string")return n.code}return typeof e.code=="string"?e.code:null}function oH(t){if(t instanceof Error)return t.message;if(t!==null&&typeof t=="object"){const e=t;if(typeof e.message=="string")return e.message}}function lH(t,e){try{const n=sH(t);if(Array.isArray(n)&&n.map(rH).includes("ITEM_LOCKED"))return`DatoCMS error: Cannot save translations for record ${e}: the record is locked because it is being edited. Please ensure no one (including you in another tab) is editing the record in DatoCMS, then try again.`;if(oH(t)?.includes("ITEM_LOCKED"))return`DatoCMS error: Cannot save translations for record ${e}: the record is locked because it is being edited. Please ensure no one is editing the record, then try again.`}catch{}return null}async function uH(t,e,n,i,r,l,c,d,f,h={},m){const y=w=>{w.status==="processing"&&typeof w.message=="string"&&(w={...w,message:w.message.replace(/\s*fields…$/,"…")}),h.onProgress?.(w)};async function v(w,T,R){y({recordIndex:T,recordId:w.id,status:"processing",message:`Translating "${R}" (#${w.id}) fields…`});const C=await l(w.item_type.id),A=await cH(w,i,r,C,n,c,f,d.environment,{abortSignal:h.abortSignal,checkCancellation:h.checkCancellation},m,d.cmaBaseUrl);return Object.keys(A.payload).length>0&&(y({recordIndex:T,recordId:w.id,status:"processing",message:`Saving "${R}" (#${w.id})…`}),await e.items.update(w.id,{...A.payload})),A}function b(w,T,R,C){const A=w.warnings.length>0?` Warnings: ${w.warnings.join(" ")}`:"";if(w.translatedFieldCount===0&&w.warnings.length>0)return y({recordIndex:T,recordId:R,status:"error",message:`No fields were updated for "${C}" (#${R}).${A}`}),"continue";const M=w.translatedFieldCount===0?`No eligible fields to translate for "${C}" (#${R}).`:`Translated "${C}" (#${R}).${A}`;return y({recordIndex:T,recordId:R,status:"completed",message:M}),"done"}async function _(w,T){const R=nH(w,i);if(h.checkCancellation?.())return y({recordIndex:T,recordId:w.id,status:"error",message:`Translation cancelled for "${R}" (#${w.id}).`}),"cancelled";y({recordIndex:T,recordId:w.id,status:"processing",message:`Translating "${R}" (#${w.id})…`});try{if(!gA(w,i)){const A=`Record "${R}" (#${w.id}) does not have the source locale '${i}'`;return console.error(`Record ${w.id} ${A}`),d.alert(`Error: Record ID ${w.id} ${A}`),y({recordIndex:T,recordId:w.id,status:"error",message:A}),"continue"}const C=await v(w,T,R);return b(C,T,w.id,R)}catch(C){const A=lH(C,w.id),M=Zn(C,n.vendor),x=Jn(M),k=C instanceof Error?C.message:String(C);return console.error(`Error translating record ${w.id}:`,k),y({recordIndex:T,recordId:w.id,status:"error",message:A??`Failed "${R}" (#${w.id}): ${x}`}),"continue"}}await t.reduce(async(w,T,R)=>await w==="cancelled"?"cancelled":_(T,R),Promise.resolve("done"))}function Ap(t){if(t==null)return t;if(Array.isArray(t))return t.map(Ap);if(typeof t=="object"){const e=t,n=e.type==="item"&&typeof e.id=="string",i={};for(const[r,l]of Object.entries(e))n&&r==="id"||(i[r]=Ap(l));return i}return t}async function cH(t,e,n,i,r,l,c,d,f={},h,m){const y={},v=[];let b=0;const _=Hy(t,e),w=Object.keys(t).filter(C=>i[C]?.isLocalized&&dH(C,t,e,i,l));async function T(C){const A=Nr(t[C],e),M=i[C].editor,x=TR(M);if(Ky(M,A))try{const k=await Pl(A,l,n,e,M,r,x,c,i[C].id,d,{abortSignal:f.abortSignal,checkCancellation:f.checkCancellation},_,h,{fieldApiKey:C,...m?{cmaBaseUrl:m}:{}});y[C]={...t[C]||{},[n]:k},b+=1}catch(k){const L=Zn(k,r.vendor),N=Jn(L);console.error(`Error translating field ${C} for record ${t.id}: ${N}`);const U=N.endsWith(".")?"":".";v.push(`Field "${C}" was skipped: ${N}${U}`)}}await w.reduce((C,A)=>C.then(()=>T(A)),Promise.resolve());const R=new Set(["rich_text","structured_text","framed_single_block","frameless_single_block"]);for(const[C,A]of Object.entries(i)){if(!A.isLocalized||y[C])continue;const M=t[C]??{};if(nf(M,n)!==void 0)continue;const k=Nr(M,e),L=q$(A.validators)&&k!=null,N=R.has(A.editor);let U=null;L&&N?U=Ap(k):L&&(U=k),y[C]={...M,[n]:U}}return{payload:y,translatedFieldCount:b,warnings:v}}function dH(t,e,n,i,r){if(["id","creator","meta","type","item_type"].includes(t)||!e[t]||!i[t]?.isLocalized)return!1;const l=i[t];if(!hA(l.editor,l.id,r,t))return!1;const c=Nr(e[t],n);return!!Ky(l.editor,c)}async function fH(t,e){return w$(t,e)}function hH(t){return t==="completed"?"Completed":t==="processing"?"Processing...":t==="error"?"Error":""}function gH({update:t}){const e=t.message??hH(t.status);return D.jsxs("li",{className:`TranslationProgressModal__update-item TranslationProgressModal__update-item--${t.status}`,children:[D.jsxs("span",{className:"TranslationProgressModal__update-status",children:[t.status==="completed"&&"✓",t.status==="processing"&&D.jsx(ef,{size:16}),t.status==="error"&&"✗"]}),D.jsx("span",{className:"TranslationProgressModal__update-message",children:e})]},t.recordId)}function mH(t,e){return Jn(Zn(t,e??"openai"))}function pH({ctx:t,parameters:e}){const{totalRecords:n,fromLocale:i,toLocale:r,accessToken:l,pluginParams:c,itemIds:d}=e,[f,h]=O.useState([]),[m,y]=O.useState(!1),[v,b]=O.useState(!1),[_,w]=O.useState(!1),[T,R]=O.useState(!1),C=O.useRef(null),A=O.useRef(null),M=O.useRef(!1),x=O.useCallback(Y=>{h(se=>[...se.filter(ye=>ye.recordIndex!==Y.recordIndex),Y])},[]);O.useEffect(()=>{let Y=!0;return(async()=>{if(!(!Y||M.current)){M.current=!0,w(!0);try{const ae=rp(l,t.environment,t.cmaBaseUrl),ye=await iH(ae,d),ve=Ir(c),F=S$(ae),Z=async le=>fH(F,le),ne=new AbortController;C.current=ne,await uH(ye,ae,ve,i,r,Z,c,t,l,{onProgress:x,checkCancellation:()=>v,abortSignal:ne.signal},F)}catch(ae){Y&&(R(!0),w(!1),x({recordIndex:-1,recordId:"fatal",status:"error",message:`Translation failed: ${mH(ae,c.vendor)}`}))}}})(),()=>{Y=!1}},[l,x,t,i,v,d,c,r]);const k=Object.values(f.reduce((Y,se)=>(Y[se.recordIndex]=se,Y),{})),L=k.filter(Y=>Y.status==="completed"||Y.status==="error").length,N=n>0?Math.round(L/n*100):0;O.useEffect(()=>{L===n&&n>0&&(y(!0),w(!1))},[L,n]),O.useEffect(()=>{const Y=A.current;Y&&Y.scrollTop<=8&&(Y.scrollTop=0)},[]);const U=()=>{const Y=T||k.some(se=>se.status==="error");t.resolve({completed:m&&!Y,canceled:!1,progress:f})},K=()=>{b(!0),C.current?.abort(),t.resolve({completed:!1,canceled:!0})};return D.jsx(qa,{ctx:t,children:D.jsxs("div",{className:"TranslationProgressModal",children:[D.jsxs("div",{className:"TranslationProgressModal__intro",children:[D.jsxs("div",{className:"TranslationProgressModal__languages",children:[D.jsxs("p",{children:["Translating from ",D.jsx("strong",{children:P_(i)})," to"," ",D.jsx("strong",{children:P_(r)})]}),D.jsxs("p",{className:"TranslationProgressModal__progress-text",children:["Progress: ",L," of ",n," records processed (",N,"%)"]}),D.jsxs("p",{className:"TranslationProgressModal__stats",children:[k.filter(Y=>Y.status==="completed").length," ","successful,"," ",k.filter(Y=>Y.status==="error").length," ","failed"]})]}),D.jsx("div",{className:"TranslationProgressModal__progress-bar",children:D.jsx("div",{className:"TranslationProgressModal__progress-bar-fill",style:{width:`${N}%`}})})]}),D.jsx("div",{className:"TranslationProgressModal__updates",ref:A,"aria-live":"polite",children:f.length>0?D.jsx("ul",{className:"TranslationProgressModal__update-list",children:f.slice().sort((Y,se)=>se.recordIndex-Y.recordIndex).map(Y=>D.jsx(gH,{update:Y},Y.recordId))}):D.jsx("div",{className:"TranslationProgressModal__initializing",children:D.jsxs("div",{className:"TranslationProgressModal__spinner-container",children:[D.jsx(ef,{size:20}),D.jsx("span",{children:"Initializing translation..."})]})})}),D.jsxs("div",{className:"TranslationProgressModal__footer",children:[!m&&_&&D.jsx(Jt,{type:"button",buttonType:"negative",onClick:K,buttonSize:"s",children:"Cancel"}),D.jsx(Jt,{type:"button",buttonType:"primary",onClick:U,disabled:_&&!m,buttonSize:"s",children:m?"Close":_?"Please wait...":"Close"})]})]})})}var yH=function(e){var n=_e.useRef(e);return pd(function(){n.current=e}),n},$w=function(e,n){if(typeof e=="function"){e(n);return}e.current=n},vH=function(e,n){var i=_e.useRef();return _e.useCallback(function(r){e.current=r,i.current&&$w(i.current,null),i.current=n,n&&$w(n,r)},[n])},qw={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},bH=function(e){Object.keys(qw).forEach(function(n){e.style.setProperty(n,qw[n],"important")})},Gw=bH,Wt=null,Hw=function(e,n){var i=e.scrollHeight;return n.sizingStyle.boxSizing==="border-box"?i+n.borderSize:i-n.paddingSize};function SH(t,e,n,i){n===void 0&&(n=1),i===void 0&&(i=1/0),Wt||(Wt=document.createElement("textarea"),Wt.setAttribute("tabindex","-1"),Wt.setAttribute("aria-hidden","true"),Gw(Wt)),Wt.parentNode===null&&document.body.appendChild(Wt);var r=t.paddingSize,l=t.borderSize,c=t.sizingStyle,d=c.boxSizing;Object.keys(c).forEach(function(v){var b=v;Wt.style[b]=c[b]}),Gw(Wt),Wt.value=e;var f=Hw(Wt,t);Wt.value=e,f=Hw(Wt,t),Wt.value="x";var h=Wt.scrollHeight-r,m=h*n;d==="border-box"&&(m=m+r+l),f=Math.max(m,f);var y=h*i;return d==="border-box"&&(y=y+r+l),f=Math.min(y,f),[f,h]}var Kw=function(){},_H=function(e,n){return e.reduce(function(i,r){return i[r]=n[r],i},{})},wH=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],TH=!!document.documentElement.currentStyle,EH=function(e){var n=window.getComputedStyle(e);if(n===null)return null;var i=_H(wH,n),r=i.boxSizing;if(r==="")return null;TH&&r==="border-box"&&(i.width=parseFloat(i.width)+parseFloat(i.borderRightWidth)+parseFloat(i.borderLeftWidth)+parseFloat(i.paddingRight)+parseFloat(i.paddingLeft)+"px");var l=parseFloat(i.paddingBottom)+parseFloat(i.paddingTop),c=parseFloat(i.borderBottomWidth)+parseFloat(i.borderTopWidth);return{sizingStyle:i,paddingSize:l,borderSize:c}},RH=EH;function Yy(t,e,n){var i=yH(n);O.useLayoutEffect(function(){var r=function(c){return i.current(c)};if(t)return t.addEventListener(e,r),function(){return t.removeEventListener(e,r)}},[])}var CH=function(e,n){Yy(document.body,"reset",function(i){e.current.form===i.target&&n(i)})},AH=function(e){Yy(window,"resize",e)},xH=function(e){Yy(document.fonts,"loadingdone",e)},OH=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],MH=function(e,n){var i=e.cacheMeasurements,r=e.maxRows,l=e.minRows,c=e.onChange,d=c===void 0?Kw:c,f=e.onHeightChange,h=f===void 0?Kw:f,m=LE(e,OH),y=m.value!==void 0,v=O.useRef(null),b=vH(v,n),_=O.useRef(0),w=O.useRef(),T=function(){var A=v.current,M=i&&w.current?w.current:RH(A);if(M){w.current=M;var x=SH(M,A.value||A.placeholder||"x",l,r),k=x[0],L=x[1];_.current!==k&&(_.current=k,A.style.setProperty("height",k+"px","important"),h(k,{rowHeight:L}))}},R=function(A){y||T(),d(A)};return O.useLayoutEffect(T),CH(v,function(){if(!y){var C=v.current.value;requestAnimationFrame(function(){var A=v.current;A&&C!==A.value&&T()})}}),AH(T),xH(T),O.createElement("textarea",Ce({},m,{onChange:R,ref:b}))},kH=O.forwardRef(MH);function LH(t){const e=t.toLowerCase();return!(!e.startsWith("claude")||e.includes("embed"))}function Yw(t){const e=t.toLowerCase();let n=0;return e.includes("3.5")&&(n+=1e3),e.includes("haiku")&&(n+=100),e.includes("sonnet")&&(n+=60),e.includes("opus")&&(n+=20),e.endsWith("-latest")&&(n+=30),n}async function DH(t){try{const e=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":t,"anthropic-version":"2023-06-01"}});if(!e.ok)throw new Error(String(e.status));const n=await e.json(),r=(Array.isArray(n?.data)?n.data:[]).map(c=>c.id).filter(c=>typeof c=="string"&&LH(c));return Array.from(new Set(r)).sort((c,d)=>{const f=Yw(d)-Yw(c);return f!==0?f:c.localeCompare(d)})}catch(e){return console.error("Failed to fetch Anthropic models:",e),[]}}function mA(t){return t.startsWith("models/")?t.slice(7):t}function IH(t){const e=mA(t.name).toLowerCase();return t.supportedGenerationMethods&&!t.supportedGenerationMethods.includes("generateContent")||["embedding","embed","text-embedding","moderation"].some(i=>e.includes(i))?!1:/^(gemini-)/.test(e)}function Xw(t){const e=t.toLowerCase();let n=0;return/^gemini-2\.5/.test(e)?n=1200:/^gemini-2\.0/.test(e)?n=900:/^gemini-1\.5/.test(e)?n=700:/^gemini-1\.0/.test(e)&&(n=500),e.includes("flash")&&(n+=20),e.includes("pro")&&(n+=10),n}async function BH(t){try{const e=await fetch("https://generativelanguage.googleapis.com/v1beta/models",{headers:{"x-goog-api-key":t}});if(!e.ok)throw new Error(`Failed to list Gemini models (${e.status})`);const n=await e.json();return(Array.isArray(n.models)?n.models:[]).filter(IH).map(c=>mA(c.name)).sort((c,d)=>{const f=Xw(d)-Xw(c);return f!==0?f:c.localeCompare(d)}).filter((c,d,f)=>f.indexOf(c)===d)}catch(e){return console.error("Failed to fetch Gemini models:",e),[]}}function Ww(t){const e=t.toLowerCase(),n=/(^|[.-])mini\b/.test(e),i=/(^|[.-])nano\b/.test(e);let r=0;/^gpt-5(\b|[.-])/.test(e)?r=900:/^gpt-4\.1(\b|[.-])/.test(e)?r=500:/^gpt-4o(\b|[.-])/.test(e)?r=450:/^gpt-4-turbo(\b|[.-])/.test(e)?r=400:/^gpt-4(\b|[.-])/.test(e)?r=350:/^gpt-3\.5(\b|[.-])/.test(e)?r=150:/^ft:gpt-/.test(e)?r=125:r=50;let l=r;return n&&(l+=20),i&&(l-=30),/thinking|reasoning/.test(e)&&(l-=60),/preview/.test(e)&&(l-=10),l}function NH(t){const e=t.toLowerCase();return!(!(/^gpt-/.test(e)||/^ft:gpt-/.test(e))||["whisper","tts","audio","speech","dall-e","image","omni-moderation","moderation","text-embedding","embedding","realtime","vision"].some(r=>e.includes(r)))}async function PH(t){const e=new ke({apiKey:t,dangerouslyAllowBrowser:!0}),{data:n}=await e.models.list();return n.map(c=>c.id).filter(NH).sort((c,d)=>{const f=Ww(d)-Ww(c);return f!==0?f:c.localeCompare(d)}).filter((c,d,f)=>f.indexOf(c)===d)}const jH="_buttons_gaeub_32",zH="_inlineStatus_gaeub_89",FH="_textarea_gaeub_143",UH="_label_gaeub_164",VH="_sectionSpacing_gaeub_192",$H="_buttonRow_gaeub_196",qH="_exclusionRules_gaeub_202",GH="_promptContainer_gaeub_208",HH="_tooltipContainer_gaeub_216",KH="_warningTooltip_gaeub_223",YH="_tooltipText_gaeub_232",XH="_imageTooltip_gaeub_266",WH="_leftAnchorTooltip_gaeub_271",Xe={buttons:jH,inlineStatus:zH,textarea:FH,label:UH,sectionSpacing:VH,buttonRow:$H,exclusionRules:qH,promptContainer:GH,tooltipContainer:HH,warningTooltip:KH,tooltipText:YH,imageTooltip:XH,leftAnchorTooltip:WH};function ZH({showExclusionRules:t,setShowExclusionRules:e,hasExclusionRules:n,modelsToBeExcluded:i,setModelsToBeExcluded:r,rolesToBeExcluded:l,setRolesToBeExcluded:c,apiKeysToBeExcluded:d,setApiKeysToBeExcluded:f,availableModels:h,roles:m,listOfFields:y}){return D.jsxs(D.Fragment,{children:[D.jsxs("div",{style:{position:"relative"},children:[D.jsx(Er,{name:"showExclusionRules",id:"showExclusionRules",label:"Show exclusion rules",value:t,onChange:v=>e(v)}),n&&D.jsxs("div",{className:Xe.warningTooltip,children:["ⓘ",D.jsx("div",{className:Xe.tooltipText,children:"There are exclusion rules present. If the plugin is not being displayed in a model or field where you expect it, please review them."})]})]}),t&&D.jsx("div",{className:Xe.exclusionRules,children:D.jsxs(ki,{children:[D.jsx(Gt,{name:"modelsToBeExcludedFromTranslation",id:"modelsToBeExcludedFromTranslation",label:"Models to be excluded from this plugin",value:i.map(v=>({label:h.find(_=>_.apiKey===v)?.name??v,value:v})),selectInputProps:{isMulti:!0,options:h.map(v=>({label:v.name??"",value:v.apiKey??""}))},onChange:v=>{const b=v.map(_=>_.value);r(b)}}),D.jsx(Gt,{name:"rolesToBeExcludedFromTranslation",id:"rolesToBeExcludedFromTranslation",label:"Roles to be excluded from using this plugin",value:l.map(v=>({label:m.find(_=>_.id===v)?.name??v,value:v})),selectInputProps:{isMulti:!0,options:m.map(v=>({label:v.name??"",value:v.id??""}))},onChange:v=>{const b=v.map(_=>_.value);c(b)}}),D.jsx(Gt,{name:"apiKeysToBeExcludedFromTranslation",id:"apiKeysToBeExcludedFromTranslation",label:"Fields to be excluded from translation",value:d.map(v=>({label:`${y.find(b=>b.id===v)?.name} (${y.find(b=>b.id===v)?.model})`,value:v})),selectInputProps:{isMulti:!0,options:y.map(v=>({label:`${v.name} (${v.model})`,value:v.id}))},onChange:v=>{const b=v.map(_=>_.value);f(b)}})]})})]})}function JH(t){const[e,n]=O.useState(t.modelsToBeExcludedFromThisPlugin??[]),[i,r]=O.useState(t.rolesToBeExcludedFromThisPlugin??[]),[l,c]=O.useState(t.apiKeysToBeExcludedFromThisPlugin??[]),[d,f]=O.useState(!1),h=O.useMemo(()=>e.length>0||i.length>0||l.length>0,[e,i,l]);O.useEffect(()=>{h&&f(!0)},[h]);const m={modelsToBeExcluded:e,rolesToBeExcluded:i,apiKeysToBeExcluded:l,showExclusionRules:d,hasExclusionRules:h},y={setModelsToBeExcluded:O.useCallback(v=>n(v),[]),setRolesToBeExcluded:O.useCallback(v=>r(v),[]),setApiKeysToBeExcluded:O.useCallback(v=>c(v),[]),setShowExclusionRules:O.useCallback(v=>f(v),[]),resetExclusionRules:O.useCallback(()=>{n([]),r([]),c([])},[])};return[m,y]}function QH(t,e){const[n,i]=O.useState(Array.isArray(t.translationFields)?t.translationFields:Object.keys(Li)),[r,l]=O.useState(typeof t.translateWholeRecord=="boolean"?t.translateWholeRecord:!0),[c,d]=O.useState(typeof t.translateBulkRecords=="boolean"?t.translateBulkRecords:!0),[f,h]=O.useState(t.prompt??e),[m,y]=O.useState(typeof t.enableDebugging=="boolean"?t.enableDebugging:!1),v={translationFields:n,translateWholeRecord:r,translateBulkRecords:c,prompt:f,enableDebugging:m},b={setTranslationFields:O.useCallback(_=>i(_),[]),setTranslateWholeRecord:O.useCallback(_=>l(_),[]),setTranslateBulkRecords:O.useCallback(_=>d(_),[]),setPrompt:O.useCallback(_=>h(_),[]),setEnableDebugging:O.useCallback(_=>y(_),[]),resetToDefaults:O.useCallback(()=>{i(Object.keys(Li)),l(!0),d(!0),h(e)},[e])};return[v,b]}function eK(t){return{deeplApiKey:t.deeplApiKey??"",deeplUseFree:t.deeplUseFree??!1,deeplFormality:t.deeplFormality??"default",deeplPreserveFormatting:t.deeplPreserveFormatting??!0,deeplIgnoreTags:t.deeplIgnoreTags??"notranslate,ph",deeplNonSplittingTags:t.deeplNonSplittingTags??"a,code,pre,strong,em,ph,notranslate",deeplSplittingTags:t.deeplSplittingTags??"",deeplGlossaryId:t.deeplGlossaryId??"",deeplGlossaryPairs:t.deeplGlossaryPairs??""}}function tK(t){return{vendor:t.vendor??"openai",apiKey:t.apiKey??"",gptModel:t.gptModel??"None",googleApiKey:t.googleApiKey??"",geminiModel:t.geminiModel??"gemini-2.5-flash",anthropicApiKey:t.anthropicApiKey??"",anthropicModel:t.anthropicModel??"claude-haiku-4-5-latest",...eK(t)}}function nK(t){const e=tK(t),[n,i]=O.useState(e.vendor),[r,l]=O.useState(e.apiKey),[c,d]=O.useState(e.gptModel),[f,h]=O.useState(e.googleApiKey),[m,y]=O.useState(e.geminiModel),[v,b]=O.useState(e.anthropicApiKey),[_,w]=O.useState(e.anthropicModel),[T,R]=O.useState(e.deeplApiKey),[C,A]=O.useState(e.deeplUseFree),[M,x]=O.useState(e.deeplFormality),[k,L]=O.useState(e.deeplPreserveFormatting),[N,U]=O.useState(e.deeplIgnoreTags),[K,Y]=O.useState(e.deeplNonSplittingTags),[se,ae]=O.useState(e.deeplSplittingTags),[ye,ve]=O.useState(e.deeplGlossaryId),[F,Z]=O.useState(e.deeplGlossaryPairs),ne={vendor:n,apiKey:r,gptModel:c,googleApiKey:f,geminiModel:m,anthropicApiKey:v,anthropicModel:_,deeplApiKey:T,deeplUseFree:C,deeplFormality:M,deeplPreserveFormatting:k,deeplIgnoreTags:N,deeplNonSplittingTags:K,deeplSplittingTags:se,deeplGlossaryId:ye,deeplGlossaryPairs:F},le={setVendor:O.useCallback(re=>i(re),[]),setApiKey:O.useCallback(re=>l(re),[]),setGptModel:O.useCallback(re=>d(re),[]),setGoogleApiKey:O.useCallback(re=>h(re),[]),setGeminiModel:O.useCallback(re=>y(re),[]),setAnthropicApiKey:O.useCallback(re=>b(re),[]),setAnthropicModel:O.useCallback(re=>w(re),[]),setDeeplApiKey:O.useCallback(re=>R(re),[]),setDeeplUseFree:O.useCallback(re=>A(re),[]),setDeeplFormality:O.useCallback(re=>x(re),[]),setDeeplPreserveFormatting:O.useCallback(re=>L(re),[]),setDeeplIgnoreTags:O.useCallback(re=>U(re),[]),setDeeplNonSplittingTags:O.useCallback(re=>Y(re),[]),setDeeplSplittingTags:O.useCallback(re=>ae(re),[]),setDeeplGlossaryId:O.useCallback(re=>ve(re),[]),setDeeplGlossaryPairs:O.useCallback(re=>Z(re),[])};return[ne,le]}function Xy({id:t,label:e,value:n,onChange:i,models:r,hint:l}){const c=O.useMemo(()=>r.map(f=>({label:f,value:f})),[r]),d=f=>{Array.isArray(f)||i(f?.value||n)};return D.jsx(Gt,{name:t,id:t,label:e,required:!0,hint:l,value:{label:n,value:n},selectInputProps:{options:c},onChange:d})}function aK({anthropicApiKey:t,setAnthropicApiKey:e,anthropicModel:n,setAnthropicModel:i,listOfAnthropicModels:r}){return D.jsxs(ki,{children:[D.jsx(us,{required:!0,name:"anthropicApiKey",id:"anthropicApiKey",label:"Anthropic API Key",value:t,onChange:l=>e(l),placeholder:"sk-ant-..."}),D.jsx(Xy,{id:"anthropicModel",label:"Claude Model",hint:"Recommended: claude-haiku-4-5-latest",value:n,onChange:i,models:r})]})}let Zw=0;function iK(t){if(!t.trim())return[];const e=t.split(/\r?\n|[;,]+/).map(i=>i.trim()).filter(Boolean),n=[];for(const i of e){const l=i.replace(/[→⇒–—]/g,"->").replace(/\s+/g,"").match(/^([a-zA-Z*]{1,5}(?:-[a-zA-Z]{2,4})?)->([a-zA-Z*]{1,5}(?:-[a-zA-Z]{2,4})?)(?:=|:)([\w-]+)$/);l&&n.push({source:l[1],target:l[2],glossaryId:l[3]})}return n}function sK(t){return t.filter(e=>e.source&&e.target&&e.glossaryId).map(e=>`${e.source}->${e.target}=${e.glossaryId}`).join(`
|
|
78
|
+
${l}`;f.info("Formatted prompt prepared for translation"),f.logPrompt("SEO translation prompt",_);const[w,T]=await af(r,e,[h,m],i,n,{isHTML:!1,recordContext:d}),R={...t};let C=w||h;C.length>Sm&&(f.info(`SEO title exceeds ${Sm} character limit (${C.length}). Truncating...`),C=`${C.substring(0,Sm-jw)}...`);let A=T||m;return A.length>_m&&(f.info(`SEO description exceeds ${_m} character limit (${A.length}). Truncating...`),A=`${A.substring(0,_m-jw)}...`),R.title=C,R.description=A,f.info("SEO translation completed successfully"),R}catch(y){Ll(y,r.vendor,f,"SEO translation error")}}function d7(t){if(Array.isArray(t))return t;if(t&&typeof t=="object"){const e=t.document;if(e&&typeof e=="object"){const n=e.children;if(Array.isArray(n))return n}}return null}function f7(t){const e=typeof t.type=="string"?t.type:void 0;return typeof t.text=="string"&&t.text.trim().length>0||e==="span"&&typeof t.value=="string"&&t.value.trim().length>0}function _p(t,e){if(e.hasVisibleText||e.hasBlocks)return;if(Array.isArray(t)){for(const r of t)_p(r,e);return}if(!t||typeof t!="object")return;const n=t;if((typeof n.type=="string"?n.type:void 0)==="block"){e.hasBlocks=!0;return}if(f7(n)){e.hasVisibleText=!0;return}if(Array.isArray(n.children))for(const r of n.children)_p(r,e)}function wp(t){const e=d7(t);if(!e)return!1;if(e.length===0)return!0;const n={hasVisibleText:!1,hasBlocks:!1};return _p(e,n),!n.hasVisibleText&&!n.hasBlocks}function Tp(t){if(Array.isArray(t))return t.map(Tp);if(typeof t=="object"&&t!==null){const e={};for(const[n,i]of Object.entries(t)){if(n==="data"){e[n]=i;continue}n==="id"&&t.value!==void 0&&Object.keys(t).length===2?e[n]=i:n!=="id"&&(e[n]=Tp(i))}return e}return t}function h7(t,e,n){return[...t.slice(0,n),e,...t.slice(n)]}function g7(t){if(t===null||typeof t!="object")return!1;const e=t;if(!e.document||typeof e.document!="object")return!1;const n=e.document;return Array.isArray(n.children)&&n.children.length>0}const m7=/^[\s\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+$/;function Bd(t){return t===""||m7.test(t)}function p7(t){return t?{bypassFieldTypeAllowlist:!0,cmaBaseUrl:t}:{bypassFieldTypeAllowlist:!0}}function Ep(t){return Array.isArray(t)?t.map(e=>Ep(e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([e,n])=>[e,Ep(n)])):t}function Rp(t,e=[]){if(Array.isArray(t))return t.flatMap((r,l)=>Rp(r,[...e,l]));if(!t||typeof t!="object")return[];const n=t,i=typeof n.type=="string"?n.type:void 0;return typeof n.text=="string"?[{path:[...e,"text"],value:n.text}]:i==="span"&&typeof n.value=="string"?[{path:[...e,"value"],value:n.value}]:i==="block"?[]:Array.isArray(n.children)?Rp(n.children,[...e,"children"]):[]}function y7(t,e,n){let i=t;for(let r=0;r<e.length-1;r++){if(i===null||typeof i!="object")return;i=i[e[r]]}i!==null&&typeof i=="object"&&(i[e[e.length-1]]=n)}function v7(t,e,n){const i=Ep(t);return e.forEach((r,l)=>{const c=n[l];c!==void 0&&y7(i,r.path,c)}),i}function b7(t,e){return t.length===e.length?e:e.length<t.length?[...e,...t.slice(e.length)]:e.slice(0,t.length)}function S7(t,e){const n=new Array(e.length);for(let i=0;i<e.length;i++){const r=String(t[i]??""),l=String(e[i]??"");if(Bd(r)){n[i]=r;continue}const c=(r.match(/^\s+/)||[""])[0],d=(r.match(/\s+$/)||[""])[0];let f=l;c&&!/^\s/.test(f)&&(f=`${c}${f}`),d&&!/\s$/.test(f)&&(f=`${f}${d}`),n[i]=f}return n}function _7(t,e){const n=[];let i=0;for(let r=0;r<t.length;r++){const l=String(t[r]??"");if(Bd(l))n.push(l);else{const c=i<e.length?String(e[i++]):l;n.push(c)}}return n}function w7(t,e){const n=e.slice();for(let i=0;i<t.length-1;i++){const r=String(t[i]??""),l=String(t[i+1]??"");if(Bd(r)||Bd(l)||!(/[\s\u00A0]$/.test(r)||/^[\s\u00A0]/.test(l)))continue;const d=String(n[i]??""),f=String(n[i+1]??""),h=/[\s\u00A0]$/.test(d),m=/^[\s\u00A0]/.test(f);!h&&!m&&(n[i]=`${d} `)}return n}function T7(t,e){const n=e.slice();for(let i=0;i<t.length-1;i++){const r=String(t[i]??""),l=String(t[i+1]??""),c=/[.,;:!?]$/.test(r.trimEnd()),d=/^[.,;:!?]/.test(l.trimStart());if(!c&&!d)continue;const f=String(n[i]??""),h=String(n[i+1]??""),m=/[\s\u00A0]$/.test(f)||/^[\s\u00A0]/.test(h),y=/[.,;:!?]$/.test(f)||/^[.,;:!?]/.test(h);!m&&!y&&(n[i]=`${f} `)}return n}async function E7(t,e,n,i,r,l,c,d,f="",h,m){const y=Za(e,"StructuredTextTranslation");let v=t,b=!1;if(g7(t)&&(v=t.document.children,b=!0),!v||!Array.isArray(v)||v.length===0)return y.info("Invalid structured text value",v),v;y.info("Translating structured text field",{nodeCount:v.length});const _=Tp(v),w=_.reduce((A,M,x)=>(M?.type==="block"&&A.push({...M,originalIndex:x}),A),[]),T=_.filter(A=>A?.type!=="block"),R=Rp(T),C=R.map(A=>A.value);if(C.length===0)return y.info("No text values found to translate"),v;y.info(`Found ${C.length} text nodes to translate`);try{const A=await af(r,e,C,i,n,{isHTML:!1,recordContext:f});let M=A;A.length!==C.length&&(y.warning(`Translation mismatch: got ${A.length} values, expected ${C.length}`,{original:C,translated:A}),M=_7(C,A),M.length!==C.length&&(M=b7(C,M)),y.info("Adjusted translated values to match original length",{adjustedLength:M.length})),M=S7(C,M),M=w7(C,M),M=T7(C,M);let k=v7(T,R,M);if(w.length>0){y.info(`Translating ${w.length} block nodes`);const N=await Pl(w,e,n,i,"rich_text",r,"",l,"",c,d,f,h,p7(m));for(const U of N)U.originalIndex!==void 0&&(k=h7(k,U,U.originalIndex))}const L=k.map(({originalIndex:N,...U})=>U);return b?{document:{children:L,type:"root"},schema:"dast"}:(y.info("Successfully translated structured text"),L)}catch(A){Ll(A,r.vendor,y,"Error during structured text translation")}}function R7(t){return t.item!==void 0&&typeof t.item=="object"&&t.item!==null&&"attributes"in t.item&&typeof t.item.attributes=="object"}function C7(t){if(t.itemTypeId)return String(t.itemTypeId);if(t.blockModelId)return String(t.blockModelId);const e=t.relationships?.item_type?.data?.id;if(e)return e;const n=t.item?.relationships?.item_type?.data?.id;if(n)return n}class A7 extends Error{constructor(){super("Operation cancelled"),this.name="CancellationError"}}function Nd(t){return Array.isArray(t)?t.map(e=>Nd(e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([e,n])=>[e,Nd(n)])):t}function x7(t){const e=Nd(t),n=e;return delete n.id,delete n.itemId,n.item&&typeof n.item=="object"&&(delete n.item.id,delete n.item.itemId),e}async function O7(t,e,n){const i=t.map((m,y)=>({index:y,completed:!1}));let r=0,l=!1;async function c(){if(l||r>=t.length)return;const m=r++;try{n?.()}catch{l=!0;return}try{const y=await t[m]();i[m]={index:m,result:y,completed:!0}}catch(y){if(y instanceof A7){l=!0;return}throw y}return c()}const d=()=>c(),f=Math.min(e,t.length),h=Array(f).fill(null).map(()=>d());return await Promise.all(h),i}async function Pl(t,e,n,i,r,l,c,d,f,h,m,y="",v,b={}){if(Za(e,"translateFieldValue").info(`Translating field of type: ${r}`,{fromLocale:i,toLocale:n}),vy(e.apiKeysToBeExcludedFromThisPlugin,[f,b.fieldApiKey])||!yy(r,e.translationFields,by)&&!b.bypassFieldTypeAllowlist||!t)return t;let T;switch(r){case"seo":T=await c7(t,e,n,i,l,c,m,y);break;case"structured_text":T=await E7(t,e,n,i,l,d,h,m,y,v,b.cmaBaseUrl);break;case"rich_text":case"framed_single_block":case"frameless_single_block":T=await j7(t,e,n,i,l,d,r,h,m,y,v,b.cmaBaseUrl);break;case"file":case"gallery":T=await oq(t,e,n,i,l,d,h,m,y,b.cmaBaseUrl);break;default:T=await sq(t,e,n,i,l,m,y);break}if(r==="slug"){const R=G$(T);if(!R)throw new Error("Translated slug is empty after normalization");return R}return T}const M7=100,k7=3,br=new Map;function L7(t,e){if(br.size>=M7){const n=br.keys().next().value;n&&br.delete(n)}br.set(t,e)}async function Cp(t,e,n,i,r){if(i)return _$(i,n);const l=`${r??""}:${e}:${n}`,c=br.get(l);if(c)return c;const d=(async()=>(await tf({apiToken:t,environment:e,baseUrl:r}).fields.list(n)).reduce((m,y)=>(m[y.api_key]={editor:y.appearance.editor,id:y.id,localized:y.localized,validators:y.validators},m),{}))();L7(l,d);try{return await d}catch(f){throw br.delete(l),f}}const D7=["itemTypeId","originalIndex","blockModelId","type","children","relationships","attributes"];function dA(t){if(!t||typeof t!="object")return;const n=t.single_block_blocks;if(!n||typeof n!="object")return;const i=n.item_types;if(!(!Array.isArray(i)||i.length===0))return String(i[0])}function I7(t,e){return nf(t,e)??e}async function B7(t,e,n){if(!t||typeof t!="object"||Array.isArray(t))return t;const i=dA(e?.validators);if(!i)return n.logger.warning("Frameless single block missing item type validators",e),t;const r=await Cp(n.apiToken,n.environment,i,n.schemaRepository,n.cmaBaseUrl),l=Nd(t);return delete l.id,delete l.itemId,await fA(l,r,n),l}function N7(t,e,n,i){if(!e||!t||typeof t!="object"||Array.isArray(t))return{valueToTranslate:t,localizedContainer:null,targetLocaleKey:null,skip:!1};const r=Nr(t,n);if(r==null||r==="")return{valueToTranslate:t,localizedContainer:null,targetLocaleKey:null,skip:!0};const l={...t},c=I7(l,i);return{valueToTranslate:r,localizedContainer:l,targetLocaleKey:c,skip:!1}}async function P7(t,e,n,i){const r=e?.editor||"text";if(r==="frameless_single_block")return B7(n,e,i);const l=" Return the response in the format of "+(py[r]||"");return Pl(n,i.pluginParams,i.toLocale,i.fromLocale,r,i.provider,l,i.apiToken,e?.id||"",i.environment,i.streamCallbacks,i.recordContext,i.schemaRepository,{fieldApiKey:t,cmaBaseUrl:i.cmaBaseUrl})}async function fA(t,e,n){const i=Object.keys(t).filter(d=>!D7.includes(d));if(i.length===0)return;const r=i.map(d=>async()=>{n.streamCallbacks?.onStream?.(`Translating block field: ${d}...`);const f=e[d],h=f?.localized===!0,m=N7(t[d],h,n.fromLocale,n.toLocale);if(m.skip)return{field:d,value:t[d]};const y=await P7(d,f,m.valueToTranslate,n);return m.localizedContainer&&m.targetLocaleKey?(m.localizedContainer[m.targetLocaleKey]=y,{field:d,value:m.localizedContainer}):{field:d,value:y}}),l=await O7(r,k7,n.streamCallbacks?.checkCancellation);for(const d of l)d.completed&&d.result&&(t[d.result.field]=d.result.value);const c=l.filter(d=>d.completed).length;c<i.length&&n.logger.info(`Translation cancelled: ${c}/${i.length} fields translated`)}async function j7(t,e,n,i,r,l,c,d,f,h="",m,y){const v=Za(e,"translateBlockValue");v.info("Translating block value");const b=c==="framed_single_block"||c==="frameless_single_block",w=(b?[t]:t).map(x7),T={pluginParams:e,toLocale:n,fromLocale:i,provider:r,apiToken:l,environment:d,cmaBaseUrl:y,streamCallbacks:f,recordContext:h,logger:v,schemaRepository:m};async function R(A,M,x,k,L){if(A in x)return;const N=dA(M.validators);if(!N){v.warning("Frameless single block missing validators",{fieldKey:A,blockModelId:k});return}const U=await Cp(l,d,N,m,y);for(const[K,Y]of Object.entries(U))K in L||(L[K]=Y)}async function C(A){const M=C7(A);if(!M){v.warning("Block model ID not found",A);return}const x=await Cp(l,d,M,m,y),k=A.attributes?A.attributes:R7(A)?A.item.attributes:A;let L=x;const N=Object.entries(x).filter(([,U])=>U.editor==="frameless_single_block");if(N.length>0){const U={...x};await N.reduce(async(K,[Y,se])=>{await K,await R(Y,se,k,M,U)},Promise.resolve()),L=U}await fA(k,L,T)}return await w.reduce((A,M)=>A.then(()=>C(M)),Promise.resolve()),v.info("Block translation completed"),b?w[0]:w}async function wm(t,e,n,i,r,l,c,d,f=""){const h=await e.currentUserAccessToken,m=Ir(n),y=Za(n,"TranslateField");try{y.info("Starting field translation",{fieldType:l,fromLocale:r,toLocale:i});const v=e.formValues&&!f?Hy(e.formValues,r):f;d?.onStream;const b=e.field.attributes.api_key??"",_=e.field.id??e.fieldPath??"";let w="Return the response in the format of ";const T=py;l!=="structured_text"&&l!=="rich_text"&&(w+=(T||{})[l]||"");const C=await Pl(t,n,i,r,l,m,w,h,_,c,d,v,void 0,{fieldApiKey:b,cmaBaseUrl:e.cmaBaseUrl});return y.info("Field translation completed"),C}catch(v){Ll(v,m.vendor,y,"Translation failed")}}const z7=["title","name","content","description"];function F7(t){const e=t.toLowerCase();return z7.some(n=>e.includes(n))}function U7(t,e){if(typeof t!="object"||t===null)return null;const i=t[e];return typeof i!="string"||!i||i.length>=300?null:i}function Hy(t,e){if(!t)return"";let n="Content context: ",i=!1;for(const r in t){if(!F7(r))continue;const l=U7(t[r],e);l&&(n+=`${r}: ${l}. `,i=!0)}return i?n:""}const zw=64,V7=15,Fw=3e5,$7=33,Uw=10,q7=1e3,G7=1e4,H7=50,K7=200;function hA(t,e,n,i){const r=yy(t,n.translationFields,by),l=vy(n.apiKeysToBeExcludedFromThisPlugin,[e,i]);return r&&!l}function Ky(t,e){return e==null||e===""?!1:t==="structured_text"?!wp(e):!(Array.isArray(e)&&e.length===0)}function Y7(t){const e=t.vendor??"openai",n=e==="google"?String(t.geminiModel??"").toLowerCase():String(t.gptModel??"").toLowerCase();return e==="google"?/(^|[-])nano\b/.test(n)||/flash|lite/.test(n)?3:(/pro/.test(n),2):/(^|[-])nano\b/.test(n)||/flash|mini|lite/.test(n)?6:/mini/.test(n)||/1\.5/.test(n)?5:/pro/.test(n)?3:4}function X7(t){return(t.vendor??"openai")==="google"?K7:H7}function W7(t){const e=q7*2**(t-1);return Math.min(e,G7)}function Z7(t){if(t===null||typeof t!="object")return!1;const e=t;return e?.status===429||e?.code==="rate_limit_exceeded"||/\b429\b|rate limit|Too Many Requests/i.test(String(e?.message??""))}function J7(t){return t instanceof DOMException&&t.name==="AbortError"}function Vw(t){return new Promise(e=>setTimeout(e,t))}const Q7=["title","name","headline","heading","label","internal_name","internalName","slug"];function eH(t,e){const n=Nr(t,e);if(typeof n=="string"&&n.trim())return n;for(const i of Object.values(t))if(typeof i=="string"&&i.trim())return i;return null}function tH(t,e){return t==null?null:typeof t=="string"?t:typeof t=="number"?String(t):Array.isArray(t)?t.filter(n=>typeof n=="string")[0]??null:typeof t=="object"?eH(t,e):null}function nH(t,e){for(const n of Q7)if(t[n]!==void 0){const i=tH(t[n],e);if(i?.trim()){const r=i.trim();return r.length>80?`${r.slice(0,77)}…`:r}}return`Record ${t.id}`}function aH(t){const e="translateRecord-",i=(t.startsWith(e)?t.substring(e.length):t).split("-");if(i.length<2)return console.error(`Invalid action ID format: ${t}`),{fromLocale:"en",toLocale:"en"};const r=d=>{const[f,...h]=d.split("-");return!f||!/^[a-z]{2,3}$/.test(f)?!1:h.every(m=>/^[A-Za-z0-9]{2,8}$/.test(m))};for(let d=1;d<i.length;d++){const f=i.slice(0,d).join("-"),h=i.slice(d).join("-");if(r(f)&&r(h))return{fromLocale:f,toLocale:h}}const l=i[0],c=i.slice(1).join("-")||l;return{fromLocale:l,toLocale:c}}async function iH(t,e){const n=[],r=e.join(",");async function l(c){const d=await t.items.list({filter:{ids:r},nested:!0,version:"current",page:{offset:(c-1)*30,limit:30}});n.push(...d),d.length===30&&await l(c+1)}return await l(1),n}function gA(t,e){if(!t||typeof t!="object")return!1;const n=e.toLowerCase();for(const i in t)if(i.toLowerCase()===n)return!0;return Object.values(t).some(i=>typeof i=="object"&&i!==null?gA(i,e):!1)}function sH(t){if(t===null||typeof t!="object")return;const e=t;return Tm(e,["response","data","errors"])||Tm(e,["response","errors"])||Tm(e,["data","errors"])||(Array.isArray(e.errors)?e.errors:void 0)}function Tm(t,e){let n=t;for(const i of e){if(n===null||typeof n!="object")return;n=n[i]}return Array.isArray(n)?n:void 0}function rH(t){if(t===null||typeof t!="object")return null;const e=t;if(e.attributes&&typeof e.attributes=="object"){const n=e.attributes;if(typeof n.code=="string")return n.code}return typeof e.code=="string"?e.code:null}function oH(t){if(t instanceof Error)return t.message;if(t!==null&&typeof t=="object"){const e=t;if(typeof e.message=="string")return e.message}}function lH(t,e){try{const n=sH(t);if(Array.isArray(n)&&n.map(rH).includes("ITEM_LOCKED"))return`DatoCMS error: Cannot save translations for record ${e}: the record is locked because it is being edited. Please ensure no one (including you in another tab) is editing the record in DatoCMS, then try again.`;if(oH(t)?.includes("ITEM_LOCKED"))return`DatoCMS error: Cannot save translations for record ${e}: the record is locked because it is being edited. Please ensure no one is editing the record, then try again.`}catch{}return null}async function uH(t,e,n,i,r,l,c,d,f,h={},m){const y=w=>{w.status==="processing"&&typeof w.message=="string"&&(w={...w,message:w.message.replace(/\s*fields…$/,"…")}),h.onProgress?.(w)};async function v(w,T,R){y({recordIndex:T,recordId:w.id,status:"processing",message:`Translating "${R}" (#${w.id}) fields…`});const C=await l(w.item_type.id),A=await cH(w,i,r,C,n,c,f,d.environment,{abortSignal:h.abortSignal,checkCancellation:h.checkCancellation},m,d.cmaBaseUrl);return Object.keys(A.payload).length>0&&(y({recordIndex:T,recordId:w.id,status:"processing",message:`Saving "${R}" (#${w.id})…`}),await e.items.update(w.id,{...A.payload})),A}function b(w,T,R,C){const A=w.warnings.length>0?` Warnings: ${w.warnings.join(" ")}`:"";if(w.translatedFieldCount===0&&w.warnings.length>0)return y({recordIndex:T,recordId:R,status:"error",message:`No fields were updated for "${C}" (#${R}).${A}`}),"continue";const M=w.translatedFieldCount===0?`No eligible fields to translate for "${C}" (#${R}).`:`Translated "${C}" (#${R}).${A}`;return y({recordIndex:T,recordId:R,status:"completed",message:M}),"done"}async function _(w,T){const R=nH(w,i);if(h.checkCancellation?.())return y({recordIndex:T,recordId:w.id,status:"error",message:`Translation cancelled for "${R}" (#${w.id}).`}),"cancelled";y({recordIndex:T,recordId:w.id,status:"processing",message:`Translating "${R}" (#${w.id})…`});try{if(!gA(w,i)){const A=`Record "${R}" (#${w.id}) does not have the source locale '${i}'`;return console.error(`Record ${w.id} ${A}`),d.alert(`Error: Record ID ${w.id} ${A}`),y({recordIndex:T,recordId:w.id,status:"error",message:A}),"continue"}const C=await v(w,T,R);return b(C,T,w.id,R)}catch(C){const A=lH(C,w.id),M=Zn(C,n.vendor),x=Jn(M),k=C instanceof Error?C.message:String(C);return console.error(`Error translating record ${w.id}:`,k),y({recordIndex:T,recordId:w.id,status:"error",message:A??`Failed "${R}" (#${w.id}): ${x}`}),"continue"}}await t.reduce(async(w,T,R)=>await w==="cancelled"?"cancelled":_(T,R),Promise.resolve("done"))}function Ap(t){if(t==null)return t;if(Array.isArray(t))return t.map(Ap);if(typeof t=="object"){const e=t,n=e.type==="item"&&typeof e.id=="string",i={};for(const[r,l]of Object.entries(e))n&&r==="id"||(i[r]=Ap(l));return i}return t}async function cH(t,e,n,i,r,l,c,d,f={},h,m){const y={},v=[];let b=0;const _=Hy(t,e),w=Object.keys(t).filter(C=>i[C]?.isLocalized&&dH(C,t,e,i,l));async function T(C){const A=Nr(t[C],e),M=i[C].editor,x=TR(M);if(Ky(M,A))try{const k=await Pl(A,l,n,e,M,r,x,c,i[C].id,d,{abortSignal:f.abortSignal,checkCancellation:f.checkCancellation},_,h,{fieldApiKey:C,...m?{cmaBaseUrl:m}:{}});y[C]={...t[C]||{},[n]:k},b+=1}catch(k){const L=Zn(k,r.vendor),N=Jn(L);console.error(`Error translating field ${C} for record ${t.id}: ${N}`);const U=N.endsWith(".")?"":".";v.push(`Field "${C}" was skipped: ${N}${U}`)}}await w.reduce((C,A)=>C.then(()=>T(A)),Promise.resolve());const R=new Set(["rich_text","structured_text","framed_single_block","frameless_single_block"]);for(const[C,A]of Object.entries(i)){if(!A.isLocalized||y[C])continue;const M=t[C]??{};if(nf(M,n)!==void 0)continue;const k=Nr(M,e),L=q$(A.validators)&&k!=null,N=R.has(A.editor);let U=null;L&&N?U=Ap(k):L&&(U=k),y[C]={...M,[n]:U}}return{payload:y,translatedFieldCount:b,warnings:v}}function dH(t,e,n,i,r){if(["id","creator","meta","type","item_type"].includes(t)||!e[t]||!i[t]?.isLocalized)return!1;const l=i[t];if(!hA(l.editor,l.id,r,t))return!1;const c=Nr(e[t],n);return!!Ky(l.editor,c)}async function fH(t,e){return w$(t,e)}function hH(t){return t==="completed"?"Completed":t==="processing"?"Processing...":t==="error"?"Error":""}function gH({update:t}){const e=t.message??hH(t.status);return D.jsxs("li",{className:`TranslationProgressModal__update-item TranslationProgressModal__update-item--${t.status}`,children:[D.jsxs("span",{className:"TranslationProgressModal__update-status",children:[t.status==="completed"&&"✓",t.status==="processing"&&D.jsx(ef,{size:16}),t.status==="error"&&"✗"]}),D.jsx("span",{className:"TranslationProgressModal__update-message",children:e})]},t.recordId)}function mH(t,e){return Jn(Zn(t,e??"openai"))}function pH({ctx:t,parameters:e}){const{totalRecords:n,fromLocale:i,toLocale:r,accessToken:l,pluginParams:c,itemIds:d}=e,[f,h]=O.useState([]),[m,y]=O.useState(!1),[v,b]=O.useState(!1),[_,w]=O.useState(!1),[T,R]=O.useState(!1),C=O.useRef(null),A=O.useRef(null),M=O.useRef(!1),x=O.useCallback(Y=>{h(se=>[...se.filter(ye=>ye.recordIndex!==Y.recordIndex),Y])},[]);O.useEffect(()=>{let Y=!0;return(async()=>{if(!(!Y||M.current)){M.current=!0,w(!0);try{const ae=rp(l,t.environment,t.cmaBaseUrl),ye=await iH(ae,d),ve=Ir(c),F=S$(ae),Z=async le=>fH(F,le),ne=new AbortController;C.current=ne,await uH(ye,ae,ve,i,r,Z,c,t,l,{onProgress:x,checkCancellation:()=>v,abortSignal:ne.signal},F)}catch(ae){Y&&(R(!0),w(!1),x({recordIndex:-1,recordId:"fatal",status:"error",message:`Translation failed: ${mH(ae,c.vendor)}`}))}}})(),()=>{Y=!1}},[l,x,t,i,v,d,c,r]);const k=Object.values(f.reduce((Y,se)=>(Y[se.recordIndex]=se,Y),{})),L=k.filter(Y=>Y.status==="completed"||Y.status==="error").length,N=n>0?Math.round(L/n*100):0;O.useEffect(()=>{L===n&&n>0&&(y(!0),w(!1))},[L,n]),O.useEffect(()=>{const Y=A.current;Y&&Y.scrollTop<=8&&(Y.scrollTop=0)},[]);const U=()=>{const Y=T||k.some(se=>se.status==="error");t.resolve({completed:m&&!Y,canceled:!1,progress:f})},K=()=>{b(!0),C.current?.abort(),t.resolve({completed:!1,canceled:!0})};return D.jsx(qa,{ctx:t,children:D.jsxs("div",{className:"TranslationProgressModal",children:[D.jsxs("div",{className:"TranslationProgressModal__intro",children:[D.jsxs("div",{className:"TranslationProgressModal__languages",children:[D.jsxs("p",{children:["Translating from ",D.jsx("strong",{children:P_(i)})," to"," ",D.jsx("strong",{children:P_(r)})]}),D.jsxs("p",{className:"TranslationProgressModal__progress-text",children:["Progress: ",L," of ",n," records processed (",N,"%)"]}),D.jsxs("p",{className:"TranslationProgressModal__stats",children:[k.filter(Y=>Y.status==="completed").length," ","successful,"," ",k.filter(Y=>Y.status==="error").length," ","failed"]})]}),D.jsx("div",{className:"TranslationProgressModal__progress-bar",children:D.jsx("div",{className:"TranslationProgressModal__progress-bar-fill",style:{width:`${N}%`}})})]}),D.jsx("div",{className:"TranslationProgressModal__updates",ref:A,"aria-live":"polite",children:f.length>0?D.jsx("ul",{className:"TranslationProgressModal__update-list",children:f.slice().sort((Y,se)=>se.recordIndex-Y.recordIndex).map(Y=>D.jsx(gH,{update:Y},Y.recordId))}):D.jsx("div",{className:"TranslationProgressModal__initializing",children:D.jsxs("div",{className:"TranslationProgressModal__spinner-container",children:[D.jsx(ef,{size:20}),D.jsx("span",{children:"Initializing translation..."})]})})}),D.jsxs("div",{className:"TranslationProgressModal__footer",children:[!m&&_&&D.jsx(Jt,{type:"button",buttonType:"negative",onClick:K,buttonSize:"s",children:"Cancel"}),D.jsx(Jt,{type:"button",buttonType:"primary",onClick:U,disabled:_&&!m,buttonSize:"s",children:m?"Close":_?"Please wait...":"Close"})]})]})})}var yH=function(e){var n=_e.useRef(e);return pd(function(){n.current=e}),n},$w=function(e,n){if(typeof e=="function"){e(n);return}e.current=n},vH=function(e,n){var i=_e.useRef();return _e.useCallback(function(r){e.current=r,i.current&&$w(i.current,null),i.current=n,n&&$w(n,r)},[n])},qw={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},bH=function(e){Object.keys(qw).forEach(function(n){e.style.setProperty(n,qw[n],"important")})},Gw=bH,Wt=null,Hw=function(e,n){var i=e.scrollHeight;return n.sizingStyle.boxSizing==="border-box"?i+n.borderSize:i-n.paddingSize};function SH(t,e,n,i){n===void 0&&(n=1),i===void 0&&(i=1/0),Wt||(Wt=document.createElement("textarea"),Wt.setAttribute("tabindex","-1"),Wt.setAttribute("aria-hidden","true"),Gw(Wt)),Wt.parentNode===null&&document.body.appendChild(Wt);var r=t.paddingSize,l=t.borderSize,c=t.sizingStyle,d=c.boxSizing;Object.keys(c).forEach(function(v){var b=v;Wt.style[b]=c[b]}),Gw(Wt),Wt.value=e;var f=Hw(Wt,t);Wt.value=e,f=Hw(Wt,t),Wt.value="x";var h=Wt.scrollHeight-r,m=h*n;d==="border-box"&&(m=m+r+l),f=Math.max(m,f);var y=h*i;return d==="border-box"&&(y=y+r+l),f=Math.min(y,f),[f,h]}var Kw=function(){},_H=function(e,n){return e.reduce(function(i,r){return i[r]=n[r],i},{})},wH=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],TH=!!document.documentElement.currentStyle,EH=function(e){var n=window.getComputedStyle(e);if(n===null)return null;var i=_H(wH,n),r=i.boxSizing;if(r==="")return null;TH&&r==="border-box"&&(i.width=parseFloat(i.width)+parseFloat(i.borderRightWidth)+parseFloat(i.borderLeftWidth)+parseFloat(i.paddingRight)+parseFloat(i.paddingLeft)+"px");var l=parseFloat(i.paddingBottom)+parseFloat(i.paddingTop),c=parseFloat(i.borderBottomWidth)+parseFloat(i.borderTopWidth);return{sizingStyle:i,paddingSize:l,borderSize:c}},RH=EH;function Yy(t,e,n){var i=yH(n);O.useLayoutEffect(function(){var r=function(c){return i.current(c)};if(t)return t.addEventListener(e,r),function(){return t.removeEventListener(e,r)}},[])}var CH=function(e,n){Yy(document.body,"reset",function(i){e.current.form===i.target&&n(i)})},AH=function(e){Yy(window,"resize",e)},xH=function(e){Yy(document.fonts,"loadingdone",e)},OH=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],MH=function(e,n){var i=e.cacheMeasurements,r=e.maxRows,l=e.minRows,c=e.onChange,d=c===void 0?Kw:c,f=e.onHeightChange,h=f===void 0?Kw:f,m=LE(e,OH),y=m.value!==void 0,v=O.useRef(null),b=vH(v,n),_=O.useRef(0),w=O.useRef(),T=function(){var A=v.current,M=i&&w.current?w.current:RH(A);if(M){w.current=M;var x=SH(M,A.value||A.placeholder||"x",l,r),k=x[0],L=x[1];_.current!==k&&(_.current=k,A.style.setProperty("height",k+"px","important"),h(k,{rowHeight:L}))}},R=function(A){y||T(),d(A)};return O.useLayoutEffect(T),CH(v,function(){if(!y){var C=v.current.value;requestAnimationFrame(function(){var A=v.current;A&&C!==A.value&&T()})}}),AH(T),xH(T),O.createElement("textarea",Ce({},m,{onChange:R,ref:b}))},kH=O.forwardRef(MH);function LH(t){const e=t.toLowerCase();return!(!e.startsWith("claude")||e.includes("embed"))}function Yw(t){const e=t.toLowerCase();let n=0;return e.includes("3.5")&&(n+=1e3),e.includes("haiku")&&(n+=100),e.includes("sonnet")&&(n+=60),e.includes("opus")&&(n+=20),e.endsWith("-latest")&&(n+=30),n}async function DH(t){try{const e=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":t,"anthropic-version":"2023-06-01"}});if(!e.ok)throw new Error(String(e.status));const n=await e.json(),r=(Array.isArray(n?.data)?n.data:[]).map(c=>c.id).filter(c=>typeof c=="string"&&LH(c));return Array.from(new Set(r)).sort((c,d)=>{const f=Yw(d)-Yw(c);return f!==0?f:c.localeCompare(d)})}catch(e){return console.error("Failed to fetch Anthropic models:",e),[]}}function mA(t){return t.startsWith("models/")?t.slice(7):t}function IH(t){const e=mA(t.name).toLowerCase();return t.supportedGenerationMethods&&!t.supportedGenerationMethods.includes("generateContent")||["embedding","embed","text-embedding","moderation"].some(i=>e.includes(i))?!1:/^(gemini-)/.test(e)}function Xw(t){const e=t.toLowerCase();let n=0;return/^gemini-2\.5/.test(e)?n=1200:/^gemini-2\.0/.test(e)?n=900:/^gemini-1\.5/.test(e)?n=700:/^gemini-1\.0/.test(e)&&(n=500),e.includes("flash")&&(n+=20),e.includes("pro")&&(n+=10),n}async function BH(t){try{const e=await fetch("https://generativelanguage.googleapis.com/v1beta/models",{headers:{"x-goog-api-key":t}});if(!e.ok)throw new Error(`Failed to list Gemini models (${e.status})`);const n=await e.json();return(Array.isArray(n.models)?n.models:[]).filter(IH).map(c=>mA(c.name)).sort((c,d)=>{const f=Xw(d)-Xw(c);return f!==0?f:c.localeCompare(d)}).filter((c,d,f)=>f.indexOf(c)===d)}catch(e){return console.error("Failed to fetch Gemini models:",e),[]}}function Ww(t){const e=t.toLowerCase(),n=/(^|[.-])mini\b/.test(e),i=/(^|[.-])nano\b/.test(e);let r=0;/^gpt-5(\b|[.-])/.test(e)?r=900:/^gpt-4\.1(\b|[.-])/.test(e)?r=500:/^gpt-4o(\b|[.-])/.test(e)?r=450:/^gpt-4-turbo(\b|[.-])/.test(e)?r=400:/^gpt-4(\b|[.-])/.test(e)?r=350:/^gpt-3\.5(\b|[.-])/.test(e)?r=150:/^ft:gpt-/.test(e)?r=125:r=50;let l=r;return n&&(l+=20),i&&(l-=30),/thinking|reasoning/.test(e)&&(l-=60),/preview/.test(e)&&(l-=10),l}function NH(t){const e=t.toLowerCase();return!(!(/^gpt-/.test(e)||/^ft:gpt-/.test(e))||["whisper","tts","audio","speech","dall-e","image","omni-moderation","moderation","text-embedding","embedding","realtime","vision"].some(r=>e.includes(r)))}async function PH(t){const e=new ke({apiKey:t,dangerouslyAllowBrowser:!0}),{data:n}=await e.models.list();return n.map(c=>c.id).filter(NH).sort((c,d)=>{const f=Ww(d)-Ww(c);return f!==0?f:c.localeCompare(d)}).filter((c,d,f)=>f.indexOf(c)===d)}const jH="_buttons_ntd7r_32",zH="_inlineStatus_ntd7r_89",FH="_textarea_ntd7r_143",UH="_label_ntd7r_164",VH="_sectionSpacing_ntd7r_192",$H="_buttonRow_ntd7r_196",qH="_exclusionRules_ntd7r_202",GH="_promptContainer_ntd7r_208",HH="_tooltipContainer_ntd7r_216",KH="_warningTooltip_ntd7r_223",YH="_tooltipText_ntd7r_232",XH="_imageTooltip_ntd7r_266",WH="_leftAnchorTooltip_ntd7r_271",Xe={buttons:jH,inlineStatus:zH,textarea:FH,label:UH,sectionSpacing:VH,buttonRow:$H,exclusionRules:qH,promptContainer:GH,tooltipContainer:HH,warningTooltip:KH,tooltipText:YH,imageTooltip:XH,leftAnchorTooltip:WH};function ZH({showExclusionRules:t,setShowExclusionRules:e,hasExclusionRules:n,modelsToBeExcluded:i,setModelsToBeExcluded:r,rolesToBeExcluded:l,setRolesToBeExcluded:c,apiKeysToBeExcluded:d,setApiKeysToBeExcluded:f,availableModels:h,roles:m,listOfFields:y}){return D.jsxs(D.Fragment,{children:[D.jsxs("div",{style:{position:"relative"},children:[D.jsx(Er,{name:"showExclusionRules",id:"showExclusionRules",label:"Show exclusion rules",value:t,onChange:v=>e(v)}),n&&D.jsxs("div",{className:Xe.warningTooltip,children:["ⓘ",D.jsx("div",{className:Xe.tooltipText,children:"There are exclusion rules present. If the plugin is not being displayed in a model or field where you expect it, please review them."})]})]}),t&&D.jsx("div",{className:Xe.exclusionRules,children:D.jsxs(ki,{children:[D.jsx(Gt,{name:"modelsToBeExcludedFromTranslation",id:"modelsToBeExcludedFromTranslation",label:"Models to be excluded from this plugin",value:i.map(v=>({label:h.find(_=>_.apiKey===v)?.name??v,value:v})),selectInputProps:{isMulti:!0,options:h.map(v=>({label:v.name??"",value:v.apiKey??""}))},onChange:v=>{const b=v.map(_=>_.value);r(b)}}),D.jsx(Gt,{name:"rolesToBeExcludedFromTranslation",id:"rolesToBeExcludedFromTranslation",label:"Roles to be excluded from using this plugin",value:l.map(v=>({label:m.find(_=>_.id===v)?.name??v,value:v})),selectInputProps:{isMulti:!0,options:m.map(v=>({label:v.name??"",value:v.id??""}))},onChange:v=>{const b=v.map(_=>_.value);c(b)}}),D.jsx(Gt,{name:"apiKeysToBeExcludedFromTranslation",id:"apiKeysToBeExcludedFromTranslation",label:"Fields to be excluded from translation",value:d.map(v=>({label:`${y.find(b=>b.id===v)?.name} (${y.find(b=>b.id===v)?.model})`,value:v})),selectInputProps:{isMulti:!0,options:y.map(v=>({label:`${v.name} (${v.model})`,value:v.id}))},onChange:v=>{const b=v.map(_=>_.value);f(b)}})]})})]})}function JH(t){const[e,n]=O.useState(t.modelsToBeExcludedFromThisPlugin??[]),[i,r]=O.useState(t.rolesToBeExcludedFromThisPlugin??[]),[l,c]=O.useState(t.apiKeysToBeExcludedFromThisPlugin??[]),[d,f]=O.useState(!1),h=O.useMemo(()=>e.length>0||i.length>0||l.length>0,[e,i,l]);O.useEffect(()=>{h&&f(!0)},[h]);const m={modelsToBeExcluded:e,rolesToBeExcluded:i,apiKeysToBeExcluded:l,showExclusionRules:d,hasExclusionRules:h},y={setModelsToBeExcluded:O.useCallback(v=>n(v),[]),setRolesToBeExcluded:O.useCallback(v=>r(v),[]),setApiKeysToBeExcluded:O.useCallback(v=>c(v),[]),setShowExclusionRules:O.useCallback(v=>f(v),[]),resetExclusionRules:O.useCallback(()=>{n([]),r([]),c([])},[])};return[m,y]}function QH(t,e){const[n,i]=O.useState(Array.isArray(t.translationFields)?t.translationFields:Object.keys(Li)),[r,l]=O.useState(typeof t.translateWholeRecord=="boolean"?t.translateWholeRecord:!0),[c,d]=O.useState(typeof t.translateBulkRecords=="boolean"?t.translateBulkRecords:!0),[f,h]=O.useState(t.prompt??e),[m,y]=O.useState(typeof t.enableDebugging=="boolean"?t.enableDebugging:!1),v={translationFields:n,translateWholeRecord:r,translateBulkRecords:c,prompt:f,enableDebugging:m},b={setTranslationFields:O.useCallback(_=>i(_),[]),setTranslateWholeRecord:O.useCallback(_=>l(_),[]),setTranslateBulkRecords:O.useCallback(_=>d(_),[]),setPrompt:O.useCallback(_=>h(_),[]),setEnableDebugging:O.useCallback(_=>y(_),[]),resetToDefaults:O.useCallback(()=>{i(Object.keys(Li)),l(!0),d(!0),h(e)},[e])};return[v,b]}function eK(t){return{deeplApiKey:t.deeplApiKey??"",deeplUseFree:t.deeplUseFree??!1,deeplFormality:t.deeplFormality??"default",deeplPreserveFormatting:t.deeplPreserveFormatting??!0,deeplIgnoreTags:t.deeplIgnoreTags??"notranslate,ph",deeplNonSplittingTags:t.deeplNonSplittingTags??"a,code,pre,strong,em,ph,notranslate",deeplSplittingTags:t.deeplSplittingTags??"",deeplGlossaryId:t.deeplGlossaryId??"",deeplGlossaryPairs:t.deeplGlossaryPairs??""}}function tK(t){return{vendor:t.vendor??"openai",apiKey:t.apiKey??"",gptModel:t.gptModel??"None",googleApiKey:t.googleApiKey??"",geminiModel:t.geminiModel??"gemini-2.5-flash",anthropicApiKey:t.anthropicApiKey??"",anthropicModel:t.anthropicModel??"claude-haiku-4-5-latest",...eK(t)}}function nK(t){const e=tK(t),[n,i]=O.useState(e.vendor),[r,l]=O.useState(e.apiKey),[c,d]=O.useState(e.gptModel),[f,h]=O.useState(e.googleApiKey),[m,y]=O.useState(e.geminiModel),[v,b]=O.useState(e.anthropicApiKey),[_,w]=O.useState(e.anthropicModel),[T,R]=O.useState(e.deeplApiKey),[C,A]=O.useState(e.deeplUseFree),[M,x]=O.useState(e.deeplFormality),[k,L]=O.useState(e.deeplPreserveFormatting),[N,U]=O.useState(e.deeplIgnoreTags),[K,Y]=O.useState(e.deeplNonSplittingTags),[se,ae]=O.useState(e.deeplSplittingTags),[ye,ve]=O.useState(e.deeplGlossaryId),[F,Z]=O.useState(e.deeplGlossaryPairs),ne={vendor:n,apiKey:r,gptModel:c,googleApiKey:f,geminiModel:m,anthropicApiKey:v,anthropicModel:_,deeplApiKey:T,deeplUseFree:C,deeplFormality:M,deeplPreserveFormatting:k,deeplIgnoreTags:N,deeplNonSplittingTags:K,deeplSplittingTags:se,deeplGlossaryId:ye,deeplGlossaryPairs:F},le={setVendor:O.useCallback(re=>i(re),[]),setApiKey:O.useCallback(re=>l(re),[]),setGptModel:O.useCallback(re=>d(re),[]),setGoogleApiKey:O.useCallback(re=>h(re),[]),setGeminiModel:O.useCallback(re=>y(re),[]),setAnthropicApiKey:O.useCallback(re=>b(re),[]),setAnthropicModel:O.useCallback(re=>w(re),[]),setDeeplApiKey:O.useCallback(re=>R(re),[]),setDeeplUseFree:O.useCallback(re=>A(re),[]),setDeeplFormality:O.useCallback(re=>x(re),[]),setDeeplPreserveFormatting:O.useCallback(re=>L(re),[]),setDeeplIgnoreTags:O.useCallback(re=>U(re),[]),setDeeplNonSplittingTags:O.useCallback(re=>Y(re),[]),setDeeplSplittingTags:O.useCallback(re=>ae(re),[]),setDeeplGlossaryId:O.useCallback(re=>ve(re),[]),setDeeplGlossaryPairs:O.useCallback(re=>Z(re),[])};return[ne,le]}function Xy({id:t,label:e,value:n,onChange:i,models:r,hint:l}){const c=O.useMemo(()=>r.map(f=>({label:f,value:f})),[r]),d=f=>{Array.isArray(f)||i(f?.value||n)};return D.jsx(Gt,{name:t,id:t,label:e,required:!0,hint:l,value:{label:n,value:n},selectInputProps:{options:c},onChange:d})}function aK({anthropicApiKey:t,setAnthropicApiKey:e,anthropicModel:n,setAnthropicModel:i,listOfAnthropicModels:r}){return D.jsxs(ki,{children:[D.jsx(us,{required:!0,name:"anthropicApiKey",id:"anthropicApiKey",label:"Anthropic API Key",value:t,onChange:l=>e(l),placeholder:"sk-ant-..."}),D.jsx(Xy,{id:"anthropicModel",label:"Claude Model",hint:"Recommended: claude-haiku-4-5-latest",value:n,onChange:i,models:r})]})}let Zw=0;function iK(t){if(!t.trim())return[];const e=t.split(/\r?\n|[;,]+/).map(i=>i.trim()).filter(Boolean),n=[];for(const i of e){const l=i.replace(/[→⇒–—]/g,"->").replace(/\s+/g,"").match(/^([a-zA-Z*]{1,5}(?:-[a-zA-Z]{2,4})?)->([a-zA-Z*]{1,5}(?:-[a-zA-Z]{2,4})?)(?:=|:)([\w-]+)$/);l&&n.push({source:l[1],target:l[2],glossaryId:l[3]})}return n}function sK(t){return t.filter(e=>e.source&&e.target&&e.glossaryId).map(e=>`${e.source}->${e.target}=${e.glossaryId}`).join(`
|
|
79
79
|
`)}function pA(t){return Zw+=1,{...t,rowId:`glossary-row-${Zw}`}}function Jw(t){return iK(t).map(pA)}function rK({value:t,onChange:e,siteLocales:n,glossaries:i,fetchStatus:r,fetchError:l,openConfirm:c}){const[d,f]=O.useState(()=>Jw(t)),h=O.useRef(t);O.useEffect(()=>{t!==h.current&&(h.current=t,f(Jw(t)))},[t]);const m=O.useCallback(x=>{f(x);const k=sK(x);h.current=k,e(k)},[e]),y=O.useMemo(()=>[{label:"All (*)",value:"*"},...n.map(x=>({label:x,value:x}))],[n]),v=O.useMemo(()=>i.map(x=>({label:`${x.name} (${x.source_lang}→${x.target_lang}, ${x.entry_count} entries)`,value:x.glossary_id})),[i]),b=O.useMemo(()=>new Set(i.map(x=>x.glossary_id)),[i]),_=O.useMemo(()=>new Set(n),[n]);function w(x){if(!(!x||x==="*")&&n.length>0&&!_.has(x))return`"${x}" is not a locale in this project`}function T(x){if(x&&r==="success"&&!b.has(x))return`"${x}" is not a valid glossary in your DeepL account`}const R=(x,k)=>{const L=d.map((N,U)=>U===x?{...N,...k}:N);m(L)},C=x=>{m(d.filter((k,L)=>L!==x))},A=async x=>{const k=d[x];if(!(k.source||k.target||k.glossaryId)){C(x);return}const N=k.source||"?",U=k.target||"?",K=i.find(ae=>ae.glossary_id===k.glossaryId),Y=K?K.name:k.glossaryId||"?";await c({title:"Remove glossary?",content:`Are you sure you wish to remove the glossary from ${N} to ${U} using the glossary "${Y}"?`,choices:[{label:"Remove",value:!0,intent:"negative"}],cancel:{label:"Cancel",value:!1}})&&C(x)},M=()=>{m([...d,pA({source:"",target:"",glossaryId:""})])};return D.jsxs("div",{children:[D.jsx("div",{style:{display:"flex",alignItems:"center",marginBottom:8},children:D.jsxs("label",{className:Xe.label,style:{display:"flex",alignItems:"center",margin:0},children:["Glossaries by language pair",D.jsxs("div",{className:Xe.tooltipContainer,children:["ⓘ",D.jsx("div",{className:`${Xe.tooltipText} ${Xe.leftAnchorTooltip}`,children:'Map specific language pairs to DeepL glossaries. Use "All (*)" as a wildcard to match any source or target locale.'})]})]})}),r==="error"&&l&&D.jsx("div",{className:Xe.inlineStatus,style:{color:"var(--color--ink-danger)",marginBottom:8},children:l}),d.map((x,k)=>{const L=w(x.source),N=w(x.target),U=T(x.glossaryId),K=x.glossaryId?v.find(ae=>ae.value===x.glossaryId)??{label:x.glossaryId,value:x.glossaryId}:null,Y=x.source?y.find(ae=>ae.value===x.source)??{label:x.source,value:x.source}:null,se=x.target?y.find(ae=>ae.value===x.target)??{label:x.target,value:x.target}:null;return D.jsxs("div",{style:{display:"flex",gap:8,alignItems:"start",marginBottom:8},children:[D.jsxs("div",{style:{flex:1,minWidth:0,border:"1px solid var(--color--border)",borderRadius:4,padding:"10px 12px"},children:[D.jsxs("div",{style:{display:"flex",gap:8},children:[D.jsx("div",{style:{flex:1,minWidth:0},children:D.jsx(Gt,{id:`glossarySource-${k}`,name:`glossarySource-${k}`,label:"From",placeholder:"Source",value:Y,error:L,selectInputProps:{options:y},onChange:ae=>{Array.isArray(ae)||R(k,{source:ae?.value??""})}})}),D.jsx("div",{style:{flex:1,minWidth:0},children:D.jsx(Gt,{id:`glossaryTarget-${k}`,name:`glossaryTarget-${k}`,label:"To",placeholder:"Target",value:se,error:N,selectInputProps:{options:y},onChange:ae=>{Array.isArray(ae)||R(k,{target:ae?.value??""})}})})]}),D.jsx("div",{style:{marginTop:6},children:D.jsx(Gt,{id:`glossaryId-${k}`,name:`glossaryId-${k}`,label:"Glossary",placeholder:r==="loading"?"Loading glossaries...":"Select glossary",value:K,error:U,selectInputProps:{options:v,isLoading:r==="loading"},onChange:ae=>{Array.isArray(ae)||R(k,{glossaryId:ae?.value??""})}})})]}),D.jsx("div",{style:{paddingTop:24,flexShrink:0},children:D.jsx(Jt,{type:"button",buttonType:"negative",buttonSize:"xxs",onClick:()=>A(k),children:"×"})})]},x.rowId)}),D.jsx("div",{style:{display:"flex",gap:8,marginTop:8},children:D.jsx(Jt,{type:"button",buttonType:"muted",buttonSize:"xs",onClick:M,children:"+ Add language pair"})})]})}const oK="https://cors-proxy.datocms.com";async function lK(t,e){const r=`${oK}/?url=${encodeURIComponent(`${e?"https://api-free.deepl.com":"https://api.deepl.com"}/v2/glossaries`)}`,l=await fetch(r,{method:"GET",headers:{Authorization:`DeepL-Auth-Key ${t}`}}),c=await l.json(),d=c&&typeof c=="object"?c:null;return d&&typeof d.message=="string"?{kind:"error",message:`Could not load glossaries: ${d.message}`}:l.ok?!d||!Array.isArray(d.glossaries)?{kind:"error",message:"Unexpected response from DeepL glossaries endpoint."}:{kind:"success",glossaries:d.glossaries.filter(h=>h.ready)}:{kind:"error",message:`Could not load glossaries (HTTP ${l.status}). Check your API key.`}}function uK(t,e){const[n,i]=O.useState([]),[r,l]=O.useState("idle"),[c,d]=O.useState(""),f=O.useRef(""),h=O.useRef(null),m=O.useCallback(async()=>{if(!t){i([]),l("idle");return}const y=`${t}:${e}`,v=y===f.current,b=y===h.current;if(!(v||b)){h.current=y,l("loading"),d("");try{const _=await lK(t,e);_.kind==="success"?(i(_.glossaries),l("success"),f.current=y):(i([]),l("error"),d(_.message),f.current="")}catch(_){i([]),l("error"),d(_ instanceof Error?_.message:"Failed to fetch glossaries."),f.current=""}finally{h.current=null}}},[t,e]);return O.useEffect(()=>{const y=`${t}:${e}`;t&&y!==f.current&&m()},[t,e,m]),{glossaries:n,fetchStatus:r,fetchError:c,refetch:m}}function cK(t){return t?"https://api-free.deepl.com":"https://api.deepl.com"}function dK(t){return t&&typeof t=="object"?t:null}async function fK(t,e){const n=`${cK(e)}/v2/translate`,i=`https://cors-proxy.datocms.com/?url=${encodeURIComponent(n)}`,r=await fetch(i,{method:"POST",headers:{"content-type":"application/json",Authorization:`DeepL-Auth-Key ${t}`},body:JSON.stringify({text:["Hello world"],target_lang:"DE"})});try{return{body:dK(await r.json()),parseFailed:!1,status:r.status,ok:r.ok}}catch{return{body:null,parseFailed:!0,status:r.status,ok:r.ok}}}function hK(t){if(!t||typeof t.message!="string")return;const e=t.message.toLowerCase();return e.includes("wrong endpoint")?'Your API key requires the DeepL Free endpoint. Enable "Use DeepL Free endpoint (api-free.deepl.com)" below, then try again.':e.includes("forbidden")?"The DeepL API key is invalid. Please check that you entered the correct key.":`DeepL error: ${t.message}`}function gK(t){const e=t?.translations;return!Array.isArray(e)||e.length===0||typeof e[0]?.text!="string"?null:e[0].text}function mK(t){return t?`API Key OK. DeepL responded: ${t.slice(0,zw)}${t.length>zw?"…":""}`:"API Key OK. DeepL responded (empty body)."}function pK(t){if(t.parseFailed)return{status:"error",message:`DeepL returned a non-JSON response (HTTP ${t.status}).`};const e=hK(t.body);if(e)return{status:"error",message:e};if(!t.ok)return{status:"error",message:`DeepL returned an error (HTTP ${t.status}). Verify your API key and endpoint settings.`};const n=gK(t.body);return n===null?{status:"error",message:"DeepL returned an unexpected response. The API key or endpoint may be misconfigured."}:{status:"success",message:mK(n)}}async function yK(t,e){return pK(await fK(t,e))}function vK({deeplApiKey:t,setDeeplApiKey:e,deeplUseFree:n,setDeeplUseFree:i,deeplFormality:r,setDeeplFormality:l,deeplPreserveFormatting:c,setDeeplPreserveFormatting:d,deeplIgnoreTags:f,setDeeplIgnoreTags:h,deeplNonSplittingTags:m,setDeeplNonSplittingTags:y,deeplSplittingTags:v,setDeeplSplittingTags:b,deeplGlossaryId:_,setDeeplGlossaryId:w,deeplGlossaryPairs:T,setDeeplGlossaryPairs:R,siteLocales:C,openConfirm:A}){const[M,x]=O.useState(!1),[k,L]=O.useState(!1),[N,U]=O.useState(!1),[K,Y]=O.useState(""),[se,ae]=O.useState("idle"),[ye,ve]=O.useState(!1),{glossaries:F,fetchStatus:Z,fetchError:ne}=uK(t,n),le=O.useMemo(()=>F.map(ee=>({label:`${ee.name} (${ee.source_lang}→${ee.target_lang}, ${ee.entry_count} entries)`,value:ee.glossary_id})),[F]),re=_?le.find(ee=>ee.value===_)??{label:_,value:_}:null,B=_&&Z==="success"&&!F.some(ee=>ee.glossary_id===_)?`"${_}" is not a valid glossary in your DeepL account`:void 0,G=ee=>{e(ee),se==="error"&&(ae("idle"),Y("")),ee.endsWith(":fx")&&!n?(i(!0),ve(!0)):!ee.endsWith(":fx")&&ye&&ve(!1)},oe=async()=>{if(!t){ae("error"),Y("Enter a DeepL API Key first.");return}Y(""),ae("idle"),U(!0);try{const ee=await yK(t,n);ae(ee.status),Y(ee.message)}catch(ee){ae("error"),Y(ee instanceof Error?ee.message:"An unexpected error occurred while testing the API key.")}finally{U(!1)}};return D.jsxs(D.Fragment,{children:[D.jsxs(ki,{children:[D.jsx(us,{required:!0,name:"deeplApiKey",id:"deeplApiKey",label:"DeepL API Key",value:t,onChange:G,placeholder:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:fx",error:se==="error"?K:void 0}),D.jsx("div",{className:Xe.buttonRow,children:D.jsx(Jt,{buttonType:"muted",disabled:N,onClick:oe,children:N?"Testing…":"Test API Key"})}),se==="success"&&K&&D.jsx("div",{className:Xe.inlineStatus,style:{color:"var(--color--ink-success)"},children:K}),D.jsx(Er,{name:"deeplUseFree",id:"deeplUseFree",label:"Use DeepL Free endpoint (api-free.deepl.com)",hint:ye?"We toggled this on automatically for you because it looks like you're using a free key ending in :fx":"You must use this if you're on the DeepL free plan",value:n,onChange:ee=>i(ee)}),D.jsx(Gt,{name:"deeplFormality",id:"deeplFormality",label:"Formality",value:{label:r,value:r},selectInputProps:{options:[{label:"default",value:"default"},{label:"more",value:"more"},{label:"less",value:"less"}]},onChange:ee=>{if(!Array.isArray(ee)){const ue=ee;ue?.value&&l(ue.value)}}})]}),D.jsx("div",{className:Xe.sectionSpacing,children:D.jsx(cd,{title:"Tag Settings",collapsible:{isOpen:M,onToggle:()=>x(ee=>!ee)},children:D.jsxs(ki,{children:[D.jsx(Er,{name:"deeplPreserveFormatting",id:"deeplPreserveFormatting",label:"Preserve formatting",value:c,onChange:d}),D.jsx(us,{name:"deeplIgnoreTags",id:"deeplIgnoreTags",label:"Ignore tags (CSV)",value:f,onChange:h}),D.jsx(us,{name:"deeplNonSplittingTags",id:"deeplNonSplittingTags",label:"Non-splitting tags (CSV)",value:m,onChange:y}),D.jsx(us,{name:"deeplSplittingTags",id:"deeplSplittingTags",label:"Splitting tags (CSV)",value:v,onChange:b})]})})}),D.jsx("div",{className:Xe.sectionSpacing,children:D.jsx(cd,{title:"Glossary Settings",collapsible:{isOpen:k,onToggle:()=>L(ee=>!ee)},children:D.jsxs(ki,{children:[D.jsx(Gt,{name:"deeplGlossaryId",id:"deeplGlossaryId",label:"Default glossary",hint:"Applied to all translations unless overridden by a language pair mapping below",placeholder:Z==="loading"?"Loading glossaries...":"None (no default glossary)",value:re,error:B,selectInputProps:{options:le,isClearable:!0,isLoading:Z==="loading"},onChange:ee=>{Array.isArray(ee)||w(ee?.value??"")}}),Z==="error"&&ne&&D.jsx("div",{className:Xe.inlineStatus,style:{color:"var(--color--ink-danger)"},children:ne}),D.jsx(rK,{value:T,onChange:R,siteLocales:C,glossaries:F,fetchStatus:Z,fetchError:ne,openConfirm:A})]})})})]})}function bK({googleApiKey:t,setGoogleApiKey:e,geminiModel:n,setGeminiModel:i,listOfGeminiModels:r}){return D.jsxs(ki,{children:[D.jsx(us,{required:!0,name:"googleApiKey",id:"googleApiKey",label:"Google API Key",value:t,onChange:l=>e(l),placeholder:"AIza..."}),D.jsx(Xy,{id:"geminiModel",label:"Gemini Model",hint:"Recommended: gemini-2.5-flash",value:n,onChange:i,models:r})]})}function SK({apiKey:t,setApiKey:e,gptModel:n,setGptModel:i,listOfModels:r}){return D.jsxs(ki,{children:[D.jsx(us,{required:!0,name:"openAIAPIKey",id:"openAIAPIKey",label:"OpenAI API Key",value:t,onChange:l=>e(l),placeholder:"sk-..."}),D.jsx(Xy,{id:"gptModel",label:"GPT Model",hint:"Recommended: gpt-5.4-mini",value:n,onChange:i,models:r})]})}const _K=["openai","google","anthropic","deepl"];function wK(t){if(!t||typeof t!="object")return!1;const e=t;return!(typeof e.gptModel!="string"||typeof e.apiKey!="string"||typeof e.prompt!="string"||typeof e.translateWholeRecord!="boolean"||typeof e.enableDebugging!="boolean"||!Array.isArray(e.translationFields)||!Array.isArray(e.modelsToBeExcludedFromThisPlugin)||!Array.isArray(e.rolesToBeExcludedFromThisPlugin)||!Array.isArray(e.apiKeysToBeExcludedFromThisPlugin)||e.vendor!==void 0&&!_K.includes(e.vendor))}async function TK(t,e,n,i){try{const r=await PH(t);e(r.length>0?r:["No compatible models found"]),r.length>0&&(i==="None"||!i)&&n(r[0])}catch(r){console.error("Error fetching OpenAI models:",r),e(["Invalid API Key"]),n("None")}}async function EK(t,e,n,i,r){if(t==="google"){if(!e){n(["Insert a valid Google API Key"]);return}try{const l=await BH(e);n(l.length>0?l:["No compatible models found"]),l.length>0&&!r&&i(l[0])}catch(l){console.error("Error fetching Gemini models:",l),n(["Invalid API Key"])}}}async function RK(t,e,n,i,r){if(t==="anthropic"){if(!e){n(["Insert a valid Anthropic API Key"]);return}try{const l=await DH(e);n(l.length>0?l:["No compatible models found"]),l.length>0&&!r&&i(l[0])}catch(l){console.error("Error fetching Claude models:",l),n(["Invalid API Key"])}}}function CK(t,e){const n=new Set(t.map(r=>r.id)),i=e.filter(r=>!n.has(r.id));return[...t,...i]}function AK(t,e,n){e.loadItemTypeFields(t).then(i=>{n(r=>{const l=e.itemTypes[t],c=l?.attributes.modular_block,d=l?.attributes.name,f=i.map(h=>({id:h.id,name:h.attributes.label,model:c?`${d} block`:d??""}));return CK(r,f)})}).catch(i=>{console.error(`Failed to load fields for item type ${t}:`,i)})}const xK=async({ctx:t,params:e,setIsLoading:n})=>{n(!0);try{await t.updatePluginParameters(e),t.notice("Plugin options updated successfully!").then()}catch(i){console.error("Error updating plugin parameters:",i),t.alert("Failed to update plugin options. Please try again.")}finally{n(!1)}};function OK(t,e,n,i,r,l,c,d){return t==="openai"?n==="None"||!e:t==="google"?!i||!r:t==="anthropic"?!l||!c:t==="deepl"?!d:!1}function MK(t,e,n,i,r,l,c){return[...t].sort().join(",")===Object.keys(Li).sort().join(",")&&e===!0&&n===!0&&i===Sl&&r.length===0&&l.length===0&&c.length===0}function Qw(t){return t==="openai"?"OpenAI (ChatGPT)":t==="google"?"Google (Gemini)":t==="anthropic"?"Anthropic (Claude)":"DeepL"}function kK(t){const e=Array.isArray(t)?t[0]:t;if(!e||typeof e!="object"||!("value"in e))return;const n=e.value;if(n==="openai"||n==="google"||n==="anthropic"||n==="deepl")return n}function LK(t){const{vendor:e,apiKey:n,googleApiKey:i,geminiModel:r,anthropicApiKey:l,anthropicModel:c,gptModel:d,deeplUseFree:f,deeplFormality:h,deeplPreserveFormatting:m,deeplIgnoreTags:y,deeplNonSplittingTags:v,deeplSplittingTags:b,deeplApiKey:_,deeplGlossaryId:w,deeplGlossaryPairs:T,translationFields:R,translateWholeRecord:C,translateBulkRecords:A,prompt:M,enableDebugging:x,modelsToBeExcluded:k,rolesToBeExcluded:L,apiKeysToBeExcluded:N,pluginParams:U,normalizeList:K}=t,Y=[...R].sort().join(","),se=U.translationFields?[...U.translationFields].sort().join(","):Object.keys(Li).sort().join(","),ae=DK({vendor:e,apiKey:n,googleApiKey:i,geminiModel:r,anthropicApiKey:l,anthropicModel:c,gptModel:d},U),ye=IK({deeplUseFree:f,deeplFormality:h,deeplPreserveFormatting:m,deeplIgnoreTags:y,deeplNonSplittingTags:v,deeplSplittingTags:b,deeplApiKey:_,deeplGlossaryId:w,deeplGlossaryPairs:T},U),ve=Y!==se||C!==(U.translateWholeRecord??!0)||A!==(U.translateBulkRecords??!0)||M!==(U.prompt??Sl)||x!==(U.enableDebugging??!1),F=[...k].sort().join(",")!==K(U.modelsToBeExcludedFromThisPlugin)||[...L].sort().join(",")!==K(U.rolesToBeExcludedFromThisPlugin)||[...N].sort().join(",")!==K(U.apiKeysToBeExcludedFromThisPlugin);return ae||ye||ve||F}function DK(t,e){return t.vendor!==(e.vendor??"openai")||t.apiKey!==(e.apiKey??"")||t.googleApiKey!==(e.googleApiKey??"")||t.geminiModel!==(e.geminiModel??"gemini-2.5-flash")||t.anthropicApiKey!==(e.anthropicApiKey??"")||t.anthropicModel!==(e.anthropicModel??"claude-haiku-4-5-latest")||t.gptModel!==(e.gptModel??"None")}function IK(t,e){return t.deeplUseFree!==(e.deeplUseFree??!1)||t.deeplFormality!==(e.deeplFormality??"default")||t.deeplPreserveFormatting!==(e.deeplPreserveFormatting??!0)||t.deeplIgnoreTags!==(e.deeplIgnoreTags??"notranslate,ph")||t.deeplNonSplittingTags!==(e.deeplNonSplittingTags??"a,code,pre,strong,em,ph,notranslate")||t.deeplSplittingTags!==(e.deeplSplittingTags??"")||t.deeplApiKey!==(e.deeplApiKey??"")||t.deeplGlossaryId!==(e.deeplGlossaryId??"")||t.deeplGlossaryPairs!==(e.deeplGlossaryPairs??"")}function BK({ctx:t}){const e=t.plugin.attributes.parameters,[n,i]=nK(e),[r,l]=QH(e,Sl),[c,d]=JH(e),{vendor:f,apiKey:h,gptModel:m,googleApiKey:y,geminiModel:v,anthropicApiKey:b,anthropicModel:_,deeplApiKey:w,deeplUseFree:T,deeplFormality:R,deeplPreserveFormatting:C,deeplIgnoreTags:A,deeplNonSplittingTags:M,deeplSplittingTags:x,deeplGlossaryId:k,deeplGlossaryPairs:L}=n,{setVendor:N,setApiKey:U,setGptModel:K,setGoogleApiKey:Y,setGeminiModel:se,setAnthropicApiKey:ae,setAnthropicModel:ye,setDeeplApiKey:ve,setDeeplUseFree:F,setDeeplFormality:Z,setDeeplPreserveFormatting:ne,setDeeplIgnoreTags:le,setDeeplNonSplittingTags:re,setDeeplSplittingTags:B,setDeeplGlossaryId:G,setDeeplGlossaryPairs:oe}=i,{translationFields:ee,translateWholeRecord:ue,translateBulkRecords:fe,prompt:Ee,enableDebugging:De}=r,{setTranslationFields:$e,setTranslateWholeRecord:Tn,setTranslateBulkRecords:ta,setPrompt:_a,setEnableDebugging:Ss}=l,{modelsToBeExcluded:Ut,rolesToBeExcluded:$n,apiKeysToBeExcluded:wa,showExclusionRules:Tf,hasExclusionRules:Vl}=c,{setModelsToBeExcluded:_s,setRolesToBeExcluded:ws,setApiKeysToBeExcluded:Ts,setShowExclusionRules:Ef}=d,[Gr,Ht]=O.useState(!1),[$l,Hr]=O.useState(["Insert a valid OpenAI API Key"]),[ql,Es]=O.useState(["Insert a valid Google API Key"]),[Rf,Gl]=O.useState(["Insert a valid Anthropic API Key"]),[Cf,Af]=O.useState([]);O.useEffect(()=>{if(!(f!=="openai"||!h))for(const je in t.itemTypes)AK(je,t,Af)},[t,h,f]),O.useEffect(()=>{f==="openai"&&(h?TK(h,Hr,K,m).catch(console.error):(Hr(["Insert a valid OpenAI API Key"]),K("None")))},[h,f,m,K]),O.useEffect(()=>{EK(f,y,Es,se,e.geminiModel).catch(console.error)},[f,y,e.geminiModel,se]),O.useEffect(()=>{RK(f,b,Gl,ye,e.anthropicModel).catch(console.error)},[f,b,e.anthropicModel,ye]);const Ja=O.useCallback(je=>Array.isArray(je)?[...je].sort().join(","):"",[]),Kt=O.useMemo(()=>LK({vendor:f,apiKey:h,googleApiKey:y,geminiModel:v,anthropicApiKey:b,anthropicModel:_,gptModel:m,deeplUseFree:T,deeplFormality:R,deeplPreserveFormatting:C,deeplIgnoreTags:A,deeplNonSplittingTags:M,deeplSplittingTags:x,deeplApiKey:w,deeplGlossaryId:k,deeplGlossaryPairs:L,translationFields:ee,translateWholeRecord:ue,translateBulkRecords:fe,prompt:Ee,enableDebugging:De,modelsToBeExcluded:Ut,rolesToBeExcluded:$n,apiKeysToBeExcluded:wa,pluginParams:e,normalizeList:Ja}),[f,h,y,v,b,_,m,ee,ue,fe,Ee,T,R,C,A,M,x,w,k,L,Ut,$n,wa,De,Ja,e]),na=O.useMemo(()=>Object.entries(t.itemTypes).map(([je,xt])=>({apiKey:xt?.attributes.api_key,name:xt?.attributes.name,isBlock:xt?.attributes.modular_block})).filter(je=>!je.isBlock),[t.itemTypes]),[Yt,xf]=O.useState([]),[Of]=O.useState(t.site.attributes.locales);O.useEffect(()=>{tf({apiToken:t.currentUserAccessToken,environment:t.environment,baseUrl:t.cmaBaseUrl}).roles.list().then(xt=>{xf(xt.map(Ta=>({id:Ta.id,name:Ta.name})))})},[t.currentUserAccessToken,t.environment,t.cmaBaseUrl]);const Mf=OK(f,h,m,y,v,b,_,w)||MK(ee,ue,fe,Ee,Ut,$n,wa);return D.jsx(qa,{ctx:t,children:D.jsxs("div",{children:[D.jsx(Gt,{name:"vendor",id:"vendor",label:"AI Vendor",value:{label:Qw(f),value:f},selectInputProps:{options:[{label:"OpenAI (ChatGPT)",value:"openai"},{label:"Google (Gemini)",value:"google"},{label:"Anthropic (Claude)",value:"anthropic"},{label:"DeepL",value:"deepl"}]},onChange:je=>{const xt=kK(je);xt&&N(xt)}}),D.jsx("div",{className:Xe.sectionSpacing,children:D.jsx(cd,{title:`Vendor-specific settings for ${Qw(f)}`,children:f==="openai"?D.jsx(SK,{apiKey:h,setApiKey:U,gptModel:m,setGptModel:K,listOfModels:$l}):f==="google"?D.jsx(bK,{googleApiKey:y,setGoogleApiKey:Y,geminiModel:v,setGeminiModel:se,listOfGeminiModels:ql}):f==="anthropic"?D.jsx(aK,{anthropicApiKey:b,setAnthropicApiKey:ae,anthropicModel:_,setAnthropicModel:ye,listOfAnthropicModels:Rf}):D.jsx(vK,{deeplApiKey:w,setDeeplApiKey:ve,deeplUseFree:T,setDeeplUseFree:F,deeplFormality:R,setDeeplFormality:Z,deeplPreserveFormatting:C,setDeeplPreserveFormatting:ne,deeplIgnoreTags:A,setDeeplIgnoreTags:le,deeplNonSplittingTags:M,setDeeplNonSplittingTags:re,deeplSplittingTags:x,setDeeplSplittingTags:B,deeplGlossaryId:k,setDeeplGlossaryId:G,deeplGlossaryPairs:L,setDeeplGlossaryPairs:oe,siteLocales:Of,openConfirm:t.openConfirm})})}),D.jsx("div",{className:Xe.sectionSpacing,children:D.jsxs(cd,{title:"General translation settings",children:[f!=="deepl"&&D.jsxs("div",{className:Xe.promptContainer,children:[D.jsxs("label",{className:Xe.label,style:{display:"flex",alignItems:"center"},htmlFor:"translation-prompt",children:["Translation prompt*",D.jsxs("div",{className:Xe.tooltipContainer,children:["ⓘ",D.jsx("div",{className:`${Xe.tooltipText} ${Xe.leftAnchorTooltip}`,children:"Use {fieldValue}, {fromLocale}, and {toLocale} in your prompt to reference the content and source/target languages. Changing the prompt can break the plugin, so proceed with caution."})]})]}),D.jsx(kH,{required:!0,className:Xe.textarea,placeholder:"Enter your prompt here",value:Ee,onChange:je=>_a(je.target.value),id:"translation-prompt","aria-labelledby":"translation-prompt"})]}),D.jsx(Gt,{name:"fieldsWithTranslationOption",id:"fieldsWithTranslationOption",label:"Fields that can be translated",value:ee.map(je=>({label:Li[je],value:je})),selectInputProps:{isMulti:!0,options:Object.entries(Li).map(([je,xt])=>({label:xt,value:je}))},onChange:je=>{const xt=je.map(Ta=>Ta.value);$e(xt)}}),D.jsxs(ki,{children:[D.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[D.jsx(Er,{name:"translateWholeRecord",id:"translateWholeRecord",label:"Allow translation of the whole record from the sidebar",value:ue,onChange:je=>Tn(je)}),D.jsxs("div",{className:Xe.tooltipContainer,children:[D.jsx("span",{role:"img","aria-label":"Information about sidebar translation",children:"ⓘ"}),D.jsxs("div",{className:`${Xe.tooltipText} ${Xe.imageTooltip}`,children:[D.jsx("img",{src:"/public/assets/sidebar-translation-example.png",alt:"Screenshot showing the sidebar translation feature with locale selection and translate button",style:{width:"100%",maxWidth:"420px"}}),D.jsx("div",{style:{marginTop:"10px",fontWeight:"bold"},children:"Sidebar Translation"}),D.jsx("div",{style:{fontSize:"12px"},children:"Translate an entire record from the sidebar panel"})]})]})]}),D.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[D.jsx(Er,{name:"translateBulkRecords",id:"translateBulkRecords",label:"Allow bulk records translation in tabular view",value:fe,onChange:je=>ta(je)}),D.jsxs("div",{className:Xe.tooltipContainer,children:[D.jsx("span",{role:"img","aria-label":"Information about bulk translation",children:"ⓘ"}),D.jsxs("div",{className:`${Xe.tooltipText} ${Xe.imageTooltip}`,children:[D.jsx("img",{src:"/public/assets/bulk-translation-example.png",alt:"Screenshot showing bulk translation of multiple records in tabular view",style:{width:"100%",maxWidth:"420px"}}),D.jsx("div",{style:{marginTop:"10px",fontWeight:"bold"},children:"Bulk Translation"}),D.jsx("div",{style:{fontSize:"12px"},children:"Translate multiple records at once in the tabular view"})]})]})]}),D.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[D.jsx(Er,{name:"enableDebugging",id:"enableDebugging",label:"Enable debug logging",value:De,onChange:je=>Ss(je)}),D.jsxs("div",{className:Xe.tooltipContainer,children:["ⓘ",D.jsx("div",{className:Xe.tooltipText,children:"When enabled, detailed logs of translation requests and responses will be displayed in the browser console. This helps with troubleshooting and understanding how the plugin processes content."})]})]})]}),D.jsx(ZH,{showExclusionRules:Tf,setShowExclusionRules:Ef,hasExclusionRules:Vl,modelsToBeExcluded:Ut,setModelsToBeExcluded:_s,rolesToBeExcluded:$n,setRolesToBeExcluded:ws,apiKeysToBeExcluded:wa,setApiKeysToBeExcluded:Ts,availableModels:na,roles:Yt,listOfFields:Cf})]})}),D.jsxs("div",{className:Xe.buttons,children:[D.jsx(Jt,{fullWidth:!0,disabled:Mf,buttonType:"muted",onClick:()=>{N("openai");const je=$l[0];K(je&&je!=="Insert a valid OpenAI API Key"&&je!=="Invalid API Key"?je:"None"),$e(Object.keys(Li)),Tn(!0),ta(!0),_a(Sl),_s([]),ws([]),Ts([]),t.notice(`<h1>Plugin options restored to defaults</h1>
|
|
80
|
-
<p>Save to apply changes</p>`)},children:"Restore to defaults"}),D.jsxs(Jt,{disabled:!Kt||Gr,fullWidth:!0,buttonType:"primary",onClick:()=>xK({ctx:t,params:{vendor:f,apiKey:h,gptModel:m,googleApiKey:y,geminiModel:v,anthropicApiKey:b,anthropicModel:_,deeplApiKey:w,deeplEndpoint:e.deeplEndpoint??"auto",deeplUseFree:T,deeplFormality:R,deeplPreserveFormatting:C,deeplIgnoreTags:A,deeplNonSplittingTags:M,deeplSplittingTags:x,deeplGlossaryId:k,deeplGlossaryPairs:L,translationFields:ee,translateWholeRecord:ue,translateBulkRecords:fe,prompt:Ee,modelsToBeExcludedFromThisPlugin:Ut,rolesToBeExcludedFromThisPlugin:$n,apiKeysToBeExcludedFromThisPlugin:wa,enableDebugging:De},setIsLoading:Ht}),children:[Gr?"Saving...":"Save",Gr&&D.jsx(ef,{size:24})]})]})]})})}const NK="_page_1vzyn_1",PK="_container_1vzyn_12",jK="_card_1vzyn_17",zK="_cardHeader_1vzyn_39",FK="_cardTitle_1vzyn_45",UK="_cardCaption_1vzyn_52",VK="_section_1vzyn_59",$K="_localeRow_1vzyn_73",qK="_localeArrow_1vzyn_80",GK="_actions_1vzyn_107",HK="_helperText_1vzyn_113",KK="_statusReady_1vzyn_119",YK="_loadingOverlay_1vzyn_129",XK="_loadingText_1vzyn_141",WK="_footerNote_1vzyn_146",It={page:NK,container:PK,card:jK,cardHeader:zK,cardTitle:FK,cardCaption:UK,section:VK,localeRow:$K,localeArrow:qK,actions:GK,helperText:HK,statusReady:KK,loadingOverlay:YK,loadingText:XK,footerNote:WK};function ZK({ctx:t}){const[e,n]=O.useState([]),[i,r]=O.useState([]),[l,c]=O.useState([]),[d,f]=O.useState(null),[h,m]=O.useState(null),[y,v]=O.useState(!0);O.useEffect(()=>{async function A(){if(!t.currentUserAccessToken){t.alert("No access token found"),v(!1);return}try{const M=rp(t.currentUserAccessToken,t.environment,t.cmaBaseUrl),L=(await M.itemTypes.list()).filter(K=>!K.modular_block).map(K=>({label:K.name,value:K.id}));n(L);const U=(await M.site.find()).locales.map(K=>({label:K,value:K}));c(U),U.length>0&&f(U[0]),v(!1)}catch(M){console.error("Error loading data:",M),t.alert(`Error loading data: ${M instanceof Error?M.message:String(M)}`),v(!1)}}A()},[t]);function b(A){return!d||!h||i.length===0?(t.alert("Please select source locale, target locale, and at least one model"),!1):d.value===h.value?(t.alert("Source and target locales must be different"),!1):t.currentUserAccessToken?cl(A)?!0:(t.alert("Please configure valid credentials for the selected AI vendor in the plugin settings"),!1):(t.alert("No access token found"),!1)}function _(A,M){A.completed?t.notice(`Successfully translated ${M} record(s) from ${d?.value} to ${h?.value}`):A.canceled?t.notice(`Translation from ${d?.value} to ${h?.value} was canceled`):t.alert("The bulk translation had errors and did not complete successfully.")}const w=async()=>{const A=t.plugin.attributes.parameters;if(b(A))try{const M=rp(t.currentUserAccessToken,t.environment,t.cmaBaseUrl),x=[];v(!0);async function k(N){const U=M.items.listPagedIterator({filter:{type:N},version:"current"});for await(const K of U)x.push(K.id)}if(await Promise.all(i.map(N=>k(N.value))),v(!1),x.length===0){t.alert("No records found in the selected models");return}const L=t.openModal({id:"translationProgressModal",title:"Translation Progress",width:"l",parameters:{totalRecords:x.length,fromLocale:d?.value,toLocale:h?.value,accessToken:t.currentUserAccessToken,pluginParams:A,itemIds:x}});try{const N=await L;_(N,x.length)}catch(N){Rd(N,A.vendor,t)}}catch(M){v(!1),Rd(M,A.vendor,t)}},T=A=>{A&&!Array.isArray(A)&&f(A)},R=A=>{A&&!Array.isArray(A)&&m(A)},C=A=>{Array.isArray(A)&&r([...A])};return D.jsx(qa,{ctx:t,children:D.jsxs("div",{className:It.page,children:[D.jsx("div",{className:It.container,children:D.jsxs("div",{className:It.card,children:[D.jsxs("div",{className:It.cardHeader,children:[D.jsx("h1",{className:It.cardTitle,children:"AI Bulk Translations"}),D.jsx("p",{className:It.cardCaption,children:"Select languages and models to perform bulk translations."})]}),y&&D.jsxs("div",{className:It.loadingOverlay,children:[D.jsx(ef,{size:40}),D.jsx("div",{className:It.loadingText,children:"Loading languages and models..."})]}),D.jsx("div",{className:It.section,children:D.jsxs("div",{className:It.localeRow,children:[D.jsx("div",{children:D.jsx(Gt,{name:"sourceLocale",id:"sourceLocale",label:"Source Language",hint:"Translate from",value:d,selectInputProps:{options:l},onChange:T})}),D.jsx("div",{className:It.localeArrow,"aria-hidden":!0,children:"→"}),D.jsx("div",{children:D.jsx(Gt,{name:"targetLocale",id:"targetLocale",label:"Target Language",hint:"Translate to",value:h,selectInputProps:{options:l.filter(A=>A.value!==d?.value)},onChange:R})})]})}),D.jsxs("div",{className:It.section,children:[D.jsx(Gt,{name:"selectedModels",id:"selectedModels",label:"Models to Translate",hint:"Select one or more models to translate",value:i,selectInputProps:{isMulti:!0,options:e},onChange:C}),i.length>0&&D.jsxs("div",{className:It.helperText,children:["Selected ",i.length," ",i.length===1?"model":"models"]})]}),D.jsxs("div",{className:It.actions,children:[D.jsx(Jt,{buttonType:"primary",onClick:w,disabled:!d||!h||i.length===0,fullWidth:!0,children:"Start Bulk Translation"}),d&&h&&i.length>0&&D.jsxs("div",{className:`${It.helperText} ${It.statusReady}`,children:["Ready to translate from ",d.label," to"," ",h.label]})]})]})}),D.jsx("div",{className:It.footerNote,children:"Translations are performed using AI. Review content after translation."})]})})}function JK({ctx:t}){return D.jsx(qa,{ctx:t,children:"Loading..."})}const Wy=O.createContext({});function Zy(t){const e=O.useRef(null);return e.current===null&&(e.current=t()),e.current}const QK=typeof window<"u",yA=QK?O.useLayoutEffect:O.useEffect,yf=O.createContext(null);function Jy(t,e){t.indexOf(e)===-1&&t.push(e)}function Pd(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Sa=(t,e,n)=>n>e?e:n<t?t:n;let Qy=()=>{};const Ii={},vA=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);function bA(t){return typeof t=="object"&&t!==null}const SA=t=>/^0[^.\s]+$/u.test(t);function _A(t){let e;return()=>(e===void 0&&(e=t()),e)}const Vn=t=>t,eY=(t,e)=>n=>e(t(n)),jl=(...t)=>t.reduce(eY),Cl=(t,e,n)=>{const i=e-t;return i===0?1:(n-t)/i};class ev{constructor(){this.subscriptions=[]}add(e){return Jy(this.subscriptions,e),()=>Pd(this.subscriptions,e)}notify(e,n,i){const r=this.subscriptions.length;if(r)if(r===1)this.subscriptions[0](e,n,i);else for(let l=0;l<r;l++){const c=this.subscriptions[l];c&&c(e,n,i)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const wn=t=>t*1e3,Un=t=>t/1e3;function wA(t,e){return e?t*(1e3/e):0}const TA=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t,tY=1e-7,nY=12;function aY(t,e,n,i,r){let l,c,d=0;do c=e+(n-e)/2,l=TA(c,i,r)-t,l>0?n=c:e=c;while(Math.abs(l)>tY&&++d<nY);return c}function zl(t,e,n,i){if(t===e&&n===i)return Vn;const r=l=>aY(l,0,1,t,n);return l=>l===0||l===1?l:TA(r(l),e,i)}const EA=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,RA=t=>e=>1-t(1-e),CA=zl(.33,1.53,.69,.99),tv=RA(CA),AA=EA(tv),xA=t=>t>=1?1:(t*=2)<1?.5*tv(t):.5*(2-Math.pow(2,-10*(t-1))),nv=t=>1-Math.sin(Math.acos(t)),OA=RA(nv),MA=EA(nv),iY=zl(.42,0,1,1),sY=zl(0,0,.58,1),kA=zl(.42,0,.58,1),rY=t=>Array.isArray(t)&&typeof t[0]!="number",LA=t=>Array.isArray(t)&&typeof t[0]=="number",oY={linear:Vn,easeIn:iY,easeInOut:kA,easeOut:sY,circIn:nv,circInOut:MA,circOut:OA,backIn:tv,backInOut:AA,backOut:CA,anticipate:xA},lY=t=>typeof t=="string",eT=t=>{if(LA(t)){Qy(t.length===4);const[e,n,i,r]=t;return zl(e,n,i,r)}else if(lY(t))return oY[t];return t},kc=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function uY(t,e){let n=new Set,i=new Set,r=!1,l=!1;const c=new WeakSet;let d={delta:0,timestamp:0,isProcessing:!1};function f(m){c.has(m)&&(h.schedule(m),t()),m(d)}const h={schedule:(m,y=!1,v=!1)=>{const _=v&&r?n:i;return y&&c.add(m),_.add(m),m},cancel:m=>{i.delete(m),c.delete(m)},process:m=>{if(d=m,r){l=!0;return}r=!0;const y=n;n=i,i=y,n.forEach(f),n.clear(),r=!1,l&&(l=!1,h.process(m))}};return h}const cY=40;function DA(t,e){let n=!1,i=!0;const r={delta:0,timestamp:0,isProcessing:!1},l=()=>n=!0,c=kc.reduce((A,M)=>(A[M]=uY(l),A),{}),{setup:d,read:f,resolveKeyframes:h,preUpdate:m,update:y,preRender:v,render:b,postRender:_}=c,w=()=>{const A=Ii.useManualTiming,M=A?r.timestamp:performance.now();n=!1,A||(r.delta=i?1e3/60:Math.max(Math.min(M-r.timestamp,cY),1)),r.timestamp=M,r.isProcessing=!0,d.process(r),f.process(r),h.process(r),m.process(r),y.process(r),v.process(r),b.process(r),_.process(r),r.isProcessing=!1,n&&e&&(i=!1,t(w))},T=()=>{n=!0,i=!0,r.isProcessing||t(w)};return{schedule:kc.reduce((A,M)=>{const x=c[M];return A[M]=(k,L=!1,N=!1)=>(n||T(),x.schedule(k,L,N)),A},{}),cancel:A=>{for(let M=0;M<kc.length;M++)c[kc[M]].cancel(A)},state:r,steps:c}}const{schedule:nt,cancel:Bi,state:Nt,steps:Em}=DA(typeof requestAnimationFrame<"u"?requestAnimationFrame:Vn,!0);let ed;function dY(){ed=void 0}const Qt={now:()=>(ed===void 0&&Qt.set(Nt.isProcessing||Ii.useManualTiming?Nt.timestamp:performance.now()),ed),set:t=>{ed=t,queueMicrotask(dY)}},IA=t=>e=>typeof e=="string"&&e.startsWith(t),BA=IA("--"),fY=IA("var(--"),av=t=>fY(t)?hY.test(t.split("/*")[0].trim()):!1,hY=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function tT(t){return typeof t!="string"?!1:t.split("/*")[0].includes("var(--")}const Vr={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},Al={...Vr,transform:t=>Sa(0,1,t)},Lc={...Vr,default:1},dl=t=>Math.round(t*1e5)/1e5,iv=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function gY(t){return t==null}const mY=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,sv=(t,e)=>n=>!!(typeof n=="string"&&mY.test(n)&&n.startsWith(t)||e&&!gY(n)&&Object.prototype.hasOwnProperty.call(n,e)),NA=(t,e,n)=>i=>{if(typeof i!="string")return i;const[r,l,c,d]=i.match(iv);return{[t]:parseFloat(r),[e]:parseFloat(l),[n]:parseFloat(c),alpha:d!==void 0?parseFloat(d):1}},pY=t=>Sa(0,255,t),Rm={...Vr,transform:t=>Math.round(pY(t))},hs={test:sv("rgb","red"),parse:NA("red","green","blue"),transform:({red:t,green:e,blue:n,alpha:i=1})=>"rgba("+Rm.transform(t)+", "+Rm.transform(e)+", "+Rm.transform(n)+", "+dl(Al.transform(i))+")"};function yY(t){let e="",n="",i="",r="";return t.length>5?(e=t.substring(1,3),n=t.substring(3,5),i=t.substring(5,7),r=t.substring(7,9)):(e=t.substring(1,2),n=t.substring(2,3),i=t.substring(3,4),r=t.substring(4,5),e+=e,n+=n,i+=i,r+=r),{red:parseInt(e,16),green:parseInt(n,16),blue:parseInt(i,16),alpha:r?parseInt(r,16)/255:1}}const xp={test:sv("#"),parse:yY,transform:hs.transform},Fl=t=>({test:e=>typeof e=="string"&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}),xi=Fl("deg"),ba=Fl("%"),ge=Fl("px"),vY=Fl("vh"),bY=Fl("vw"),nT={...ba,parse:t=>ba.parse(t)/100,transform:t=>ba.transform(t*100)},Sr={test:sv("hsl","hue"),parse:NA("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:n,alpha:i=1})=>"hsla("+Math.round(t)+", "+ba.transform(dl(e))+", "+ba.transform(dl(n))+", "+dl(Al.transform(i))+")"},vt={test:t=>hs.test(t)||xp.test(t)||Sr.test(t),parse:t=>hs.test(t)?hs.parse(t):Sr.test(t)?Sr.parse(t):xp.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?hs.transform(t):Sr.transform(t),getAnimatableNone:t=>{const e=vt.parse(t);return e.alpha=0,vt.transform(e)}},SY=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function _Y(t){return isNaN(t)&&typeof t=="string"&&(t.match(iv)?.length||0)+(t.match(SY)?.length||0)>0}const PA="number",jA="color",wY="var",TY="var(",aT="${}",EY=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Pr(t){const e=t.toString(),n=[],i={color:[],number:[],var:[]},r=[];let l=0;const d=e.replace(EY,f=>(vt.test(f)?(i.color.push(l),r.push(jA),n.push(vt.parse(f))):f.startsWith(TY)?(i.var.push(l),r.push(wY),n.push(f)):(i.number.push(l),r.push(PA),n.push(parseFloat(f))),++l,aT)).split(aT);return{values:n,split:d,indexes:i,types:r}}function RY(t){return Pr(t).values}function zA({split:t,types:e}){const n=t.length;return i=>{let r="";for(let l=0;l<n;l++)if(r+=t[l],i[l]!==void 0){const c=e[l];c===PA?r+=dl(i[l]):c===jA?r+=vt.transform(i[l]):r+=i[l]}return r}}function CY(t){return zA(Pr(t))}const AY=t=>typeof t=="number"?0:vt.test(t)?vt.getAnimatableNone(t):t,xY=(t,e)=>typeof t=="number"?e?.trim().endsWith("/")?t:0:AY(t);function OY(t){const e=Pr(t);return zA(e)(e.values.map((i,r)=>xY(i,e.split[r])))}const Qn={test:_Y,parse:RY,createTransformer:CY,getAnimatableNone:OY};function Cm(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function MY({hue:t,saturation:e,lightness:n,alpha:i}){t/=360,e/=100,n/=100;let r=0,l=0,c=0;if(!e)r=l=c=n;else{const d=n<.5?n*(1+e):n+e-n*e,f=2*n-d;r=Cm(f,d,t+1/3),l=Cm(f,d,t),c=Cm(f,d,t-1/3)}return{red:Math.round(r*255),green:Math.round(l*255),blue:Math.round(c*255),alpha:i}}function jd(t,e){return n=>n>0?e:t}const st=(t,e,n)=>t+(e-t)*n,Am=(t,e,n)=>{const i=t*t,r=n*(e*e-i)+i;return r<0?0:Math.sqrt(r)},kY=[xp,hs,Sr],LY=t=>kY.find(e=>e.test(t));function iT(t){const e=LY(t);if(!e)return!1;let n=e.parse(t);return e===Sr&&(n=MY(n)),n}const sT=(t,e)=>{const n=iT(t),i=iT(e);if(!n||!i)return jd(t,e);const r={...n};return l=>(r.red=Am(n.red,i.red,l),r.green=Am(n.green,i.green,l),r.blue=Am(n.blue,i.blue,l),r.alpha=st(n.alpha,i.alpha,l),hs.transform(r))},Op=new Set(["none","hidden"]);function DY(t,e){return Op.has(t)?n=>n<=0?t:e:n=>n>=1?e:t}function IY(t,e){return n=>st(t,e,n)}function rv(t){return typeof t=="number"?IY:typeof t=="string"?av(t)?jd:vt.test(t)?sT:PY:Array.isArray(t)?FA:typeof t=="object"?vt.test(t)?sT:BY:jd}function FA(t,e){const n=[...t],i=n.length,r=t.map((l,c)=>rv(l)(l,e[c]));return l=>{for(let c=0;c<i;c++)n[c]=r[c](l);return n}}function BY(t,e){const n={...t,...e},i={};for(const r in n)t[r]!==void 0&&e[r]!==void 0&&(i[r]=rv(t[r])(t[r],e[r]));return r=>{for(const l in i)n[l]=i[l](r);return n}}function NY(t,e){const n=[],i={color:0,var:0,number:0};for(let r=0;r<e.values.length;r++){const l=e.types[r],c=t.indexes[l][i[l]],d=t.values[c]??0;n[r]=d,i[l]++}return n}const PY=(t,e)=>{const n=Qn.createTransformer(e),i=Pr(t),r=Pr(e);return i.indexes.var.length===r.indexes.var.length&&i.indexes.color.length===r.indexes.color.length&&i.indexes.number.length>=r.indexes.number.length?Op.has(t)&&!r.values.length||Op.has(e)&&!i.values.length?DY(t,e):jl(FA(NY(i,r),r.values),n):jd(t,e)};function UA(t,e,n){return typeof t=="number"&&typeof e=="number"&&typeof n=="number"?st(t,e,n):rv(t)(t,e)}const jY=t=>{const e=({timestamp:n})=>t(n);return{start:(n=!0)=>nt.update(e,n),stop:()=>Bi(e),now:()=>Nt.isProcessing?Nt.timestamp:Qt.now()}},VA=(t,e,n=10)=>{let i="";const r=Math.max(Math.round(e/n),2);for(let l=0;l<r;l++)i+=Math.round(t(l/(r-1))*1e4)/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},zd=2e4;function ov(t){let e=0;const n=50;let i=t.next(e);for(;!i.done&&e<zd;)e+=n,i=t.next(e);return e>=zd?1/0:e}function zY(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(ov(i),zd);return{type:"keyframes",ease:l=>i.next(r*l).value/e,duration:Un(r)}}const ut={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function Mp(t,e){return t*Math.sqrt(1-e*e)}const FY=12;function UY(t,e,n){let i=n;for(let r=1;r<FY;r++)i=i-t(i)/e(i);return i}const xm=.001;function VY({duration:t=ut.duration,bounce:e=ut.bounce,velocity:n=ut.velocity,mass:i=ut.mass}){let r,l,c=1-e;c=Sa(ut.minDamping,ut.maxDamping,c),t=Sa(ut.minDuration,ut.maxDuration,Un(t)),c<1?(r=h=>{const m=h*c,y=m*t,v=m-n,b=Mp(h,c),_=Math.exp(-y);return xm-v/b*_},l=h=>{const y=h*c*t,v=y*n+n,b=Math.pow(c,2)*Math.pow(h,2)*t,_=Math.exp(-y),w=Mp(Math.pow(h,2),c);return(-r(h)+xm>0?-1:1)*((v-b)*_)/w}):(r=h=>{const m=Math.exp(-h*t),y=(h-n)*t+1;return-xm+m*y},l=h=>{const m=Math.exp(-h*t),y=(n-h)*(t*t);return m*y});const d=5/t,f=UY(r,l,d);if(t=wn(t),isNaN(f))return{stiffness:ut.stiffness,damping:ut.damping,duration:t};{const h=Math.pow(f,2)*i;return{stiffness:h,damping:c*2*Math.sqrt(i*h),duration:t}}}const $Y=["duration","bounce"],qY=["stiffness","damping","mass"];function rT(t,e){return e.some(n=>t[n]!==void 0)}function GY(t){let e={velocity:ut.velocity,stiffness:ut.stiffness,damping:ut.damping,mass:ut.mass,isResolvedFromDuration:!1,...t};if(!rT(t,qY)&&rT(t,$Y))if(e.velocity=0,t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(n*1.2),r=i*i,l=2*Sa(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:ut.mass,stiffness:r,damping:l}}else{const n=VY({...t,velocity:0});e={...e,...n,mass:ut.mass},e.isResolvedFromDuration=!0}return e}function Fd(t=ut.visualDuration,e=ut.bounce){const n=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:i,restDelta:r}=n;const l=n.keyframes[0],c=n.keyframes[n.keyframes.length-1],d={done:!1,value:l},{stiffness:f,damping:h,mass:m,duration:y,velocity:v,isResolvedFromDuration:b}=GY({...n,velocity:-Un(n.velocity||0)}),_=v||0,w=h/(2*Math.sqrt(f*m)),T=c-l,R=Un(Math.sqrt(f/m)),C=Math.abs(T)<5;i||(i=C?ut.restSpeed.granular:ut.restSpeed.default),r||(r=C?ut.restDelta.granular:ut.restDelta.default);let A,M,x,k,L,N;if(w<1)x=Mp(R,w),k=(_+w*R*T)/x,A=K=>{const Y=Math.exp(-w*R*K);return c-Y*(k*Math.sin(x*K)+T*Math.cos(x*K))},L=w*R*k+T*x,N=w*R*T-k*x,M=K=>Math.exp(-w*R*K)*(L*Math.sin(x*K)+N*Math.cos(x*K));else if(w===1){A=Y=>c-Math.exp(-R*Y)*(T+(_+R*T)*Y);const K=_+R*T;M=Y=>Math.exp(-R*Y)*(R*K*Y-_)}else{const K=R*Math.sqrt(w*w-1);A=ye=>{const ve=Math.exp(-w*R*ye),F=Math.min(K*ye,300);return c-ve*((_+w*R*T)*Math.sinh(F)+K*T*Math.cosh(F))/K};const Y=(_+w*R*T)/K,se=w*R*Y-T*K,ae=w*R*T-Y*K;M=ye=>{const ve=Math.exp(-w*R*ye),F=Math.min(K*ye,300);return ve*(se*Math.sinh(F)+ae*Math.cosh(F))}}const U={calculatedDuration:b&&y||null,velocity:K=>wn(M(K)),next:K=>{if(!b&&w<1){const se=Math.exp(-w*R*K),ae=Math.sin(x*K),ye=Math.cos(x*K),ve=c-se*(k*ae+T*ye),F=wn(se*(L*ae+N*ye));return d.done=Math.abs(F)<=i&&Math.abs(c-ve)<=r,d.value=d.done?c:ve,d}const Y=A(K);if(b)d.done=K>=y;else{const se=wn(M(K));d.done=Math.abs(se)<=i&&Math.abs(c-Y)<=r}return d.value=d.done?c:Y,d},toString:()=>{const K=Math.min(ov(U),zd),Y=VA(se=>U.next(K*se).value,K,30);return K+"ms "+Y},toTransition:()=>{}};return U}Fd.applyToOptions=t=>{const e=zY(t,100,Fd);return t.ease=e.ease,t.duration=wn(e.duration),t.type="keyframes",t};const HY=5;function $A(t,e,n){const i=Math.max(e-HY,0);return wA(n-t(i),e-i)}function kp({keyframes:t,velocity:e=0,power:n=.8,timeConstant:i=325,bounceDamping:r=10,bounceStiffness:l=500,modifyTarget:c,min:d,max:f,restDelta:h=.5,restSpeed:m}){const y=t[0],v={done:!1,value:y},b=N=>d!==void 0&&N<d||f!==void 0&&N>f,_=N=>d===void 0?f:f===void 0||Math.abs(d-N)<Math.abs(f-N)?d:f;let w=n*e;const T=y+w,R=c===void 0?T:c(T);R!==T&&(w=R-y);const C=N=>-w*Math.exp(-N/i),A=N=>R+C(N),M=N=>{const U=C(N),K=A(N);v.done=Math.abs(U)<=h,v.value=v.done?R:K};let x,k;const L=N=>{b(v.value)&&(x=N,k=Fd({keyframes:[v.value,_(v.value)],velocity:$A(A,N,v.value),damping:r,stiffness:l,restDelta:h,restSpeed:m}))};return L(0),{calculatedDuration:null,next:N=>{let U=!1;return!k&&x===void 0&&(U=!0,M(N),L(N)),x!==void 0&&N>=x?k.next(N-x):(!U&&M(N),v)}}}function KY(t,e,n){const i=[],r=n||Ii.mix||UA,l=t.length-1;for(let c=0;c<l;c++){let d=r(t[c],t[c+1]);if(e){const f=Array.isArray(e)?e[c]||Vn:e;d=jl(f,d)}i.push(d)}return i}function YY(t,e,{clamp:n=!0,ease:i,mixer:r}={}){const l=t.length;if(Qy(l===e.length),l===1)return()=>e[0];if(l===2&&e[0]===e[1])return()=>e[1];const c=t[0]===t[1];t[0]>t[l-1]&&(t=[...t].reverse(),e=[...e].reverse());const d=KY(e,i,r),f=d.length,h=m=>{if(c&&m<t[0])return e[0];let y=0;if(f>1)for(;y<t.length-2&&!(m<t[y+1]);y++);const v=Cl(t[y],t[y+1],m);return d[y](v)};return n?m=>h(Sa(t[0],t[l-1],m)):h}function XY(t,e){const n=t[t.length-1];for(let i=1;i<=e;i++){const r=Cl(0,e,i);t.push(st(n,1,r))}}function WY(t){const e=[0];return XY(e,t.length-1),e}function ZY(t,e){return t.map(n=>n*e)}function JY(t,e){return t.map(()=>e||kA).splice(0,t.length-1)}function fl({duration:t=300,keyframes:e,times:n,ease:i="easeInOut"}){const r=rY(i)?i.map(eT):eT(i),l={done:!1,value:e[0]},c=ZY(n&&n.length===e.length?n:WY(e),t),d=YY(c,e,{ease:Array.isArray(r)?r:JY(e,r)});return{calculatedDuration:t,next:f=>(l.value=d(f),l.done=f>=t,l)}}const QY=t=>t!==null;function vf(t,{repeat:e,repeatType:n="loop"},i,r=1){const l=t.filter(QY),d=r<0||e&&n!=="loop"&&e%2===1?0:l.length-1;return!d||i===void 0?l[d]:i}const eX={decay:kp,inertia:kp,tween:fl,keyframes:fl,spring:Fd};function qA(t){typeof t.type=="string"&&(t.type=eX[t.type])}class lv{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,n){return this.finished.then(e,n)}}const tX=t=>t/100;class Ud extends lv{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==Qt.now()&&this.tick(Qt.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause()}initAnimation(){const{options:e}=this;qA(e);const{type:n=fl,repeat:i=0,repeatDelay:r=0,repeatType:l,velocity:c=0}=e;let{keyframes:d}=e;const f=n||fl;f!==fl&&typeof d[0]!="number"&&(this.mixKeyframes=jl(tX,UA(d[0],d[1])),d=[0,100]);const h=f({...e,keyframes:d});l==="mirror"&&(this.mirroredGenerator=f({...e,keyframes:[...d].reverse(),velocity:-c})),h.calculatedDuration===null&&(h.calculatedDuration=ov(h));const{calculatedDuration:m}=h;this.calculatedDuration=m,this.resolvedDuration=m+r,this.totalDuration=this.resolvedDuration*(i+1)-r,this.generator=h}updateTime(e){const n=Math.round(e-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(e,n=!1){const{generator:i,totalDuration:r,mixKeyframes:l,mirroredGenerator:c,resolvedDuration:d,calculatedDuration:f}=this;if(this.startTime===null)return i.next(0);const{delay:h=0,keyframes:m,repeat:y,repeatType:v,repeatDelay:b,type:_,onUpdate:w,finalKeyframe:T}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),n?this.currentTime=e:this.updateTime(e);const R=this.currentTime-h*(this.playbackSpeed>=0?1:-1),C=this.playbackSpeed>=0?R<0:R>r;this.currentTime=Math.max(R,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=r);let A=this.currentTime,M=i;if(y){const N=Math.min(this.currentTime,r)/d;let U=Math.floor(N),K=N%1;!K&&N>=1&&(K=1),K===1&&U--,U=Math.min(U,y+1),U%2&&(v==="reverse"?(K=1-K,b&&(K-=b/d)):v==="mirror"&&(M=c)),A=Sa(0,1,K)*d}let x;C?(this.delayState.value=m[0],x=this.delayState):x=M.next(A),l&&!C&&(x.value=l(x.value));let{done:k}=x;!C&&f!==null&&(k=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);const L=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return L&&_!==kp&&(x.value=vf(m,this.options,T,this.speed)),w&&w(x.value),L&&this.finish(),x}then(e,n){return this.finished.then(e,n)}get duration(){return Un(this.calculatedDuration)}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+Un(e)}get time(){return Un(this.currentTime)}set time(e){e=wn(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=e,this.tick(e))}getGeneratorVelocity(){const e=this.currentTime;if(e<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(e);const n=this.generator.next(e).value;return $A(i=>this.generator.next(i).value,e,n)}get speed(){return this.playbackSpeed}set speed(e){const n=this.playbackSpeed!==e;n&&this.driver&&this.updateTime(Qt.now()),this.playbackSpeed=e,n&&this.driver&&(this.time=Un(this.currentTime))}play(){if(this.isStopped)return;const{driver:e=jY,startTime:n}=this.options;this.driver||(this.driver=e(r=>this.tick(r))),this.options.onPlay?.();const i=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=i):this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime||(this.startTime=n??i),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Qt.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}function nX(t){for(let e=1;e<t.length;e++)t[e]??(t[e]=t[e-1])}const gs=t=>t*180/Math.PI,Lp=t=>{const e=gs(Math.atan2(t[1],t[0]));return Dp(e)},aX={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:Lp,rotateZ:Lp,skewX:t=>gs(Math.atan(t[1])),skewY:t=>gs(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},Dp=t=>(t=t%360,t<0&&(t+=360),t),oT=Lp,lT=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),uT=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),iX={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:lT,scaleY:uT,scale:t=>(lT(t)+uT(t))/2,rotateX:t=>Dp(gs(Math.atan2(t[6],t[5]))),rotateY:t=>Dp(gs(Math.atan2(-t[2],t[0]))),rotateZ:oT,rotate:oT,skewX:t=>gs(Math.atan(t[4])),skewY:t=>gs(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function Ip(t){return t.includes("scale")?1:0}function Bp(t,e){if(!t||t==="none")return Ip(e);const n=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let i,r;if(n)i=iX,r=n;else{const d=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);i=aX,r=d}if(!r)return Ip(e);const l=i[e],c=r[1].split(",").map(rX);return typeof l=="function"?l(c):c[l]}const sX=(t,e)=>{const{transform:n="none"}=getComputedStyle(t);return Bp(n,e)};function rX(t){return parseFloat(t.trim())}const $r=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],qr=new Set($r),cT=t=>t===Vr||t===ge,oX=new Set(["x","y","z"]),lX=$r.filter(t=>!oX.has(t));function uX(t){const e=[];return lX.forEach(n=>{const i=t.getValue(n);i!==void 0&&(e.push([n,i.get()]),i.set(n.startsWith("scale")?1:0))}),e}const Mi={width:({x:t},{paddingLeft:e="0",paddingRight:n="0",boxSizing:i})=>{const r=t.max-t.min;return i==="border-box"?r:r-parseFloat(e)-parseFloat(n)},height:({y:t},{paddingTop:e="0",paddingBottom:n="0",boxSizing:i})=>{const r=t.max-t.min;return i==="border-box"?r:r-parseFloat(e)-parseFloat(n)},top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:(t,{transform:e})=>Bp(e,"x"),y:(t,{transform:e})=>Bp(e,"y")};Mi.translateX=Mi.x;Mi.translateY=Mi.y;const ps=new Set;let Np=!1,Pp=!1,jp=!1;function GA(){if(Pp){const t=Array.from(ps).filter(i=>i.needsMeasurement),e=new Set(t.map(i=>i.element)),n=new Map;e.forEach(i=>{const r=uX(i);r.length&&(n.set(i,r),i.render())}),t.forEach(i=>i.measureInitialState()),e.forEach(i=>{i.render();const r=n.get(i);r&&r.forEach(([l,c])=>{i.getValue(l)?.set(c)})}),t.forEach(i=>i.measureEndState()),t.forEach(i=>{i.suspendedScrollY!==void 0&&window.scrollTo(0,i.suspendedScrollY)})}Pp=!1,Np=!1,ps.forEach(t=>t.complete(jp)),ps.clear()}function HA(){ps.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(Pp=!0)})}function cX(){jp=!0,HA(),GA(),jp=!1}class uv{constructor(e,n,i,r,l,c=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=n,this.name=i,this.motionValue=r,this.element=l,this.isAsync=c}scheduleResolve(){this.state="scheduled",this.isAsync?(ps.add(this),Np||(Np=!0,nt.read(HA),nt.resolveKeyframes(GA))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:n,element:i,motionValue:r}=this;if(e[0]===null){const l=r?.get(),c=e[e.length-1];if(l!==void 0)e[0]=l;else if(i&&n){const d=i.readValue(n,c);d!=null&&(e[0]=d)}e[0]===void 0&&(e[0]=c),r&&l===void 0&&r.set(e[0])}nX(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),ps.delete(this)}cancel(){this.state==="scheduled"&&(ps.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const dX=t=>t.startsWith("--");function KA(t,e,n){dX(e)?t.style.setProperty(e,n):t.style[e]=n}const fX={};function YA(t,e){const n=_A(t);return()=>fX[e]??n()}const hX=YA(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),XA=YA(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),il=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,dT={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:il([0,.65,.55,1]),circOut:il([.55,0,1,.45]),backIn:il([.31,.01,.66,-.59]),backOut:il([.33,1.53,.69,.99])};function WA(t,e){if(t)return typeof t=="function"?XA()?VA(t,e):"ease-out":LA(t)?il(t):Array.isArray(t)?t.map(n=>WA(n,e)||dT.easeOut):dT[t]}function gX(t,e,n,{delay:i=0,duration:r=300,repeat:l=0,repeatType:c="loop",ease:d="easeOut",times:f}={},h=void 0){const m={[e]:n};f&&(m.offset=f);const y=WA(d,r);Array.isArray(y)&&(m.easing=y);const v={delay:i,duration:r,easing:Array.isArray(y)?"linear":y,fill:"both",iterations:l+1,direction:c==="reverse"?"alternate":"normal"};return h&&(v.pseudoElement=h),t.animate(m,v)}function ZA(t){return typeof t=="function"&&"applyToOptions"in t}function mX({type:t,...e}){return ZA(t)&&XA()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}class JA extends lv{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;const{element:n,name:i,keyframes:r,pseudoElement:l,allowFlatten:c=!1,finalKeyframe:d,onComplete:f}=e;this.isPseudoElement=!!l,this.allowFlatten=c,this.options=e,Qy(typeof e.type!="string");const h=mX(e);this.animation=gX(n,i,r,h,l),h.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!l){const m=vf(r,this.options,d,this.speed);this.updateMotionValue&&this.updateMotionValue(m),KA(n,i,m),this.animation.cancel()}f?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:e}=this;e==="idle"||e==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){const e=this.animation.effect?.getComputedTiming?.().duration||0;return Un(Number(e))}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+Un(e)}get time(){return Un(Number(this.animation.currentTime)||0)}set time(e){const n=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=wn(e),n&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,rangeStart:n,rangeEnd:i,observe:r}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&&hX()?(this.animation.timeline=e,n&&(this.animation.rangeStart=n),i&&(this.animation.rangeEnd=i),Vn):r(this)}}const QA={anticipate:xA,backInOut:AA,circInOut:MA};function pX(t){return t in QA}function yX(t){typeof t.ease=="string"&&pX(t.ease)&&(t.ease=QA[t.ease])}const Om=10;class vX extends JA{constructor(e){yX(e),qA(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){const{motionValue:n,onUpdate:i,onComplete:r,element:l,...c}=this.options;if(!n)return;if(e!==void 0){n.set(e);return}const d=new Ud({...c,autoplay:!1}),f=Math.max(Om,Qt.now()-this.startTime),h=Sa(0,Om,f-Om),m=d.sample(f).value,{name:y}=this.options;l&&y&&KA(l,y,m),n.setWithVelocity(d.sample(Math.max(0,f-h)).value,m,h),d.stop()}}const fT=(t,e)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Qn.test(t)||t==="0")&&!t.startsWith("url("));function bX(t){const e=t[0];if(t.length===1)return!0;for(let n=0;n<t.length;n++)if(t[n]!==e)return!0}function SX(t,e,n,i){const r=t[0];if(r===null)return!1;if(e==="display"||e==="visibility")return!0;const l=t[t.length-1],c=fT(r,e),d=fT(l,e);return!c||!d?!1:bX(t)||(n==="spring"||ZA(n))&&i}function zp(t){t.duration=0,t.type="keyframes"}const e3=new Set(["opacity","clipPath","filter","transform"]),_X=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function wX(t){for(let e=0;e<t.length;e++)if(typeof t[e]=="string"&&_X.test(t[e]))return!0;return!1}const TX=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),EX=_A(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function RX(t){const{motionValue:e,name:n,repeatDelay:i,repeatType:r,damping:l,type:c,keyframes:d}=t;if(!(e?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:m}=e.owner.getProps();return EX()&&n&&(e3.has(n)||TX.has(n)&&wX(d))&&(n!=="transform"||!m)&&!h&&!i&&r!=="mirror"&&l!==0&&c!=="inertia"}const CX=40;class AX extends lv{constructor({autoplay:e=!0,delay:n=0,type:i="keyframes",repeat:r=0,repeatDelay:l=0,repeatType:c="loop",keyframes:d,name:f,motionValue:h,element:m,...y}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Qt.now();const v={autoplay:e,delay:n,type:i,repeat:r,repeatDelay:l,repeatType:c,name:f,motionValue:h,element:m,...y},b=m?.KeyframeResolver||uv;this.keyframeResolver=new b(d,(_,w,T)=>this.onKeyframesResolved(_,w,v,!T),f,h,m),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,n,i,r){this.keyframeResolver=void 0;const{name:l,type:c,velocity:d,delay:f,isHandoff:h,onUpdate:m}=i;this.resolvedAt=Qt.now();let y=!0;SX(e,l,c,d)||(y=!1,(Ii.instantAnimations||!f)&&m?.(vf(e,i,n)),e[0]=e[e.length-1],zp(i),i.repeat=0);const b={startTime:r?this.resolvedAt?this.resolvedAt-this.createdAt>CX?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...i,keyframes:e},_=y&&!h&&RX(b),w=b.motionValue?.owner?.current;let T;if(_)try{T=new vX({...b,element:w})}catch{T=new Ud(b)}else T=new Ud(b);T.finished.then(()=>{this.notifyFinished()}).catch(Vn),this.pendingTimeline&&(this.stopTimeline=T.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=T}get finished(){return this._animation?this.animation.finished:this._finished}then(e,n){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),cX()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function t3(t,e,n,i=0,r=1){const l=Array.from(t).sort((h,m)=>h.sortNodePosition(m)).indexOf(e),c=t.size,d=(c-1)*i;return typeof n=="function"?n(l,c):r===1?l*i:d-l*i}const xX=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function OX(t){const e=xX.exec(t);if(!e)return[,];const[,n,i,r]=e;return[`--${n??i}`,r]}function n3(t,e,n=1){const[i,r]=OX(t);if(!i)return;const l=window.getComputedStyle(e).getPropertyValue(i);if(l){const c=l.trim();return vA(c)?parseFloat(c):c}return av(r)?n3(r,e,n+1):r}const MX={type:"spring",stiffness:500,damping:25,restSpeed:10},kX=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),LX={type:"keyframes",duration:.8},DX={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},IX=(t,{keyframes:e})=>e.length>2?LX:qr.has(t)?t.startsWith("scale")?kX(e[1]):MX:DX;function a3(t,e){if(t?.inherit&&e){const{inherit:n,...i}=t;return{...e,...i}}return t}function cv(t,e){const n=t?.[e]??t?.default??t;return n!==t?a3(n,t):n}const BX=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function NX(t){for(const e in t)if(!BX.has(e))return!0;return!1}const dv=(t,e,n,i={},r,l)=>c=>{const d=cv(i,t)||{},f=d.delay||i.delay||0;let{elapsed:h=0}=i;h=h-wn(f);const m={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:e.getVelocity(),...d,delay:-h,onUpdate:v=>{e.set(v),d.onUpdate&&d.onUpdate(v)},onComplete:()=>{c(),d.onComplete&&d.onComplete()},name:t,motionValue:e,element:l?void 0:r};NX(d)||Object.assign(m,IX(t,m)),m.duration&&(m.duration=wn(m.duration)),m.repeatDelay&&(m.repeatDelay=wn(m.repeatDelay)),m.from!==void 0&&(m.keyframes[0]=m.from);let y=!1;if((m.type===!1||m.duration===0&&!m.repeatDelay)&&(zp(m),m.delay===0&&(y=!0)),(Ii.instantAnimations||Ii.skipAnimations||r?.shouldSkipAnimations)&&(y=!0,zp(m),m.delay=0),m.allowFlatten=!d.type&&!d.ease,y&&!l&&e.get()!==void 0){const v=vf(m.keyframes,d);if(v!==void 0){nt.update(()=>{m.onUpdate(v),m.onComplete()});return}}return d.isSync?new Ud(m):new AX(m)};function hT(t){const e=[{},{}];return t?.values.forEach((n,i)=>{e[0][i]=n.get(),e[1][i]=n.getVelocity()}),e}function fv(t,e,n,i){if(typeof e=="function"){const[r,l]=hT(i);e=e(n!==void 0?n:t.custom,r,l)}if(typeof e=="string"&&(e=t.variants&&t.variants[e]),typeof e=="function"){const[r,l]=hT(i);e=e(n!==void 0?n:t.custom,r,l)}return e}function ys(t,e,n){const i=t.getProps();return fv(i,e,n!==void 0?n:i.custom,t)}const i3=new Set(["width","height","top","left","right","bottom",...$r]),gT=30,PX=t=>!isNaN(parseFloat(t));class jX{constructor(e,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=i=>{const r=Qt.now();if(this.updatedAt!==r&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(i),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const l of this.dependents)l.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=n.owner}setCurrent(e){this.current=e,this.updatedAt=Qt.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=PX(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,n){this.events[e]||(this.events[e]=new ev);const i=this.events[e].add(n);return e==="change"?()=>{i(),nt.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,n){this.passiveEffect=e,this.stopPassiveEffect=n}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,n,i){this.set(n),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-i}jump(e,n=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const e=Qt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>gT)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,gT);return wA(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(e){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=e(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function jr(t,e){return new jX(t,e)}const Fp=t=>Array.isArray(t);function zX(t,e,n){t.hasValue(e)?t.getValue(e).set(n):t.addValue(e,jr(n))}function FX(t){return Fp(t)?t[t.length-1]||0:t}function UX(t,e){const n=ys(t,e);let{transitionEnd:i={},transition:r={},...l}=n||{};l={...l,...i};for(const c in l){const d=FX(l[c]);zX(t,c,d)}}const zt=t=>!!(t&&t.getVelocity);function VX(t){return!!(zt(t)&&t.add)}function Up(t,e){const n=t.getValue("willChange");if(VX(n))return n.add(e);if(!n&&Ii.WillChange){const i=new Ii.WillChange("auto");t.addValue("willChange",i),i.add(e)}}function hv(t){return t.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}const $X="framerAppearId",s3="data-"+hv($X);function r3(t){return t.props[s3]}function qX({protectedKeys:t,needsAnimating:e},n){const i=t.hasOwnProperty(n)&&e[n]!==!0;return e[n]=!1,i}function o3(t,e,{delay:n=0,transitionOverride:i,type:r}={}){let{transition:l,transitionEnd:c,...d}=e;const f=t.getDefaultTransition();l=l?a3(l,f):f;const h=l?.reduceMotion;i&&(l=i);const m=[],y=r&&t.animationState&&t.animationState.getState()[r];for(const v in d){const b=t.getValue(v,t.latestValues[v]??null),_=d[v];if(_===void 0||y&&qX(y,v))continue;const w={delay:n,...cv(l||{},v)},T=b.get();if(T!==void 0&&!b.isAnimating()&&!Array.isArray(_)&&_===T&&!w.velocity){nt.update(()=>b.set(_));continue}let R=!1;if(window.MotionHandoffAnimation){const M=r3(t);if(M){const x=window.MotionHandoffAnimation(M,v,nt);x!==null&&(w.startTime=x,R=!0)}}Up(t,v);const C=h??t.shouldReduceMotion;b.start(dv(v,b,_,C&&i3.has(v)?{type:!1}:w,t,R));const A=b.animation;A&&m.push(A)}if(c){const v=()=>nt.update(()=>{c&&UX(t,c)});m.length?Promise.all(m).then(v):v()}return m}function Vp(t,e,n={}){const i=ys(t,e,n.type==="exit"?t.presenceContext?.custom:void 0);let{transition:r=t.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(r=n.transitionOverride);const l=i?()=>Promise.all(o3(t,i,n)):()=>Promise.resolve(),c=t.variantChildren&&t.variantChildren.size?(f=0)=>{const{delayChildren:h=0,staggerChildren:m,staggerDirection:y}=r;return GX(t,e,f,h,m,y,n)}:()=>Promise.resolve(),{when:d}=r;if(d){const[f,h]=d==="beforeChildren"?[l,c]:[c,l];return f().then(()=>h())}else return Promise.all([l(),c(n.delay)])}function GX(t,e,n=0,i=0,r=0,l=1,c){const d=[];for(const f of t.variantChildren)f.notify("AnimationStart",e),d.push(Vp(f,e,{...c,delay:n+(typeof i=="function"?0:i)+t3(t.variantChildren,f,i,r,l)}).then(()=>f.notify("AnimationComplete",e)));return Promise.all(d)}function HX(t,e,n={}){t.notify("AnimationStart",e);let i;if(Array.isArray(e)){const r=e.map(l=>Vp(t,l,n));i=Promise.all(r)}else if(typeof e=="string")i=Vp(t,e,n);else{const r=typeof e=="function"?ys(t,e,n.custom):e;i=Promise.all(o3(t,r,n))}return i.then(()=>{t.notify("AnimationComplete",e)})}const KX={test:t=>t==="auto",parse:t=>t},l3=t=>e=>e.test(t),u3=[Vr,ge,ba,xi,bY,vY,KX],mT=t=>u3.find(l3(t));function YX(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||SA(t):!0}const XX=new Set(["brightness","contrast","saturate","opacity"]);function WX(t){const[e,n]=t.slice(0,-1).split("(");if(e==="drop-shadow")return t;const[i]=n.match(iv)||[];if(!i)return t;const r=n.replace(i,"");let l=XX.has(e)?1:0;return i!==n&&(l*=100),e+"("+l+r+")"}const ZX=/\b([a-z-]*)\(.*?\)/gu,$p={...Qn,getAnimatableNone:t=>{const e=t.match(ZX);return e?e.map(WX).join(" "):t}},qp={...Qn,getAnimatableNone:t=>{const e=Qn.parse(t);return Qn.createTransformer(t)(e.map(i=>typeof i=="number"?0:typeof i=="object"?{...i,alpha:1}:i))}},pT={...Vr,transform:Math.round},JX={rotate:xi,rotateX:xi,rotateY:xi,rotateZ:xi,scale:Lc,scaleX:Lc,scaleY:Lc,scaleZ:Lc,skew:xi,skewX:xi,skewY:xi,distance:ge,translateX:ge,translateY:ge,translateZ:ge,x:ge,y:ge,z:ge,perspective:ge,transformPerspective:ge,opacity:Al,originX:nT,originY:nT,originZ:ge},gv={borderWidth:ge,borderTopWidth:ge,borderRightWidth:ge,borderBottomWidth:ge,borderLeftWidth:ge,borderRadius:ge,borderTopLeftRadius:ge,borderTopRightRadius:ge,borderBottomRightRadius:ge,borderBottomLeftRadius:ge,width:ge,maxWidth:ge,height:ge,maxHeight:ge,top:ge,right:ge,bottom:ge,left:ge,inset:ge,insetBlock:ge,insetBlockStart:ge,insetBlockEnd:ge,insetInline:ge,insetInlineStart:ge,insetInlineEnd:ge,padding:ge,paddingTop:ge,paddingRight:ge,paddingBottom:ge,paddingLeft:ge,paddingBlock:ge,paddingBlockStart:ge,paddingBlockEnd:ge,paddingInline:ge,paddingInlineStart:ge,paddingInlineEnd:ge,margin:ge,marginTop:ge,marginRight:ge,marginBottom:ge,marginLeft:ge,marginBlock:ge,marginBlockStart:ge,marginBlockEnd:ge,marginInline:ge,marginInlineStart:ge,marginInlineEnd:ge,fontSize:ge,backgroundPositionX:ge,backgroundPositionY:ge,...JX,zIndex:pT,fillOpacity:Al,strokeOpacity:Al,numOctaves:pT},QX={...gv,color:vt,backgroundColor:vt,outlineColor:vt,fill:vt,stroke:vt,borderColor:vt,borderTopColor:vt,borderRightColor:vt,borderBottomColor:vt,borderLeftColor:vt,filter:$p,WebkitFilter:$p,mask:qp,WebkitMask:qp},c3=t=>QX[t],eW=new Set([$p,qp]);function d3(t,e){let n=c3(t);return eW.has(n)||(n=Qn),n.getAnimatableNone?n.getAnimatableNone(e):void 0}const tW=new Set(["auto","none","0"]);function nW(t,e,n){let i=0,r;for(;i<t.length&&!r;){const l=t[i];typeof l=="string"&&!tW.has(l)&&Pr(l).values.length&&(r=t[i]),i++}if(r&&n)for(const l of e)t[l]=d3(n,r)}class aW extends uv{constructor(e,n,i,r,l){super(e,n,i,r,l,!0)}readKeyframes(){const{unresolvedKeyframes:e,element:n,name:i}=this;if(!n||!n.current)return;super.readKeyframes();for(let m=0;m<e.length;m++){let y=e[m];if(typeof y=="string"&&(y=y.trim(),av(y))){const v=n3(y,n.current);v!==void 0&&(e[m]=v),m===e.length-1&&(this.finalKeyframe=y)}}if(this.resolveNoneKeyframes(),!i3.has(i)||e.length!==2)return;const[r,l]=e,c=mT(r),d=mT(l),f=tT(r),h=tT(l);if(f!==h&&Mi[i]){this.needsMeasurement=!0;return}if(c!==d)if(cT(c)&&cT(d))for(let m=0;m<e.length;m++){const y=e[m];typeof y=="string"&&(e[m]=parseFloat(y))}else Mi[i]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:e,name:n}=this,i=[];for(let r=0;r<e.length;r++)(e[r]===null||YX(e[r]))&&i.push(r);i.length&&nW(e,i,n)}measureInitialState(){const{element:e,unresolvedKeyframes:n,name:i}=this;if(!e||!e.current)return;i==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Mi[i](e.measureViewportBox(),window.getComputedStyle(e.current)),n[0]=this.measuredOrigin;const r=n[n.length-1];r!==void 0&&e.getValue(i,r).jump(r,!1)}measureEndState(){const{element:e,name:n,unresolvedKeyframes:i}=this;if(!e||!e.current)return;const r=e.getValue(n);r&&r.jump(this.measuredOrigin,!1);const l=i.length-1,c=i[l];i[l]=Mi[n](e.measureViewportBox(),window.getComputedStyle(e.current)),c!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=c),this.removedTransforms?.length&&this.removedTransforms.forEach(([d,f])=>{e.getValue(d).set(f)}),this.resolveNoneKeyframes()}}function f3(t,e,n){if(t==null)return[];if(t instanceof EventTarget)return[t];if(typeof t=="string"){let i=document;const r=n?.[t]??i.querySelectorAll(t);return r?Array.from(r):[]}return Array.from(t).filter(i=>i!=null)}const h3=(t,e)=>e&&typeof t=="number"?e.transform(t):t;function td(t){return bA(t)&&"offsetHeight"in t&&!("ownerSVGElement"in t)}const{schedule:mv}=DA(queueMicrotask,!1),Xn={x:!1,y:!1};function g3(){return Xn.x||Xn.y}function iW(t){return t==="x"||t==="y"?Xn[t]?null:(Xn[t]=!0,()=>{Xn[t]=!1}):Xn.x||Xn.y?null:(Xn.x=Xn.y=!0,()=>{Xn.x=Xn.y=!1})}function m3(t,e){const n=f3(t),i=new AbortController,r={passive:!0,...e,signal:i.signal};return[n,r,()=>i.abort()]}function sW(t){return!(t.pointerType==="touch"||g3())}function rW(t,e,n={}){const[i,r,l]=m3(t,n);return i.forEach(c=>{let d=!1,f=!1,h;const m=()=>{c.removeEventListener("pointerleave",_)},y=T=>{h&&(h(T),h=void 0),m()},v=T=>{d=!1,window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",v),f&&(f=!1,y(T))},b=()=>{d=!0,window.addEventListener("pointerup",v,r),window.addEventListener("pointercancel",v,r)},_=T=>{if(T.pointerType!=="touch"){if(d){f=!0;return}y(T)}},w=T=>{if(!sW(T))return;f=!1;const R=e(c,T);typeof R=="function"&&(h=R,c.addEventListener("pointerleave",_,r))};c.addEventListener("pointerenter",w,r),c.addEventListener("pointerdown",b,r)}),l}const p3=(t,e)=>e?t===e?!0:p3(t,e.parentElement):!1,pv=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1,oW=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function lW(t){return oW.has(t.tagName)||t.isContentEditable===!0}const uW=new Set(["INPUT","SELECT","TEXTAREA"]);function cW(t){return uW.has(t.tagName)||t.isContentEditable===!0}const nd=new WeakSet;function yT(t){return e=>{e.key==="Enter"&&t(e)}}function Mm(t,e){t.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}const dW=(t,e)=>{const n=t.currentTarget;if(!n)return;const i=yT(()=>{if(nd.has(n))return;Mm(n,"down");const r=yT(()=>{Mm(n,"up")}),l=()=>Mm(n,"cancel");n.addEventListener("keyup",r,e),n.addEventListener("blur",l,e)});n.addEventListener("keydown",i,e),n.addEventListener("blur",()=>n.removeEventListener("keydown",i),e)};function vT(t){return pv(t)&&!g3()}const bT=new WeakSet;function fW(t,e,n={}){const[i,r,l]=m3(t,n),c=d=>{const f=d.currentTarget;if(!vT(d)||bT.has(d))return;nd.add(f),n.stopPropagation&&bT.add(d);const h=e(f,d),m=(b,_)=>{window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",v),nd.has(f)&&nd.delete(f),vT(b)&&typeof h=="function"&&h(b,{success:_})},y=b=>{m(b,f===window||f===document||n.useGlobalTarget||p3(f,b.target))},v=b=>{m(b,!1)};window.addEventListener("pointerup",y,r),window.addEventListener("pointercancel",v,r)};return i.forEach(d=>{(n.useGlobalTarget?window:d).addEventListener("pointerdown",c,r),td(d)&&(d.addEventListener("focus",h=>dW(h,r)),!lW(d)&&!d.hasAttribute("tabindex")&&(d.tabIndex=0))}),l}function yv(t){return bA(t)&&"ownerSVGElement"in t}const ad=new WeakMap;let id;const y3=(t,e,n)=>(i,r)=>r&&r[0]?r[0][t+"Size"]:yv(i)&&"getBBox"in i?i.getBBox()[e]:i[n],hW=y3("inline","width","offsetWidth"),gW=y3("block","height","offsetHeight");function mW({target:t,borderBoxSize:e}){ad.get(t)?.forEach(n=>{n(t,{get width(){return hW(t,e)},get height(){return gW(t,e)}})})}function pW(t){t.forEach(mW)}function yW(){typeof ResizeObserver>"u"||(id=new ResizeObserver(pW))}function vW(t,e){id||yW();const n=f3(t);return n.forEach(i=>{let r=ad.get(i);r||(r=new Set,ad.set(i,r)),r.add(e),id?.observe(i)}),()=>{n.forEach(i=>{const r=ad.get(i);r?.delete(e),r?.size||id?.unobserve(i)})}}const sd=new Set;let _r;function bW(){_r=()=>{const t={get width(){return window.innerWidth},get height(){return window.innerHeight}};sd.forEach(e=>e(t))},window.addEventListener("resize",_r)}function SW(t){return sd.add(t),_r||bW(),()=>{sd.delete(t),!sd.size&&typeof _r=="function"&&(window.removeEventListener("resize",_r),_r=void 0)}}function ST(t,e){return typeof t=="function"?SW(t):vW(t,e)}function _W(t){return yv(t)&&t.tagName==="svg"}const wW=[...u3,vt,Qn],TW=t=>wW.find(l3(t)),_T=()=>({translate:0,scale:1,origin:0,originPoint:0}),wr=()=>({x:_T(),y:_T()}),wT=()=>({min:0,max:0}),Et=()=>({x:wT(),y:wT()}),EW=new WeakMap;function bf(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}function xl(t){return typeof t=="string"||Array.isArray(t)}const vv=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],bv=["initial",...vv];function Sf(t){return bf(t.animate)||bv.some(e=>xl(t[e]))}function v3(t){return!!(Sf(t)||t.variants)}function RW(t,e,n){for(const i in e){const r=e[i],l=n[i];if(zt(r))t.addValue(i,r);else if(zt(l))t.addValue(i,jr(r,{owner:t}));else if(l!==r)if(t.hasValue(i)){const c=t.getValue(i);c.liveStyle===!0?c.jump(r):c.hasAnimated||c.set(r)}else{const c=t.getStaticValue(i);t.addValue(i,jr(c!==void 0?c:r,{owner:t}))}}for(const i in n)e[i]===void 0&&t.removeValue(i);return e}const Gp={current:null},b3={current:!1},CW=typeof window<"u";function AW(){if(b3.current=!0,!!CW)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),e=()=>Gp.current=t.matches;t.addEventListener("change",e),e()}else Gp.current=!1}const TT=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let Vd={};function S3(t){Vd=t}function xW(){return Vd}class OW{scrapeMotionValuesFromProps(e,n,i){return{}}constructor({parent:e,props:n,presenceContext:i,reducedMotionConfig:r,skipAnimations:l,blockInitialAnimation:c,visualState:d},f={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=uv,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const b=Qt.now();this.renderScheduledAt<b&&(this.renderScheduledAt=b,nt.render(this.render,!1,!0))};const{latestValues:h,renderState:m}=d;this.latestValues=h,this.baseTarget={...h},this.initialValues=n.initial?{...h}:{},this.renderState=m,this.parent=e,this.props=n,this.presenceContext=i,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.skipAnimationsConfig=l,this.options=f,this.blockInitialAnimation=!!c,this.isControllingVariants=Sf(n),this.isVariantNode=v3(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);const{willChange:y,...v}=this.scrapeMotionValuesFromProps(n,{},this);for(const b in v){const _=v[b];h[b]!==void 0&&zt(_)&&_.set(h[b])}}mount(e){if(this.hasBeenMounted)for(const n in this.initialValues)this.values.get(n)?.jump(this.initialValues[n]),this.latestValues[n]=this.initialValues[n];this.current=e,EW.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,i)=>this.bindToMotionValue(i,n)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(b3.current||AW(),this.shouldReduceMotion=Gp.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),Bi(this.notifyUpdate),Bi(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const e in this.events)this.events[e].clear();for(const e in this.features){const n=this.features[e];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,n){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),n.accelerate&&e3.has(e)&&this.current instanceof HTMLElement){const{factory:c,keyframes:d,times:f,ease:h,duration:m}=n.accelerate,y=new JA({element:this.current,name:e,keyframes:d,times:f,ease:h,duration:wn(m)}),v=c(y);this.valueSubscriptions.set(e,()=>{v(),y.cancel()});return}const i=qr.has(e);i&&this.onBindTransform&&this.onBindTransform();const r=n.on("change",c=>{this.latestValues[e]=c,this.props.onUpdate&&nt.preRender(this.notifyUpdate),i&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let l;typeof window<"u"&&window.MotionCheckAppearSync&&(l=window.MotionCheckAppearSync(this,e,n)),this.valueSubscriptions.set(e,()=>{r(),l&&l(),n.owner&&n.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e="animation";for(e in Vd){const n=Vd[e];if(!n)continue;const{isEnabled:i,Feature:r}=n;if(!this.features[e]&&r&&i(this.props)&&(this.features[e]=new r(this)),this.features[e]){const l=this.features[e];l.isMounted?l.update():(l.mount(),l.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Et()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,n){this.latestValues[e]=n}update(e,n){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let i=0;i<TT.length;i++){const r=TT[i];this.propEventSubscriptions[r]&&(this.propEventSubscriptions[r](),delete this.propEventSubscriptions[r]);const l="on"+r,c=e[l];c&&(this.propEventSubscriptions[r]=this.on(r,c))}this.prevMotionValues=RW(this,this.scrapeMotionValuesFromProps(e,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(e){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(e),()=>n.variantChildren.delete(e)}addValue(e,n){const i=this.values.get(e);n!==i&&(i&&this.removeValue(e),this.bindToMotionValue(e,n),this.values.set(e,n),this.latestValues[e]=n.get())}removeValue(e){this.values.delete(e);const n=this.valueSubscriptions.get(e);n&&(n(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,n){if(this.props.values&&this.props.values[e])return this.props.values[e];let i=this.values.get(e);return i===void 0&&n!==void 0&&(i=jr(n===null?void 0:n,{owner:this}),this.addValue(e,i)),i}readValue(e,n){let i=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return i!=null&&(typeof i=="string"&&(vA(i)||SA(i))?i=parseFloat(i):!TW(i)&&Qn.test(n)&&(i=d3(e,n)),this.setBaseTarget(e,zt(i)?i.get():i)),zt(i)?i.get():i}setBaseTarget(e,n){this.baseTarget[e]=n}getBaseTarget(e){const{initial:n}=this.props;let i;if(typeof n=="string"||typeof n=="object"){const l=fv(this.props,n,this.presenceContext?.custom);l&&(i=l[e])}if(n&&i!==void 0)return i;const r=this.getBaseTargetFromProps(this.props,e);return r!==void 0&&!zt(r)?r:this.initialValues[e]!==void 0&&i===void 0?void 0:this.baseTarget[e]}on(e,n){return this.events[e]||(this.events[e]=new ev),this.events[e].add(n)}notify(e,...n){this.events[e]&&this.events[e].notify(...n)}scheduleRenderMicrotask(){mv.render(this.render)}}class _3 extends OW{constructor(){super(...arguments),this.KeyframeResolver=aW}sortInstanceNodePosition(e,n){return e.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(e,n){const i=e.style;return i?i[n]:void 0}removeValueFromRenderState(e,{vars:n,style:i}){delete n[e],delete i[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;zt(e)&&(this.childSubscription=e.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class Ni{constructor(e){this.isMounted=!1,this.node=e}update(){}}function w3({top:t,left:e,right:n,bottom:i}){return{x:{min:e,max:n},y:{min:t,max:i}}}function MW({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}function kW(t,e){if(!e)return t;const n=e({x:t.left,y:t.top}),i=e({x:t.right,y:t.bottom});return{top:n.y,left:n.x,bottom:i.y,right:i.x}}function km(t){return t===void 0||t===1}function Hp({scale:t,scaleX:e,scaleY:n}){return!km(t)||!km(e)||!km(n)}function os(t){return Hp(t)||T3(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function T3(t){return ET(t.x)||ET(t.y)}function ET(t){return t&&t!=="0%"}function $d(t,e,n){const i=t-n,r=e*i;return n+r}function RT(t,e,n,i,r){return r!==void 0&&(t=$d(t,r,i)),$d(t,n,i)+e}function Kp(t,e=0,n=1,i,r){t.min=RT(t.min,e,n,i,r),t.max=RT(t.max,e,n,i,r)}function E3(t,{x:e,y:n}){Kp(t.x,e.translate,e.scale,e.originPoint),Kp(t.y,n.translate,n.scale,n.originPoint)}const CT=.999999999999,AT=1.0000000000001;function LW(t,e,n,i=!1){const r=n.length;if(!r)return;e.x=e.y=1;let l,c;for(let d=0;d<r;d++){l=n[d],c=l.projectionDelta;const{visualElement:f}=l.options;f&&f.props.style&&f.props.style.display==="contents"||(i&&l.options.layoutScroll&&l.scroll&&l!==l.root&&(fa(t.x,-l.scroll.offset.x),fa(t.y,-l.scroll.offset.y)),c&&(e.x*=c.x.scale,e.y*=c.y.scale,E3(t,c)),i&&os(l.latestValues)&&rd(t,l.latestValues,l.layout?.layoutBox))}e.x<AT&&e.x>CT&&(e.x=1),e.y<AT&&e.y>CT&&(e.y=1)}function fa(t,e){t.min+=e,t.max+=e}function xT(t,e,n,i,r=.5){const l=st(t.min,t.max,r);Kp(t,e,n,l,i)}function OT(t,e){return typeof t=="string"?parseFloat(t)/100*(e.max-e.min):t}function rd(t,e,n){const i=n??t;xT(t.x,OT(e.x,i.x),e.scaleX,e.scale,e.originX),xT(t.y,OT(e.y,i.y),e.scaleY,e.scale,e.originY)}function R3(t,e){return w3(kW(t.getBoundingClientRect(),e))}function DW(t,e,n){const i=R3(t,n),{scroll:r}=e;return r&&(fa(i.x,r.offset.x),fa(i.y,r.offset.y)),i}const IW={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},BW=$r.length;function NW(t,e,n){let i="",r=!0;for(let l=0;l<BW;l++){const c=$r[l],d=t[c];if(d===void 0)continue;let f=!0;if(typeof d=="number")f=d===(c.startsWith("scale")?1:0);else{const h=parseFloat(d);f=c.startsWith("scale")?h===1:h===0}if(!f||n){const h=h3(d,gv[c]);if(!f){r=!1;const m=IW[c]||c;i+=`${m}(${h}) `}n&&(e[c]=h)}}return i=i.trim(),n?i=n(e,r?"":i):r&&(i="none"),i}function Sv(t,e,n){const{style:i,vars:r,transformOrigin:l}=t;let c=!1,d=!1;for(const f in e){const h=e[f];if(qr.has(f)){c=!0;continue}else if(BA(f)){r[f]=h;continue}else{const m=h3(h,gv[f]);f.startsWith("origin")?(d=!0,l[f]=m):i[f]=m}}if(e.transform||(c||n?i.transform=NW(e,t.transform,n):i.transform&&(i.transform="none")),d){const{originX:f="50%",originY:h="50%",originZ:m=0}=l;i.transformOrigin=`${f} ${h} ${m}`}}function C3(t,{style:e,vars:n},i,r){const l=t.style;let c;for(c in e)l[c]=e[c];r?.applyProjectionStyles(l,i);for(c in n)l.setProperty(c,n[c])}function MT(t,e){return e.max===e.min?0:t/(e.max-e.min)*100}const Ho={correct:(t,e)=>{if(!e.target)return t;if(typeof t=="string")if(ge.test(t))t=parseFloat(t);else return t;const n=MT(t,e.target.x),i=MT(t,e.target.y);return`${n}% ${i}%`}},PW={correct:(t,{treeScale:e,projectionDelta:n})=>{const i=t,r=Qn.parse(t);if(r.length>5)return i;const l=Qn.createTransformer(t),c=typeof r[0]!="number"?1:0,d=n.x.scale*e.x,f=n.y.scale*e.y;r[0+c]/=d,r[1+c]/=f;const h=st(d,f,.5);return typeof r[2+c]=="number"&&(r[2+c]/=h),typeof r[3+c]=="number"&&(r[3+c]/=h),l(r)}},Yp={borderRadius:{...Ho,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Ho,borderTopRightRadius:Ho,borderBottomLeftRadius:Ho,borderBottomRightRadius:Ho,boxShadow:PW};function A3(t,{layout:e,layoutId:n}){return qr.has(t)||t.startsWith("origin")||(e||n!==void 0)&&(!!Yp[t]||t==="opacity")}function _v(t,e,n){const i=t.style,r=e?.style,l={};if(!i)return l;for(const c in i)(zt(i[c])||r&&zt(r[c])||A3(c,t)||n?.getValue(c)?.liveStyle!==void 0)&&(l[c]=i[c]);return l}function jW(t){return window.getComputedStyle(t)}class zW extends _3{constructor(){super(...arguments),this.type="html",this.renderInstance=C3}readValueFromInstance(e,n){if(qr.has(n))return this.projection?.isProjecting?Ip(n):sX(e,n);{const i=jW(e),r=(BA(n)?i.getPropertyValue(n):i[n])||0;return typeof r=="string"?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:n}){return R3(e,n)}build(e,n,i){Sv(e,n,i.transformTemplate)}scrapeMotionValuesFromProps(e,n,i){return _v(e,n,i)}}const FW={offset:"stroke-dashoffset",array:"stroke-dasharray"},UW={offset:"strokeDashoffset",array:"strokeDasharray"};function VW(t,e,n=1,i=0,r=!0){t.pathLength=1;const l=r?FW:UW;t[l.offset]=`${-i}`,t[l.array]=`${e} ${n}`}const $W=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function x3(t,{attrX:e,attrY:n,attrScale:i,pathLength:r,pathSpacing:l=1,pathOffset:c=0,...d},f,h,m){if(Sv(t,d,h),f){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:y,style:v}=t;y.transform&&(v.transform=y.transform,delete y.transform),(v.transform||y.transformOrigin)&&(v.transformOrigin=y.transformOrigin??"50% 50%",delete y.transformOrigin),v.transform&&(v.transformBox=m?.transformBox??"fill-box",delete y.transformBox);for(const b of $W)y[b]!==void 0&&(v[b]=y[b],delete y[b]);e!==void 0&&(y.x=e),n!==void 0&&(y.y=n),i!==void 0&&(y.scale=i),r!==void 0&&VW(y,r,l,c,!1)}const O3=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),M3=t=>typeof t=="string"&&t.toLowerCase()==="svg";function qW(t,e,n,i){C3(t,e,void 0,i);for(const r in e.attrs)t.setAttribute(O3.has(r)?r:hv(r),e.attrs[r])}function k3(t,e,n){const i=_v(t,e,n);for(const r in t)if(zt(t[r])||zt(e[r])){const l=$r.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;i[l]=t[r]}return i}class GW extends _3{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Et}getBaseTargetFromProps(e,n){return e[n]}readValueFromInstance(e,n){if(qr.has(n)){const i=c3(n);return i&&i.default||0}return n=O3.has(n)?n:hv(n),e.getAttribute(n)}scrapeMotionValuesFromProps(e,n,i){return k3(e,n,i)}build(e,n,i){x3(e,n,this.isSVGTag,i.transformTemplate,i.style)}renderInstance(e,n,i,r){qW(e,n,i,r)}mount(e){this.isSVGTag=M3(e.tagName),super.mount(e)}}const HW=bv.length;function L3(t){if(!t)return;if(!t.isControllingVariants){const n=t.parent?L3(t.parent)||{}:{};return t.props.initial!==void 0&&(n.initial=t.props.initial),n}const e={};for(let n=0;n<HW;n++){const i=bv[n],r=t.props[i];(xl(r)||r===!1)&&(e[i]=r)}return e}function D3(t,e){if(!Array.isArray(e))return!1;const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}const KW=[...vv].reverse(),YW=vv.length;function XW(t){return e=>Promise.all(e.map(({animation:n,options:i})=>HX(t,n,i)))}function WW(t){let e=XW(t),n=kT(),i=!0,r=!1;const l=h=>(m,y)=>{const v=ys(t,y,h==="exit"?t.presenceContext?.custom:void 0);if(v){const{transition:b,transitionEnd:_,...w}=v;m={...m,...w,..._}}return m};function c(h){e=h(t)}function d(h){const{props:m}=t,y=L3(t.parent)||{},v=[],b=new Set;let _={},w=1/0;for(let R=0;R<YW;R++){const C=KW[R],A=n[C],M=m[C]!==void 0?m[C]:y[C],x=xl(M),k=C===h?A.isActive:null;k===!1&&(w=R);let L=M===y[C]&&M!==m[C]&&x;if(L&&(i||r)&&t.manuallyAnimateOnMount&&(L=!1),A.protectedKeys={..._},!A.isActive&&k===null||!M&&!A.prevProp||bf(M)||typeof M=="boolean")continue;if(C==="exit"&&A.isActive&&k!==!0){A.prevResolvedValues&&(_={..._,...A.prevResolvedValues});continue}const N=ZW(A.prevProp,M);let U=N||C===h&&A.isActive&&!L&&x||R>w&&x,K=!1;const Y=Array.isArray(M)?M:[M];let se=Y.reduce(l(C),{});k===!1&&(se={});const{prevResolvedValues:ae={}}=A,ye={...ae,...se},ve=ne=>{U=!0,b.has(ne)&&(K=!0,b.delete(ne)),A.needsAnimating[ne]=!0;const le=t.getValue(ne);le&&(le.liveStyle=!1)};for(const ne in ye){const le=se[ne],re=ae[ne];if(_.hasOwnProperty(ne))continue;let B=!1;Fp(le)&&Fp(re)?B=!D3(le,re):B=le!==re,B?le!=null?ve(ne):b.add(ne):le!==void 0&&b.has(ne)?ve(ne):A.protectedKeys[ne]=!0}A.prevProp=M,A.prevResolvedValues=se,A.isActive&&(_={..._,...se}),(i||r)&&t.blockInitialAnimation&&(U=!1);const F=L&&N;U&&(!F||K)&&v.push(...Y.map(ne=>{const le={type:C};if(typeof ne=="string"&&(i||r)&&!F&&t.manuallyAnimateOnMount&&t.parent){const{parent:re}=t,B=ys(re,ne);if(re.enteringChildren&&B){const{delayChildren:G}=B.transition||{};le.delay=t3(re.enteringChildren,t,G)}}return{animation:ne,options:le}}))}if(b.size){const R={};if(typeof m.initial!="boolean"){const C=ys(t,Array.isArray(m.initial)?m.initial[0]:m.initial);C&&C.transition&&(R.transition=C.transition)}b.forEach(C=>{const A=t.getBaseTarget(C),M=t.getValue(C);M&&(M.liveStyle=!0),R[C]=A??null}),v.push({animation:R})}let T=!!v.length;return i&&(m.initial===!1||m.initial===m.animate)&&!t.manuallyAnimateOnMount&&(T=!1),i=!1,r=!1,T?e(v):Promise.resolve()}function f(h,m){if(n[h].isActive===m)return Promise.resolve();t.variantChildren?.forEach(v=>v.animationState?.setActive(h,m)),n[h].isActive=m;const y=d(h);for(const v in n)n[v].protectedKeys={};return y}return{animateChanges:d,setActive:f,setAnimateFunction:c,getState:()=>n,reset:()=>{n=kT(),r=!0}}}function ZW(t,e){return typeof e=="string"?e!==t:Array.isArray(e)?!D3(e,t):!1}function is(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function kT(){return{animate:is(!0),whileInView:is(),whileHover:is(),whileTap:is(),whileDrag:is(),whileFocus:is(),exit:is()}}function Xp(t,e){t.min=e.min,t.max=e.max}function Yn(t,e){Xp(t.x,e.x),Xp(t.y,e.y)}function LT(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}const I3=1e-4,JW=1-I3,QW=1+I3,B3=.01,eZ=0-B3,tZ=0+B3;function en(t){return t.max-t.min}function nZ(t,e,n){return Math.abs(t-e)<=n}function DT(t,e,n,i=.5){t.origin=i,t.originPoint=st(e.min,e.max,t.origin),t.scale=en(n)/en(e),t.translate=st(n.min,n.max,t.origin)-t.originPoint,(t.scale>=JW&&t.scale<=QW||isNaN(t.scale))&&(t.scale=1),(t.translate>=eZ&&t.translate<=tZ||isNaN(t.translate))&&(t.translate=0)}function hl(t,e,n,i){DT(t.x,e.x,n.x,i?i.originX:void 0),DT(t.y,e.y,n.y,i?i.originY:void 0)}function IT(t,e,n,i=0){const r=i?st(n.min,n.max,i):n.min;t.min=r+e.min,t.max=t.min+en(e)}function aZ(t,e,n,i){IT(t.x,e.x,n.x,i?.x),IT(t.y,e.y,n.y,i?.y)}function BT(t,e,n,i=0){const r=i?st(n.min,n.max,i):n.min;t.min=e.min-r,t.max=t.min+en(e)}function qd(t,e,n,i){BT(t.x,e.x,n.x,i?.x),BT(t.y,e.y,n.y,i?.y)}function NT(t,e,n,i,r){return t-=e,t=$d(t,1/n,i),r!==void 0&&(t=$d(t,1/r,i)),t}function iZ(t,e=0,n=1,i=.5,r,l=t,c=t){if(ba.test(e)&&(e=parseFloat(e),e=st(c.min,c.max,e/100)-c.min),typeof e!="number")return;let d=st(l.min,l.max,i);t===l&&(d-=e),t.min=NT(t.min,e,n,d,r),t.max=NT(t.max,e,n,d,r)}function PT(t,e,[n,i,r],l,c){iZ(t,e[n],e[i],e[r],e.scale,l,c)}const sZ=["x","scaleX","originX"],rZ=["y","scaleY","originY"];function jT(t,e,n,i){PT(t.x,e,sZ,n?n.x:void 0,i?i.x:void 0),PT(t.y,e,rZ,n?n.y:void 0,i?i.y:void 0)}function zT(t){return t.translate===0&&t.scale===1}function N3(t){return zT(t.x)&&zT(t.y)}function FT(t,e){return t.min===e.min&&t.max===e.max}function oZ(t,e){return FT(t.x,e.x)&&FT(t.y,e.y)}function UT(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function P3(t,e){return UT(t.x,e.x)&&UT(t.y,e.y)}function VT(t){return en(t.x)/en(t.y)}function $T(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}function la(t){return[t("x"),t("y")]}function lZ(t,e,n){let i="";const r=t.x.translate/e.x,l=t.y.translate/e.y,c=n?.z||0;if((r||l||c)&&(i=`translate3d(${r}px, ${l}px, ${c}px) `),(e.x!==1||e.y!==1)&&(i+=`scale(${1/e.x}, ${1/e.y}) `),n){const{transformPerspective:h,rotate:m,rotateX:y,rotateY:v,skewX:b,skewY:_}=n;h&&(i=`perspective(${h}px) ${i}`),m&&(i+=`rotate(${m}deg) `),y&&(i+=`rotateX(${y}deg) `),v&&(i+=`rotateY(${v}deg) `),b&&(i+=`skewX(${b}deg) `),_&&(i+=`skewY(${_}deg) `)}const d=t.x.scale*e.x,f=t.y.scale*e.y;return(d!==1||f!==1)&&(i+=`scale(${d}, ${f})`),i||"none"}const j3=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],uZ=j3.length,qT=t=>typeof t=="string"?parseFloat(t):t,GT=t=>typeof t=="number"||ge.test(t);function cZ(t,e,n,i,r,l){r?(t.opacity=st(0,n.opacity??1,dZ(i)),t.opacityExit=st(e.opacity??1,0,fZ(i))):l&&(t.opacity=st(e.opacity??1,n.opacity??1,i));for(let c=0;c<uZ;c++){const d=j3[c];let f=HT(e,d),h=HT(n,d);if(f===void 0&&h===void 0)continue;f||(f=0),h||(h=0),f===0||h===0||GT(f)===GT(h)?(t[d]=Math.max(st(qT(f),qT(h),i),0),(ba.test(h)||ba.test(f))&&(t[d]+="%")):t[d]=h}(e.rotate||n.rotate)&&(t.rotate=st(e.rotate||0,n.rotate||0,i))}function HT(t,e){return t[e]!==void 0?t[e]:t.borderRadius}const dZ=z3(0,.5,OA),fZ=z3(.5,.95,Vn);function z3(t,e,n){return i=>i<t?0:i>e?1:n(Cl(t,e,i))}function hZ(t,e,n){const i=zt(t)?t:jr(t);return i.start(dv("",i,e,n)),i.animation}function Ol(t,e,n,i={passive:!0}){return t.addEventListener(e,n,i),()=>t.removeEventListener(e,n)}const gZ=(t,e)=>t.depth-e.depth;class mZ{constructor(){this.children=[],this.isDirty=!1}add(e){Jy(this.children,e),this.isDirty=!0}remove(e){Pd(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(gZ),this.isDirty=!1,this.children.forEach(e)}}function pZ(t,e){const n=Qt.now(),i=({timestamp:r})=>{const l=r-n;l>=e&&(Bi(i),t(l-e))};return nt.setup(i,!0),()=>Bi(i)}function od(t){return zt(t)?t.get():t}class yZ{constructor(){this.members=[]}add(e){Jy(this.members,e);for(let n=this.members.length-1;n>=0;n--){const i=this.members[n];if(i===e||i===this.lead||i===this.prevLead)continue;const r=i.instance;(!r||r.isConnected===!1)&&!i.snapshot&&(Pd(this.members,i),i.unmount())}e.scheduleRender()}remove(e){if(Pd(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(e){for(let n=this.members.indexOf(e)-1;n>=0;n--){const i=this.members[n];if(i.isPresent!==!1&&i.instance?.isConnected!==!1)return this.promote(i),!0}return!1}promote(e,n){const i=this.lead;if(e!==i&&(this.prevLead=i,this.lead=e,e.show(),i)){i.updateSnapshot(),e.scheduleRender();const{layoutDependency:r}=i.options,{layoutDependency:l}=e.options;(r===void 0||r!==l)&&(e.resumeFrom=i,n&&(i.preserveOpacity=!0),i.snapshot&&(e.snapshot=i.snapshot,e.snapshot.latestValues=i.animationValues||i.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&i.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}const ld={hasAnimatedSinceResize:!0,hasEverUpdated:!1},Lm=["","X","Y","Z"],vZ=1e3;let bZ=0;function Dm(t,e,n,i){const{latestValues:r}=e;r[t]&&(n[t]=r[t],e.setStaticValue(t,0),i&&(i[t]=0))}function F3(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:e}=t.options;if(!e)return;const n=r3(e);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:r,layoutId:l}=t.options;window.MotionCancelOptimisedAnimation(n,"transform",nt,!(r||l))}const{parent:i}=t;i&&!i.hasCheckedOptimisedAppear&&F3(i)}function U3({attachResizeListener:t,defaultParent:e,measureScroll:n,checkIsScrollRoot:i,resetTransform:r}){return class{constructor(c={},d=e?.()){this.id=bZ++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(wZ),this.nodes.forEach(xZ),this.nodes.forEach(OZ),this.nodes.forEach(TZ)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=c,this.root=d?d.root||d:this,this.path=d?[...d.path,d]:[],this.parent=d,this.depth=d?d.depth+1:0;for(let f=0;f<this.path.length;f++)this.path[f].shouldResetTransform=!0;this.root===this&&(this.nodes=new mZ)}addEventListener(c,d){return this.eventHandlers.has(c)||this.eventHandlers.set(c,new ev),this.eventHandlers.get(c).add(d)}notifyListeners(c,...d){const f=this.eventHandlers.get(c);f&&f.notify(...d)}hasListeners(c){return this.eventHandlers.has(c)}mount(c){if(this.instance)return;this.isSVG=yv(c)&&!_W(c),this.instance=c;const{layoutId:d,layout:f,visualElement:h}=this.options;if(h&&!h.current&&h.mount(c),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(f||d)&&(this.isLayoutDirty=!0),t){let m,y=0;const v=()=>this.root.updateBlockedByResize=!1;nt.read(()=>{y=window.innerWidth}),t(c,()=>{const b=window.innerWidth;b!==y&&(y=b,this.root.updateBlockedByResize=!0,m&&m(),m=pZ(v,250),ld.hasAnimatedSinceResize&&(ld.hasAnimatedSinceResize=!1,this.nodes.forEach(XT)))})}d&&this.root.registerSharedNode(d,this),this.options.animate!==!1&&h&&(d||f)&&this.addEventListener("didUpdate",({delta:m,hasLayoutChanged:y,hasRelativeLayoutChanged:v,layout:b})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const _=this.options.transition||h.getDefaultTransition()||IZ,{onLayoutAnimationStart:w,onLayoutAnimationComplete:T}=h.getProps(),R=!this.targetLayout||!P3(this.targetLayout,b),C=!y&&v;if(this.options.layoutRoot||this.resumeFrom||C||y&&(R||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const A={...cv(_,"layout"),onPlay:w,onComplete:T};(h.shouldReduceMotion||this.options.layoutRoot)&&(A.delay=0,A.type=!1),this.startAnimation(A),this.setAnimationOrigin(m,C)}else y||XT(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=b})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const c=this.getStack();c&&c.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Bi(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(MZ),this.animationId++)}getTransformTemplate(){const{visualElement:c}=this.options;return c&&c.getProps().transformTemplate}willUpdate(c=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&F3(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let m=0;m<this.path.length;m++){const y=this.path[m];y.shouldResetTransform=!0,(typeof y.latestValues.x=="string"||typeof y.latestValues.y=="string")&&(y.isLayoutDirty=!0),y.updateScroll("snapshot"),y.options.layoutRoot&&y.willUpdate(!1)}const{layoutId:d,layout:f}=this.options;if(d===void 0&&!f)return;const h=this.getTransformTemplate();this.prevTransformTemplateValue=h?h(this.latestValues,""):void 0,this.updateSnapshot(),c&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const f=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),f&&this.nodes.forEach(RZ),this.nodes.forEach(KT);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(YT);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(CZ),this.nodes.forEach(AZ),this.nodes.forEach(SZ),this.nodes.forEach(_Z)):this.nodes.forEach(YT),this.clearAllSnapshots();const d=Qt.now();Nt.delta=Sa(0,1e3/60,d-Nt.timestamp),Nt.timestamp=d,Nt.isProcessing=!0,Em.update.process(Nt),Em.preRender.process(Nt),Em.render.process(Nt),Nt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,mv.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(EZ),this.sharedNodes.forEach(kZ)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,nt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){nt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!en(this.snapshot.measuredBox.x)&&!en(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let f=0;f<this.path.length;f++)this.path[f].updateScroll();const c=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=Et()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:d}=this.options;d&&d.notify("LayoutMeasure",this.layout.layoutBox,c?c.layoutBox:void 0)}updateScroll(c="measure"){let d=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===c&&(d=!1),d&&this.instance){const f=i(this.instance);this.scroll={animationId:this.root.animationId,phase:c,isRoot:f,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:f}}}resetTransform(){if(!r)return;const c=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,d=this.projectionDelta&&!N3(this.projectionDelta),f=this.getTransformTemplate(),h=f?f(this.latestValues,""):void 0,m=h!==this.prevTransformTemplateValue;c&&this.instance&&(d||os(this.latestValues)||m)&&(r(this.instance,h),this.shouldResetTransform=!1,this.scheduleRender())}measure(c=!0){const d=this.measurePageBox();let f=this.removeElementScroll(d);return c&&(f=this.removeTransform(f)),BZ(f),{animationId:this.root.animationId,measuredBox:d,layoutBox:f,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:c}=this.options;if(!c)return Et();const d=c.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(NZ))){const{scroll:h}=this.root;h&&(fa(d.x,h.offset.x),fa(d.y,h.offset.y))}return d}removeElementScroll(c){const d=Et();if(Yn(d,c),this.scroll?.wasRoot)return d;for(let f=0;f<this.path.length;f++){const h=this.path[f],{scroll:m,options:y}=h;h!==this.root&&m&&y.layoutScroll&&(m.wasRoot&&Yn(d,c),fa(d.x,m.offset.x),fa(d.y,m.offset.y))}return d}applyTransform(c,d=!1,f){const h=f||Et();Yn(h,c);for(let m=0;m<this.path.length;m++){const y=this.path[m];!d&&y.options.layoutScroll&&y.scroll&&y!==y.root&&(fa(h.x,-y.scroll.offset.x),fa(h.y,-y.scroll.offset.y)),os(y.latestValues)&&rd(h,y.latestValues,y.layout?.layoutBox)}return os(this.latestValues)&&rd(h,this.latestValues,this.layout?.layoutBox),h}removeTransform(c){const d=Et();Yn(d,c);for(let f=0;f<this.path.length;f++){const h=this.path[f];if(!os(h.latestValues))continue;let m;h.instance&&(Hp(h.latestValues)&&h.updateSnapshot(),m=Et(),Yn(m,h.measurePageBox())),jT(d,h.latestValues,h.snapshot?.layoutBox,m)}return os(this.latestValues)&&jT(d,this.latestValues),d}setTargetDelta(c){this.targetDelta=c,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(c){this.options={...this.options,...c,crossfade:c.crossfade!==void 0?c.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Nt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(c=!1){const d=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=d.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=d.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=d.isSharedProjectionDirty);const f=!!this.resumingFrom||this!==d;if(!(c||f&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:m,layoutId:y}=this.options;if(!this.layout||!(m||y))return;this.resolvedRelativeTargetAt=Nt.timestamp;const v=this.getClosestProjectingParent();v&&this.linkedParentVersion!==v.layoutVersion&&!v.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&v&&v.layout?this.createRelativeTarget(v,this.layout.layoutBox,v.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Et(),this.targetWithTransforms=Et()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),aZ(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):Yn(this.target,this.layout.layoutBox),E3(this.target,this.targetDelta)):Yn(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&v&&!!v.resumingFrom==!!this.resumingFrom&&!v.options.layoutScroll&&v.target&&this.animationProgress!==1?this.createRelativeTarget(v,this.target,v.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||Hp(this.parent.latestValues)||T3(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(c,d,f){this.relativeParent=c,this.linkedParentVersion=c.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Et(),this.relativeTargetOrigin=Et(),qd(this.relativeTargetOrigin,d,f,this.options.layoutAnchor||void 0),Yn(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const c=this.getLead(),d=!!this.resumingFrom||this!==c;let f=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(f=!1),d&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(f=!1),this.resolvedRelativeTargetAt===Nt.timestamp&&(f=!1),f)return;const{layout:h,layoutId:m}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(h||m))return;Yn(this.layoutCorrected,this.layout.layoutBox);const y=this.treeScale.x,v=this.treeScale.y;LW(this.layoutCorrected,this.treeScale,this.path,d),c.layout&&!c.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(c.target=c.layout.layoutBox,c.targetWithTransforms=Et());const{target:b}=c;if(!b){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(LT(this.prevProjectionDelta.x,this.projectionDelta.x),LT(this.prevProjectionDelta.y,this.projectionDelta.y)),hl(this.projectionDelta,this.layoutCorrected,b,this.latestValues),(this.treeScale.x!==y||this.treeScale.y!==v||!$T(this.projectionDelta.x,this.prevProjectionDelta.x)||!$T(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",b))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(c=!0){if(this.options.visualElement?.scheduleRender(),c){const d=this.getStack();d&&d.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=wr(),this.projectionDelta=wr(),this.projectionDeltaWithTransform=wr()}setAnimationOrigin(c,d=!1){const f=this.snapshot,h=f?f.latestValues:{},m={...this.latestValues},y=wr();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!d;const v=Et(),b=f?f.source:void 0,_=this.layout?this.layout.source:void 0,w=b!==_,T=this.getStack(),R=!T||T.members.length<=1,C=!!(w&&!R&&this.options.crossfade===!0&&!this.path.some(DZ));this.animationProgress=0;let A;this.mixTargetDelta=M=>{const x=M/1e3;WT(y.x,c.x,x),WT(y.y,c.y,x),this.setTargetDelta(y),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(qd(v,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),LZ(this.relativeTarget,this.relativeTargetOrigin,v,x),A&&oZ(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=Et()),Yn(A,this.relativeTarget)),w&&(this.animationValues=m,cZ(m,h,this.latestValues,x,C,R)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=x},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(c){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Bi(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=nt.update(()=>{ld.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=jr(0)),this.motionValue.jump(0,!1),this.currentAnimation=hZ(this.motionValue,[0,1e3],{...c,velocity:0,isSync:!0,onUpdate:d=>{this.mixTargetDelta(d),c.onUpdate&&c.onUpdate(d)},onStop:()=>{},onComplete:()=>{c.onComplete&&c.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const c=this.getStack();c&&c.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(vZ),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const c=this.getLead();let{targetWithTransforms:d,target:f,layout:h,latestValues:m}=c;if(!(!d||!f||!h)){if(this!==c&&this.layout&&h&&V3(this.options.animationType,this.layout.layoutBox,h.layoutBox)){f=this.target||Et();const y=en(this.layout.layoutBox.x);f.x.min=c.target.x.min,f.x.max=f.x.min+y;const v=en(this.layout.layoutBox.y);f.y.min=c.target.y.min,f.y.max=f.y.min+v}Yn(d,f),rd(d,m),hl(this.projectionDeltaWithTransform,this.layoutCorrected,d,m)}}registerSharedNode(c,d){this.sharedNodes.has(c)||this.sharedNodes.set(c,new yZ),this.sharedNodes.get(c).add(d);const h=d.options.initialPromotionConfig;d.promote({transition:h?h.transition:void 0,preserveFollowOpacity:h&&h.shouldPreserveFollowOpacity?h.shouldPreserveFollowOpacity(d):void 0})}isLead(){const c=this.getStack();return c?c.lead===this:!0}getLead(){const{layoutId:c}=this.options;return c?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:c}=this.options;return c?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:c}=this.options;if(c)return this.root.sharedNodes.get(c)}promote({needsReset:c,transition:d,preserveFollowOpacity:f}={}){const h=this.getStack();h&&h.promote(this,f),c&&(this.projectionDelta=void 0,this.needsReset=!0),d&&this.setOptions({transition:d})}relegate(){const c=this.getStack();return c?c.relegate(this):!1}resetSkewAndRotation(){const{visualElement:c}=this.options;if(!c)return;let d=!1;const{latestValues:f}=c;if((f.z||f.rotate||f.rotateX||f.rotateY||f.rotateZ||f.skewX||f.skewY)&&(d=!0),!d)return;const h={};f.z&&Dm("z",c,h,this.animationValues);for(let m=0;m<Lm.length;m++)Dm(`rotate${Lm[m]}`,c,h,this.animationValues),Dm(`skew${Lm[m]}`,c,h,this.animationValues);c.render();for(const m in h)c.setStaticValue(m,h[m]),this.animationValues&&(this.animationValues[m]=h[m]);c.scheduleRender()}applyProjectionStyles(c,d){if(!this.instance||this.isSVG)return;if(!this.isVisible){c.visibility="hidden";return}const f=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,c.visibility="",c.opacity="",c.pointerEvents=od(d?.pointerEvents)||"",c.transform=f?f(this.latestValues,""):"none";return}const h=this.getLead();if(!this.projectionDelta||!this.layout||!h.target){this.options.layoutId&&(c.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,c.pointerEvents=od(d?.pointerEvents)||""),this.hasProjected&&!os(this.latestValues)&&(c.transform=f?f({},""):"none",this.hasProjected=!1);return}c.visibility="";const m=h.animationValues||h.latestValues;this.applyTransformsToTarget();let y=lZ(this.projectionDeltaWithTransform,this.treeScale,m);f&&(y=f(m,y)),c.transform=y;const{x:v,y:b}=this.projectionDelta;c.transformOrigin=`${v.origin*100}% ${b.origin*100}% 0`,h.animationValues?c.opacity=h===this?m.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:m.opacityExit:c.opacity=h===this?m.opacity!==void 0?m.opacity:"":m.opacityExit!==void 0?m.opacityExit:0;for(const _ in Yp){if(m[_]===void 0)continue;const{correct:w,applyTo:T,isCSSVariable:R}=Yp[_],C=y==="none"?m[_]:w(m[_],h);if(T){const A=T.length;for(let M=0;M<A;M++)c[T[M]]=C}else R?this.options.visualElement.renderState.vars[_]=C:c[_]=C}this.options.layoutId&&(c.pointerEvents=h===this?od(d?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(c=>c.currentAnimation?.stop()),this.root.nodes.forEach(KT),this.root.sharedNodes.clear()}}}function SZ(t){t.updateLayout()}function _Z(t){const e=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:i}=t.layout,{animationType:r}=t.options,l=e.source!==t.layout.source;if(r==="size")la(m=>{const y=l?e.measuredBox[m]:e.layoutBox[m],v=en(y);y.min=n[m].min,y.max=y.min+v});else if(r==="x"||r==="y"){const m=r==="x"?"y":"x";Xp(l?e.measuredBox[m]:e.layoutBox[m],n[m])}else V3(r,e.layoutBox,n)&&la(m=>{const y=l?e.measuredBox[m]:e.layoutBox[m],v=en(n[m]);y.max=y.min+v,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[m].max=t.relativeTarget[m].min+v)});const c=wr();hl(c,n,e.layoutBox);const d=wr();l?hl(d,t.applyTransform(i,!0),e.measuredBox):hl(d,n,e.layoutBox);const f=!N3(c);let h=!1;if(!t.resumeFrom){const m=t.getClosestProjectingParent();if(m&&!m.resumeFrom){const{snapshot:y,layout:v}=m;if(y&&v){const b=t.options.layoutAnchor||void 0,_=Et();qd(_,e.layoutBox,y.layoutBox,b);const w=Et();qd(w,n,v.layoutBox,b),P3(_,w)||(h=!0),m.options.layoutRoot&&(t.relativeTarget=w,t.relativeTargetOrigin=_,t.relativeParent=m)}}}t.notifyListeners("didUpdate",{layout:n,snapshot:e,delta:d,layoutDelta:c,hasLayoutChanged:f,hasRelativeLayoutChanged:h})}else if(t.isLead()){const{onExitComplete:n}=t.options;n&&n()}t.options.transition=void 0}function wZ(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function TZ(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function EZ(t){t.clearSnapshot()}function KT(t){t.clearMeasurements()}function RZ(t){t.isLayoutDirty=!0,t.updateLayout()}function YT(t){t.isLayoutDirty=!1}function CZ(t){t.isAnimationBlocked&&t.layout&&!t.isLayoutDirty&&(t.snapshot=t.layout,t.isLayoutDirty=!0)}function AZ(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function XT(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function xZ(t){t.resolveTargetDelta()}function OZ(t){t.calcProjection()}function MZ(t){t.resetSkewAndRotation()}function kZ(t){t.removeLeadSnapshot()}function WT(t,e,n){t.translate=st(e.translate,0,n),t.scale=st(e.scale,1,n),t.origin=e.origin,t.originPoint=e.originPoint}function ZT(t,e,n,i){t.min=st(e.min,n.min,i),t.max=st(e.max,n.max,i)}function LZ(t,e,n,i){ZT(t.x,e.x,n.x,i),ZT(t.y,e.y,n.y,i)}function DZ(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const IZ={duration:.45,ease:[.4,0,.1,1]},JT=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),QT=JT("applewebkit/")&&!JT("chrome/")?Math.round:Vn;function eE(t){t.min=QT(t.min),t.max=QT(t.max)}function BZ(t){eE(t.x),eE(t.y)}function V3(t,e,n){return t==="position"||t==="preserve-aspect"&&!nZ(VT(e),VT(n),.2)}function NZ(t){return t!==t.root&&t.scroll?.wasRoot}const PZ=U3({attachResizeListener:(t,e)=>Ol(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Im={current:void 0},$3=U3({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!Im.current){const t=new PZ({});t.mount(window),t.setOptions({layoutScroll:!0}),Im.current=t}return Im.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),wv=O.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});function tE(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function jZ(...t){return e=>{let n=!1;const i=t.map(r=>{const l=tE(r,e);return!n&&typeof l=="function"&&(n=!0),l});if(n)return()=>{for(let r=0;r<i.length;r++){const l=i[r];typeof l=="function"?l():tE(t[r],null)}}}}function zZ(...t){return O.useCallback(jZ(...t),t)}class FZ extends O.Component{getSnapshotBeforeUpdate(e){const n=this.props.childRef.current;if(td(n)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const i=n.offsetParent,r=td(i)&&i.offsetWidth||0,l=td(i)&&i.offsetHeight||0,c=getComputedStyle(n),d=this.props.sizeRef.current;d.height=parseFloat(c.height),d.width=parseFloat(c.width),d.top=n.offsetTop,d.left=n.offsetLeft,d.right=r-d.width-d.left,d.bottom=l-d.height-d.top}return null}componentDidUpdate(){}render(){return this.props.children}}function UZ({children:t,isPresent:e,anchorX:n,anchorY:i,root:r,pop:l}){const c=O.useId(),d=O.useRef(null),f=O.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:h}=O.useContext(wv),m=t.props?.ref??t?.ref,y=zZ(d,m);return O.useInsertionEffect(()=>{const{width:v,height:b,top:_,left:w,right:T,bottom:R}=f.current;if(e||l===!1||!d.current||!v||!b)return;const C=n==="left"?`left: ${w}`:`right: ${T}`,A=i==="bottom"?`bottom: ${R}`:`top: ${_}`;d.current.dataset.motionPopId=c;const M=document.createElement("style");h&&(M.nonce=h);const x=r??document.head;return x.appendChild(M),M.sheet&&M.sheet.insertRule(`
|
|
80
|
+
<p>Save to apply changes</p>`)},children:"Restore to defaults"}),D.jsxs(Jt,{disabled:!Kt||Gr,fullWidth:!0,buttonType:"primary",onClick:()=>xK({ctx:t,params:{vendor:f,apiKey:h,gptModel:m,googleApiKey:y,geminiModel:v,anthropicApiKey:b,anthropicModel:_,deeplApiKey:w,deeplEndpoint:e.deeplEndpoint??"auto",deeplUseFree:T,deeplFormality:R,deeplPreserveFormatting:C,deeplIgnoreTags:A,deeplNonSplittingTags:M,deeplSplittingTags:x,deeplGlossaryId:k,deeplGlossaryPairs:L,translationFields:ee,translateWholeRecord:ue,translateBulkRecords:fe,prompt:Ee,modelsToBeExcludedFromThisPlugin:Ut,rolesToBeExcludedFromThisPlugin:$n,apiKeysToBeExcludedFromThisPlugin:wa,enableDebugging:De},setIsLoading:Ht}),children:[Gr?"Saving...":"Save",Gr&&D.jsx(ef,{size:24})]})]})]})})}const NK="_page_1pu9c_1",PK="_container_1pu9c_12",jK="_card_1pu9c_17",zK="_cardHeader_1pu9c_39",FK="_cardTitle_1pu9c_45",UK="_cardCaption_1pu9c_52",VK="_section_1pu9c_59",$K="_localeRow_1pu9c_73",qK="_localeArrow_1pu9c_80",GK="_actions_1pu9c_107",HK="_helperText_1pu9c_113",KK="_statusReady_1pu9c_119",YK="_loadingOverlay_1pu9c_129",XK="_loadingText_1pu9c_141",WK="_footerNote_1pu9c_146",It={page:NK,container:PK,card:jK,cardHeader:zK,cardTitle:FK,cardCaption:UK,section:VK,localeRow:$K,localeArrow:qK,actions:GK,helperText:HK,statusReady:KK,loadingOverlay:YK,loadingText:XK,footerNote:WK};function ZK({ctx:t}){const[e,n]=O.useState([]),[i,r]=O.useState([]),[l,c]=O.useState([]),[d,f]=O.useState(null),[h,m]=O.useState(null),[y,v]=O.useState(!0);O.useEffect(()=>{async function A(){if(!t.currentUserAccessToken){t.alert("No access token found"),v(!1);return}try{const M=rp(t.currentUserAccessToken,t.environment,t.cmaBaseUrl),L=(await M.itemTypes.list()).filter(K=>!K.modular_block).map(K=>({label:K.name,value:K.id}));n(L);const U=(await M.site.find()).locales.map(K=>({label:K,value:K}));c(U),U.length>0&&f(U[0]),v(!1)}catch(M){console.error("Error loading data:",M),t.alert(`Error loading data: ${M instanceof Error?M.message:String(M)}`),v(!1)}}A()},[t]);function b(A){return!d||!h||i.length===0?(t.alert("Please select source locale, target locale, and at least one model"),!1):d.value===h.value?(t.alert("Source and target locales must be different"),!1):t.currentUserAccessToken?cl(A)?!0:(t.alert("Please configure valid credentials for the selected AI vendor in the plugin settings"),!1):(t.alert("No access token found"),!1)}function _(A,M){A.completed?t.notice(`Successfully translated ${M} record(s) from ${d?.value} to ${h?.value}`):A.canceled?t.notice(`Translation from ${d?.value} to ${h?.value} was canceled`):t.alert("The bulk translation had errors and did not complete successfully.")}const w=async()=>{const A=t.plugin.attributes.parameters;if(b(A))try{const M=rp(t.currentUserAccessToken,t.environment,t.cmaBaseUrl),x=[];v(!0);async function k(N){const U=M.items.listPagedIterator({filter:{type:N},version:"current"});for await(const K of U)x.push(K.id)}if(await Promise.all(i.map(N=>k(N.value))),v(!1),x.length===0){t.alert("No records found in the selected models");return}const L=t.openModal({id:"translationProgressModal",title:"Translation Progress",width:"l",parameters:{totalRecords:x.length,fromLocale:d?.value,toLocale:h?.value,accessToken:t.currentUserAccessToken,pluginParams:A,itemIds:x}});try{const N=await L;_(N,x.length)}catch(N){Rd(N,A.vendor,t)}}catch(M){v(!1),Rd(M,A.vendor,t)}},T=A=>{A&&!Array.isArray(A)&&f(A)},R=A=>{A&&!Array.isArray(A)&&m(A)},C=A=>{Array.isArray(A)&&r([...A])};return D.jsx(qa,{ctx:t,children:D.jsxs("div",{className:It.page,children:[D.jsx("div",{className:It.container,children:D.jsxs("div",{className:It.card,children:[D.jsxs("div",{className:It.cardHeader,children:[D.jsx("h1",{className:It.cardTitle,children:"AI Bulk Translations"}),D.jsx("p",{className:It.cardCaption,children:"Select languages and models to perform bulk translations."})]}),y&&D.jsxs("div",{className:It.loadingOverlay,children:[D.jsx(ef,{size:40}),D.jsx("div",{className:It.loadingText,children:"Loading languages and models..."})]}),D.jsx("div",{className:It.section,children:D.jsxs("div",{className:It.localeRow,children:[D.jsx("div",{children:D.jsx(Gt,{name:"sourceLocale",id:"sourceLocale",label:"Source Language",hint:"Translate from",value:d,selectInputProps:{options:l},onChange:T})}),D.jsx("div",{className:It.localeArrow,"aria-hidden":!0,children:"→"}),D.jsx("div",{children:D.jsx(Gt,{name:"targetLocale",id:"targetLocale",label:"Target Language",hint:"Translate to",value:h,selectInputProps:{options:l.filter(A=>A.value!==d?.value)},onChange:R})})]})}),D.jsxs("div",{className:It.section,children:[D.jsx(Gt,{name:"selectedModels",id:"selectedModels",label:"Models to Translate",hint:"Select one or more models to translate",value:i,selectInputProps:{isMulti:!0,options:e},onChange:C}),i.length>0&&D.jsxs("div",{className:It.helperText,children:["Selected ",i.length," ",i.length===1?"model":"models"]})]}),D.jsxs("div",{className:It.actions,children:[D.jsx(Jt,{buttonType:"primary",onClick:w,disabled:!d||!h||i.length===0,fullWidth:!0,children:"Start Bulk Translation"}),d&&h&&i.length>0&&D.jsxs("div",{className:`${It.helperText} ${It.statusReady}`,children:["Ready to translate from ",d.label," to"," ",h.label]})]})]})}),D.jsx("div",{className:It.footerNote,children:"Translations are performed using AI. Review content after translation."})]})})}function JK({ctx:t}){return D.jsx(qa,{ctx:t,children:"Loading..."})}const Wy=O.createContext({});function Zy(t){const e=O.useRef(null);return e.current===null&&(e.current=t()),e.current}const QK=typeof window<"u",yA=QK?O.useLayoutEffect:O.useEffect,yf=O.createContext(null);function Jy(t,e){t.indexOf(e)===-1&&t.push(e)}function Pd(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const Sa=(t,e,n)=>n>e?e:n<t?t:n;let Qy=()=>{};const Ii={},vA=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);function bA(t){return typeof t=="object"&&t!==null}const SA=t=>/^0[^.\s]+$/u.test(t);function _A(t){let e;return()=>(e===void 0&&(e=t()),e)}const Vn=t=>t,eY=(t,e)=>n=>e(t(n)),jl=(...t)=>t.reduce(eY),Cl=(t,e,n)=>{const i=e-t;return i===0?1:(n-t)/i};class ev{constructor(){this.subscriptions=[]}add(e){return Jy(this.subscriptions,e),()=>Pd(this.subscriptions,e)}notify(e,n,i){const r=this.subscriptions.length;if(r)if(r===1)this.subscriptions[0](e,n,i);else for(let l=0;l<r;l++){const c=this.subscriptions[l];c&&c(e,n,i)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const wn=t=>t*1e3,Un=t=>t/1e3;function wA(t,e){return e?t*(1e3/e):0}const TA=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t,tY=1e-7,nY=12;function aY(t,e,n,i,r){let l,c,d=0;do c=e+(n-e)/2,l=TA(c,i,r)-t,l>0?n=c:e=c;while(Math.abs(l)>tY&&++d<nY);return c}function zl(t,e,n,i){if(t===e&&n===i)return Vn;const r=l=>aY(l,0,1,t,n);return l=>l===0||l===1?l:TA(r(l),e,i)}const EA=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,RA=t=>e=>1-t(1-e),CA=zl(.33,1.53,.69,.99),tv=RA(CA),AA=EA(tv),xA=t=>t>=1?1:(t*=2)<1?.5*tv(t):.5*(2-Math.pow(2,-10*(t-1))),nv=t=>1-Math.sin(Math.acos(t)),OA=RA(nv),MA=EA(nv),iY=zl(.42,0,1,1),sY=zl(0,0,.58,1),kA=zl(.42,0,.58,1),rY=t=>Array.isArray(t)&&typeof t[0]!="number",LA=t=>Array.isArray(t)&&typeof t[0]=="number",oY={linear:Vn,easeIn:iY,easeInOut:kA,easeOut:sY,circIn:nv,circInOut:MA,circOut:OA,backIn:tv,backInOut:AA,backOut:CA,anticipate:xA},lY=t=>typeof t=="string",eT=t=>{if(LA(t)){Qy(t.length===4);const[e,n,i,r]=t;return zl(e,n,i,r)}else if(lY(t))return oY[t];return t},kc=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function uY(t,e){let n=new Set,i=new Set,r=!1,l=!1;const c=new WeakSet;let d={delta:0,timestamp:0,isProcessing:!1};function f(m){c.has(m)&&(h.schedule(m),t()),m(d)}const h={schedule:(m,y=!1,v=!1)=>{const _=v&&r?n:i;return y&&c.add(m),_.add(m),m},cancel:m=>{i.delete(m),c.delete(m)},process:m=>{if(d=m,r){l=!0;return}r=!0;const y=n;n=i,i=y,n.forEach(f),n.clear(),r=!1,l&&(l=!1,h.process(m))}};return h}const cY=40;function DA(t,e){let n=!1,i=!0;const r={delta:0,timestamp:0,isProcessing:!1},l=()=>n=!0,c=kc.reduce((A,M)=>(A[M]=uY(l),A),{}),{setup:d,read:f,resolveKeyframes:h,preUpdate:m,update:y,preRender:v,render:b,postRender:_}=c,w=()=>{const A=Ii.useManualTiming,M=A?r.timestamp:performance.now();n=!1,A||(r.delta=i?1e3/60:Math.max(Math.min(M-r.timestamp,cY),1)),r.timestamp=M,r.isProcessing=!0,d.process(r),f.process(r),h.process(r),m.process(r),y.process(r),v.process(r),b.process(r),_.process(r),r.isProcessing=!1,n&&e&&(i=!1,t(w))},T=()=>{n=!0,i=!0,r.isProcessing||t(w)};return{schedule:kc.reduce((A,M)=>{const x=c[M];return A[M]=(k,L=!1,N=!1)=>(n||T(),x.schedule(k,L,N)),A},{}),cancel:A=>{for(let M=0;M<kc.length;M++)c[kc[M]].cancel(A)},state:r,steps:c}}const{schedule:nt,cancel:Bi,state:Nt,steps:Em}=DA(typeof requestAnimationFrame<"u"?requestAnimationFrame:Vn,!0);let ed;function dY(){ed=void 0}const Qt={now:()=>(ed===void 0&&Qt.set(Nt.isProcessing||Ii.useManualTiming?Nt.timestamp:performance.now()),ed),set:t=>{ed=t,queueMicrotask(dY)}},IA=t=>e=>typeof e=="string"&&e.startsWith(t),BA=IA("--"),fY=IA("var(--"),av=t=>fY(t)?hY.test(t.split("/*")[0].trim()):!1,hY=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function tT(t){return typeof t!="string"?!1:t.split("/*")[0].includes("var(--")}const Vr={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},Al={...Vr,transform:t=>Sa(0,1,t)},Lc={...Vr,default:1},dl=t=>Math.round(t*1e5)/1e5,iv=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function gY(t){return t==null}const mY=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,sv=(t,e)=>n=>!!(typeof n=="string"&&mY.test(n)&&n.startsWith(t)||e&&!gY(n)&&Object.prototype.hasOwnProperty.call(n,e)),NA=(t,e,n)=>i=>{if(typeof i!="string")return i;const[r,l,c,d]=i.match(iv);return{[t]:parseFloat(r),[e]:parseFloat(l),[n]:parseFloat(c),alpha:d!==void 0?parseFloat(d):1}},pY=t=>Sa(0,255,t),Rm={...Vr,transform:t=>Math.round(pY(t))},hs={test:sv("rgb","red"),parse:NA("red","green","blue"),transform:({red:t,green:e,blue:n,alpha:i=1})=>"rgba("+Rm.transform(t)+", "+Rm.transform(e)+", "+Rm.transform(n)+", "+dl(Al.transform(i))+")"};function yY(t){let e="",n="",i="",r="";return t.length>5?(e=t.substring(1,3),n=t.substring(3,5),i=t.substring(5,7),r=t.substring(7,9)):(e=t.substring(1,2),n=t.substring(2,3),i=t.substring(3,4),r=t.substring(4,5),e+=e,n+=n,i+=i,r+=r),{red:parseInt(e,16),green:parseInt(n,16),blue:parseInt(i,16),alpha:r?parseInt(r,16)/255:1}}const xp={test:sv("#"),parse:yY,transform:hs.transform},Fl=t=>({test:e=>typeof e=="string"&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}),xi=Fl("deg"),ba=Fl("%"),ge=Fl("px"),vY=Fl("vh"),bY=Fl("vw"),nT={...ba,parse:t=>ba.parse(t)/100,transform:t=>ba.transform(t*100)},Sr={test:sv("hsl","hue"),parse:NA("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:n,alpha:i=1})=>"hsla("+Math.round(t)+", "+ba.transform(dl(e))+", "+ba.transform(dl(n))+", "+dl(Al.transform(i))+")"},vt={test:t=>hs.test(t)||xp.test(t)||Sr.test(t),parse:t=>hs.test(t)?hs.parse(t):Sr.test(t)?Sr.parse(t):xp.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?hs.transform(t):Sr.transform(t),getAnimatableNone:t=>{const e=vt.parse(t);return e.alpha=0,vt.transform(e)}},SY=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function _Y(t){return isNaN(t)&&typeof t=="string"&&(t.match(iv)?.length||0)+(t.match(SY)?.length||0)>0}const PA="number",jA="color",wY="var",TY="var(",aT="${}",EY=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Pr(t){const e=t.toString(),n=[],i={color:[],number:[],var:[]},r=[];let l=0;const d=e.replace(EY,f=>(vt.test(f)?(i.color.push(l),r.push(jA),n.push(vt.parse(f))):f.startsWith(TY)?(i.var.push(l),r.push(wY),n.push(f)):(i.number.push(l),r.push(PA),n.push(parseFloat(f))),++l,aT)).split(aT);return{values:n,split:d,indexes:i,types:r}}function RY(t){return Pr(t).values}function zA({split:t,types:e}){const n=t.length;return i=>{let r="";for(let l=0;l<n;l++)if(r+=t[l],i[l]!==void 0){const c=e[l];c===PA?r+=dl(i[l]):c===jA?r+=vt.transform(i[l]):r+=i[l]}return r}}function CY(t){return zA(Pr(t))}const AY=t=>typeof t=="number"?0:vt.test(t)?vt.getAnimatableNone(t):t,xY=(t,e)=>typeof t=="number"?e?.trim().endsWith("/")?t:0:AY(t);function OY(t){const e=Pr(t);return zA(e)(e.values.map((i,r)=>xY(i,e.split[r])))}const Qn={test:_Y,parse:RY,createTransformer:CY,getAnimatableNone:OY};function Cm(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function MY({hue:t,saturation:e,lightness:n,alpha:i}){t/=360,e/=100,n/=100;let r=0,l=0,c=0;if(!e)r=l=c=n;else{const d=n<.5?n*(1+e):n+e-n*e,f=2*n-d;r=Cm(f,d,t+1/3),l=Cm(f,d,t),c=Cm(f,d,t-1/3)}return{red:Math.round(r*255),green:Math.round(l*255),blue:Math.round(c*255),alpha:i}}function jd(t,e){return n=>n>0?e:t}const st=(t,e,n)=>t+(e-t)*n,Am=(t,e,n)=>{const i=t*t,r=n*(e*e-i)+i;return r<0?0:Math.sqrt(r)},kY=[xp,hs,Sr],LY=t=>kY.find(e=>e.test(t));function iT(t){const e=LY(t);if(!e)return!1;let n=e.parse(t);return e===Sr&&(n=MY(n)),n}const sT=(t,e)=>{const n=iT(t),i=iT(e);if(!n||!i)return jd(t,e);const r={...n};return l=>(r.red=Am(n.red,i.red,l),r.green=Am(n.green,i.green,l),r.blue=Am(n.blue,i.blue,l),r.alpha=st(n.alpha,i.alpha,l),hs.transform(r))},Op=new Set(["none","hidden"]);function DY(t,e){return Op.has(t)?n=>n<=0?t:e:n=>n>=1?e:t}function IY(t,e){return n=>st(t,e,n)}function rv(t){return typeof t=="number"?IY:typeof t=="string"?av(t)?jd:vt.test(t)?sT:PY:Array.isArray(t)?FA:typeof t=="object"?vt.test(t)?sT:BY:jd}function FA(t,e){const n=[...t],i=n.length,r=t.map((l,c)=>rv(l)(l,e[c]));return l=>{for(let c=0;c<i;c++)n[c]=r[c](l);return n}}function BY(t,e){const n={...t,...e},i={};for(const r in n)t[r]!==void 0&&e[r]!==void 0&&(i[r]=rv(t[r])(t[r],e[r]));return r=>{for(const l in i)n[l]=i[l](r);return n}}function NY(t,e){const n=[],i={color:0,var:0,number:0};for(let r=0;r<e.values.length;r++){const l=e.types[r],c=t.indexes[l][i[l]],d=t.values[c]??0;n[r]=d,i[l]++}return n}const PY=(t,e)=>{const n=Qn.createTransformer(e),i=Pr(t),r=Pr(e);return i.indexes.var.length===r.indexes.var.length&&i.indexes.color.length===r.indexes.color.length&&i.indexes.number.length>=r.indexes.number.length?Op.has(t)&&!r.values.length||Op.has(e)&&!i.values.length?DY(t,e):jl(FA(NY(i,r),r.values),n):jd(t,e)};function UA(t,e,n){return typeof t=="number"&&typeof e=="number"&&typeof n=="number"?st(t,e,n):rv(t)(t,e)}const jY=t=>{const e=({timestamp:n})=>t(n);return{start:(n=!0)=>nt.update(e,n),stop:()=>Bi(e),now:()=>Nt.isProcessing?Nt.timestamp:Qt.now()}},VA=(t,e,n=10)=>{let i="";const r=Math.max(Math.round(e/n),2);for(let l=0;l<r;l++)i+=Math.round(t(l/(r-1))*1e4)/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},zd=2e4;function ov(t){let e=0;const n=50;let i=t.next(e);for(;!i.done&&e<zd;)e+=n,i=t.next(e);return e>=zd?1/0:e}function zY(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(ov(i),zd);return{type:"keyframes",ease:l=>i.next(r*l).value/e,duration:Un(r)}}const ut={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function Mp(t,e){return t*Math.sqrt(1-e*e)}const FY=12;function UY(t,e,n){let i=n;for(let r=1;r<FY;r++)i=i-t(i)/e(i);return i}const xm=.001;function VY({duration:t=ut.duration,bounce:e=ut.bounce,velocity:n=ut.velocity,mass:i=ut.mass}){let r,l,c=1-e;c=Sa(ut.minDamping,ut.maxDamping,c),t=Sa(ut.minDuration,ut.maxDuration,Un(t)),c<1?(r=h=>{const m=h*c,y=m*t,v=m-n,b=Mp(h,c),_=Math.exp(-y);return xm-v/b*_},l=h=>{const y=h*c*t,v=y*n+n,b=Math.pow(c,2)*Math.pow(h,2)*t,_=Math.exp(-y),w=Mp(Math.pow(h,2),c);return(-r(h)+xm>0?-1:1)*((v-b)*_)/w}):(r=h=>{const m=Math.exp(-h*t),y=(h-n)*t+1;return-xm+m*y},l=h=>{const m=Math.exp(-h*t),y=(n-h)*(t*t);return m*y});const d=5/t,f=UY(r,l,d);if(t=wn(t),isNaN(f))return{stiffness:ut.stiffness,damping:ut.damping,duration:t};{const h=Math.pow(f,2)*i;return{stiffness:h,damping:c*2*Math.sqrt(i*h),duration:t}}}const $Y=["duration","bounce"],qY=["stiffness","damping","mass"];function rT(t,e){return e.some(n=>t[n]!==void 0)}function GY(t){let e={velocity:ut.velocity,stiffness:ut.stiffness,damping:ut.damping,mass:ut.mass,isResolvedFromDuration:!1,...t};if(!rT(t,qY)&&rT(t,$Y))if(e.velocity=0,t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(n*1.2),r=i*i,l=2*Sa(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:ut.mass,stiffness:r,damping:l}}else{const n=VY({...t,velocity:0});e={...e,...n,mass:ut.mass},e.isResolvedFromDuration=!0}return e}function Fd(t=ut.visualDuration,e=ut.bounce){const n=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:i,restDelta:r}=n;const l=n.keyframes[0],c=n.keyframes[n.keyframes.length-1],d={done:!1,value:l},{stiffness:f,damping:h,mass:m,duration:y,velocity:v,isResolvedFromDuration:b}=GY({...n,velocity:-Un(n.velocity||0)}),_=v||0,w=h/(2*Math.sqrt(f*m)),T=c-l,R=Un(Math.sqrt(f/m)),C=Math.abs(T)<5;i||(i=C?ut.restSpeed.granular:ut.restSpeed.default),r||(r=C?ut.restDelta.granular:ut.restDelta.default);let A,M,x,k,L,N;if(w<1)x=Mp(R,w),k=(_+w*R*T)/x,A=K=>{const Y=Math.exp(-w*R*K);return c-Y*(k*Math.sin(x*K)+T*Math.cos(x*K))},L=w*R*k+T*x,N=w*R*T-k*x,M=K=>Math.exp(-w*R*K)*(L*Math.sin(x*K)+N*Math.cos(x*K));else if(w===1){A=Y=>c-Math.exp(-R*Y)*(T+(_+R*T)*Y);const K=_+R*T;M=Y=>Math.exp(-R*Y)*(R*K*Y-_)}else{const K=R*Math.sqrt(w*w-1);A=ye=>{const ve=Math.exp(-w*R*ye),F=Math.min(K*ye,300);return c-ve*((_+w*R*T)*Math.sinh(F)+K*T*Math.cosh(F))/K};const Y=(_+w*R*T)/K,se=w*R*Y-T*K,ae=w*R*T-Y*K;M=ye=>{const ve=Math.exp(-w*R*ye),F=Math.min(K*ye,300);return ve*(se*Math.sinh(F)+ae*Math.cosh(F))}}const U={calculatedDuration:b&&y||null,velocity:K=>wn(M(K)),next:K=>{if(!b&&w<1){const se=Math.exp(-w*R*K),ae=Math.sin(x*K),ye=Math.cos(x*K),ve=c-se*(k*ae+T*ye),F=wn(se*(L*ae+N*ye));return d.done=Math.abs(F)<=i&&Math.abs(c-ve)<=r,d.value=d.done?c:ve,d}const Y=A(K);if(b)d.done=K>=y;else{const se=wn(M(K));d.done=Math.abs(se)<=i&&Math.abs(c-Y)<=r}return d.value=d.done?c:Y,d},toString:()=>{const K=Math.min(ov(U),zd),Y=VA(se=>U.next(K*se).value,K,30);return K+"ms "+Y},toTransition:()=>{}};return U}Fd.applyToOptions=t=>{const e=zY(t,100,Fd);return t.ease=e.ease,t.duration=wn(e.duration),t.type="keyframes",t};const HY=5;function $A(t,e,n){const i=Math.max(e-HY,0);return wA(n-t(i),e-i)}function kp({keyframes:t,velocity:e=0,power:n=.8,timeConstant:i=325,bounceDamping:r=10,bounceStiffness:l=500,modifyTarget:c,min:d,max:f,restDelta:h=.5,restSpeed:m}){const y=t[0],v={done:!1,value:y},b=N=>d!==void 0&&N<d||f!==void 0&&N>f,_=N=>d===void 0?f:f===void 0||Math.abs(d-N)<Math.abs(f-N)?d:f;let w=n*e;const T=y+w,R=c===void 0?T:c(T);R!==T&&(w=R-y);const C=N=>-w*Math.exp(-N/i),A=N=>R+C(N),M=N=>{const U=C(N),K=A(N);v.done=Math.abs(U)<=h,v.value=v.done?R:K};let x,k;const L=N=>{b(v.value)&&(x=N,k=Fd({keyframes:[v.value,_(v.value)],velocity:$A(A,N,v.value),damping:r,stiffness:l,restDelta:h,restSpeed:m}))};return L(0),{calculatedDuration:null,next:N=>{let U=!1;return!k&&x===void 0&&(U=!0,M(N),L(N)),x!==void 0&&N>=x?k.next(N-x):(!U&&M(N),v)}}}function KY(t,e,n){const i=[],r=n||Ii.mix||UA,l=t.length-1;for(let c=0;c<l;c++){let d=r(t[c],t[c+1]);if(e){const f=Array.isArray(e)?e[c]||Vn:e;d=jl(f,d)}i.push(d)}return i}function YY(t,e,{clamp:n=!0,ease:i,mixer:r}={}){const l=t.length;if(Qy(l===e.length),l===1)return()=>e[0];if(l===2&&e[0]===e[1])return()=>e[1];const c=t[0]===t[1];t[0]>t[l-1]&&(t=[...t].reverse(),e=[...e].reverse());const d=KY(e,i,r),f=d.length,h=m=>{if(c&&m<t[0])return e[0];let y=0;if(f>1)for(;y<t.length-2&&!(m<t[y+1]);y++);const v=Cl(t[y],t[y+1],m);return d[y](v)};return n?m=>h(Sa(t[0],t[l-1],m)):h}function XY(t,e){const n=t[t.length-1];for(let i=1;i<=e;i++){const r=Cl(0,e,i);t.push(st(n,1,r))}}function WY(t){const e=[0];return XY(e,t.length-1),e}function ZY(t,e){return t.map(n=>n*e)}function JY(t,e){return t.map(()=>e||kA).splice(0,t.length-1)}function fl({duration:t=300,keyframes:e,times:n,ease:i="easeInOut"}){const r=rY(i)?i.map(eT):eT(i),l={done:!1,value:e[0]},c=ZY(n&&n.length===e.length?n:WY(e),t),d=YY(c,e,{ease:Array.isArray(r)?r:JY(e,r)});return{calculatedDuration:t,next:f=>(l.value=d(f),l.done=f>=t,l)}}const QY=t=>t!==null;function vf(t,{repeat:e,repeatType:n="loop"},i,r=1){const l=t.filter(QY),d=r<0||e&&n!=="loop"&&e%2===1?0:l.length-1;return!d||i===void 0?l[d]:i}const eX={decay:kp,inertia:kp,tween:fl,keyframes:fl,spring:Fd};function qA(t){typeof t.type=="string"&&(t.type=eX[t.type])}class lv{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,n){return this.finished.then(e,n)}}const tX=t=>t/100;class Ud extends lv{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==Qt.now()&&this.tick(Qt.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause()}initAnimation(){const{options:e}=this;qA(e);const{type:n=fl,repeat:i=0,repeatDelay:r=0,repeatType:l,velocity:c=0}=e;let{keyframes:d}=e;const f=n||fl;f!==fl&&typeof d[0]!="number"&&(this.mixKeyframes=jl(tX,UA(d[0],d[1])),d=[0,100]);const h=f({...e,keyframes:d});l==="mirror"&&(this.mirroredGenerator=f({...e,keyframes:[...d].reverse(),velocity:-c})),h.calculatedDuration===null&&(h.calculatedDuration=ov(h));const{calculatedDuration:m}=h;this.calculatedDuration=m,this.resolvedDuration=m+r,this.totalDuration=this.resolvedDuration*(i+1)-r,this.generator=h}updateTime(e){const n=Math.round(e-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(e,n=!1){const{generator:i,totalDuration:r,mixKeyframes:l,mirroredGenerator:c,resolvedDuration:d,calculatedDuration:f}=this;if(this.startTime===null)return i.next(0);const{delay:h=0,keyframes:m,repeat:y,repeatType:v,repeatDelay:b,type:_,onUpdate:w,finalKeyframe:T}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),n?this.currentTime=e:this.updateTime(e);const R=this.currentTime-h*(this.playbackSpeed>=0?1:-1),C=this.playbackSpeed>=0?R<0:R>r;this.currentTime=Math.max(R,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=r);let A=this.currentTime,M=i;if(y){const N=Math.min(this.currentTime,r)/d;let U=Math.floor(N),K=N%1;!K&&N>=1&&(K=1),K===1&&U--,U=Math.min(U,y+1),U%2&&(v==="reverse"?(K=1-K,b&&(K-=b/d)):v==="mirror"&&(M=c)),A=Sa(0,1,K)*d}let x;C?(this.delayState.value=m[0],x=this.delayState):x=M.next(A),l&&!C&&(x.value=l(x.value));let{done:k}=x;!C&&f!==null&&(k=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);const L=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return L&&_!==kp&&(x.value=vf(m,this.options,T,this.speed)),w&&w(x.value),L&&this.finish(),x}then(e,n){return this.finished.then(e,n)}get duration(){return Un(this.calculatedDuration)}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+Un(e)}get time(){return Un(this.currentTime)}set time(e){e=wn(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=e,this.tick(e))}getGeneratorVelocity(){const e=this.currentTime;if(e<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(e);const n=this.generator.next(e).value;return $A(i=>this.generator.next(i).value,e,n)}get speed(){return this.playbackSpeed}set speed(e){const n=this.playbackSpeed!==e;n&&this.driver&&this.updateTime(Qt.now()),this.playbackSpeed=e,n&&this.driver&&(this.time=Un(this.currentTime))}play(){if(this.isStopped)return;const{driver:e=jY,startTime:n}=this.options;this.driver||(this.driver=e(r=>this.tick(r))),this.options.onPlay?.();const i=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=i):this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime||(this.startTime=n??i),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Qt.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}function nX(t){for(let e=1;e<t.length;e++)t[e]??(t[e]=t[e-1])}const gs=t=>t*180/Math.PI,Lp=t=>{const e=gs(Math.atan2(t[1],t[0]));return Dp(e)},aX={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:Lp,rotateZ:Lp,skewX:t=>gs(Math.atan(t[1])),skewY:t=>gs(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},Dp=t=>(t=t%360,t<0&&(t+=360),t),oT=Lp,lT=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),uT=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),iX={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:lT,scaleY:uT,scale:t=>(lT(t)+uT(t))/2,rotateX:t=>Dp(gs(Math.atan2(t[6],t[5]))),rotateY:t=>Dp(gs(Math.atan2(-t[2],t[0]))),rotateZ:oT,rotate:oT,skewX:t=>gs(Math.atan(t[4])),skewY:t=>gs(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function Ip(t){return t.includes("scale")?1:0}function Bp(t,e){if(!t||t==="none")return Ip(e);const n=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let i,r;if(n)i=iX,r=n;else{const d=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);i=aX,r=d}if(!r)return Ip(e);const l=i[e],c=r[1].split(",").map(rX);return typeof l=="function"?l(c):c[l]}const sX=(t,e)=>{const{transform:n="none"}=getComputedStyle(t);return Bp(n,e)};function rX(t){return parseFloat(t.trim())}const $r=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],qr=new Set($r),cT=t=>t===Vr||t===ge,oX=new Set(["x","y","z"]),lX=$r.filter(t=>!oX.has(t));function uX(t){const e=[];return lX.forEach(n=>{const i=t.getValue(n);i!==void 0&&(e.push([n,i.get()]),i.set(n.startsWith("scale")?1:0))}),e}const Mi={width:({x:t},{paddingLeft:e="0",paddingRight:n="0",boxSizing:i})=>{const r=t.max-t.min;return i==="border-box"?r:r-parseFloat(e)-parseFloat(n)},height:({y:t},{paddingTop:e="0",paddingBottom:n="0",boxSizing:i})=>{const r=t.max-t.min;return i==="border-box"?r:r-parseFloat(e)-parseFloat(n)},top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:(t,{transform:e})=>Bp(e,"x"),y:(t,{transform:e})=>Bp(e,"y")};Mi.translateX=Mi.x;Mi.translateY=Mi.y;const ps=new Set;let Np=!1,Pp=!1,jp=!1;function GA(){if(Pp){const t=Array.from(ps).filter(i=>i.needsMeasurement),e=new Set(t.map(i=>i.element)),n=new Map;e.forEach(i=>{const r=uX(i);r.length&&(n.set(i,r),i.render())}),t.forEach(i=>i.measureInitialState()),e.forEach(i=>{i.render();const r=n.get(i);r&&r.forEach(([l,c])=>{i.getValue(l)?.set(c)})}),t.forEach(i=>i.measureEndState()),t.forEach(i=>{i.suspendedScrollY!==void 0&&window.scrollTo(0,i.suspendedScrollY)})}Pp=!1,Np=!1,ps.forEach(t=>t.complete(jp)),ps.clear()}function HA(){ps.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(Pp=!0)})}function cX(){jp=!0,HA(),GA(),jp=!1}class uv{constructor(e,n,i,r,l,c=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=n,this.name=i,this.motionValue=r,this.element=l,this.isAsync=c}scheduleResolve(){this.state="scheduled",this.isAsync?(ps.add(this),Np||(Np=!0,nt.read(HA),nt.resolveKeyframes(GA))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:n,element:i,motionValue:r}=this;if(e[0]===null){const l=r?.get(),c=e[e.length-1];if(l!==void 0)e[0]=l;else if(i&&n){const d=i.readValue(n,c);d!=null&&(e[0]=d)}e[0]===void 0&&(e[0]=c),r&&l===void 0&&r.set(e[0])}nX(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),ps.delete(this)}cancel(){this.state==="scheduled"&&(ps.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const dX=t=>t.startsWith("--");function KA(t,e,n){dX(e)?t.style.setProperty(e,n):t.style[e]=n}const fX={};function YA(t,e){const n=_A(t);return()=>fX[e]??n()}const hX=YA(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),XA=YA(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),il=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,dT={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:il([0,.65,.55,1]),circOut:il([.55,0,1,.45]),backIn:il([.31,.01,.66,-.59]),backOut:il([.33,1.53,.69,.99])};function WA(t,e){if(t)return typeof t=="function"?XA()?VA(t,e):"ease-out":LA(t)?il(t):Array.isArray(t)?t.map(n=>WA(n,e)||dT.easeOut):dT[t]}function gX(t,e,n,{delay:i=0,duration:r=300,repeat:l=0,repeatType:c="loop",ease:d="easeOut",times:f}={},h=void 0){const m={[e]:n};f&&(m.offset=f);const y=WA(d,r);Array.isArray(y)&&(m.easing=y);const v={delay:i,duration:r,easing:Array.isArray(y)?"linear":y,fill:"both",iterations:l+1,direction:c==="reverse"?"alternate":"normal"};return h&&(v.pseudoElement=h),t.animate(m,v)}function ZA(t){return typeof t=="function"&&"applyToOptions"in t}function mX({type:t,...e}){return ZA(t)&&XA()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}class JA extends lv{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;const{element:n,name:i,keyframes:r,pseudoElement:l,allowFlatten:c=!1,finalKeyframe:d,onComplete:f}=e;this.isPseudoElement=!!l,this.allowFlatten=c,this.options=e,Qy(typeof e.type!="string");const h=mX(e);this.animation=gX(n,i,r,h,l),h.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!l){const m=vf(r,this.options,d,this.speed);this.updateMotionValue&&this.updateMotionValue(m),KA(n,i,m),this.animation.cancel()}f?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:e}=this;e==="idle"||e==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){const e=this.animation.effect?.getComputedTiming?.().duration||0;return Un(Number(e))}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+Un(e)}get time(){return Un(Number(this.animation.currentTime)||0)}set time(e){const n=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=wn(e),n&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,rangeStart:n,rangeEnd:i,observe:r}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&&hX()?(this.animation.timeline=e,n&&(this.animation.rangeStart=n),i&&(this.animation.rangeEnd=i),Vn):r(this)}}const QA={anticipate:xA,backInOut:AA,circInOut:MA};function pX(t){return t in QA}function yX(t){typeof t.ease=="string"&&pX(t.ease)&&(t.ease=QA[t.ease])}const Om=10;class vX extends JA{constructor(e){yX(e),qA(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){const{motionValue:n,onUpdate:i,onComplete:r,element:l,...c}=this.options;if(!n)return;if(e!==void 0){n.set(e);return}const d=new Ud({...c,autoplay:!1}),f=Math.max(Om,Qt.now()-this.startTime),h=Sa(0,Om,f-Om),m=d.sample(f).value,{name:y}=this.options;l&&y&&KA(l,y,m),n.setWithVelocity(d.sample(Math.max(0,f-h)).value,m,h),d.stop()}}const fT=(t,e)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Qn.test(t)||t==="0")&&!t.startsWith("url("));function bX(t){const e=t[0];if(t.length===1)return!0;for(let n=0;n<t.length;n++)if(t[n]!==e)return!0}function SX(t,e,n,i){const r=t[0];if(r===null)return!1;if(e==="display"||e==="visibility")return!0;const l=t[t.length-1],c=fT(r,e),d=fT(l,e);return!c||!d?!1:bX(t)||(n==="spring"||ZA(n))&&i}function zp(t){t.duration=0,t.type="keyframes"}const e3=new Set(["opacity","clipPath","filter","transform"]),_X=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function wX(t){for(let e=0;e<t.length;e++)if(typeof t[e]=="string"&&_X.test(t[e]))return!0;return!1}const TX=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),EX=_A(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function RX(t){const{motionValue:e,name:n,repeatDelay:i,repeatType:r,damping:l,type:c,keyframes:d}=t;if(!(e?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:m}=e.owner.getProps();return EX()&&n&&(e3.has(n)||TX.has(n)&&wX(d))&&(n!=="transform"||!m)&&!h&&!i&&r!=="mirror"&&l!==0&&c!=="inertia"}const CX=40;class AX extends lv{constructor({autoplay:e=!0,delay:n=0,type:i="keyframes",repeat:r=0,repeatDelay:l=0,repeatType:c="loop",keyframes:d,name:f,motionValue:h,element:m,...y}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Qt.now();const v={autoplay:e,delay:n,type:i,repeat:r,repeatDelay:l,repeatType:c,name:f,motionValue:h,element:m,...y},b=m?.KeyframeResolver||uv;this.keyframeResolver=new b(d,(_,w,T)=>this.onKeyframesResolved(_,w,v,!T),f,h,m),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,n,i,r){this.keyframeResolver=void 0;const{name:l,type:c,velocity:d,delay:f,isHandoff:h,onUpdate:m}=i;this.resolvedAt=Qt.now();let y=!0;SX(e,l,c,d)||(y=!1,(Ii.instantAnimations||!f)&&m?.(vf(e,i,n)),e[0]=e[e.length-1],zp(i),i.repeat=0);const b={startTime:r?this.resolvedAt?this.resolvedAt-this.createdAt>CX?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...i,keyframes:e},_=y&&!h&&RX(b),w=b.motionValue?.owner?.current;let T;if(_)try{T=new vX({...b,element:w})}catch{T=new Ud(b)}else T=new Ud(b);T.finished.then(()=>{this.notifyFinished()}).catch(Vn),this.pendingTimeline&&(this.stopTimeline=T.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=T}get finished(){return this._animation?this.animation.finished:this._finished}then(e,n){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),cX()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function t3(t,e,n,i=0,r=1){const l=Array.from(t).sort((h,m)=>h.sortNodePosition(m)).indexOf(e),c=t.size,d=(c-1)*i;return typeof n=="function"?n(l,c):r===1?l*i:d-l*i}const xX=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function OX(t){const e=xX.exec(t);if(!e)return[,];const[,n,i,r]=e;return[`--${n??i}`,r]}function n3(t,e,n=1){const[i,r]=OX(t);if(!i)return;const l=window.getComputedStyle(e).getPropertyValue(i);if(l){const c=l.trim();return vA(c)?parseFloat(c):c}return av(r)?n3(r,e,n+1):r}const MX={type:"spring",stiffness:500,damping:25,restSpeed:10},kX=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),LX={type:"keyframes",duration:.8},DX={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},IX=(t,{keyframes:e})=>e.length>2?LX:qr.has(t)?t.startsWith("scale")?kX(e[1]):MX:DX;function a3(t,e){if(t?.inherit&&e){const{inherit:n,...i}=t;return{...e,...i}}return t}function cv(t,e){const n=t?.[e]??t?.default??t;return n!==t?a3(n,t):n}const BX=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function NX(t){for(const e in t)if(!BX.has(e))return!0;return!1}const dv=(t,e,n,i={},r,l)=>c=>{const d=cv(i,t)||{},f=d.delay||i.delay||0;let{elapsed:h=0}=i;h=h-wn(f);const m={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:e.getVelocity(),...d,delay:-h,onUpdate:v=>{e.set(v),d.onUpdate&&d.onUpdate(v)},onComplete:()=>{c(),d.onComplete&&d.onComplete()},name:t,motionValue:e,element:l?void 0:r};NX(d)||Object.assign(m,IX(t,m)),m.duration&&(m.duration=wn(m.duration)),m.repeatDelay&&(m.repeatDelay=wn(m.repeatDelay)),m.from!==void 0&&(m.keyframes[0]=m.from);let y=!1;if((m.type===!1||m.duration===0&&!m.repeatDelay)&&(zp(m),m.delay===0&&(y=!0)),(Ii.instantAnimations||Ii.skipAnimations||r?.shouldSkipAnimations)&&(y=!0,zp(m),m.delay=0),m.allowFlatten=!d.type&&!d.ease,y&&!l&&e.get()!==void 0){const v=vf(m.keyframes,d);if(v!==void 0){nt.update(()=>{m.onUpdate(v),m.onComplete()});return}}return d.isSync?new Ud(m):new AX(m)};function hT(t){const e=[{},{}];return t?.values.forEach((n,i)=>{e[0][i]=n.get(),e[1][i]=n.getVelocity()}),e}function fv(t,e,n,i){if(typeof e=="function"){const[r,l]=hT(i);e=e(n!==void 0?n:t.custom,r,l)}if(typeof e=="string"&&(e=t.variants&&t.variants[e]),typeof e=="function"){const[r,l]=hT(i);e=e(n!==void 0?n:t.custom,r,l)}return e}function ys(t,e,n){const i=t.getProps();return fv(i,e,n!==void 0?n:i.custom,t)}const i3=new Set(["width","height","top","left","right","bottom",...$r]),gT=30,PX=t=>!isNaN(parseFloat(t));class jX{constructor(e,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=i=>{const r=Qt.now();if(this.updatedAt!==r&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(i),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const l of this.dependents)l.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=n.owner}setCurrent(e){this.current=e,this.updatedAt=Qt.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=PX(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,n){this.events[e]||(this.events[e]=new ev);const i=this.events[e].add(n);return e==="change"?()=>{i(),nt.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,n){this.passiveEffect=e,this.stopPassiveEffect=n}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,n,i){this.set(n),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-i}jump(e,n=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const e=Qt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>gT)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,gT);return wA(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(e){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=e(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function jr(t,e){return new jX(t,e)}const Fp=t=>Array.isArray(t);function zX(t,e,n){t.hasValue(e)?t.getValue(e).set(n):t.addValue(e,jr(n))}function FX(t){return Fp(t)?t[t.length-1]||0:t}function UX(t,e){const n=ys(t,e);let{transitionEnd:i={},transition:r={},...l}=n||{};l={...l,...i};for(const c in l){const d=FX(l[c]);zX(t,c,d)}}const zt=t=>!!(t&&t.getVelocity);function VX(t){return!!(zt(t)&&t.add)}function Up(t,e){const n=t.getValue("willChange");if(VX(n))return n.add(e);if(!n&&Ii.WillChange){const i=new Ii.WillChange("auto");t.addValue("willChange",i),i.add(e)}}function hv(t){return t.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}const $X="framerAppearId",s3="data-"+hv($X);function r3(t){return t.props[s3]}function qX({protectedKeys:t,needsAnimating:e},n){const i=t.hasOwnProperty(n)&&e[n]!==!0;return e[n]=!1,i}function o3(t,e,{delay:n=0,transitionOverride:i,type:r}={}){let{transition:l,transitionEnd:c,...d}=e;const f=t.getDefaultTransition();l=l?a3(l,f):f;const h=l?.reduceMotion;i&&(l=i);const m=[],y=r&&t.animationState&&t.animationState.getState()[r];for(const v in d){const b=t.getValue(v,t.latestValues[v]??null),_=d[v];if(_===void 0||y&&qX(y,v))continue;const w={delay:n,...cv(l||{},v)},T=b.get();if(T!==void 0&&!b.isAnimating()&&!Array.isArray(_)&&_===T&&!w.velocity){nt.update(()=>b.set(_));continue}let R=!1;if(window.MotionHandoffAnimation){const M=r3(t);if(M){const x=window.MotionHandoffAnimation(M,v,nt);x!==null&&(w.startTime=x,R=!0)}}Up(t,v);const C=h??t.shouldReduceMotion;b.start(dv(v,b,_,C&&i3.has(v)?{type:!1}:w,t,R));const A=b.animation;A&&m.push(A)}if(c){const v=()=>nt.update(()=>{c&&UX(t,c)});m.length?Promise.all(m).then(v):v()}return m}function Vp(t,e,n={}){const i=ys(t,e,n.type==="exit"?t.presenceContext?.custom:void 0);let{transition:r=t.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(r=n.transitionOverride);const l=i?()=>Promise.all(o3(t,i,n)):()=>Promise.resolve(),c=t.variantChildren&&t.variantChildren.size?(f=0)=>{const{delayChildren:h=0,staggerChildren:m,staggerDirection:y}=r;return GX(t,e,f,h,m,y,n)}:()=>Promise.resolve(),{when:d}=r;if(d){const[f,h]=d==="beforeChildren"?[l,c]:[c,l];return f().then(()=>h())}else return Promise.all([l(),c(n.delay)])}function GX(t,e,n=0,i=0,r=0,l=1,c){const d=[];for(const f of t.variantChildren)f.notify("AnimationStart",e),d.push(Vp(f,e,{...c,delay:n+(typeof i=="function"?0:i)+t3(t.variantChildren,f,i,r,l)}).then(()=>f.notify("AnimationComplete",e)));return Promise.all(d)}function HX(t,e,n={}){t.notify("AnimationStart",e);let i;if(Array.isArray(e)){const r=e.map(l=>Vp(t,l,n));i=Promise.all(r)}else if(typeof e=="string")i=Vp(t,e,n);else{const r=typeof e=="function"?ys(t,e,n.custom):e;i=Promise.all(o3(t,r,n))}return i.then(()=>{t.notify("AnimationComplete",e)})}const KX={test:t=>t==="auto",parse:t=>t},l3=t=>e=>e.test(t),u3=[Vr,ge,ba,xi,bY,vY,KX],mT=t=>u3.find(l3(t));function YX(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||SA(t):!0}const XX=new Set(["brightness","contrast","saturate","opacity"]);function WX(t){const[e,n]=t.slice(0,-1).split("(");if(e==="drop-shadow")return t;const[i]=n.match(iv)||[];if(!i)return t;const r=n.replace(i,"");let l=XX.has(e)?1:0;return i!==n&&(l*=100),e+"("+l+r+")"}const ZX=/\b([a-z-]*)\(.*?\)/gu,$p={...Qn,getAnimatableNone:t=>{const e=t.match(ZX);return e?e.map(WX).join(" "):t}},qp={...Qn,getAnimatableNone:t=>{const e=Qn.parse(t);return Qn.createTransformer(t)(e.map(i=>typeof i=="number"?0:typeof i=="object"?{...i,alpha:1}:i))}},pT={...Vr,transform:Math.round},JX={rotate:xi,rotateX:xi,rotateY:xi,rotateZ:xi,scale:Lc,scaleX:Lc,scaleY:Lc,scaleZ:Lc,skew:xi,skewX:xi,skewY:xi,distance:ge,translateX:ge,translateY:ge,translateZ:ge,x:ge,y:ge,z:ge,perspective:ge,transformPerspective:ge,opacity:Al,originX:nT,originY:nT,originZ:ge},gv={borderWidth:ge,borderTopWidth:ge,borderRightWidth:ge,borderBottomWidth:ge,borderLeftWidth:ge,borderRadius:ge,borderTopLeftRadius:ge,borderTopRightRadius:ge,borderBottomRightRadius:ge,borderBottomLeftRadius:ge,width:ge,maxWidth:ge,height:ge,maxHeight:ge,top:ge,right:ge,bottom:ge,left:ge,inset:ge,insetBlock:ge,insetBlockStart:ge,insetBlockEnd:ge,insetInline:ge,insetInlineStart:ge,insetInlineEnd:ge,padding:ge,paddingTop:ge,paddingRight:ge,paddingBottom:ge,paddingLeft:ge,paddingBlock:ge,paddingBlockStart:ge,paddingBlockEnd:ge,paddingInline:ge,paddingInlineStart:ge,paddingInlineEnd:ge,margin:ge,marginTop:ge,marginRight:ge,marginBottom:ge,marginLeft:ge,marginBlock:ge,marginBlockStart:ge,marginBlockEnd:ge,marginInline:ge,marginInlineStart:ge,marginInlineEnd:ge,fontSize:ge,backgroundPositionX:ge,backgroundPositionY:ge,...JX,zIndex:pT,fillOpacity:Al,strokeOpacity:Al,numOctaves:pT},QX={...gv,color:vt,backgroundColor:vt,outlineColor:vt,fill:vt,stroke:vt,borderColor:vt,borderTopColor:vt,borderRightColor:vt,borderBottomColor:vt,borderLeftColor:vt,filter:$p,WebkitFilter:$p,mask:qp,WebkitMask:qp},c3=t=>QX[t],eW=new Set([$p,qp]);function d3(t,e){let n=c3(t);return eW.has(n)||(n=Qn),n.getAnimatableNone?n.getAnimatableNone(e):void 0}const tW=new Set(["auto","none","0"]);function nW(t,e,n){let i=0,r;for(;i<t.length&&!r;){const l=t[i];typeof l=="string"&&!tW.has(l)&&Pr(l).values.length&&(r=t[i]),i++}if(r&&n)for(const l of e)t[l]=d3(n,r)}class aW extends uv{constructor(e,n,i,r,l){super(e,n,i,r,l,!0)}readKeyframes(){const{unresolvedKeyframes:e,element:n,name:i}=this;if(!n||!n.current)return;super.readKeyframes();for(let m=0;m<e.length;m++){let y=e[m];if(typeof y=="string"&&(y=y.trim(),av(y))){const v=n3(y,n.current);v!==void 0&&(e[m]=v),m===e.length-1&&(this.finalKeyframe=y)}}if(this.resolveNoneKeyframes(),!i3.has(i)||e.length!==2)return;const[r,l]=e,c=mT(r),d=mT(l),f=tT(r),h=tT(l);if(f!==h&&Mi[i]){this.needsMeasurement=!0;return}if(c!==d)if(cT(c)&&cT(d))for(let m=0;m<e.length;m++){const y=e[m];typeof y=="string"&&(e[m]=parseFloat(y))}else Mi[i]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:e,name:n}=this,i=[];for(let r=0;r<e.length;r++)(e[r]===null||YX(e[r]))&&i.push(r);i.length&&nW(e,i,n)}measureInitialState(){const{element:e,unresolvedKeyframes:n,name:i}=this;if(!e||!e.current)return;i==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Mi[i](e.measureViewportBox(),window.getComputedStyle(e.current)),n[0]=this.measuredOrigin;const r=n[n.length-1];r!==void 0&&e.getValue(i,r).jump(r,!1)}measureEndState(){const{element:e,name:n,unresolvedKeyframes:i}=this;if(!e||!e.current)return;const r=e.getValue(n);r&&r.jump(this.measuredOrigin,!1);const l=i.length-1,c=i[l];i[l]=Mi[n](e.measureViewportBox(),window.getComputedStyle(e.current)),c!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=c),this.removedTransforms?.length&&this.removedTransforms.forEach(([d,f])=>{e.getValue(d).set(f)}),this.resolveNoneKeyframes()}}function f3(t,e,n){if(t==null)return[];if(t instanceof EventTarget)return[t];if(typeof t=="string"){let i=document;const r=n?.[t]??i.querySelectorAll(t);return r?Array.from(r):[]}return Array.from(t).filter(i=>i!=null)}const h3=(t,e)=>e&&typeof t=="number"?e.transform(t):t;function td(t){return bA(t)&&"offsetHeight"in t&&!("ownerSVGElement"in t)}const{schedule:mv}=DA(queueMicrotask,!1),Xn={x:!1,y:!1};function g3(){return Xn.x||Xn.y}function iW(t){return t==="x"||t==="y"?Xn[t]?null:(Xn[t]=!0,()=>{Xn[t]=!1}):Xn.x||Xn.y?null:(Xn.x=Xn.y=!0,()=>{Xn.x=Xn.y=!1})}function m3(t,e){const n=f3(t),i=new AbortController,r={passive:!0,...e,signal:i.signal};return[n,r,()=>i.abort()]}function sW(t){return!(t.pointerType==="touch"||g3())}function rW(t,e,n={}){const[i,r,l]=m3(t,n);return i.forEach(c=>{let d=!1,f=!1,h;const m=()=>{c.removeEventListener("pointerleave",_)},y=T=>{h&&(h(T),h=void 0),m()},v=T=>{d=!1,window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",v),f&&(f=!1,y(T))},b=()=>{d=!0,window.addEventListener("pointerup",v,r),window.addEventListener("pointercancel",v,r)},_=T=>{if(T.pointerType!=="touch"){if(d){f=!0;return}y(T)}},w=T=>{if(!sW(T))return;f=!1;const R=e(c,T);typeof R=="function"&&(h=R,c.addEventListener("pointerleave",_,r))};c.addEventListener("pointerenter",w,r),c.addEventListener("pointerdown",b,r)}),l}const p3=(t,e)=>e?t===e?!0:p3(t,e.parentElement):!1,pv=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1,oW=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function lW(t){return oW.has(t.tagName)||t.isContentEditable===!0}const uW=new Set(["INPUT","SELECT","TEXTAREA"]);function cW(t){return uW.has(t.tagName)||t.isContentEditable===!0}const nd=new WeakSet;function yT(t){return e=>{e.key==="Enter"&&t(e)}}function Mm(t,e){t.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}const dW=(t,e)=>{const n=t.currentTarget;if(!n)return;const i=yT(()=>{if(nd.has(n))return;Mm(n,"down");const r=yT(()=>{Mm(n,"up")}),l=()=>Mm(n,"cancel");n.addEventListener("keyup",r,e),n.addEventListener("blur",l,e)});n.addEventListener("keydown",i,e),n.addEventListener("blur",()=>n.removeEventListener("keydown",i),e)};function vT(t){return pv(t)&&!g3()}const bT=new WeakSet;function fW(t,e,n={}){const[i,r,l]=m3(t,n),c=d=>{const f=d.currentTarget;if(!vT(d)||bT.has(d))return;nd.add(f),n.stopPropagation&&bT.add(d);const h=e(f,d),m=(b,_)=>{window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",v),nd.has(f)&&nd.delete(f),vT(b)&&typeof h=="function"&&h(b,{success:_})},y=b=>{m(b,f===window||f===document||n.useGlobalTarget||p3(f,b.target))},v=b=>{m(b,!1)};window.addEventListener("pointerup",y,r),window.addEventListener("pointercancel",v,r)};return i.forEach(d=>{(n.useGlobalTarget?window:d).addEventListener("pointerdown",c,r),td(d)&&(d.addEventListener("focus",h=>dW(h,r)),!lW(d)&&!d.hasAttribute("tabindex")&&(d.tabIndex=0))}),l}function yv(t){return bA(t)&&"ownerSVGElement"in t}const ad=new WeakMap;let id;const y3=(t,e,n)=>(i,r)=>r&&r[0]?r[0][t+"Size"]:yv(i)&&"getBBox"in i?i.getBBox()[e]:i[n],hW=y3("inline","width","offsetWidth"),gW=y3("block","height","offsetHeight");function mW({target:t,borderBoxSize:e}){ad.get(t)?.forEach(n=>{n(t,{get width(){return hW(t,e)},get height(){return gW(t,e)}})})}function pW(t){t.forEach(mW)}function yW(){typeof ResizeObserver>"u"||(id=new ResizeObserver(pW))}function vW(t,e){id||yW();const n=f3(t);return n.forEach(i=>{let r=ad.get(i);r||(r=new Set,ad.set(i,r)),r.add(e),id?.observe(i)}),()=>{n.forEach(i=>{const r=ad.get(i);r?.delete(e),r?.size||id?.unobserve(i)})}}const sd=new Set;let _r;function bW(){_r=()=>{const t={get width(){return window.innerWidth},get height(){return window.innerHeight}};sd.forEach(e=>e(t))},window.addEventListener("resize",_r)}function SW(t){return sd.add(t),_r||bW(),()=>{sd.delete(t),!sd.size&&typeof _r=="function"&&(window.removeEventListener("resize",_r),_r=void 0)}}function ST(t,e){return typeof t=="function"?SW(t):vW(t,e)}function _W(t){return yv(t)&&t.tagName==="svg"}const wW=[...u3,vt,Qn],TW=t=>wW.find(l3(t)),_T=()=>({translate:0,scale:1,origin:0,originPoint:0}),wr=()=>({x:_T(),y:_T()}),wT=()=>({min:0,max:0}),Et=()=>({x:wT(),y:wT()}),EW=new WeakMap;function bf(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}function xl(t){return typeof t=="string"||Array.isArray(t)}const vv=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],bv=["initial",...vv];function Sf(t){return bf(t.animate)||bv.some(e=>xl(t[e]))}function v3(t){return!!(Sf(t)||t.variants)}function RW(t,e,n){for(const i in e){const r=e[i],l=n[i];if(zt(r))t.addValue(i,r);else if(zt(l))t.addValue(i,jr(r,{owner:t}));else if(l!==r)if(t.hasValue(i)){const c=t.getValue(i);c.liveStyle===!0?c.jump(r):c.hasAnimated||c.set(r)}else{const c=t.getStaticValue(i);t.addValue(i,jr(c!==void 0?c:r,{owner:t}))}}for(const i in n)e[i]===void 0&&t.removeValue(i);return e}const Gp={current:null},b3={current:!1},CW=typeof window<"u";function AW(){if(b3.current=!0,!!CW)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),e=()=>Gp.current=t.matches;t.addEventListener("change",e),e()}else Gp.current=!1}const TT=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let Vd={};function S3(t){Vd=t}function xW(){return Vd}class OW{scrapeMotionValuesFromProps(e,n,i){return{}}constructor({parent:e,props:n,presenceContext:i,reducedMotionConfig:r,skipAnimations:l,blockInitialAnimation:c,visualState:d},f={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=uv,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const b=Qt.now();this.renderScheduledAt<b&&(this.renderScheduledAt=b,nt.render(this.render,!1,!0))};const{latestValues:h,renderState:m}=d;this.latestValues=h,this.baseTarget={...h},this.initialValues=n.initial?{...h}:{},this.renderState=m,this.parent=e,this.props=n,this.presenceContext=i,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.skipAnimationsConfig=l,this.options=f,this.blockInitialAnimation=!!c,this.isControllingVariants=Sf(n),this.isVariantNode=v3(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);const{willChange:y,...v}=this.scrapeMotionValuesFromProps(n,{},this);for(const b in v){const _=v[b];h[b]!==void 0&&zt(_)&&_.set(h[b])}}mount(e){if(this.hasBeenMounted)for(const n in this.initialValues)this.values.get(n)?.jump(this.initialValues[n]),this.latestValues[n]=this.initialValues[n];this.current=e,EW.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,i)=>this.bindToMotionValue(i,n)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(b3.current||AW(),this.shouldReduceMotion=Gp.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),Bi(this.notifyUpdate),Bi(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const e in this.events)this.events[e].clear();for(const e in this.features){const n=this.features[e];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,n){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),n.accelerate&&e3.has(e)&&this.current instanceof HTMLElement){const{factory:c,keyframes:d,times:f,ease:h,duration:m}=n.accelerate,y=new JA({element:this.current,name:e,keyframes:d,times:f,ease:h,duration:wn(m)}),v=c(y);this.valueSubscriptions.set(e,()=>{v(),y.cancel()});return}const i=qr.has(e);i&&this.onBindTransform&&this.onBindTransform();const r=n.on("change",c=>{this.latestValues[e]=c,this.props.onUpdate&&nt.preRender(this.notifyUpdate),i&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let l;typeof window<"u"&&window.MotionCheckAppearSync&&(l=window.MotionCheckAppearSync(this,e,n)),this.valueSubscriptions.set(e,()=>{r(),l&&l(),n.owner&&n.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e="animation";for(e in Vd){const n=Vd[e];if(!n)continue;const{isEnabled:i,Feature:r}=n;if(!this.features[e]&&r&&i(this.props)&&(this.features[e]=new r(this)),this.features[e]){const l=this.features[e];l.isMounted?l.update():(l.mount(),l.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Et()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,n){this.latestValues[e]=n}update(e,n){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let i=0;i<TT.length;i++){const r=TT[i];this.propEventSubscriptions[r]&&(this.propEventSubscriptions[r](),delete this.propEventSubscriptions[r]);const l="on"+r,c=e[l];c&&(this.propEventSubscriptions[r]=this.on(r,c))}this.prevMotionValues=RW(this,this.scrapeMotionValuesFromProps(e,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(e){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(e),()=>n.variantChildren.delete(e)}addValue(e,n){const i=this.values.get(e);n!==i&&(i&&this.removeValue(e),this.bindToMotionValue(e,n),this.values.set(e,n),this.latestValues[e]=n.get())}removeValue(e){this.values.delete(e);const n=this.valueSubscriptions.get(e);n&&(n(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,n){if(this.props.values&&this.props.values[e])return this.props.values[e];let i=this.values.get(e);return i===void 0&&n!==void 0&&(i=jr(n===null?void 0:n,{owner:this}),this.addValue(e,i)),i}readValue(e,n){let i=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return i!=null&&(typeof i=="string"&&(vA(i)||SA(i))?i=parseFloat(i):!TW(i)&&Qn.test(n)&&(i=d3(e,n)),this.setBaseTarget(e,zt(i)?i.get():i)),zt(i)?i.get():i}setBaseTarget(e,n){this.baseTarget[e]=n}getBaseTarget(e){const{initial:n}=this.props;let i;if(typeof n=="string"||typeof n=="object"){const l=fv(this.props,n,this.presenceContext?.custom);l&&(i=l[e])}if(n&&i!==void 0)return i;const r=this.getBaseTargetFromProps(this.props,e);return r!==void 0&&!zt(r)?r:this.initialValues[e]!==void 0&&i===void 0?void 0:this.baseTarget[e]}on(e,n){return this.events[e]||(this.events[e]=new ev),this.events[e].add(n)}notify(e,...n){this.events[e]&&this.events[e].notify(...n)}scheduleRenderMicrotask(){mv.render(this.render)}}class _3 extends OW{constructor(){super(...arguments),this.KeyframeResolver=aW}sortInstanceNodePosition(e,n){return e.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(e,n){const i=e.style;return i?i[n]:void 0}removeValueFromRenderState(e,{vars:n,style:i}){delete n[e],delete i[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;zt(e)&&(this.childSubscription=e.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class Ni{constructor(e){this.isMounted=!1,this.node=e}update(){}}function w3({top:t,left:e,right:n,bottom:i}){return{x:{min:e,max:n},y:{min:t,max:i}}}function MW({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}function kW(t,e){if(!e)return t;const n=e({x:t.left,y:t.top}),i=e({x:t.right,y:t.bottom});return{top:n.y,left:n.x,bottom:i.y,right:i.x}}function km(t){return t===void 0||t===1}function Hp({scale:t,scaleX:e,scaleY:n}){return!km(t)||!km(e)||!km(n)}function os(t){return Hp(t)||T3(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function T3(t){return ET(t.x)||ET(t.y)}function ET(t){return t&&t!=="0%"}function $d(t,e,n){const i=t-n,r=e*i;return n+r}function RT(t,e,n,i,r){return r!==void 0&&(t=$d(t,r,i)),$d(t,n,i)+e}function Kp(t,e=0,n=1,i,r){t.min=RT(t.min,e,n,i,r),t.max=RT(t.max,e,n,i,r)}function E3(t,{x:e,y:n}){Kp(t.x,e.translate,e.scale,e.originPoint),Kp(t.y,n.translate,n.scale,n.originPoint)}const CT=.999999999999,AT=1.0000000000001;function LW(t,e,n,i=!1){const r=n.length;if(!r)return;e.x=e.y=1;let l,c;for(let d=0;d<r;d++){l=n[d],c=l.projectionDelta;const{visualElement:f}=l.options;f&&f.props.style&&f.props.style.display==="contents"||(i&&l.options.layoutScroll&&l.scroll&&l!==l.root&&(fa(t.x,-l.scroll.offset.x),fa(t.y,-l.scroll.offset.y)),c&&(e.x*=c.x.scale,e.y*=c.y.scale,E3(t,c)),i&&os(l.latestValues)&&rd(t,l.latestValues,l.layout?.layoutBox))}e.x<AT&&e.x>CT&&(e.x=1),e.y<AT&&e.y>CT&&(e.y=1)}function fa(t,e){t.min+=e,t.max+=e}function xT(t,e,n,i,r=.5){const l=st(t.min,t.max,r);Kp(t,e,n,l,i)}function OT(t,e){return typeof t=="string"?parseFloat(t)/100*(e.max-e.min):t}function rd(t,e,n){const i=n??t;xT(t.x,OT(e.x,i.x),e.scaleX,e.scale,e.originX),xT(t.y,OT(e.y,i.y),e.scaleY,e.scale,e.originY)}function R3(t,e){return w3(kW(t.getBoundingClientRect(),e))}function DW(t,e,n){const i=R3(t,n),{scroll:r}=e;return r&&(fa(i.x,r.offset.x),fa(i.y,r.offset.y)),i}const IW={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},BW=$r.length;function NW(t,e,n){let i="",r=!0;for(let l=0;l<BW;l++){const c=$r[l],d=t[c];if(d===void 0)continue;let f=!0;if(typeof d=="number")f=d===(c.startsWith("scale")?1:0);else{const h=parseFloat(d);f=c.startsWith("scale")?h===1:h===0}if(!f||n){const h=h3(d,gv[c]);if(!f){r=!1;const m=IW[c]||c;i+=`${m}(${h}) `}n&&(e[c]=h)}}return i=i.trim(),n?i=n(e,r?"":i):r&&(i="none"),i}function Sv(t,e,n){const{style:i,vars:r,transformOrigin:l}=t;let c=!1,d=!1;for(const f in e){const h=e[f];if(qr.has(f)){c=!0;continue}else if(BA(f)){r[f]=h;continue}else{const m=h3(h,gv[f]);f.startsWith("origin")?(d=!0,l[f]=m):i[f]=m}}if(e.transform||(c||n?i.transform=NW(e,t.transform,n):i.transform&&(i.transform="none")),d){const{originX:f="50%",originY:h="50%",originZ:m=0}=l;i.transformOrigin=`${f} ${h} ${m}`}}function C3(t,{style:e,vars:n},i,r){const l=t.style;let c;for(c in e)l[c]=e[c];r?.applyProjectionStyles(l,i);for(c in n)l.setProperty(c,n[c])}function MT(t,e){return e.max===e.min?0:t/(e.max-e.min)*100}const Ho={correct:(t,e)=>{if(!e.target)return t;if(typeof t=="string")if(ge.test(t))t=parseFloat(t);else return t;const n=MT(t,e.target.x),i=MT(t,e.target.y);return`${n}% ${i}%`}},PW={correct:(t,{treeScale:e,projectionDelta:n})=>{const i=t,r=Qn.parse(t);if(r.length>5)return i;const l=Qn.createTransformer(t),c=typeof r[0]!="number"?1:0,d=n.x.scale*e.x,f=n.y.scale*e.y;r[0+c]/=d,r[1+c]/=f;const h=st(d,f,.5);return typeof r[2+c]=="number"&&(r[2+c]/=h),typeof r[3+c]=="number"&&(r[3+c]/=h),l(r)}},Yp={borderRadius:{...Ho,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Ho,borderTopRightRadius:Ho,borderBottomLeftRadius:Ho,borderBottomRightRadius:Ho,boxShadow:PW};function A3(t,{layout:e,layoutId:n}){return qr.has(t)||t.startsWith("origin")||(e||n!==void 0)&&(!!Yp[t]||t==="opacity")}function _v(t,e,n){const i=t.style,r=e?.style,l={};if(!i)return l;for(const c in i)(zt(i[c])||r&&zt(r[c])||A3(c,t)||n?.getValue(c)?.liveStyle!==void 0)&&(l[c]=i[c]);return l}function jW(t){return window.getComputedStyle(t)}class zW extends _3{constructor(){super(...arguments),this.type="html",this.renderInstance=C3}readValueFromInstance(e,n){if(qr.has(n))return this.projection?.isProjecting?Ip(n):sX(e,n);{const i=jW(e),r=(BA(n)?i.getPropertyValue(n):i[n])||0;return typeof r=="string"?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:n}){return R3(e,n)}build(e,n,i){Sv(e,n,i.transformTemplate)}scrapeMotionValuesFromProps(e,n,i){return _v(e,n,i)}}const FW={offset:"stroke-dashoffset",array:"stroke-dasharray"},UW={offset:"strokeDashoffset",array:"strokeDasharray"};function VW(t,e,n=1,i=0,r=!0){t.pathLength=1;const l=r?FW:UW;t[l.offset]=`${-i}`,t[l.array]=`${e} ${n}`}const $W=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function x3(t,{attrX:e,attrY:n,attrScale:i,pathLength:r,pathSpacing:l=1,pathOffset:c=0,...d},f,h,m){if(Sv(t,d,h),f){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:y,style:v}=t;y.transform&&(v.transform=y.transform,delete y.transform),(v.transform||y.transformOrigin)&&(v.transformOrigin=y.transformOrigin??"50% 50%",delete y.transformOrigin),v.transform&&(v.transformBox=m?.transformBox??"fill-box",delete y.transformBox);for(const b of $W)y[b]!==void 0&&(v[b]=y[b],delete y[b]);e!==void 0&&(y.x=e),n!==void 0&&(y.y=n),i!==void 0&&(y.scale=i),r!==void 0&&VW(y,r,l,c,!1)}const O3=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),M3=t=>typeof t=="string"&&t.toLowerCase()==="svg";function qW(t,e,n,i){C3(t,e,void 0,i);for(const r in e.attrs)t.setAttribute(O3.has(r)?r:hv(r),e.attrs[r])}function k3(t,e,n){const i=_v(t,e,n);for(const r in t)if(zt(t[r])||zt(e[r])){const l=$r.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;i[l]=t[r]}return i}class GW extends _3{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Et}getBaseTargetFromProps(e,n){return e[n]}readValueFromInstance(e,n){if(qr.has(n)){const i=c3(n);return i&&i.default||0}return n=O3.has(n)?n:hv(n),e.getAttribute(n)}scrapeMotionValuesFromProps(e,n,i){return k3(e,n,i)}build(e,n,i){x3(e,n,this.isSVGTag,i.transformTemplate,i.style)}renderInstance(e,n,i,r){qW(e,n,i,r)}mount(e){this.isSVGTag=M3(e.tagName),super.mount(e)}}const HW=bv.length;function L3(t){if(!t)return;if(!t.isControllingVariants){const n=t.parent?L3(t.parent)||{}:{};return t.props.initial!==void 0&&(n.initial=t.props.initial),n}const e={};for(let n=0;n<HW;n++){const i=bv[n],r=t.props[i];(xl(r)||r===!1)&&(e[i]=r)}return e}function D3(t,e){if(!Array.isArray(e))return!1;const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}const KW=[...vv].reverse(),YW=vv.length;function XW(t){return e=>Promise.all(e.map(({animation:n,options:i})=>HX(t,n,i)))}function WW(t){let e=XW(t),n=kT(),i=!0,r=!1;const l=h=>(m,y)=>{const v=ys(t,y,h==="exit"?t.presenceContext?.custom:void 0);if(v){const{transition:b,transitionEnd:_,...w}=v;m={...m,...w,..._}}return m};function c(h){e=h(t)}function d(h){const{props:m}=t,y=L3(t.parent)||{},v=[],b=new Set;let _={},w=1/0;for(let R=0;R<YW;R++){const C=KW[R],A=n[C],M=m[C]!==void 0?m[C]:y[C],x=xl(M),k=C===h?A.isActive:null;k===!1&&(w=R);let L=M===y[C]&&M!==m[C]&&x;if(L&&(i||r)&&t.manuallyAnimateOnMount&&(L=!1),A.protectedKeys={..._},!A.isActive&&k===null||!M&&!A.prevProp||bf(M)||typeof M=="boolean")continue;if(C==="exit"&&A.isActive&&k!==!0){A.prevResolvedValues&&(_={..._,...A.prevResolvedValues});continue}const N=ZW(A.prevProp,M);let U=N||C===h&&A.isActive&&!L&&x||R>w&&x,K=!1;const Y=Array.isArray(M)?M:[M];let se=Y.reduce(l(C),{});k===!1&&(se={});const{prevResolvedValues:ae={}}=A,ye={...ae,...se},ve=ne=>{U=!0,b.has(ne)&&(K=!0,b.delete(ne)),A.needsAnimating[ne]=!0;const le=t.getValue(ne);le&&(le.liveStyle=!1)};for(const ne in ye){const le=se[ne],re=ae[ne];if(_.hasOwnProperty(ne))continue;let B=!1;Fp(le)&&Fp(re)?B=!D3(le,re):B=le!==re,B?le!=null?ve(ne):b.add(ne):le!==void 0&&b.has(ne)?ve(ne):A.protectedKeys[ne]=!0}A.prevProp=M,A.prevResolvedValues=se,A.isActive&&(_={..._,...se}),(i||r)&&t.blockInitialAnimation&&(U=!1);const F=L&&N;U&&(!F||K)&&v.push(...Y.map(ne=>{const le={type:C};if(typeof ne=="string"&&(i||r)&&!F&&t.manuallyAnimateOnMount&&t.parent){const{parent:re}=t,B=ys(re,ne);if(re.enteringChildren&&B){const{delayChildren:G}=B.transition||{};le.delay=t3(re.enteringChildren,t,G)}}return{animation:ne,options:le}}))}if(b.size){const R={};if(typeof m.initial!="boolean"){const C=ys(t,Array.isArray(m.initial)?m.initial[0]:m.initial);C&&C.transition&&(R.transition=C.transition)}b.forEach(C=>{const A=t.getBaseTarget(C),M=t.getValue(C);M&&(M.liveStyle=!0),R[C]=A??null}),v.push({animation:R})}let T=!!v.length;return i&&(m.initial===!1||m.initial===m.animate)&&!t.manuallyAnimateOnMount&&(T=!1),i=!1,r=!1,T?e(v):Promise.resolve()}function f(h,m){if(n[h].isActive===m)return Promise.resolve();t.variantChildren?.forEach(v=>v.animationState?.setActive(h,m)),n[h].isActive=m;const y=d(h);for(const v in n)n[v].protectedKeys={};return y}return{animateChanges:d,setActive:f,setAnimateFunction:c,getState:()=>n,reset:()=>{n=kT(),r=!0}}}function ZW(t,e){return typeof e=="string"?e!==t:Array.isArray(e)?!D3(e,t):!1}function is(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function kT(){return{animate:is(!0),whileInView:is(),whileHover:is(),whileTap:is(),whileDrag:is(),whileFocus:is(),exit:is()}}function Xp(t,e){t.min=e.min,t.max=e.max}function Yn(t,e){Xp(t.x,e.x),Xp(t.y,e.y)}function LT(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}const I3=1e-4,JW=1-I3,QW=1+I3,B3=.01,eZ=0-B3,tZ=0+B3;function en(t){return t.max-t.min}function nZ(t,e,n){return Math.abs(t-e)<=n}function DT(t,e,n,i=.5){t.origin=i,t.originPoint=st(e.min,e.max,t.origin),t.scale=en(n)/en(e),t.translate=st(n.min,n.max,t.origin)-t.originPoint,(t.scale>=JW&&t.scale<=QW||isNaN(t.scale))&&(t.scale=1),(t.translate>=eZ&&t.translate<=tZ||isNaN(t.translate))&&(t.translate=0)}function hl(t,e,n,i){DT(t.x,e.x,n.x,i?i.originX:void 0),DT(t.y,e.y,n.y,i?i.originY:void 0)}function IT(t,e,n,i=0){const r=i?st(n.min,n.max,i):n.min;t.min=r+e.min,t.max=t.min+en(e)}function aZ(t,e,n,i){IT(t.x,e.x,n.x,i?.x),IT(t.y,e.y,n.y,i?.y)}function BT(t,e,n,i=0){const r=i?st(n.min,n.max,i):n.min;t.min=e.min-r,t.max=t.min+en(e)}function qd(t,e,n,i){BT(t.x,e.x,n.x,i?.x),BT(t.y,e.y,n.y,i?.y)}function NT(t,e,n,i,r){return t-=e,t=$d(t,1/n,i),r!==void 0&&(t=$d(t,1/r,i)),t}function iZ(t,e=0,n=1,i=.5,r,l=t,c=t){if(ba.test(e)&&(e=parseFloat(e),e=st(c.min,c.max,e/100)-c.min),typeof e!="number")return;let d=st(l.min,l.max,i);t===l&&(d-=e),t.min=NT(t.min,e,n,d,r),t.max=NT(t.max,e,n,d,r)}function PT(t,e,[n,i,r],l,c){iZ(t,e[n],e[i],e[r],e.scale,l,c)}const sZ=["x","scaleX","originX"],rZ=["y","scaleY","originY"];function jT(t,e,n,i){PT(t.x,e,sZ,n?n.x:void 0,i?i.x:void 0),PT(t.y,e,rZ,n?n.y:void 0,i?i.y:void 0)}function zT(t){return t.translate===0&&t.scale===1}function N3(t){return zT(t.x)&&zT(t.y)}function FT(t,e){return t.min===e.min&&t.max===e.max}function oZ(t,e){return FT(t.x,e.x)&&FT(t.y,e.y)}function UT(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function P3(t,e){return UT(t.x,e.x)&&UT(t.y,e.y)}function VT(t){return en(t.x)/en(t.y)}function $T(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}function la(t){return[t("x"),t("y")]}function lZ(t,e,n){let i="";const r=t.x.translate/e.x,l=t.y.translate/e.y,c=n?.z||0;if((r||l||c)&&(i=`translate3d(${r}px, ${l}px, ${c}px) `),(e.x!==1||e.y!==1)&&(i+=`scale(${1/e.x}, ${1/e.y}) `),n){const{transformPerspective:h,rotate:m,rotateX:y,rotateY:v,skewX:b,skewY:_}=n;h&&(i=`perspective(${h}px) ${i}`),m&&(i+=`rotate(${m}deg) `),y&&(i+=`rotateX(${y}deg) `),v&&(i+=`rotateY(${v}deg) `),b&&(i+=`skewX(${b}deg) `),_&&(i+=`skewY(${_}deg) `)}const d=t.x.scale*e.x,f=t.y.scale*e.y;return(d!==1||f!==1)&&(i+=`scale(${d}, ${f})`),i||"none"}const j3=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],uZ=j3.length,qT=t=>typeof t=="string"?parseFloat(t):t,GT=t=>typeof t=="number"||ge.test(t);function cZ(t,e,n,i,r,l){r?(t.opacity=st(0,n.opacity??1,dZ(i)),t.opacityExit=st(e.opacity??1,0,fZ(i))):l&&(t.opacity=st(e.opacity??1,n.opacity??1,i));for(let c=0;c<uZ;c++){const d=j3[c];let f=HT(e,d),h=HT(n,d);if(f===void 0&&h===void 0)continue;f||(f=0),h||(h=0),f===0||h===0||GT(f)===GT(h)?(t[d]=Math.max(st(qT(f),qT(h),i),0),(ba.test(h)||ba.test(f))&&(t[d]+="%")):t[d]=h}(e.rotate||n.rotate)&&(t.rotate=st(e.rotate||0,n.rotate||0,i))}function HT(t,e){return t[e]!==void 0?t[e]:t.borderRadius}const dZ=z3(0,.5,OA),fZ=z3(.5,.95,Vn);function z3(t,e,n){return i=>i<t?0:i>e?1:n(Cl(t,e,i))}function hZ(t,e,n){const i=zt(t)?t:jr(t);return i.start(dv("",i,e,n)),i.animation}function Ol(t,e,n,i={passive:!0}){return t.addEventListener(e,n,i),()=>t.removeEventListener(e,n)}const gZ=(t,e)=>t.depth-e.depth;class mZ{constructor(){this.children=[],this.isDirty=!1}add(e){Jy(this.children,e),this.isDirty=!0}remove(e){Pd(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(gZ),this.isDirty=!1,this.children.forEach(e)}}function pZ(t,e){const n=Qt.now(),i=({timestamp:r})=>{const l=r-n;l>=e&&(Bi(i),t(l-e))};return nt.setup(i,!0),()=>Bi(i)}function od(t){return zt(t)?t.get():t}class yZ{constructor(){this.members=[]}add(e){Jy(this.members,e);for(let n=this.members.length-1;n>=0;n--){const i=this.members[n];if(i===e||i===this.lead||i===this.prevLead)continue;const r=i.instance;(!r||r.isConnected===!1)&&!i.snapshot&&(Pd(this.members,i),i.unmount())}e.scheduleRender()}remove(e){if(Pd(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(e){for(let n=this.members.indexOf(e)-1;n>=0;n--){const i=this.members[n];if(i.isPresent!==!1&&i.instance?.isConnected!==!1)return this.promote(i),!0}return!1}promote(e,n){const i=this.lead;if(e!==i&&(this.prevLead=i,this.lead=e,e.show(),i)){i.updateSnapshot(),e.scheduleRender();const{layoutDependency:r}=i.options,{layoutDependency:l}=e.options;(r===void 0||r!==l)&&(e.resumeFrom=i,n&&(i.preserveOpacity=!0),i.snapshot&&(e.snapshot=i.snapshot,e.snapshot.latestValues=i.animationValues||i.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&i.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}const ld={hasAnimatedSinceResize:!0,hasEverUpdated:!1},Lm=["","X","Y","Z"],vZ=1e3;let bZ=0;function Dm(t,e,n,i){const{latestValues:r}=e;r[t]&&(n[t]=r[t],e.setStaticValue(t,0),i&&(i[t]=0))}function F3(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:e}=t.options;if(!e)return;const n=r3(e);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:r,layoutId:l}=t.options;window.MotionCancelOptimisedAnimation(n,"transform",nt,!(r||l))}const{parent:i}=t;i&&!i.hasCheckedOptimisedAppear&&F3(i)}function U3({attachResizeListener:t,defaultParent:e,measureScroll:n,checkIsScrollRoot:i,resetTransform:r}){return class{constructor(c={},d=e?.()){this.id=bZ++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(wZ),this.nodes.forEach(xZ),this.nodes.forEach(OZ),this.nodes.forEach(TZ)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=c,this.root=d?d.root||d:this,this.path=d?[...d.path,d]:[],this.parent=d,this.depth=d?d.depth+1:0;for(let f=0;f<this.path.length;f++)this.path[f].shouldResetTransform=!0;this.root===this&&(this.nodes=new mZ)}addEventListener(c,d){return this.eventHandlers.has(c)||this.eventHandlers.set(c,new ev),this.eventHandlers.get(c).add(d)}notifyListeners(c,...d){const f=this.eventHandlers.get(c);f&&f.notify(...d)}hasListeners(c){return this.eventHandlers.has(c)}mount(c){if(this.instance)return;this.isSVG=yv(c)&&!_W(c),this.instance=c;const{layoutId:d,layout:f,visualElement:h}=this.options;if(h&&!h.current&&h.mount(c),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(f||d)&&(this.isLayoutDirty=!0),t){let m,y=0;const v=()=>this.root.updateBlockedByResize=!1;nt.read(()=>{y=window.innerWidth}),t(c,()=>{const b=window.innerWidth;b!==y&&(y=b,this.root.updateBlockedByResize=!0,m&&m(),m=pZ(v,250),ld.hasAnimatedSinceResize&&(ld.hasAnimatedSinceResize=!1,this.nodes.forEach(XT)))})}d&&this.root.registerSharedNode(d,this),this.options.animate!==!1&&h&&(d||f)&&this.addEventListener("didUpdate",({delta:m,hasLayoutChanged:y,hasRelativeLayoutChanged:v,layout:b})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const _=this.options.transition||h.getDefaultTransition()||IZ,{onLayoutAnimationStart:w,onLayoutAnimationComplete:T}=h.getProps(),R=!this.targetLayout||!P3(this.targetLayout,b),C=!y&&v;if(this.options.layoutRoot||this.resumeFrom||C||y&&(R||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const A={...cv(_,"layout"),onPlay:w,onComplete:T};(h.shouldReduceMotion||this.options.layoutRoot)&&(A.delay=0,A.type=!1),this.startAnimation(A),this.setAnimationOrigin(m,C)}else y||XT(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=b})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const c=this.getStack();c&&c.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Bi(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(MZ),this.animationId++)}getTransformTemplate(){const{visualElement:c}=this.options;return c&&c.getProps().transformTemplate}willUpdate(c=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&F3(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let m=0;m<this.path.length;m++){const y=this.path[m];y.shouldResetTransform=!0,(typeof y.latestValues.x=="string"||typeof y.latestValues.y=="string")&&(y.isLayoutDirty=!0),y.updateScroll("snapshot"),y.options.layoutRoot&&y.willUpdate(!1)}const{layoutId:d,layout:f}=this.options;if(d===void 0&&!f)return;const h=this.getTransformTemplate();this.prevTransformTemplateValue=h?h(this.latestValues,""):void 0,this.updateSnapshot(),c&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const f=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),f&&this.nodes.forEach(RZ),this.nodes.forEach(KT);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(YT);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(CZ),this.nodes.forEach(AZ),this.nodes.forEach(SZ),this.nodes.forEach(_Z)):this.nodes.forEach(YT),this.clearAllSnapshots();const d=Qt.now();Nt.delta=Sa(0,1e3/60,d-Nt.timestamp),Nt.timestamp=d,Nt.isProcessing=!0,Em.update.process(Nt),Em.preRender.process(Nt),Em.render.process(Nt),Nt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,mv.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(EZ),this.sharedNodes.forEach(kZ)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,nt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){nt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!en(this.snapshot.measuredBox.x)&&!en(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let f=0;f<this.path.length;f++)this.path[f].updateScroll();const c=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=Et()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:d}=this.options;d&&d.notify("LayoutMeasure",this.layout.layoutBox,c?c.layoutBox:void 0)}updateScroll(c="measure"){let d=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===c&&(d=!1),d&&this.instance){const f=i(this.instance);this.scroll={animationId:this.root.animationId,phase:c,isRoot:f,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:f}}}resetTransform(){if(!r)return;const c=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,d=this.projectionDelta&&!N3(this.projectionDelta),f=this.getTransformTemplate(),h=f?f(this.latestValues,""):void 0,m=h!==this.prevTransformTemplateValue;c&&this.instance&&(d||os(this.latestValues)||m)&&(r(this.instance,h),this.shouldResetTransform=!1,this.scheduleRender())}measure(c=!0){const d=this.measurePageBox();let f=this.removeElementScroll(d);return c&&(f=this.removeTransform(f)),BZ(f),{animationId:this.root.animationId,measuredBox:d,layoutBox:f,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:c}=this.options;if(!c)return Et();const d=c.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(NZ))){const{scroll:h}=this.root;h&&(fa(d.x,h.offset.x),fa(d.y,h.offset.y))}return d}removeElementScroll(c){const d=Et();if(Yn(d,c),this.scroll?.wasRoot)return d;for(let f=0;f<this.path.length;f++){const h=this.path[f],{scroll:m,options:y}=h;h!==this.root&&m&&y.layoutScroll&&(m.wasRoot&&Yn(d,c),fa(d.x,m.offset.x),fa(d.y,m.offset.y))}return d}applyTransform(c,d=!1,f){const h=f||Et();Yn(h,c);for(let m=0;m<this.path.length;m++){const y=this.path[m];!d&&y.options.layoutScroll&&y.scroll&&y!==y.root&&(fa(h.x,-y.scroll.offset.x),fa(h.y,-y.scroll.offset.y)),os(y.latestValues)&&rd(h,y.latestValues,y.layout?.layoutBox)}return os(this.latestValues)&&rd(h,this.latestValues,this.layout?.layoutBox),h}removeTransform(c){const d=Et();Yn(d,c);for(let f=0;f<this.path.length;f++){const h=this.path[f];if(!os(h.latestValues))continue;let m;h.instance&&(Hp(h.latestValues)&&h.updateSnapshot(),m=Et(),Yn(m,h.measurePageBox())),jT(d,h.latestValues,h.snapshot?.layoutBox,m)}return os(this.latestValues)&&jT(d,this.latestValues),d}setTargetDelta(c){this.targetDelta=c,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(c){this.options={...this.options,...c,crossfade:c.crossfade!==void 0?c.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Nt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(c=!1){const d=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=d.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=d.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=d.isSharedProjectionDirty);const f=!!this.resumingFrom||this!==d;if(!(c||f&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:m,layoutId:y}=this.options;if(!this.layout||!(m||y))return;this.resolvedRelativeTargetAt=Nt.timestamp;const v=this.getClosestProjectingParent();v&&this.linkedParentVersion!==v.layoutVersion&&!v.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&v&&v.layout?this.createRelativeTarget(v,this.layout.layoutBox,v.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Et(),this.targetWithTransforms=Et()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),aZ(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):Yn(this.target,this.layout.layoutBox),E3(this.target,this.targetDelta)):Yn(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&v&&!!v.resumingFrom==!!this.resumingFrom&&!v.options.layoutScroll&&v.target&&this.animationProgress!==1?this.createRelativeTarget(v,this.target,v.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||Hp(this.parent.latestValues)||T3(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(c,d,f){this.relativeParent=c,this.linkedParentVersion=c.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Et(),this.relativeTargetOrigin=Et(),qd(this.relativeTargetOrigin,d,f,this.options.layoutAnchor||void 0),Yn(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const c=this.getLead(),d=!!this.resumingFrom||this!==c;let f=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(f=!1),d&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(f=!1),this.resolvedRelativeTargetAt===Nt.timestamp&&(f=!1),f)return;const{layout:h,layoutId:m}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(h||m))return;Yn(this.layoutCorrected,this.layout.layoutBox);const y=this.treeScale.x,v=this.treeScale.y;LW(this.layoutCorrected,this.treeScale,this.path,d),c.layout&&!c.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(c.target=c.layout.layoutBox,c.targetWithTransforms=Et());const{target:b}=c;if(!b){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(LT(this.prevProjectionDelta.x,this.projectionDelta.x),LT(this.prevProjectionDelta.y,this.projectionDelta.y)),hl(this.projectionDelta,this.layoutCorrected,b,this.latestValues),(this.treeScale.x!==y||this.treeScale.y!==v||!$T(this.projectionDelta.x,this.prevProjectionDelta.x)||!$T(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",b))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(c=!0){if(this.options.visualElement?.scheduleRender(),c){const d=this.getStack();d&&d.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=wr(),this.projectionDelta=wr(),this.projectionDeltaWithTransform=wr()}setAnimationOrigin(c,d=!1){const f=this.snapshot,h=f?f.latestValues:{},m={...this.latestValues},y=wr();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!d;const v=Et(),b=f?f.source:void 0,_=this.layout?this.layout.source:void 0,w=b!==_,T=this.getStack(),R=!T||T.members.length<=1,C=!!(w&&!R&&this.options.crossfade===!0&&!this.path.some(DZ));this.animationProgress=0;let A;this.mixTargetDelta=M=>{const x=M/1e3;WT(y.x,c.x,x),WT(y.y,c.y,x),this.setTargetDelta(y),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(qd(v,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),LZ(this.relativeTarget,this.relativeTargetOrigin,v,x),A&&oZ(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=Et()),Yn(A,this.relativeTarget)),w&&(this.animationValues=m,cZ(m,h,this.latestValues,x,C,R)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=x},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(c){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Bi(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=nt.update(()=>{ld.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=jr(0)),this.motionValue.jump(0,!1),this.currentAnimation=hZ(this.motionValue,[0,1e3],{...c,velocity:0,isSync:!0,onUpdate:d=>{this.mixTargetDelta(d),c.onUpdate&&c.onUpdate(d)},onStop:()=>{},onComplete:()=>{c.onComplete&&c.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const c=this.getStack();c&&c.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(vZ),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const c=this.getLead();let{targetWithTransforms:d,target:f,layout:h,latestValues:m}=c;if(!(!d||!f||!h)){if(this!==c&&this.layout&&h&&V3(this.options.animationType,this.layout.layoutBox,h.layoutBox)){f=this.target||Et();const y=en(this.layout.layoutBox.x);f.x.min=c.target.x.min,f.x.max=f.x.min+y;const v=en(this.layout.layoutBox.y);f.y.min=c.target.y.min,f.y.max=f.y.min+v}Yn(d,f),rd(d,m),hl(this.projectionDeltaWithTransform,this.layoutCorrected,d,m)}}registerSharedNode(c,d){this.sharedNodes.has(c)||this.sharedNodes.set(c,new yZ),this.sharedNodes.get(c).add(d);const h=d.options.initialPromotionConfig;d.promote({transition:h?h.transition:void 0,preserveFollowOpacity:h&&h.shouldPreserveFollowOpacity?h.shouldPreserveFollowOpacity(d):void 0})}isLead(){const c=this.getStack();return c?c.lead===this:!0}getLead(){const{layoutId:c}=this.options;return c?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:c}=this.options;return c?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:c}=this.options;if(c)return this.root.sharedNodes.get(c)}promote({needsReset:c,transition:d,preserveFollowOpacity:f}={}){const h=this.getStack();h&&h.promote(this,f),c&&(this.projectionDelta=void 0,this.needsReset=!0),d&&this.setOptions({transition:d})}relegate(){const c=this.getStack();return c?c.relegate(this):!1}resetSkewAndRotation(){const{visualElement:c}=this.options;if(!c)return;let d=!1;const{latestValues:f}=c;if((f.z||f.rotate||f.rotateX||f.rotateY||f.rotateZ||f.skewX||f.skewY)&&(d=!0),!d)return;const h={};f.z&&Dm("z",c,h,this.animationValues);for(let m=0;m<Lm.length;m++)Dm(`rotate${Lm[m]}`,c,h,this.animationValues),Dm(`skew${Lm[m]}`,c,h,this.animationValues);c.render();for(const m in h)c.setStaticValue(m,h[m]),this.animationValues&&(this.animationValues[m]=h[m]);c.scheduleRender()}applyProjectionStyles(c,d){if(!this.instance||this.isSVG)return;if(!this.isVisible){c.visibility="hidden";return}const f=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,c.visibility="",c.opacity="",c.pointerEvents=od(d?.pointerEvents)||"",c.transform=f?f(this.latestValues,""):"none";return}const h=this.getLead();if(!this.projectionDelta||!this.layout||!h.target){this.options.layoutId&&(c.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,c.pointerEvents=od(d?.pointerEvents)||""),this.hasProjected&&!os(this.latestValues)&&(c.transform=f?f({},""):"none",this.hasProjected=!1);return}c.visibility="";const m=h.animationValues||h.latestValues;this.applyTransformsToTarget();let y=lZ(this.projectionDeltaWithTransform,this.treeScale,m);f&&(y=f(m,y)),c.transform=y;const{x:v,y:b}=this.projectionDelta;c.transformOrigin=`${v.origin*100}% ${b.origin*100}% 0`,h.animationValues?c.opacity=h===this?m.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:m.opacityExit:c.opacity=h===this?m.opacity!==void 0?m.opacity:"":m.opacityExit!==void 0?m.opacityExit:0;for(const _ in Yp){if(m[_]===void 0)continue;const{correct:w,applyTo:T,isCSSVariable:R}=Yp[_],C=y==="none"?m[_]:w(m[_],h);if(T){const A=T.length;for(let M=0;M<A;M++)c[T[M]]=C}else R?this.options.visualElement.renderState.vars[_]=C:c[_]=C}this.options.layoutId&&(c.pointerEvents=h===this?od(d?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(c=>c.currentAnimation?.stop()),this.root.nodes.forEach(KT),this.root.sharedNodes.clear()}}}function SZ(t){t.updateLayout()}function _Z(t){const e=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:i}=t.layout,{animationType:r}=t.options,l=e.source!==t.layout.source;if(r==="size")la(m=>{const y=l?e.measuredBox[m]:e.layoutBox[m],v=en(y);y.min=n[m].min,y.max=y.min+v});else if(r==="x"||r==="y"){const m=r==="x"?"y":"x";Xp(l?e.measuredBox[m]:e.layoutBox[m],n[m])}else V3(r,e.layoutBox,n)&&la(m=>{const y=l?e.measuredBox[m]:e.layoutBox[m],v=en(n[m]);y.max=y.min+v,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[m].max=t.relativeTarget[m].min+v)});const c=wr();hl(c,n,e.layoutBox);const d=wr();l?hl(d,t.applyTransform(i,!0),e.measuredBox):hl(d,n,e.layoutBox);const f=!N3(c);let h=!1;if(!t.resumeFrom){const m=t.getClosestProjectingParent();if(m&&!m.resumeFrom){const{snapshot:y,layout:v}=m;if(y&&v){const b=t.options.layoutAnchor||void 0,_=Et();qd(_,e.layoutBox,y.layoutBox,b);const w=Et();qd(w,n,v.layoutBox,b),P3(_,w)||(h=!0),m.options.layoutRoot&&(t.relativeTarget=w,t.relativeTargetOrigin=_,t.relativeParent=m)}}}t.notifyListeners("didUpdate",{layout:n,snapshot:e,delta:d,layoutDelta:c,hasLayoutChanged:f,hasRelativeLayoutChanged:h})}else if(t.isLead()){const{onExitComplete:n}=t.options;n&&n()}t.options.transition=void 0}function wZ(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function TZ(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function EZ(t){t.clearSnapshot()}function KT(t){t.clearMeasurements()}function RZ(t){t.isLayoutDirty=!0,t.updateLayout()}function YT(t){t.isLayoutDirty=!1}function CZ(t){t.isAnimationBlocked&&t.layout&&!t.isLayoutDirty&&(t.snapshot=t.layout,t.isLayoutDirty=!0)}function AZ(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function XT(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function xZ(t){t.resolveTargetDelta()}function OZ(t){t.calcProjection()}function MZ(t){t.resetSkewAndRotation()}function kZ(t){t.removeLeadSnapshot()}function WT(t,e,n){t.translate=st(e.translate,0,n),t.scale=st(e.scale,1,n),t.origin=e.origin,t.originPoint=e.originPoint}function ZT(t,e,n,i){t.min=st(e.min,n.min,i),t.max=st(e.max,n.max,i)}function LZ(t,e,n,i){ZT(t.x,e.x,n.x,i),ZT(t.y,e.y,n.y,i)}function DZ(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const IZ={duration:.45,ease:[.4,0,.1,1]},JT=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),QT=JT("applewebkit/")&&!JT("chrome/")?Math.round:Vn;function eE(t){t.min=QT(t.min),t.max=QT(t.max)}function BZ(t){eE(t.x),eE(t.y)}function V3(t,e,n){return t==="position"||t==="preserve-aspect"&&!nZ(VT(e),VT(n),.2)}function NZ(t){return t!==t.root&&t.scroll?.wasRoot}const PZ=U3({attachResizeListener:(t,e)=>Ol(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Im={current:void 0},$3=U3({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!Im.current){const t=new PZ({});t.mount(window),t.setOptions({layoutScroll:!0}),Im.current=t}return Im.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),wv=O.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});function tE(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function jZ(...t){return e=>{let n=!1;const i=t.map(r=>{const l=tE(r,e);return!n&&typeof l=="function"&&(n=!0),l});if(n)return()=>{for(let r=0;r<i.length;r++){const l=i[r];typeof l=="function"?l():tE(t[r],null)}}}}function zZ(...t){return O.useCallback(jZ(...t),t)}class FZ extends O.Component{getSnapshotBeforeUpdate(e){const n=this.props.childRef.current;if(td(n)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const i=n.offsetParent,r=td(i)&&i.offsetWidth||0,l=td(i)&&i.offsetHeight||0,c=getComputedStyle(n),d=this.props.sizeRef.current;d.height=parseFloat(c.height),d.width=parseFloat(c.width),d.top=n.offsetTop,d.left=n.offsetLeft,d.right=r-d.width-d.left,d.bottom=l-d.height-d.top}return null}componentDidUpdate(){}render(){return this.props.children}}function UZ({children:t,isPresent:e,anchorX:n,anchorY:i,root:r,pop:l}){const c=O.useId(),d=O.useRef(null),f=O.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:h}=O.useContext(wv),m=t.props?.ref??t?.ref,y=zZ(d,m);return O.useInsertionEffect(()=>{const{width:v,height:b,top:_,left:w,right:T,bottom:R}=f.current;if(e||l===!1||!d.current||!v||!b)return;const C=n==="left"?`left: ${w}`:`right: ${T}`,A=i==="bottom"?`bottom: ${R}`:`top: ${_}`;d.current.dataset.motionPopId=c;const M=document.createElement("style");h&&(M.nonce=h);const x=r??document.head;return x.appendChild(M),M.sheet&&M.sheet.insertRule(`
|
|
81
81
|
[data-motion-pop-id="${c}"] {
|
|
82
82
|
position: absolute !important;
|
|
83
83
|
width: ${v}px !important;
|
package/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta charset="UTF-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>DatoCMS Plugin</title>
|
|
8
|
-
<script type="module" crossorigin src="./assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-CA8tSnsZ.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="./assets/index-BDcyzWhC.css">
|
|
10
10
|
</head>
|
|
11
11
|
|
|
12
12
|
<body>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "datocms-plugin-ai-translations",
|
|
3
3
|
"homepage": "https://github.com/datocms/plugins/tree/master/ai-translations#readme",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.10",
|
|
5
5
|
"author": "DatoCMS <support@datocms.com>",
|
|
6
6
|
"description": "Translate fields and records directly on DatoCMS using AI",
|
|
7
7
|
"keywords": [
|