@simai-studio/ui 5.20261023.16 → 5.20261023.214
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/distr/component/accordion/css/accordion.min.css +1 -1
- package/distr/component/accordion/js/accordion.min.js +1 -1
- package/distr/component/modal/css/modal.min.css +1 -1
- package/distr/component/modal/js/modal.min.js +1 -1
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-field-hidden-by-its-condition-is-not-saved.json +45 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-field-says-what-it-falls-back-to.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-field-taken-out-of-an-area-is-unplaced.json +40 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-reader-is-offered-nothing-to-change.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-related-group-is-a-list-not-fields.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-stale-confirmation-is-asked-again.json +39 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/conditions-arrive-declared.json +82 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/create-applied-answers-with-the-id.json +24 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/create-field-errors-are-refused.json +22 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/field-presentation-keys-are-declared.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-applied-is-one-revision.json +16 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-confirmed-with-the-digest-is-applied.json +35 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-field-errors-are-refused.json +16 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-may-ask-for-a-confirmation.json +38 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-stale-revision-is-a-conflict.json +16 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-applied-carries-the-object.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-for-create-is-an-empty-object.json +24 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-late-answer-is-dropped.json +15 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-refused-is-explained.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-unavailable-is-honest.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/lookup-arrives-with-its-label.json +70 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/opening-a-reference-is-the-hosts-decision.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/opening-the-record-as-a-page-is-offered-only-where-it-leads-somewhere.json +28 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-carry-the-source-and-a-limit.json +33 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-page-carries-a-cursor.json +15 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-refused-is-explained.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-search-by-source-reaches-the-host.json +30 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-search-reaches-the-host.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-without-the-capability.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/rare-fields-arrive-declared.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/removing-a-file-is-a-save.json +13 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-applied-is-one-revision.json +26 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-may-ask-for-a-confirmation.json +36 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-stale-revision-is-a-conflict.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/the-address-is-the-hosts.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/upload-answers-with-the-stored-file.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/upload-refused-is-explained.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-create-answers-with-the-record-through-the-new-view.json +32 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-create-shared-may-be-refused.json +27 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-delete-applied-answers-with-what-is-left.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-delete-the-last-shared-one-is-refused.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-applied-carries-the-record-through-it.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-refused-is-explained.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-unavailable-without-the-capability.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-rename-changes-the-label-only.json +26 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-reset-answers-with-what-now-resolves.json +30 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-against-a-stale-revision-is-a-conflict.json +36 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-is-one-layer-one-revision.json +35 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-may-name-an-area-the-record-does-not-carry.json +49 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-rejects-entries-by-kind.json +36 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-settings-without-the-capability.json +30 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/manifest.json +66 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/port.json +2484 -0
- package/distr/core/contracts/public-variables.v1.json +7 -0
- package/distr/core/css/core.css +14 -0
- package/distr/core/css/core.min.css +1 -1
- package/distr/smart/drawer/css/drawer.min.css +1 -1
- package/distr/smart/drawer/js/drawer.min.js +9 -8
- package/distr/smart/drawer/smart.manifest.json +12 -6
- package/distr/smart/field-renderers/js/field-renderers.min.js +128 -87
- package/distr/smart/modal/js/modal.min.js +1 -1
- package/distr/smart/modal/smart.manifest.json +3 -2
- package/distr/smart/modal/template/default.js +1 -1
- package/package-manifest.json +70 -17
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# @simai-studio/ui
|
|
2
2
|
|
|
3
|
-
SIMAI Framework, release `ui-
|
|
3
|
+
SIMAI Framework, release `ui-3d9bf903a590` (commit 3d9bf903a590fc7c21e5ea14983742b0225edbe7 of [simai/ui](https://github.com/simai/ui)).
|
|
4
4
|
|
|
5
5
|
```html
|
|
6
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@simai-studio/ui@5.20261023.
|
|
7
|
-
<script>window.sfPath = 'https://cdn.jsdelivr.net/npm/@simai-studio/ui@5.20261023.
|
|
8
|
-
<script src="https://cdn.jsdelivr.net/npm/@simai-studio/ui@5.20261023.
|
|
6
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@simai-studio/ui@5.20261023.214/distr/core/css/core.css">
|
|
7
|
+
<script>window.sfPath = 'https://cdn.jsdelivr.net/npm/@simai-studio/ui@5.20261023.214/distr/';</script>
|
|
8
|
+
<script src="https://cdn.jsdelivr.net/npm/@simai-studio/ui@5.20261023.214/distr/core/js/core.js"></script>
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Components, utilities and Smart Components ship in their minified form (the Loader asks for it); Core in both forms. Documentation: https://ui.simai.io/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}@supports not (border-end-end-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-bottom-right-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}@supports not (border-end-end-radius: initial){[dir="rtl"] .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-bottom-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}@supports not (border-end-start-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-bottom-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}@supports not (border-end-start-radius: initial){[dir="rtl"] .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-bottom-right-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}@supports not (border-start-end-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-top-right-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}@supports not (border-start-end-radius: initial){[dir="rtl"] .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-top-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}@supports not (border-start-start-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-top-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}@supports not (border-start-start-radius: initial){[dir="rtl"] .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-top-right-radius:var(--sf-accordion--radius)}.sf-accordion{--sf-accordion--radius: var(--sf-radius--surface);--sf-accordion--border-width: var(--sf-px);--sf-accordion--border-color: var(--sf-outline-variant);--sf-accordion--background-color: var(--sf-surface-container);--sf-on-surface-variant: var(--sf-on-surface-container--variant);--sf-accordion--trigger-padding-block: var(--sf-space-2);--sf-accordion--trigger-padding-inline: var(--sf-space-3);--sf-accordion--content-padding: var(--sf-space-3);--sf-accordion--text-size: var(--sf-text--size);--sf-accordion--text-height: var(--sf-text--height);--sf-accordion--icon-size: var(--sf-text-height-1);--sf-accordion--trigger-min-block-size: auto;border-end-end-radius:var(--sf-accordion--radius);border-end-start-radius:var(--sf-accordion--radius);border-start-end-radius:var(--sf-accordion--radius);border-start-start-radius:var(--sf-accordion--radius);overflow:hidden;overflow:clip;background-color:var(--sf-accordion--background-color)}.sf-accordion.sf-accordion--size-1\/3{--sf-accordion--trigger-padding-block: var(--sf-ui-1\/3--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-1\/3--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-1\/3--control-height);--sf-accordion--content-padding: var(--sf-ui-1\/3--space-y-tightness-default) var(--sf-ui-1\/3--space-x);--sf-accordion--text-size: var(--sf-text-size-1\/3);--sf-accordion--text-height: var(--sf-text-height-1\/3);--sf-accordion--icon-size: var(--sf-text-height-1\/3)}.sf-accordion.sf-accordion--size-1\/2{--sf-accordion--trigger-padding-block: var(--sf-ui-1\/2--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-1\/2--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-1\/2--control-height);--sf-accordion--content-padding: var(--sf-ui-1\/2--space-y-tightness-default) var(--sf-ui-1\/2--space-x);--sf-accordion--text-size: var(--sf-text-size-1\/2);--sf-accordion--text-height: var(--sf-text-height-1\/2);--sf-accordion--icon-size: var(--sf-text-height-1\/2)}.sf-accordion.sf-accordion--size-1{--sf-accordion--trigger-padding-block: var(--sf-ui-1--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-1--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-1--control-height);--sf-accordion--content-padding: var(--sf-ui-1--space-y-tightness-default) var(--sf-ui-1--space-x);--sf-accordion--text-size: var(--sf-text-size-1);--sf-accordion--text-height: var(--sf-text-height-1);--sf-accordion--icon-size: var(--sf-text-height-1)}.sf-accordion.sf-accordion--size-2{--sf-accordion--trigger-padding-block: var(--sf-ui-2--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-2--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-2--control-height);--sf-accordion--content-padding: var(--sf-ui-2--space-y-tightness-default) var(--sf-ui-2--space-x);--sf-accordion--text-size: var(--sf-text-size-2);--sf-accordion--text-height: var(--sf-text-height-2);--sf-accordion--icon-size: var(--sf-text-height-2)}.sf-accordion.sf-accordion--size-3{--sf-accordion--trigger-padding-block: var(--sf-ui-3--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-3--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-3--control-height);--sf-accordion--content-padding: var(--sf-ui-3--space-y-tightness-default) var(--sf-ui-3--space-x);--sf-accordion--text-size: var(--sf-text-size-3);--sf-accordion--text-height: var(--sf-text-height-3);--sf-accordion--icon-size: var(--sf-text-height-3)}.sf-accordion.sf-accordion--outline{border:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);background-color:rgba(0,0,0,0)}.sf-accordion.sf-accordion--flush{--sf-accordion--radius: var(--sf-radius-square);border-bottom:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);-webkit-border-after:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);border-block-end:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);background-color:rgba(0,0,0,0)}.sf-accordion-heading{margin:0;font:inherit}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion-trigger{text-align:left}@supports not (text-align: start){html:not([dir="rtl"]) .sf-accordion-trigger{text-align:left}}.sf-accordion-trigger:where(:dir(ltr)){text-align:left}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion-trigger{text-align:right}@supports not (text-align: start){[dir="rtl"] .sf-accordion-trigger{text-align:right}}.sf-accordion-trigger:where(:dir(rtl)){text-align:right}.sf-accordion-trigger{position:relative;display:flex;align-items:center;gap:var(--sf-space-1);width:100%;margin:0;min-height:var(--sf-accordion--trigger-min-block-size);min-block-size:var(--sf-accordion--trigger-min-block-size);padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline);border:0;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--sf-on-surface);color:var(--sf-accordion-title--color, var(--sf-on-surface));background-color:rgba(0,0,0,0);font:inherit;text-align:start;cursor:pointer;transition:background-color var(--sf-duration-fast) var(--sf-animation)}.sf-accordion-trigger::after{position:absolute;bottom:0;inset-block-end:0;left:0;right:0;inset-inline:0;height:var(--sf-accordion--border-width);background-color:rgba(0,0,0,0);content:"";pointer-events:none}.sf-accordion-trigger[aria-expanded=true]::after{background-color:var(--sf-outline-variant);background-color:var(--sf-accordion-divider--color, var(--sf-outline-variant))}.sf-accordion-trigger:hover{background-color:var(--sf-surface-container-hover)}.sf-accordion-trigger:active{background-color:var(--sf-surface-container-active)}.sf-accordion-trigger.focus-visible{z-index:1;outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:calc(var(--sf-focus--width)*-1)}.sf-accordion-trigger:focus-visible{z-index:1;outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:calc(var(--sf-focus--width)*-1)}.sf-accordion .sf-accordion-title{flex:1 1 auto;min-width:0;color:inherit;font-family:var(--sf-text--family);font-size:var(--sf-accordion--text-size);font-weight:var(--sf-font-weight-medium);line-height:var(--sf-accordion--text-height)}.sf-accordion .sf-icon{flex:0 0 auto;color:var(--sf-on-surface-variant);color:var(--sf-icon--color, var(--sf-on-surface-variant));font-size:var(--sf-accordion--icon-size);height:var(--sf-accordion--icon-size);width:var(--sf-accordion--icon-size);-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:center;transform-origin:center;transition:-webkit-transform var(--sf-duration-fast) var(--sf-animation);transition:transform var(--sf-duration-fast) var(--sf-animation);transition:transform var(--sf-duration-fast) var(--sf-animation), -webkit-transform var(--sf-duration-fast) var(--sf-animation)}.sf-accordion-trigger[aria-expanded=true] .sf-icon,.sf-accordion--legacy[aria-expanded=true]>.sf-icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[dir=rtl] .sf-accordion-trigger[aria-expanded=false] .sf-icon,[dir=rtl] .sf-accordion--legacy[aria-expanded=false]>.sf-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.sf-accordion.sf-accordion--plus-minus .sf-accordion-trigger .sf-icon,[dir=rtl] .sf-accordion.sf-accordion--plus-minus .sf-accordion-trigger .sf-icon{-webkit-transform:none;transform:none}.sf-accordion .sf-accordion-content{padding:var(--sf-accordion--content-padding);color:var(--sf-on-surface-variant);color:var(--sf-accordion-content--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-size:var(--sf-accordion--text-size);font-weight:var(--sf-font-weight-regular);line-height:var(--sf-accordion--text-height)}@media(forced-colors: active){.sf-accordion-trigger.focus-visible{outline:var(--sf-focus-outline-width) solid currentColor;outline-offset:calc(var(--sf-focus-outline-width)*-1);box-shadow:none}.sf-accordion-trigger:focus-visible{outline:var(--sf-focus-outline-width) solid currentColor;outline-offset:calc(var(--sf-focus-outline-width)*-1);box-shadow:none}}.sf-accordion.sf-accordion--legacy{gap:var(--sf-space-1\/3);padding:var(--sf-space-3);cursor:pointer}.sf-accordion.sf-accordion--legacy:hover{--sf-accordion--background-color: var(--sf-surface-container-hover)}.sf-accordion.sf-accordion--legacy.focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-accordion.sf-accordion--legacy:focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-1\/3{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-1\/2{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-1{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-2{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-3{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy .sf-accordion-content{padding:0}@media(prefers-reduced-motion: reduce){.sf-accordion-trigger,.sf-accordion .sf-icon{transition:none}}
|
|
1
|
+
_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}@supports not (border-end-end-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-bottom-right-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}@supports not (border-end-end-radius: initial){[dir="rtl"] .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-bottom-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}@supports not (border-end-start-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-bottom-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-bottom-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}@supports not (border-end-start-radius: initial){[dir="rtl"] .sf-accordion{border-bottom-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-bottom-right-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}@supports not (border-start-end-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-top-right-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}@supports not (border-start-end-radius: initial){[dir="rtl"] .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-top-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}@supports not (border-start-start-radius: initial){html:not([dir="rtl"]) .sf-accordion{border-top-left-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(ltr)){border-top-left-radius:var(--sf-accordion--radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}@supports not (border-start-start-radius: initial){[dir="rtl"] .sf-accordion{border-top-right-radius:var(--sf-accordion--radius)}}.sf-accordion:where(:dir(rtl)){border-top-right-radius:var(--sf-accordion--radius)}.sf-accordion{--sf-accordion--radius: var(--sf-radius--surface);--sf-accordion--border-width: var(--sf-px);--sf-accordion--border-color: var(--sf-outline-variant);--sf-accordion--background-color: var(--sf-surface-container);--sf-on-surface-variant: var(--sf-on-surface-container--variant);--sf-accordion--trigger-padding-block: var(--sf-space-2);--sf-accordion--trigger-padding-inline: var(--sf-space-3);--sf-accordion--content-padding: var(--sf-space-3);--sf-accordion--text-size: var(--sf-text--size);--sf-accordion--text-height: var(--sf-text--height);--sf-accordion--icon-size: var(--sf-text-height-1);--sf-accordion--trigger-min-block-size: auto;border-end-end-radius:var(--sf-accordion--radius);border-end-start-radius:var(--sf-accordion--radius);border-start-end-radius:var(--sf-accordion--radius);border-start-start-radius:var(--sf-accordion--radius);overflow:hidden;overflow:clip;background-color:var(--sf-accordion--background-color)}.sf-accordion.sf-accordion--size-1\/3{--sf-accordion--trigger-padding-block: var(--sf-ui-1\/3--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-1\/3--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-1\/3--control-height);--sf-accordion--content-padding: var(--sf-ui-1\/3--space-y-tightness-default) var(--sf-ui-1\/3--space-x);--sf-accordion--text-size: var(--sf-text-size-1\/3);--sf-accordion--text-height: var(--sf-text-height-1\/3);--sf-accordion--icon-size: var(--sf-text-height-1\/3)}.sf-accordion.sf-accordion--size-1\/2{--sf-accordion--trigger-padding-block: var(--sf-ui-1\/2--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-1\/2--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-1\/2--control-height);--sf-accordion--content-padding: var(--sf-ui-1\/2--space-y-tightness-default) var(--sf-ui-1\/2--space-x);--sf-accordion--text-size: var(--sf-text-size-1\/2);--sf-accordion--text-height: var(--sf-text-height-1\/2);--sf-accordion--icon-size: var(--sf-text-height-1\/2)}.sf-accordion.sf-accordion--size-1{--sf-accordion--trigger-padding-block: var(--sf-ui-1--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-1--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-1--control-height);--sf-accordion--content-padding: var(--sf-ui-1--space-y-tightness-default) var(--sf-ui-1--space-x);--sf-accordion--text-size: var(--sf-text-size-1);--sf-accordion--text-height: var(--sf-text-height-1);--sf-accordion--icon-size: var(--sf-text-height-1)}.sf-accordion.sf-accordion--size-2{--sf-accordion--trigger-padding-block: var(--sf-ui-2--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-2--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-2--control-height);--sf-accordion--content-padding: var(--sf-ui-2--space-y-tightness-default) var(--sf-ui-2--space-x);--sf-accordion--text-size: var(--sf-text-size-2);--sf-accordion--text-height: var(--sf-text-height-2);--sf-accordion--icon-size: var(--sf-text-height-2)}.sf-accordion.sf-accordion--size-3{--sf-accordion--trigger-padding-block: var(--sf-ui-3--space-y-tightness-default);--sf-accordion--trigger-padding-inline: var(--sf-ui-3--space-x);--sf-accordion--trigger-min-block-size: var(--sf-ui-3--control-height);--sf-accordion--content-padding: var(--sf-ui-3--space-y-tightness-default) var(--sf-ui-3--space-x);--sf-accordion--text-size: var(--sf-text-size-3);--sf-accordion--text-height: var(--sf-text-height-3);--sf-accordion--icon-size: var(--sf-text-height-3)}.sf-accordion.sf-accordion--outline{border:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);background-color:rgba(0,0,0,0)}.sf-accordion.sf-accordion--flush{--sf-accordion--radius: var(--sf-radius-square);border-bottom:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);-webkit-border-after:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);border-block-end:var(--sf-accordion--border-width) solid var(--sf-accordion--border-color);background-color:rgba(0,0,0,0)}.sf-accordion-heading{margin:0;font:inherit}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-accordion-trigger{text-align:left}@supports not (text-align: start){html:not([dir="rtl"]) .sf-accordion-trigger{text-align:left}}.sf-accordion-trigger:where(:dir(ltr)){text-align:left}_:-ms-input-placeholder, [dir="rtl"] .sf-accordion-trigger{text-align:right}@supports not (text-align: start){[dir="rtl"] .sf-accordion-trigger{text-align:right}}.sf-accordion-trigger:where(:dir(rtl)){text-align:right}.sf-accordion-trigger{position:relative;display:flex;align-items:center;gap:var(--sf-space-1);width:100%;margin:0;min-height:var(--sf-accordion--trigger-min-block-size);min-block-size:var(--sf-accordion--trigger-min-block-size);padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline);border:0;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--sf-on-surface);color:var(--sf-accordion-title--color, var(--sf-on-surface));background-color:rgba(0,0,0,0);font:inherit;text-align:start;cursor:pointer;transition:background-color var(--sf-duration-fast) var(--sf-animation)}.sf-accordion-trigger::after{position:absolute;bottom:0;inset-block-end:0;left:0;right:0;inset-inline:0;height:var(--sf-accordion--border-width);background-color:rgba(0,0,0,0);content:"";pointer-events:none}.sf-accordion-trigger[aria-expanded=true]::after{background-color:var(--sf-outline-variant);background-color:var(--sf-accordion-divider--color, var(--sf-outline-variant))}.sf-accordion-trigger:hover{background-color:var(--sf-surface-container-hover)}.sf-accordion-trigger:active{background-color:var(--sf-surface-container-active)}.sf-accordion-trigger.focus-visible{z-index:1;outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:calc(var(--sf-focus--width)*-1)}.sf-accordion-trigger:focus-visible{z-index:1;outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:calc(var(--sf-focus--width)*-1)}.sf-accordion .sf-accordion-title{flex:1 1 auto;min-width:0;color:inherit;font-family:var(--sf-text--family);font-size:var(--sf-accordion--text-size);font-weight:var(--sf-font-weight-medium);line-height:var(--sf-accordion--text-height)}.sf-accordion .sf-icon{flex:0 0 auto;color:var(--sf-on-surface-variant);color:var(--sf-icon--color, var(--sf-on-surface-variant));font-size:var(--sf-accordion--icon-size);height:var(--sf-accordion--icon-size);width:var(--sf-accordion--icon-size);-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:center;transform-origin:center;transition:-webkit-transform var(--sf-duration-fast) var(--sf-animation);transition:transform var(--sf-duration-fast) var(--sf-animation);transition:transform var(--sf-duration-fast) var(--sf-animation), -webkit-transform var(--sf-duration-fast) var(--sf-animation)}.sf-accordion-trigger[aria-expanded=true] .sf-icon,.sf-accordion--legacy[aria-expanded=true]>.sf-icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[dir=rtl] .sf-accordion-trigger[aria-expanded=false] .sf-icon,[dir=rtl] .sf-accordion--legacy[aria-expanded=false]>.sf-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.sf-accordion.sf-accordion--plus-minus .sf-accordion-trigger .sf-icon,[dir=rtl] .sf-accordion.sf-accordion--plus-minus .sf-accordion-trigger .sf-icon{-webkit-transform:none;transform:none}.sf-accordion .sf-accordion-content{padding:var(--sf-accordion--content-padding);color:var(--sf-on-surface-variant);color:var(--sf-accordion-content--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-size:var(--sf-accordion--text-size);font-weight:var(--sf-font-weight-regular);line-height:var(--sf-accordion--text-height)}.sf-accordion.sf-accordion--static .sf-accordion-trigger{cursor:auto}.sf-accordion.sf-accordion--static .sf-accordion-trigger:hover{background-color:rgba(0,0,0,0)}.sf-accordion.sf-accordion--static .sf-accordion-trigger:active{background-color:rgba(0,0,0,0)}.sf-accordion.sf-accordion--static .sf-accordion-trigger .sf-icon{display:none}.sf-accordion.sf-accordion--static .sf-accordion-trigger::after{background-color:var(--sf-outline-variant);background-color:var(--sf-accordion-divider--color, var(--sf-outline-variant))}@media(forced-colors: active){.sf-accordion-trigger.focus-visible{outline:var(--sf-focus-outline-width) solid currentColor;outline-offset:calc(var(--sf-focus-outline-width)*-1);box-shadow:none}.sf-accordion-trigger:focus-visible{outline:var(--sf-focus-outline-width) solid currentColor;outline-offset:calc(var(--sf-focus-outline-width)*-1);box-shadow:none}}.sf-accordion.sf-accordion--legacy{gap:var(--sf-space-1\/3);padding:var(--sf-space-3);cursor:pointer}.sf-accordion.sf-accordion--legacy:hover{--sf-accordion--background-color: var(--sf-surface-container-hover)}.sf-accordion.sf-accordion--legacy.focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-accordion.sf-accordion--legacy:focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-1\/3{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-1\/2{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-1{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-2{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy.sf-accordion--size-3{padding:var(--sf-accordion--trigger-padding-block) var(--sf-accordion--trigger-padding-inline)}.sf-accordion.sf-accordion--legacy .sf-accordion-content{padding:0}@media(prefers-reduced-motion: reduce){.sf-accordion-trigger,.sf-accordion .sf-icon{transition:none}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";const t=function(t,e){if(t&&e)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(t,e);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([t,e])}}else window.registerSfComponent(t,e)},e=new WeakMap;let
|
|
1
|
+
(()=>{"use strict";const t=function(t,e){if(t&&e)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(t,e);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([t,e])}}else window.registerSfComponent(t,e)},e=new WeakMap,i=".sf-accordion-group";let s=0;class n{static componentName="Accordion";constructor(t){this.el=t,this.content=t?.querySelector?.(".sf-accordion-content")||null,this.title=t?.querySelector?.(".sf-accordion-title")||null,this.trigger=t?.querySelector?.(".sf-accordion-trigger")||t,this.icon=this.trigger?.querySelector?.(".sf-icon")||t?.querySelector?.(":scope > .sf-icon")||t?.querySelector?.(".sf-icon"),this.onClick=this.handleClick.bind(this),this.onKeydown=this.handleKeydown.bind(this)}init(){if(!this.el||"1"===this.el.dataset.sfAccordionInit)return;this.el.dataset.sfAccordionInit="1",e.set(this.el,this);const t=this.trigger===this.el;t&&(this.el.classList.add("sf-accordion--legacy"),this.trigger.hasAttribute("role")||this.trigger.setAttribute("role","button"),this.trigger.hasAttribute("tabindex")||this.trigger.setAttribute("tabindex","0")),this.bindRelationship(),this.syncState(),this.trigger.addEventListener("click",this.onClick),t&&this.trigger.addEventListener("keydown",this.onKeydown),o(this.el.parentElement),this.syncSingle()}isSingle(){if(!this.el||this.trigger===this.el||!this.content)return!1;if(this.el.classList.contains("sf-accordion--single"))return!0;const t=this.el.parentElement;return!!t?.matches?.(i)&&("toggle"!==t.getAttribute("data-single-section")&&1===t.querySelectorAll(":scope > .sf-accordion").length)}syncSingle(){if(!this.el||this.trigger===this.el)return;const t=this.isSingle();if(t===Boolean(this.staticHeader))return;if(t){const t=document.createElement("span");return t.className=this.trigger.className,t.id=this.trigger.id,t.setAttribute("data-sf-accordion-static",""),t.append(...this.trigger.childNodes),this.trigger.removeAttribute("id"),this.trigger.replaceWith(t),this.staticHeader=t,this.el.classList.add("sf-accordion--static"),this.content.hidden=!1,this.content.classList.remove("hidden"),void this.el.classList.add("active")}const e=this.staticHeader;this.trigger.id=e.id,this.trigger.append(...e.childNodes),e.replaceWith(this.trigger),this.staticHeader=null,this.el.classList.remove("sf-accordion--static"),this.setOpen(!0)}destroy(){this.el&&(this.trigger?.removeEventListener("click",this.onClick),this.trigger?.removeEventListener("keydown",this.onKeydown),e.delete(this.el),this.el.classList.remove("sf-accordion--legacy"),delete this.el.dataset.sfAccordionInit)}bindRelationship(){this.trigger&&this.content&&(s+=1,this.trigger.id||(this.trigger.id=`sf-accordion-trigger-${s}`),this.content.id||(this.content.id=`sf-accordion-panel-${s}`),this.trigger.setAttribute("aria-controls",this.content.id),"region"===this.content.getAttribute("role")&&this.content.setAttribute("aria-labelledby",this.trigger.id))}handleClick(){this.toggle()}handleKeydown(t){"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.toggle())}isOpen(){return!!this.content&&(!this.content.hidden&&!this.content.classList.contains("hidden"))}toggle(){this.content&&this.setOpen(!this.isOpen())}setOpen(t){this.content&&!this.staticHeader&&(t&&this.closeSingleModeSiblings(),this.content.hidden=!t,this.content.classList.toggle("hidden",!t),this.syncState())}closeSingleModeSiblings(){const t=this.singleModeGroup();t&&t.querySelectorAll(":scope > .sf-accordion").forEach(t=>{if(t===this.el)return;const i=e.get(t);i?.isOpen()&&i.setOpen(!1)})}singleModeGroup(){const t=this.el.closest?.(i);return t?"single"===t.getAttribute("data-mode")?t:null:this.el.closest?.('[data-sf-accordion-mode="single"]')||null}syncState(){const t=this.isOpen();this.trigger?.setAttribute("aria-expanded",t?"true":"false"),this.el?.classList.toggle("active",t),this.icon&&(this.icon.textContent=this.el.classList.contains("sf-accordion--plus-minus")?t?"remove":"add":"chevron_right",this.icon.setAttribute("aria-hidden","true"))}}function o(t){t?.matches?.(i)&&t.querySelectorAll(":scope > .sf-accordion").forEach(t=>{e.get(t)?.syncSingle()})}function r(t=document){t?.querySelectorAll&&t.querySelectorAll(".sf-accordion").forEach(t=>{(e.get(t)||new n(t)).init()})}if("loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>r(),{once:!0}):r(),"undefined"!=typeof MutationObserver){new MutationObserver(t=>{t.forEach(t=>{[...t.removedNodes].some(t=>t instanceof HTMLElement&&t.matches(".sf-accordion"))&&o(t.target),t.addedNodes.forEach(t=>{if(t instanceof HTMLElement){if(t.matches(".sf-accordion")){return void(e.get(t)||new n(t)).init()}t.querySelector?.(".sf-accordion")&&r(t)}})})}).observe(document.documentElement,{childList:!0,subtree:!0})}t("Accordion",n)})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer sf.components{.sf-modal-focus-guard{position:fixed;width:0;inline-size:0;height:0;block-size:0;overflow:hidden;pointer-events:none}[data-sf-overlay-container]{contain:layout}.sf-modal{--sf-modal-overlay-background: var(--sf-black, #000);--sf-modal-overlay-opacity: var(--sf-opacity-60, 0.6);--sf-modal-iframe-min-height: var(--sf-g2)}.sf-modal[data-sf-modal-position=left],.sf-modal[data-sf-modal-position=right],.sf-modal[data-sf-modal-position=inline-start],.sf-modal[data-sf-modal-position=inline-end]{align-items:stretch;padding:0}.sf-modal[data-sf-modal-position=left]{justify-content:flex-start}.sf-modal[data-sf-modal-position=right]{justify-content:flex-end}.sf-modal[data-sf-modal-position=inline-start]{justify-content:flex-start}.sf-modal[data-sf-modal-position=inline-end]{justify-content:flex-end}.sf-modal[data-sf-modal-position=top],.sf-modal[data-sf-modal-position=bottom]{justify-content:stretch;padding:0}.sf-modal[data-sf-modal-position=top]{align-items:flex-start}.sf-modal[data-sf-modal-position=bottom]{align-items:flex-end}.sf-modal[data-sf-modal-position=left] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=right] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=inline-start] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=inline-end] [data-sf-modal-panel]{display:flex;max-width:min(100%,auto);max-width:min(100%,var(--sf-modal-drawer-width, auto));min-height:100%;width:auto;width:var(--sf-modal-drawer-width, auto)}.sf-modal[data-sf-modal-position=top] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=bottom] [data-sf-modal-panel]{display:flex;max-height:min(100%,100vh);max-height:min(100%,var(--sf-modal-drawer-height, 100vh));min-width:100%}.sf-modal[data-sf-modal-position=left] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=right] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=inline-start] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=inline-end] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=top] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=bottom] [data-sf-modal-surface]{flex:1}.sf-modal-header{--sf-modal-header-gap: var(--sf-space-1);gap:var(--sf-modal-header-gap)}.sf-modal-surface{--sf-modal-surface-bg: var(--sf-modal-background-color, var(--sf-surface-1, #fff));--sf-modal-surface-border-color: var(--sf-modal-border-color, var(--sf-outline-variant, transparent));--sf-modal-surface-border-style: solid;--sf-modal-surface-border-width: var(--sf-modal-border-width, var(--sf-border-width, var(--sf-px)));--sf-modal-surface-gap: var(--sf-modal-gap, var(--sf-space-1));--sf-modal-surface-padding: var(--sf-modal-padding-block, var(--sf-space-2)) var(--sf-modal-padding-inline, var(--sf-space-2));--sf-modal-surface-radius: var(--sf-modal-radius, var(--sf-radius--surface));--sf-modal-surface-shadow: none;background-color:var(--sf-modal-surface-bg);--sf-badge--surface: var(--sf-modal-surface-bg);border:var(--sf-modal-surface-border-width) var(--sf-modal-surface-border-style) var(--sf-modal-surface-border-color);border-radius:var(--sf-modal-surface-radius);box-shadow:var(--sf-modal-surface-shadow);gap:var(--sf-modal-surface-gap);min-width:0;padding:var(--sf-modal-surface-padding)}.sf-modal-surface--elevated{--sf-modal-surface-bg: var(--sf-modal-background-color, var(--sf-elevation-3--surface));--sf-on-surface-variant: var(--sf-on-elevation-3--variant);--sf-modal-surface-shadow: var(--sf-elevation-3--shadow)}.sf-modal [data-sf-modal-overlay]{background-color:var(--sf-modal-overlay-background);opacity:var(--sf-modal-overlay-opacity);transition:opacity var(--sf-duration-normal) var(--sf-animation)}.sf-modal[data-sf-modal-state=opening] [data-sf-modal-overlay]{opacity:0}.sf-modal[data-sf-modal-state=closing] [data-sf-modal-overlay]{opacity:0}.sf-modal[data-sf-modal-hidden=true]{pointer-events:none}.sf-modal[data-sf-modal-hidden=true] [data-sf-modal-overlay]{opacity:0;pointer-events:none}.sf-modal [data-sf-modal-panel]{opacity:0}.sf-modal.animate [data-sf-modal-panel]{transition:opacity var(--sf-duration-normal) var(--sf-animation),-webkit-transform var(--sf-duration-normal) var(--sf-animation);transition:transform var(--sf-duration-normal) var(--sf-animation),opacity var(--sf-duration-normal) var(--sf-animation);transition:transform var(--sf-duration-normal) var(--sf-animation),opacity var(--sf-duration-normal) var(--sf-animation),-webkit-transform var(--sf-duration-normal) var(--sf-animation);will-change:transform,opacity}.sf-modal[data-sf-modal-position=left] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-position=right] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-position=inline-start] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-position=inline-end] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-position=inline-start]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-position=inline-end]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-position=top] [data-sf-modal-panel]{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.sf-modal[data-sf-modal-position=bottom] [data-sf-modal-panel]{-webkit-transform:translateY(100%);transform:translateY(100%)}.sf-modal[data-sf-modal-position=center] [data-sf-modal-panel]{-webkit-transform:translateY(var(--sf-space-1\/2)) scale(0.98);transform:translateY(var(--sf-space-1\/2)) scale(0.98)}.sf-modal[data-sf-modal-state=opening] [data-sf-modal-panel]{opacity:0}.sf-modal[data-sf-modal-state=open] [data-sf-modal-panel]{opacity:1;-webkit-transform:translate(0, 0) scale(1);transform:translate(0, 0) scale(1)}.sf-modal[data-sf-modal-state=closing] [data-sf-modal-panel]{opacity:0}.sf-modal[data-sf-modal-state=inline] [data-sf-modal-panel]{opacity:1;-webkit-transform:translate(0, 0) scale(1);transform:translate(0, 0) scale(1)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=left] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=right] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-start] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-end] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-start]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-end]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=top] [data-sf-modal-panel]{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=bottom] [data-sf-modal-panel]{-webkit-transform:translateY(100%);transform:translateY(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=center] [data-sf-modal-panel]{-webkit-transform:translateY(var(--sf-space-1\/2)) scale(0.98);transform:translateY(var(--sf-space-1\/2)) scale(0.98)}.sf-modal[data-sf-modal-state][data-sf-modal-hidden=true] [data-sf-modal-panel]{opacity:0;pointer-events:none;-webkit-transform:translateY(var(--sf-space-1\/2)) scale(0.98);transform:translateY(var(--sf-space-1\/2)) scale(0.98)}.sf-modal [data-sf-modal-panel][data-sf-modal-has-width]{max-width:min(100%,var(--sf-modal-width));width:var(--sf-modal-width)}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height]{display:flex;height:var(--sf-modal-height);max-height:min(100%,var(--sf-modal-height))}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-surface]{flex:1;min-height:0}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-body],.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-body-viewport]{flex:1;min-height:0}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-body-scroll]{flex:1;max-height:none}.sf-modal[data-sf-modal-fullscreen=true]{align-items:stretch;justify-content:stretch;padding:0}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-panel]{display:flex;height:100%;max-height:100%;max-width:100%;width:100%}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-surface]{border-radius:0;flex:1;min-height:0}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-body],.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-body-viewport]{flex:1;min-height:0}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-body-scroll]{flex:1;max-height:none}@media(prefers-reduced-motion: reduce){.sf-modal.animate [data-sf-modal-panel],.sf-modal [data-sf-modal-overlay]{transition:none;will-change:auto}}}@layer sf.components{.sf-modal-loading .sf-modal-spinner{--sf-loader-svg-width: var(--sf-text-height-3);--sf-loader-svg-height: var(--sf-text-height-3);display:inline-flex;flex:none;width:var(--sf-text-height-3);inline-size:var(--sf-text-height-3);height:var(--sf-text-height-3);block-size:var(--sf-text-height-3);color:currentColor;color:var(--sf-loader--color, currentColor)}.sf-modal-loading .sf-modal-spinner .sf-loader--loading-indicator{display:block;width:100%;inline-size:100%;height:100%;block-size:100%}.sf-modal-loading .sf-modal-spinner .sf-loader-svg{display:block;width:100%;inline-size:100%;height:100%;block-size:100%}}@layer sf.components{.sf-modal-header-content{flex:1 1 auto;min-width:0;word-wrap:anywhere}.sf-modal-header-action{align-items:center;display:flex;flex:0 0 auto;justify-content:center;min-height:var(--sf-ui-1\/3--control-height);min-block-size:var(--sf-ui-1\/3--control-height);min-width:var(--sf-ui-1\/3--control-height);min-inline-size:var(--sf-ui-1\/3--control-height)}.sf-modal-close-button{--sf-modal-close-right: var(--sf-space-1\/3);--sf-modal-close-top: var(--sf-space-1\/3);right:var(--sf-modal-close-right);top:var(--sf-modal-close-top);left:var(--sf-modal-close-left);bottom:var(--sf-modal-close-bottom)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-modal-close-button--inline-end{right:var(--sf-modal-close-right);right:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}@supports not (inset-inline-end: initial){html:not([dir="rtl"]) .sf-modal-close-button--inline-end{right:var(--sf-modal-close-right);right:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}}.sf-modal-close-button--inline-end:where(:dir(ltr)){right:var(--sf-modal-close-right);right:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}_:-ms-input-placeholder, [dir="rtl"] .sf-modal-close-button--inline-end{left:var(--sf-modal-close-right);left:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}@supports not (inset-inline-end: initial){[dir="rtl"] .sf-modal-close-button--inline-end{left:var(--sf-modal-close-right);left:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}}.sf-modal-close-button--inline-end:where(:dir(rtl)){left:var(--sf-modal-close-right);left:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}.sf-modal-close-button--inline-end{left:auto;right:auto;inset-inline-end:var(--sf-modal-close-right);inset-inline-end:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}.sf-modal-hide-button{--sf-modal-hide-right: var(--sf-space-2);--sf-modal-hide-top: var(--sf-space-1\/3);right:var(--sf-modal-hide-right);top:var(--sf-modal-hide-top);left:var(--sf-modal-hide-left);bottom:var(--sf-modal-hide-bottom)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-modal-hide-button--inline-end{right:var(--sf-modal-hide-right);right:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}@supports not (inset-inline-end: initial){html:not([dir="rtl"]) .sf-modal-hide-button--inline-end{right:var(--sf-modal-hide-right);right:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}}.sf-modal-hide-button--inline-end:where(:dir(ltr)){right:var(--sf-modal-hide-right);right:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}_:-ms-input-placeholder, [dir="rtl"] .sf-modal-hide-button--inline-end{left:var(--sf-modal-hide-right);left:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}@supports not (inset-inline-end: initial){[dir="rtl"] .sf-modal-hide-button--inline-end{left:var(--sf-modal-hide-right);left:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}}.sf-modal-hide-button--inline-end:where(:dir(rtl)){left:var(--sf-modal-hide-right);left:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}.sf-modal-hide-button--inline-end{left:auto;right:auto;inset-inline-end:var(--sf-modal-hide-right);inset-inline-end:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}.sf-modal-hide-icon{background-color:currentColor;display:block;height:2px;height:var(--sf-border-width-2, 2px);width:var(--sf-space-1)}}
|
|
1
|
+
@layer sf.components{.sf-modal-focus-guard{position:fixed;width:0;inline-size:0;height:0;block-size:0;overflow:hidden;pointer-events:none}[data-sf-overlay-container]{contain:layout}.sf-modal{--sf-modal-overlay-background: var(--sf-black, #000);--sf-modal-overlay-opacity: var(--sf-opacity-60, 0.6);--sf-modal-iframe-min-height: var(--sf-g2)}.sf-modal[data-sf-modal-position=left],.sf-modal[data-sf-modal-position=right],.sf-modal[data-sf-modal-position=inline-start],.sf-modal[data-sf-modal-position=inline-end]{align-items:stretch;padding:0}.sf-modal[data-sf-modal-position=left]{justify-content:flex-start}.sf-modal[data-sf-modal-position=right]{justify-content:flex-end}.sf-modal[data-sf-modal-position=inline-start]{justify-content:flex-start}.sf-modal[data-sf-modal-position=inline-end]{justify-content:flex-end}.sf-modal[data-sf-modal-position=top],.sf-modal[data-sf-modal-position=bottom]{justify-content:stretch;padding:0}.sf-modal[data-sf-modal-position=top]{align-items:flex-start}.sf-modal[data-sf-modal-position=bottom]{align-items:flex-end}.sf-modal[data-sf-modal-position=left] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=right] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=inline-start] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=inline-end] [data-sf-modal-panel]{display:flex;max-width:min(100%,auto);max-width:min(100%,var(--sf-modal-drawer-width, auto));min-height:100%;width:auto;width:var(--sf-modal-drawer-width, auto)}.sf-modal[data-sf-modal-position=top] [data-sf-modal-panel],.sf-modal[data-sf-modal-position=bottom] [data-sf-modal-panel]{display:flex;max-height:min(100%,100vh);max-height:min(100%,var(--sf-modal-drawer-height, 100vh));min-width:100%}.sf-modal[data-sf-modal-position=left] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=right] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=inline-start] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=inline-end] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=top] [data-sf-modal-surface],.sf-modal[data-sf-modal-position=bottom] [data-sf-modal-surface]{flex:1}.sf-modal-header{--sf-modal-header-gap: var(--sf-space-1);gap:var(--sf-modal-header-gap)}.sf-modal-surface{--sf-modal-surface-bg: var(--sf-modal-background-color, var(--sf-surface-1, #fff));--sf-modal-surface-border-color: var(--sf-modal-border-color, var(--sf-outline-variant, transparent));--sf-modal-surface-border-style: solid;--sf-modal-surface-border-width: var(--sf-modal-border-width, var(--sf-border-width, var(--sf-px)));--sf-modal-surface-gap: var(--sf-modal-gap, var(--sf-space-1));--sf-modal-surface-padding: var(--sf-modal-padding-block, var(--sf-space-2)) var(--sf-modal-padding-inline, var(--sf-space-2));--sf-modal-surface-radius: var(--sf-modal-radius, var(--sf-radius--surface));--sf-modal-surface-shadow: none;background-color:var(--sf-modal-surface-bg);--sf-badge--surface: var(--sf-modal-surface-bg);border:var(--sf-modal-surface-border-width) var(--sf-modal-surface-border-style) var(--sf-modal-surface-border-color);border-radius:var(--sf-modal-surface-radius);box-shadow:var(--sf-modal-surface-shadow);gap:var(--sf-modal-surface-gap);min-width:0;padding:var(--sf-modal-surface-padding)}.sf-modal-surface--elevated{--sf-modal-surface-bg: var(--sf-modal-background-color, var(--sf-elevation-3--surface));--sf-on-surface-variant: var(--sf-on-elevation-3--variant);--sf-modal-surface-shadow: var(--sf-elevation-3--shadow)}.sf-modal [data-sf-modal-overlay]{background-color:var(--sf-modal-overlay-background);opacity:var(--sf-modal-overlay-opacity);transition:opacity var(--sf-duration-normal) var(--sf-animation)}.sf-modal[data-sf-modal-state=opening] [data-sf-modal-overlay]{opacity:0}.sf-modal[data-sf-modal-state=closing] [data-sf-modal-overlay]{opacity:0}.sf-modal[data-sf-modal-hidden=true]{pointer-events:none}.sf-modal[data-sf-modal-hidden=true] [data-sf-modal-overlay]{opacity:0;pointer-events:none}.sf-modal [data-sf-modal-panel]{opacity:0}.sf-modal.animate [data-sf-modal-panel]{transition:opacity var(--sf-duration-normal) var(--sf-animation),-webkit-transform var(--sf-duration-normal) var(--sf-animation);transition:transform var(--sf-duration-normal) var(--sf-animation),opacity var(--sf-duration-normal) var(--sf-animation);transition:transform var(--sf-duration-normal) var(--sf-animation),opacity var(--sf-duration-normal) var(--sf-animation),-webkit-transform var(--sf-duration-normal) var(--sf-animation);will-change:transform,opacity}.sf-modal[data-sf-modal-position=left] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-position=right] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-position=inline-start] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-position=inline-end] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-position=inline-start]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-position=inline-end]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-position=top] [data-sf-modal-panel]{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.sf-modal[data-sf-modal-position=bottom] [data-sf-modal-panel]{-webkit-transform:translateY(100%);transform:translateY(100%)}.sf-modal[data-sf-modal-position=center] [data-sf-modal-panel]{-webkit-transform:translateY(var(--sf-space-1\/2)) scale(0.98);transform:translateY(var(--sf-space-1\/2)) scale(0.98)}.sf-modal[data-sf-modal-state=opening] [data-sf-modal-panel]{opacity:0}.sf-modal[data-sf-modal-state=open] [data-sf-modal-panel]{opacity:1;-webkit-transform:translate(0, 0) scale(1);transform:translate(0, 0) scale(1)}.sf-modal[data-sf-modal-state=closing] [data-sf-modal-panel]{opacity:0}.sf-modal[data-sf-modal-state=inline] [data-sf-modal-panel]{opacity:1;-webkit-transform:translate(0, 0) scale(1);transform:translate(0, 0) scale(1)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=left] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=right] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-start] [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-end] [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-start]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(100%);transform:translateX(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=inline-end]:dir(rtl) [data-sf-modal-panel]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=top] [data-sf-modal-panel]{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=bottom] [data-sf-modal-panel]{-webkit-transform:translateY(100%);transform:translateY(100%)}.sf-modal[data-sf-modal-state=closing][data-sf-modal-position=center] [data-sf-modal-panel]{-webkit-transform:translateY(var(--sf-space-1\/2)) scale(0.98);transform:translateY(var(--sf-space-1\/2)) scale(0.98)}.sf-modal[data-sf-modal-state][data-sf-modal-hidden=true] [data-sf-modal-panel]{opacity:0;pointer-events:none;-webkit-transform:translateY(var(--sf-space-1\/2)) scale(0.98);transform:translateY(var(--sf-space-1\/2)) scale(0.98)}.sf-modal [data-sf-modal-panel][data-sf-modal-has-width]{max-width:min(100%,var(--sf-modal-width));width:var(--sf-modal-width)}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height]{display:flex;height:var(--sf-modal-height);max-height:min(100%,var(--sf-modal-height))}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-surface]{flex:1;min-height:0}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-body],.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-body-viewport]{flex:1;min-height:0}.sf-modal [data-sf-modal-panel][data-sf-modal-has-height] [data-sf-modal-body-scroll]{flex:1;max-height:none}.sf-modal[data-sf-modal-fullscreen=true]{align-items:stretch;justify-content:stretch;padding:0}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-panel]{display:flex;height:100%;max-height:100%;max-width:100%;width:100%}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-surface]{border-radius:0;flex:1;min-height:0}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-body],.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-body-viewport]{flex:1;min-height:0}.sf-modal[data-sf-modal-fullscreen=true] [data-sf-modal-body-scroll]{flex:1;max-height:none}@media(prefers-reduced-motion: reduce){.sf-modal.animate [data-sf-modal-panel],.sf-modal [data-sf-modal-overlay]{transition:none;will-change:auto}}}@layer sf.components{.sf-modal-loading .sf-modal-spinner{--sf-loader-svg-width: var(--sf-text-height-3);--sf-loader-svg-height: var(--sf-text-height-3);display:inline-flex;flex:none;width:var(--sf-text-height-3);inline-size:var(--sf-text-height-3);height:var(--sf-text-height-3);block-size:var(--sf-text-height-3);color:currentColor;color:var(--sf-loader--color, currentColor)}.sf-modal-loading .sf-modal-spinner .sf-loader--loading-indicator{display:block;width:100%;inline-size:100%;height:100%;block-size:100%}.sf-modal-loading .sf-modal-spinner .sf-loader-svg{display:block;width:100%;inline-size:100%;height:100%;block-size:100%}}@layer sf.base{.sf-modal-footer{align-items:center;justify-content:flex-end;gap:var(--sf-space-1\/2);gap:var(--sf-modal-footer-gap, var(--sf-space-1\/2))}}@layer sf.components{.sf-modal-header-content{flex:1 1 auto;min-width:0;word-wrap:anywhere}.sf-modal-header-action{align-items:center;display:flex;flex:0 0 auto;justify-content:center;min-height:var(--sf-ui-1\/3--control-height);min-block-size:var(--sf-ui-1\/3--control-height);min-width:var(--sf-ui-1\/3--control-height);min-inline-size:var(--sf-ui-1\/3--control-height)}.sf-modal-close-button{--sf-modal-close-right: var(--sf-space-1\/3);--sf-modal-close-top: var(--sf-space-1\/3);right:var(--sf-modal-close-right);top:var(--sf-modal-close-top);left:var(--sf-modal-close-left);bottom:var(--sf-modal-close-bottom)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-modal-close-button--inline-end{right:var(--sf-modal-close-right);right:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}@supports not (inset-inline-end: initial){html:not([dir="rtl"]) .sf-modal-close-button--inline-end{right:var(--sf-modal-close-right);right:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}}.sf-modal-close-button--inline-end:where(:dir(ltr)){right:var(--sf-modal-close-right);right:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}_:-ms-input-placeholder, [dir="rtl"] .sf-modal-close-button--inline-end{left:var(--sf-modal-close-right);left:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}@supports not (inset-inline-end: initial){[dir="rtl"] .sf-modal-close-button--inline-end{left:var(--sf-modal-close-right);left:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}}.sf-modal-close-button--inline-end:where(:dir(rtl)){left:var(--sf-modal-close-right);left:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}.sf-modal-close-button--inline-end{left:auto;right:auto;inset-inline-end:var(--sf-modal-close-right);inset-inline-end:var(--sf-modal-close-inline-end, var(--sf-modal-close-right))}.sf-modal-hide-button{--sf-modal-hide-right: var(--sf-space-2);--sf-modal-hide-top: var(--sf-space-1\/3);right:var(--sf-modal-hide-right);top:var(--sf-modal-hide-top);left:var(--sf-modal-hide-left);bottom:var(--sf-modal-hide-bottom)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-modal-hide-button--inline-end{right:var(--sf-modal-hide-right);right:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}@supports not (inset-inline-end: initial){html:not([dir="rtl"]) .sf-modal-hide-button--inline-end{right:var(--sf-modal-hide-right);right:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}}.sf-modal-hide-button--inline-end:where(:dir(ltr)){right:var(--sf-modal-hide-right);right:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}_:-ms-input-placeholder, [dir="rtl"] .sf-modal-hide-button--inline-end{left:var(--sf-modal-hide-right);left:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}@supports not (inset-inline-end: initial){[dir="rtl"] .sf-modal-hide-button--inline-end{left:var(--sf-modal-hide-right);left:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}}.sf-modal-hide-button--inline-end:where(:dir(rtl)){left:var(--sf-modal-hide-right);left:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}.sf-modal-hide-button--inline-end{left:auto;right:auto;inset-inline-end:var(--sf-modal-hide-right);inset-inline-end:var(--sf-modal-hide-inline-end, var(--sf-modal-hide-right))}.sf-modal-hide-icon{background-color:currentColor;display:block;height:2px;height:var(--sf-border-width-2, 2px);width:var(--sf-space-1)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";class t{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(t){this.props=t,this.id=t?.id,this.params=t?.param,this.attrs=t?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(t){if(!Array.isArray(t))return[];const e=new Set;return t.forEach(t=>{if("string"!=typeof t)return;const s=t.match(/\(([^)]+)\)/g);s&&s.forEach(t=>{t.slice(1,-1).split(/\s+/).filter(Boolean).forEach(t=>{t.startsWith(".")&&t.length>1&&e.add(t.slice(1))})})}),Array.from(e)}applyLayoutUtilities(t,e){if(!t||!e)return;const s=this.getUtilityMap();if(!s||!s[e])return;this.extractUtilityClasses(s[e]).forEach(e=>t.classList.add(e))}render(){return this.html=this.template,"function"==typeof this.init&&this.init(),this.html&&window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:render`,{detail:this})),this.html}destroy(){this.destroyInternal?.(),this.props=null,this.id=null,this.params=null,this.template=null,this.html&&(this.html.remove(),this.html=null),window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:destroy`,{detail:this}))}destroyInternal(){}}const e=function(t,e){if(t&&e)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(t,e);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([t,e])}}else window.registerSfComponent(t,e)},s=(()=>{const t="undefined"!=typeof globalThis?globalThis:{},e="__sfPageLanguage";return t[e]||(t[e]={listeners:new Set,registered:new Map,chosen:null}),t[e]})(),o=s.listeners,n=s.registered,i=t=>String(t??"").trim().toLowerCase().replace("_","-"),a=()=>{for(const t of[...o])try{t()}catch{}};function l(t){let e=t;for(;e;){const t="function"==typeof e.closest?e.closest("[lang]"):null;if(t)return t;const s="function"==typeof e.getRootNode?e.getRootNode():null;e=s&&s!==e&&s.host?s.host:null}return null}function r(t){if(s.chosen)return s.chosen.split("-")[0];const e=l(t),o=e?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en";return i(o).split("-")[0]||"en"}function d(t){if(s.chosen)return s.chosen;const e=l(t);return i(e?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en")}function c(t,e,s,o){const a=o??(t=>{const e=t?.tagName;return"string"==typeof e?e.toLowerCase():null})(s);for(const o of(t=>{const e=i(t),s=e.split("-")[0],o=[];for(const t of[e,s,"en"])t&&!o.includes(t)&&o.push(t);return o})(d(s))){const s=a?n.get(a)?.get(o)?.[e]:void 0;if(void 0!==s)return s;const i=t?.[o]?.[e];if(void 0!==i)return i}return e}const h={current:(t=globalThis.document?.documentElement??null)=>d(t),use(t){const e=null==t?null:i(t);return e===s.chosen||(s.chosen=e,a()),s.chosen},register(t,e,s){const o=String(t??"").toLowerCase(),l=i(e);if(!o||!l)throw new TypeError("a component and a language are required");n.has(o)||n.set(o,new Map);const r=n.get(o);return null===s?r.delete(l):r.set(l,{...r.get(l)??{},...s}),a(),this},registerAll(t,e={}){for(const[s,o]of Object.entries(e))this.register(s,t,o);return this},known(t){const e=String(t??"").toLowerCase();return[...n.get(e)?.keys()??[]]},components:()=>[...n.keys()],onChange:t=>"function"!=typeof t?()=>{}:(o.add(t),()=>o.delete(t)),forget(){return n.clear(),s.chosen=null,a(),this}};"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.language=h,window.SF.pageLanguage=r,window.SF.pageText=c);const m=["a[href]","area[href]","button","input","select","textarea","iframe","summary","audio[controls]","video[controls]","[contenteditable]","[tabindex]"].join(","),u=Symbol.for("simai.modal.focus-guards");function f(t,e){return"INPUT"===t?.tagName&&"INPUT"===e?.tagName&&"radio"===t.type&&"radio"===e.type&&!!t.name&&t.name===e.name&&t.form===e.form&&t.getRootNode()===e.getRootNode()}function p(t,e=!1){const s=t.ownerDocument.defaultView,o=Array.from(t.querySelectorAll(m)).filter(t=>t.tabIndex>=0&&!t.matches(":disabled")&&!t.closest("[inert]")&&t.getClientRects().length>0&&"visible"===s.getComputedStyle(t).visibility).sort((t,e)=>(t.tabIndex||1/0)-(e.tabIndex||1/0));return o.filter(t=>{if(!f(t,t))return!0;const s=o.filter(e=>f(t,e)),n=s.find(t=>t.checked);return t===(n||s.at(e?-1:0))})}const g=t=>{const e=Number.parseFloat(t);return Number.isFinite(e)?e*(t.trim().endsWith("ms")?1:1e3):0};function b(t,e=window){let s=!1,o=null,n=null;const i=()=>{s||(s=!0,null!==o&&(e.cancelAnimationFrame(o),o=null),null!==n&&(e.clearTimeout(n),n=null),t())};return o=e.requestAnimationFrame(i),n=e.setTimeout(i,50),"function"==typeof e.queueMicrotask&&e.queueMicrotask(i),()=>{s=!0,null!==o&&e.cancelAnimationFrame(o),null!==n&&e.clearTimeout(n)}}function y(t,e,s=window){let o=null,n=!1;const i=b(()=>{if(n)return;const i=t(),a=i?.querySelectorAll("[data-sf-modal-panel], [data-sf-modal-overlay]")||[],l=Math.max(0,...Array.from(a,t=>{const e=s.getComputedStyle(t);return"none"===e.display?0:function(t){const e=t.transitionProperty.split(",").map(t=>t.trim()),s=t.transitionDuration.split(",").map(g),o=t.transitionDelay.split(",").map(g);return Math.max(0,...e.map((t,e)=>["all","opacity","transform","-webkit-transform"].includes(t)?Math.max(0,s[e%s.length])+o[e%o.length]:0))}(e)}));o=s.setTimeout(()=>{n||e()},l)},s);return()=>{n=!0,i(),null!==o&&s.clearTimeout(o)}}function v(t,e={}){const s=document.createElementNS("http://www.w3.org/2000/svg",t);return Object.entries(e).forEach(([t,e])=>{null!=e&&""!==e&&s.setAttribute(t,String(e))}),s}const w=t=>Math.round(1e3*t)/1e3;function C(t={}){return function({width:t=24,height:e=24,stroke:s=2,dots:o=8,filled:n=3,dotRadius:i=null,direction:a="clockwise",pixel:l=!1}={}){const r=t/2,d=e/2,c=Math.min(t,e)/2,h=Math.max(1,c-s/2),m=v("svg",{class:"sf-loader-svg",viewBox:`0 0 ${t} ${e}`,width:l?t:null,height:l?e:null,"aria-hidden":"true",focusable:"false"}),u={cx:r,cy:d,r:w(h),fill:"none",stroke:"currentColor","stroke-width":s},f=v("circle",{class:"sf-loader-ring-filled",...u,opacity:"0.3"}),p=v("circle",{class:"sf-loader-ring-accent",...u,"stroke-linecap":"round",pathLength:100,"stroke-dasharray":"30 70",transform:`rotate(90 ${r} ${d})`}),g=v("g",{class:"sf-loader-comet",display:"none",transform:`rotate(-90 ${r} ${d})`});for(let t=0;t<10;t+=1){const e=9===t;g.append(v("circle",{class:"sf-loader-comet-segment"+(e?" sf-loader-comet-head":""),...u,"stroke-linecap":e?"round":"butt",pathLength:100,"stroke-dasharray":`${w(4)} ${w(96)}`,"stroke-dashoffset":w(-4*t),opacity:w(((t+1)/10)**1.6)}))}const b=Math.max(3,Math.min(32,Math.floor(Number(o)||8))),y=Math.max(1,Math.min(b,Math.floor(Number(n)||3))),C=Math.min(s,.7*Math.PI*(c-s)/b),_=null==i||""===i?C:Math.max(1,Math.min(Number(i)||C,c/4)),E=Math.max(_,c-_),A=v("g",{class:"sf-loader-dots",display:"none",style:`--sf-loader-dot-count:${b}; --sf-loader-dot-filled:${y};`});for(let t=0;t<b;t+=1){const e=2*Math.PI/b*t-Math.PI/2,s="counterclockwise"===a?t:(b-t)%b;A.append(v("circle",{class:"sf-loader-dot"+(t<y?" sf-loader-dot--active":""),cx:w(r+E*Math.cos(e)),cy:w(d+E*Math.sin(e)),r:w(_),fill:"currentColor",style:`--sf-loader-dot-index:${t}; --sf-loader-dot-step:${s};`}))}return m.append(f,p,g,A),m}({...t,width:24,height:24,stroke:2,dotRadius:null,pixel:!1})}const _=Symbol.for("simai.modal.document-stack");function E(){return document[_]||Object.defineProperty(document,_,{value:{items:[],lockOwner:null},configurable:!0}),document[_]}function A(){return E().items.at(-1)||null}function S(){E().items.forEach((t,e)=>t.applyStackPosition(e)),function(t){const e=t?.getModalRoot?.()||t?.template,s=e?.querySelector?.("[data-sf-modal-panel]"),o=document[u];if(o&&o.panel===s&&o.before.isConnected&&o.after.isConnected)return;if(o?.before.remove(),o?.after.remove(),delete document[u],!s?.parentNode)return;const n={panel:s,relaying:!1};for(const t of["before","after"]){const o=s.ownerDocument.createElement("span");o.tabIndex=0,o.className="sf-modal-focus-guard",o.setAttribute("aria-hidden","true"),o.addEventListener("focus",()=>{if(n.relaying||!s.isConnected||e.inert||"true"===e.getAttribute("aria-hidden"))return;const o="before"===t,i=p(s,o),a=o?i.at(-1):i[0];a&&"IFRAME"!==a.tagName?a.focus({preventScroll:!0}):s.focus({preventScroll:!0})}),n[t]=o}s.before(n.before),s.after(n.after),document[u]=n}(A())}const x=t=>!t.inContainer;function L(t,e=!1){if(!t?.isConnected||"function"!=typeof t.focus||t.matches(":disabled")||t.closest('[inert], [hidden], [aria-hidden="true"]')||!t.getClientRects().length||"visible"!==t.ownerDocument.defaultView.getComputedStyle(t).visibility)return!1;const s=e&&!t.hasAttribute("tabindex");let o;const n=()=>{o?.disconnect(),t.removeEventListener("blur",n),s&&"-1"===t.getAttribute("tabindex")&&t.removeAttribute("tabindex")};s&&(t.setAttribute("tabindex","-1"),t.addEventListener("blur",n,{once:!0}),o=new t.ownerDocument.defaultView.MutationObserver(()=>{t.isConnected||n()}),o.observe(t.ownerDocument.documentElement,{childList:!0,subtree:!0}));let i=!1;try{return t.focus({preventScroll:!0}),i=t.ownerDocument.activeElement===t,i}catch{return!1}finally{s&&!i&&n()}}const k="[data-sf-overlay-container], [data-sf-drawer-container]";function T(...t){return t.filter(Boolean).join(" ").trim()}function N(t="medium"){const e=String(t||"medium").trim().toLowerCase();return["none","small","medium","large"].includes(e)?e:"medium"}function O(t="medium"){return`backdrop-blur-${N(t)}`}function M(t){return["none","small","medium","large"].includes(String(t||"").trim().toLowerCase())}function F(t){return String(t||"").trim()}const P={en:{title:"Dialog",close:"Close",loading:"Loading…",loadFailed:"Failed to load content",frameFailed:"Failed to load iframe content"},ru:{title:"Окно",close:"Закрыть",loading:"Загрузка…",loadFailed:"Не удалось загрузить содержимое",frameFailed:"Не удалось загрузить встроенную страницу"}},B=(t,e)=>c(P,t,e?.isConnected?e:document.documentElement,"sf-modal"),I=t=>c(P,"title",t);class $ extends t{static componentName="Modal";static registry=new Map;static globalBound=!1;static stack=[];static openCount=0;static uid=0;static lockState=null;static baseZIndex=9e3;static getTopModal(){return A()}static isTopModal(t){return $.getTopModal()===t}static addToStack(t){t&&"inline"!==t.display&&($.stack=$.stack.filter(e=>e!==t),$.stack.push(t),$.openCount=$.stack.length,function(t,e){const s=E();s.items.includes(t)||(x(t)&&!s.lockOwner&&(s.lockOwner=e,e.lockPage(t.preserveScrollGap)),s.items.push(t),S())}(t,$))}static removeFromStack(t){t&&"inline"!==t.display&&($.stack=$.stack.filter(e=>e!==t),$.openCount=$.stack.length,function(t){const e=E(),s=e.items.indexOf(t);s<0||(e.items.splice(s,1),e.lockOwner&&!e.items.some(x)&&(e.lockOwner.unlockPage(),e.lockOwner=null),S())}(t))}static bringToFront(t){t&&"inline"!==t.display&&$.stack.includes(t)&&($.stack=$.stack.filter(e=>e!==t),$.stack.push(t),function(t){const e=E(),s=e.items.indexOf(t);s<0||(e.items.splice(s,1),e.items.push(t),S())}(t))}static updateStackStyles(){S()}constructor(t){super(t);const e=this.params||{};this.modalId=this.id||e.id||"sf-modal-"+ ++$.uid,this.isOpen=!1,this.lastActive=null,this.root=e.root||null,this.container=e.container||null,this.overlay=this.toBoolean(e.overlay,!0),this.unclose=this.toBoolean(e.unclose,!1),this.showClose=this.toBoolean(e.showClose,!0)&&!this.unclose,this.showFooter=this.toBoolean(e.showFooter,!0),this.closeOnEsc=this.toBoolean(e.closeOnEsc,!0)&&!this.unclose,this.closeOnOverlay=this.toBoolean(e.closeOnOverlay,!0)&&!this.unclose,this.preserveScrollGap=this.toBoolean(e.preserveScrollGap,!0),this.autoload=this.toBoolean(e.autoload,!1),this.position=function(t="center"){const e=String(t||"center").trim().toLowerCase();return["center","left","right","inline-start","inline-end","top","bottom"].includes(e)?e:"center"}(e.position),this.fullscreen=this.toBoolean(e.fullscreen,!1),this.mode=function(t){const e=String(t||"inline").trim().toLowerCase();return["inline","ajax","iframe"].includes(e)?e:"inline"}(e.mode),this.display=function(t){const e=String(t||"modal").trim().toLowerCase();return["modal","inline"].includes(e)?e:"modal"}(e.display),this.src=e.src||"",this.preload=this.toBoolean(e.preload,!0),this._fetchController=null,this._contentLoaded=!1,this._contentError=null,this._loadingTimer=null,this._loadingShown=!1,this._loadingDebounceMs=500,this.blur=!!M(e.blur)||this.toBoolean(e.blur,!1),this.hasCustomBlurType=M(e.blurType)||M(e.blur),this.blurType=N(e.blurType||(M(e.blur)?e.blur:"")),this.onOverlayClick=this.onOverlayClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this._modalState="closed",this._stackIndex=-1,this._closeTimer=null,this._closeTransitionAbort=null,this.template=this.buildTemplate(e),this.template.id=this.modalId,this.template.setAttribute("data-sf-modal-id",this.modalId),this.template.setAttribute("aria-hidden","true"),this.init()}overlayHomeFor(t=null){let e=this.container;if("string"==typeof e&&(e=document.querySelector(e)),e instanceof Element)return e.matches(k)||e.setAttribute("data-sf-overlay-container",""),e;return(t instanceof Element?t.closest(k):null)||document.body}get overlayHome(){return this.overlayHomeFor()}get inContainer(){return Boolean(this.template?.parentElement?.closest(k))}placeIn(t){"inline"!==this.display&&!this.root&&this.template&&t&&this.template.parentElement!==t&&t.append(this.template)}emitEvent(t,{cancelable:e=!1,detail:s={}}={}){const o={modal:this,id:this.modalId,isOpen:this.isOpen,...s};let n=!1;if(this.template){const s=new CustomEvent(t,{bubbles:!0,cancelable:e,detail:o});this.template.dispatchEvent(s),n=n||s.defaultPrevented}if("undefined"!=typeof window){const e=new CustomEvent(t,{cancelable:!1,detail:o});window.dispatchEvent(e)}return!n}runCallback(t,e={}){const s=this.params?.[t];if("function"==typeof s)return s({modal:this,id:this.modalId,isOpen:this.isOpen,...e})}emitBeforeOpen(){const t=this.emitEvent("modal:before-open",{cancelable:!0,detail:{phase:"before-open"}}),e=this.emitEvent("SFModalBeforeOpenWindow",{cancelable:!0,detail:{phase:"before-open"}});if(!t||!e)return!1;const s=this.runCallback("beforeOpen",{phase:"before-open"}),o=this.runCallback("beforeOpenWindow",{phase:"before-open"});return!1!==s&&!1!==o}emitAfterOpen(){this.emitEvent("modal:after-open",{detail:{phase:"after-open"}}),this.emitEvent("SFModalAfterOpenWindow",{detail:{phase:"after-open"}}),this.runCallback("afterOpen",{phase:"after-open"}),this.runCallback("afterOpenWindow",{phase:"after-open"})}emitBeforeClose(){const t=this.emitEvent("modal:before-close",{cancelable:!0,detail:{phase:"before-close"}}),e=this.emitEvent("SFModalBeforeCloseWindow",{cancelable:!0,detail:{phase:"before-close"}});if(!t||!e)return!1;const s=this.runCallback("beforeClose",{phase:"before-close"}),o=this.runCallback("beforeCloseWindow",{phase:"before-close"});return!1!==s&&!1!==o}emitAfterClose(){this.emitEvent("modal:after-close",{detail:{phase:"after-close"}}),this.emitEvent("SFModalAfterCloseWindow",{detail:{phase:"after-close"}}),this.runCallback("afterClose",{phase:"after-close"}),this.runCallback("afterCloseWindow",{phase:"after-close"})}toBoolean(t,e){if(null==t)return e;if("boolean"==typeof t)return t;const s=`${t}`.trim().toLowerCase();return!!["1","true","yes","on"].includes(s)||!["0","false","no","off"].includes(s)&&e}getBlurClasses(){return this.hasCustomBlurType?[O(this.blurType)]:[]}setOverlay(t){this.overlay=this.toBoolean(t,!0);const e=this.template?.querySelector("[data-sf-modal-overlay]");return e?(e.classList.toggle("hidden",!this.overlay||"inline"===this.display),this):this}buildTemplate(t){const e="inline"===this.display,s=document.createElement("div");s.className=e?`sf-modal sf-modal--inline sf-modal--position-${this.position} sf-modal--positon-${this.position} inline-block w-full`:`sf-modal sf-modal--position-${this.position} sf-modal--positon-${this.position} hidden fixed top-0 inline-start-0 w-full h-full z-9 p-3 items-cross-center content-main-center`,s.setAttribute("role",e?"region":"dialog"),s.setAttribute("aria-modal",e?"false":"true"),s.setAttribute("data-sf-modal-position",this.position),s.setAttribute("data-sf-modal-fullscreen",String(this.fullscreen)),s.setAttribute("data-sf-modal-display",this.display),s.setAttribute("data-sf-modal-state",e?"inline":"closed");const o=document.createElement("div");o.className=T("absolute top-0 inline-start-0 w-full h-full",this.blur?this.hasCustomBlurType?this.getBlurClasses().join(" "):"bg-surface-overlay":"bg-black opacity-6",t.overlayClass),o.setAttribute("data-sf-modal-overlay",""),this.overlay&&!e||o.classList.add("hidden");const n=document.createElement("section");n.className=T("relative overflow-visible",t.panelClass),n.setAttribute("data-sf-modal-panel","");const i=F(t.width),a=F(t.height);i&&(n.style.setProperty("--sf-modal-width",i),n.setAttribute("data-sf-modal-has-width","")),a&&(n.style.setProperty("--sf-modal-height",a),n.setAttribute("data-sf-modal-has-height",""));const l=document.createElement("div");l.className=T(e?"bg-surface border border-outline-variant radius-surface p-2 flex flex-col gap-1 min-w-0":"bg-surface border border-outline-variant radius-surface shadow-3 p-2 flex flex-col gap-1 min-w-0",t.surfaceClass),l.setAttribute("data-sf-modal-surface","");const r=document.createElement("header");if(r.className=T("sf-modal-header flex items-start min-w-0 border-b border-outline-variant gap-1",t.headerClass),Array.isArray(t.headerNodes)&&t.headerNodes.length)s.setAttribute("aria-label",t.title||I(s)),t.headerNodes.forEach(t=>{t instanceof Node&&r.append(t)});else{const e=document.createElement("h2");if(e.id=`${this.modalId}-title`,s.setAttribute("aria-labelledby",e.id),e.className="sf-modal-header-content title-3 m-0",e.textContent=t.title||I(s),r.append(e),this.showClose){const e=document.createElement("button");e.type="button",e.className=T("sf-icon-button sf-modal-header-action sf-modal-close-button sf-icon-button--close sf-icon-button--link sf-icon-button--on-surface sf-icon-button--size-1/3 m-0",t.closeClass),e.setAttribute("aria-label",c(P,"close",e.isConnected?e:document.documentElement)),e.setAttribute("data-sf-modal-close",this.modalId),e.innerHTML=' <span\n class="sf-close sf-close--size-1/3 flex justify-center items-center"\n aria-hidden="true"\n >\n <span class="sf-close-icon"></span>\n </span>',r.append(e)}}const d=document.createElement("div");d.className="sf-modal-body flex flex-col gap-1 min-w-0 overflow-visible",d.setAttribute("data-sf-modal-body","");const h=document.createElement("div");h.className="sf-modal-body-viewport min-w-0 overflow-visible",h.setAttribute("data-sf-modal-body-viewport","");const m=document.createElement("div");m.className=T("sf-modal-body-scroll h-full min-w-0 overflow-y-auto flex flex-col gap-1 p-1/4",t.bodyClass),m.setAttribute("data-sf-modal-body-scroll","");const u=document.createElement("div");if(u.className="sf-modal-content-placeholder flex flex-col gap-2 min-h-8 items-cross-center content-main-center",u.setAttribute("data-sf-modal-content-placeholder",""),"ajax"!==this.mode&&"iframe"!==this.mode||!this.src){if(Array.isArray(t.contentNodes)&&t.contentNodes.length){const e=document.createElement("div");e.className=T("sf-modal-content flex flex-col gap-2",t.contentClass),t.contentNodes.forEach(t=>{t instanceof Node&&e.append(t)}),m.append(e)}}else this._scheduleLoading(u),m.append(u);if(Array.isArray(t.footerNodes)&&t.footerNodes.length&&this.showFooter){const e=document.createElement("div");e.className=T("sf-modal-footer flex flex-wrap gap-2",t.footerClass),t.footerNodes.forEach(t=>{t instanceof Node&&e.append(t)}),d.append(e)}else if("string"==typeof t.html&&t.html.trim())m.innerHTML=t.html;else if("ajax"===this.mode&&this.src||"iframe"===this.mode&&this.src);else{const e=document.createElement("p");e.className="m-0 text-2",e.textContent=t.text||"",m.append(e)}return h.append(m),d.prepend(h),l.append(r,d),n.append(l),s.append(o,n),s}_scheduleLoading(t){this._cancelLoadingTimer(),this._loadingShown=!1,this._loadingTimer=setTimeout(()=>{this._showLoading(t),this._loadingShown=!0},this._loadingDebounceMs)}_cancelLoadingTimer(){this._loadingTimer&&(clearTimeout(this._loadingTimer),this._loadingTimer=null)}_finishLoading(){this._cancelLoadingTimer()}_showLoading(t){t.innerHTML="";const e=document.createElement("div");e.className="sf-modal-loading flex flex-col gap-2 items-cross-center content-main-center p-4",e.setAttribute("data-sf-modal-state","loading");const s=B("loading",this.template);e.setAttribute("role","status"),e.setAttribute("aria-label",s);const o=document.createElement("p");o.className="m-0 text-2 color-on-surface-variant",o.textContent=s,e.append(o),e.prepend(function({className:t="",overlay:e=!1}={}){const s=document.createElement("span");s.className=["sf-loader-container","sf-loader--infinite",t,t&&e?`${t}--overlay`:""].filter(Boolean).join(" "),s.dataset.sfSpinnerBound="1",s.dataset.infinite="true",s.setAttribute("aria-hidden","true");const o=document.createElement("span");return o.className="sf-loader--loading-indicator",o.append(C()),s.append(o),s}({className:"sf-modal-spinner"})),t.append(e)}_showError(t,e){t.innerHTML="";const s=document.createElement("div");s.className="sf-modal-error flex flex-col gap-2 items-cross-center content-main-center p-4",s.setAttribute("data-sf-modal-state","error"),s.innerHTML=`\n <div class="sf-modal-error-icon text-4 color-error">⚠</div>\n <p class="sf-modal-error-text m-0 text-2 color-error">${this.escapeHtml(e||B("loadFailed",this.template))}</p>\n `,t.append(s)}_abortFetch(){this._fetchController&&(this._fetchController.abort(),this._fetchController=null)}async _loadContent(){this.src&&("iframe"!==this.mode?"ajax"===this.mode&&this._loadAjax():this._loadIframe())}async _loadAjax(){if(this.src.startsWith("#")){const t=document.querySelector(this.src);if(t){this._emitBeforeContentUpload();const e=t.cloneNode(!0);e.removeAttribute("id"),this._finishLoading(),this._replaceContentWithNode(e),this._contentLoaded=!0,this._emitAfterContentUpload()}else this._contentError=`Element not found: ${this.src}`,this._finishLoading(),this._showContentError();return}this._abortFetch();const t=new AbortController;this._fetchController=t;try{this._emitBeforeContentUpload();const e=await fetch(this.src,{signal:t.signal});if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);const s=await e.text();this._contentLoaded=!0,this._finishLoading(),this._replaceContentWithHtml(s),this._fetchController=null,this._emitAfterContentUpload()}catch(e){if("AbortError"===e.name)return void(this._fetchController&&this._fetchController!==t||this._finishLoading());this._contentError=e.message,this._finishLoading(),this._showContentError()}}_loadIframe(){this._emitBeforeContentUpload();const t=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!t)return;t.innerHTML="";const e=document.createElement("iframe");e.className="sf-modal-iframe w-full border-0 radius-surface",e.src=this.src,e.setAttribute("data-sf-modal-iframe",""),e.setAttribute("allowfullscreen",""),e.style.minHeight="var(--sf-modal-iframe-min-height)",e.style.height="100%",e.addEventListener("load",()=>{this._contentLoaded=!0,this._finishLoading(),this._emitAfterContentUpload()}),e.addEventListener("error",()=>{this._contentError=B("frameFailed",this.template),this._finishLoading(),this._showContentError()}),t.append(e)}_replaceContentWithNode(t){const e=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!e)return;e.innerHTML="";const s=document.createElement("div");s.className="sf-modal-content flex flex-col gap-2",s.append(t),e.append(s)}_replaceContentWithHtml(t){const e=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!e)return;e.innerHTML="";const s=document.createElement("div");s.className="sf-modal-content flex flex-col gap-2",s.innerHTML=t,e.append(s)}_showContentError(){const t=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!t)return;t.innerHTML="";const e=document.createElement("div");e.className="sf-modal-error flex flex-col gap-2 items-cross-center content-main-center p-4",e.setAttribute("data-sf-modal-state","error"),e.innerHTML=`\n <div class="sf-modal-error-icon text-4 color-error">⚠</div>\n <p class="sf-modal-error-text m-0 text-2 color-error">${this.escapeHtml(this._contentError||B("loadFailed",this.template))}</p>\n `,t.append(e)}_emitBeforeContentUpload(){this.emitEvent("modal:before-content-upload",{detail:{src:this.src}}),this.runCallback("beforeContentUpload",{src:this.src})}_emitAfterContentUpload(){this.emitEvent("modal:after-content-upload",{detail:{src:this.src}}),this.runCallback("afterContentUpload",{src:this.src})}escapeHtml(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}init(){if("inline"===this.display)return this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.template.classList.remove("hidden"),this.toBoolean(this.params?.open,!0)?this.isOpen=!0:(this.isOpen=!1,this._modalState="closed",this.template.setAttribute("data-sf-modal-state","closed"),this.template.classList.add("hidden")),this.template.setAttribute("aria-hidden",String(!this.isOpen)),this.root&&this.root.append(this.template),$.registry.set(this.modalId,this),void("ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent());if(this.template.isConnected||this.overlayHome.append(this.template),"inline"===this.display)return this.isOpen=!0,this._modalState="open",this.template.setAttribute("data-sf-modal-state","inline"),this.template.classList.remove("hidden"),$.registry.set(this.modalId,this),void("ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent());this.template.addEventListener("click",this.onOverlayClick),document.addEventListener("keydown",this.onKeyDown),$.registry.set(this.modalId,this),$.bindGlobalEvents();(this.toBoolean(this.params?.open,!1)||this.autoload)&&requestAnimationFrame(()=>{this.open({animate:!1})}),"ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent()}destroyInternal(){this._abortFetch(),this._cancelLoadingTimer(),this.cancelCloseTransition(),"inline"===this.display||!this.isOpen&&"closing"!==this._modalState||(this._modalState="closing",this.finishClose()),$.removeFromStack(this),this.template.removeEventListener("click",this.onOverlayClick),document.removeEventListener("keydown",this.onKeyDown),$.registry.delete(this.modalId)}onOverlayClick(t){t.target===this.template.querySelector("[data-sf-modal-overlay]")&&this.closeOnOverlay&&this.close()}onKeyDown(t){if((this.isOpen||"closing"===this._modalState)&&$.isTopModal(this))return"Escape"!==t.key||!this.closeOnEsc||"closing"===this._modalState||t.defaultPrevented||document.documentElement?.dataset?.sfPopoverOpen?void("Tab"===t.key&&this.trapFocus(t)):(t.preventDefault(),t.stopImmediatePropagation(),void this.close())}trapFocus(t){if(!$.isTopModal(this))return;!function(t,e){if(!t)return;const s=p(t,e.shiftKey),o=t.ownerDocument.activeElement;if(!s.length)return e.preventDefault(),void t.focus();const n=s[0],i=s[s.length-1],a=e.shiftKey?n:i;if(!t.contains(o)||o===t||o===a||f(o,a)){const s=e.shiftKey?i:n,o=t.ownerDocument[u];if("IFRAME"===s.tagName&&o?.panel===t){o.relaying=!0;try{(e.shiftKey?o.after:o.before).focus({preventScroll:!0})}finally{o.relaying=!1}return}e.preventDefault(),s.focus()}}(this.template.querySelector("[data-sf-modal-panel]"),t)}focusFirst(){if("inline"!==this.display&&!$.isTopModal(this))return;const t=this.template.querySelector("[data-sf-modal-panel]");t&&(t.setAttribute("tabindex","-1"),t.focus())}applyStackPosition(t=function(t){return E().items.indexOf(t)}(this)){return this._stackIndex=t,this.template&&"inline"!==this.display?t<0?(this.template.style.removeProperty("z-index"),this.template.style.removeProperty("--sf-modal-stack-index"),this):(this.template.style.setProperty("--sf-modal-stack-index",String(t)),this.template.style.zIndex=String($.baseZIndex+2*t),this):this}open(t={}){const{animate:e=!0}="boolean"==typeof t?{animate:t}:t;if("inline"===this.display){if(this.isOpen)return;if(!this.emitBeforeOpen())return;return this.isOpen=!0,this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.template.classList.remove("hidden"),this.template.setAttribute("aria-hidden","false"),void this.emitAfterOpen()}if(this.isOpen)return $.bringToFront(this),void this.cancelCloseTransition();if(this.emitBeforeOpen()){if(("ajax"===this.mode||"iframe"===this.mode)&&this.src&&!this._contentLoaded&&!this._contentError){const t=this.template?.querySelector("[data-sf-modal-body-scroll]");t&&this._scheduleLoading(t),this._loadContent()}if(this._releaseClosingContent?.(),this._releaseClosingContent=null,"closing"!==this._modalState&&(this.lastActive=document.activeElement,this._focusReturnAncestors=function(t){const e=[];for(let s=t?.parentElement;s;s=s.parentElement)s.matches('main, section, article, [role="main"], [role="region"]')&&e.push(s);return e}(this.lastActive),this.placeIn(this.overlayHomeFor(this.lastActive))),this.cancelCloseTransition(),this.template.classList.remove("hidden"),this.template.classList.add("flex"),this.template.setAttribute("aria-hidden","false"),this.template.classList.toggle("animate",Boolean(e)),this.template.setAttribute("data-sf-modal-state","opening"),this.isOpen=!0,$.addToStack(this),!e)return this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.focusFirst(),void this.emitAfterOpen();b(()=>{this.isOpen&&"closing"!==this._modalState&&(this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.focusFirst(),this.emitAfterOpen())})}}close(){if("inline"===this.display){if(!this.emitBeforeClose())return;return this.isOpen=!1,this._modalState="closed",this.template.setAttribute("data-sf-modal-state","closed"),this.template.classList.add("hidden"),this.template.setAttribute("aria-hidden","true"),void this.emitAfterClose()}if(!this.isOpen||"closing"===this._modalState)return;if(!this.emitBeforeClose())return;this._modalState="closing",this.template.setAttribute("data-sf-modal-state","closing"),this.isOpen=!1;const t=this.template.querySelector("[data-sf-modal-panel]");this._releaseClosingContent=function(t,e=!1){if(!t)return()=>{};const s=new Set,o=()=>{for(const e of t.children)e.hasAttribute("inert")||(e.setAttribute("inert",""),s.add(e))};e&&t.focus({preventScroll:!0}),o();const n=new t.ownerDocument.defaultView.MutationObserver(o);return n.observe(t,{childList:!0}),()=>{n.disconnect();for(const t of s)""===t.getAttribute("inert")&&t.removeAttribute("inert");s.clear()}}(t,$.isTopModal(this)),this._closeTransitionAbort=y(()=>this.template,()=>this.finishClose())}toggle(){this.isOpen?this.close():this.open()}setSrc(t){if(this.src=t||"",this._contentLoaded=!1,this._contentError=null,this._loadingShown=!1,this._abortFetch(),!this.template||!this.isOpen)return this;const e=this.template?.querySelector("[data-sf-modal-body-scroll]");return e&&this._scheduleLoading(e),"ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent(),this}reloadContent(){if(("ajax"===this.mode||"iframe"===this.mode)&&this.src){this._contentLoaded=!1,this._contentError=null,this._loadingShown=!1,this._abortFetch();const t=this.template?.querySelector("[data-sf-modal-body-scroll]");t&&this._scheduleLoading(t),this._loadContent()}return this}cancelCloseTransition(){this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),this._closeTransitionAbort&&(this._closeTransitionAbort(),this._closeTransitionAbort=null),"closing"===this._modalState&&(this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"))}finishClose(){if("closing"!==this._modalState)return;this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),this._closeTransitionAbort&&(this._closeTransitionAbort(),this._closeTransitionAbort=null),this.template.classList.remove("flex"),this.template.classList.add("hidden"),this.template.setAttribute("data-sf-modal-state","closed"),this.template.setAttribute("aria-hidden","true"),this._releaseClosingContent?.(),this._releaseClosingContent=null,this._modalState="closed";const t=$.isTopModal(this);$.removeFromStack(this),function(t,e,s=[]){if(!t)return;const o=A(),n=o?.getModalRoot?.()||o?.template;if((!o||n?.contains(e))&&L(e))return;if(o)return void o.focusFirst();const i=new Set([...s,...document.querySelectorAll('main, [role="main"]'),document.body]);for(const t of i)if(L(t,!0))return}(t,this.lastActive,this._focusReturnAncestors),this.emitAfterClose()}static bindGlobalEvents(){$.globalBound||"undefined"==typeof document||(document.addEventListener("click",t=>{const e=t.target.closest("[data-sf-modal-open]");if(e){const t=e.getAttribute("data-sf-modal-open"),s=$.registry.get(t);return void(s&&s.open())}const s=t.target.closest("[data-sf-modal-close]");if(!s)return;const o=s.getAttribute("data-sf-modal-close");if(o){const t=$.registry.get(o);return void(t&&t.close())}const n=s.closest(".sf-modal");if(!n)return;const i=n.getAttribute("data-sf-modal-id"),a=$.registry.get(i);a&&a.close()}),$.globalBound=!0)}static lockPage(t=!0){$.lockState||($.lockState=function(t=!0){const e=document.documentElement,s=document.body;if(!e||!s)return null;const o=Math.max(0,window.innerWidth-e.clientWidth),n=parseFloat(window.getComputedStyle(s).paddingInlineEnd)||0,i={docEl:e,body:s,htmlLocked:e.classList.contains("overflow-hidden"),bodyLocked:s.classList.contains("overflow-hidden"),bodyPaddingInlineEnd:s.style.getPropertyValue("padding-inline-end"),paddingPriority:s.style.getPropertyPriority("padding-inline-end"),appliedPadding:null};return e.classList.add("overflow-hidden"),s.classList.add("overflow-hidden"),t&&o>0&&(s.style.setProperty("padding-inline-end",`${n+o}px`,i.paddingPriority),i.appliedPadding=s.style.getPropertyValue("padding-inline-end")),i}(t))}static unlockPage(){!function(t){if(!t)return;const{docEl:e,body:s}=t;t.htmlLocked||e.classList.remove("overflow-hidden"),t.bodyLocked||s.classList.remove("overflow-hidden"),null!==t.appliedPadding&&s.style.getPropertyValue("padding-inline-end")===t.appliedPadding&&s.style.getPropertyPriority("padding-inline-end")===t.paddingPriority&&(t.bodyPaddingInlineEnd?s.style.setProperty("padding-inline-end",t.bodyPaddingInlineEnd,t.paddingPriority):s.style.removeProperty("padding-inline-end"))}($.lockState),$.lockState=null}}e("Modal",$)})();
|
|
1
|
+
(()=>{"use strict";class t{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(t){this.props=t,this.id=t?.id,this.params=t?.param,this.attrs=t?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(t){if(!Array.isArray(t))return[];const e=new Set;return t.forEach(t=>{if("string"!=typeof t)return;const s=t.match(/\(([^)]+)\)/g);s&&s.forEach(t=>{t.slice(1,-1).split(/\s+/).filter(Boolean).forEach(t=>{t.startsWith(".")&&t.length>1&&e.add(t.slice(1))})})}),Array.from(e)}applyLayoutUtilities(t,e){if(!t||!e)return;const s=this.getUtilityMap();if(!s||!s[e])return;this.extractUtilityClasses(s[e]).forEach(e=>t.classList.add(e))}render(){return this.html=this.template,"function"==typeof this.init&&this.init(),this.html&&window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:render`,{detail:this})),this.html}destroy(){this.destroyInternal?.(),this.props=null,this.id=null,this.params=null,this.template=null,this.html&&(this.html.remove(),this.html=null),window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:destroy`,{detail:this}))}destroyInternal(){}}const e=function(t,e){if(t&&e)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(t,e);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([t,e])}}else window.registerSfComponent(t,e)},s=(()=>{const t="undefined"!=typeof globalThis?globalThis:{},e="__sfPageLanguage";return t[e]||(t[e]={listeners:new Set,registered:new Map,chosen:null}),t[e]})(),o=s.listeners,n=s.registered,i=t=>String(t??"").trim().toLowerCase().replace("_","-"),a=()=>{for(const t of[...o])try{t()}catch{}};function l(t){let e=t;for(;e;){const t="function"==typeof e.closest?e.closest("[lang]"):null;if(t)return t;const s="function"==typeof e.getRootNode?e.getRootNode():null;e=s&&s!==e&&s.host?s.host:null}return null}function r(t){if(s.chosen)return s.chosen.split("-")[0];const e=l(t),o=e?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en";return i(o).split("-")[0]||"en"}function d(t){if(s.chosen)return s.chosen;const e=l(t);return i(e?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en")}function c(t,e,s,o){const a=o??(t=>{const e=t?.tagName;return"string"==typeof e?e.toLowerCase():null})(s);for(const o of(t=>{const e=i(t),s=e.split("-")[0],o=[];for(const t of[e,s,"en"])t&&!o.includes(t)&&o.push(t);return o})(d(s))){const s=a?n.get(a)?.get(o)?.[e]:void 0;if(void 0!==s)return s;const i=t?.[o]?.[e];if(void 0!==i)return i}return e}const h={current:(t=globalThis.document?.documentElement??null)=>d(t),use(t){const e=null==t?null:i(t);return e===s.chosen||(s.chosen=e,a()),s.chosen},register(t,e,s){const o=String(t??"").toLowerCase(),l=i(e);if(!o||!l)throw new TypeError("a component and a language are required");n.has(o)||n.set(o,new Map);const r=n.get(o);return null===s?r.delete(l):r.set(l,{...r.get(l)??{},...s}),a(),this},registerAll(t,e={}){for(const[s,o]of Object.entries(e))this.register(s,t,o);return this},known(t){const e=String(t??"").toLowerCase();return[...n.get(e)?.keys()??[]]},components:()=>[...n.keys()],onChange:t=>"function"!=typeof t?()=>{}:(o.add(t),()=>o.delete(t)),forget(){return n.clear(),s.chosen=null,a(),this}};"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.language=h,window.SF.pageLanguage=r,window.SF.pageText=c);const m=["a[href]","area[href]","button","input","select","textarea","iframe","summary","audio[controls]","video[controls]","[contenteditable]","[tabindex]"].join(","),u=Symbol.for("simai.modal.focus-guards");function f(t,e){return"INPUT"===t?.tagName&&"INPUT"===e?.tagName&&"radio"===t.type&&"radio"===e.type&&!!t.name&&t.name===e.name&&t.form===e.form&&t.getRootNode()===e.getRootNode()}function p(t,e=!1){const s=t.ownerDocument.defaultView,o=Array.from(t.querySelectorAll(m)).filter(t=>t.tabIndex>=0&&!t.matches(":disabled")&&!t.closest("[inert]")&&t.getClientRects().length>0&&"visible"===s.getComputedStyle(t).visibility).sort((t,e)=>(t.tabIndex||1/0)-(e.tabIndex||1/0));return o.filter(t=>{if(!f(t,t))return!0;const s=o.filter(e=>f(t,e)),n=s.find(t=>t.checked);return t===(n||s.at(e?-1:0))})}const g=t=>{const e=Number.parseFloat(t);return Number.isFinite(e)?e*(t.trim().endsWith("ms")?1:1e3):0};function b(t,e=window){let s=!1,o=null,n=null;const i=()=>{s||(s=!0,null!==o&&(e.cancelAnimationFrame(o),o=null),null!==n&&(e.clearTimeout(n),n=null),t())};return o=e.requestAnimationFrame(i),n=e.setTimeout(i,50),"function"==typeof e.queueMicrotask&&e.queueMicrotask(i),()=>{s=!0,null!==o&&e.cancelAnimationFrame(o),null!==n&&e.clearTimeout(n)}}function y(t,e,s=window){let o=null,n=!1;const i=b(()=>{if(n)return;const i=t(),a=i?.querySelectorAll("[data-sf-modal-panel], [data-sf-modal-overlay]")||[],l=Math.max(0,...Array.from(a,t=>{const e=s.getComputedStyle(t);return"none"===e.display?0:function(t){const e=t.transitionProperty.split(",").map(t=>t.trim()),s=t.transitionDuration.split(",").map(g),o=t.transitionDelay.split(",").map(g);return Math.max(0,...e.map((t,e)=>["all","opacity","transform","-webkit-transform"].includes(t)?Math.max(0,s[e%s.length])+o[e%o.length]:0))}(e)}));o=s.setTimeout(()=>{n||e()},l)},s);return()=>{n=!0,i(),null!==o&&s.clearTimeout(o)}}function v(t,e={}){const s=document.createElementNS("http://www.w3.org/2000/svg",t);return Object.entries(e).forEach(([t,e])=>{null!=e&&""!==e&&s.setAttribute(t,String(e))}),s}const w=t=>Math.round(1e3*t)/1e3;function C(t={}){return function({width:t=24,height:e=24,stroke:s=2,dots:o=8,filled:n=3,dotRadius:i=null,direction:a="clockwise",pixel:l=!1}={}){const r=t/2,d=e/2,c=Math.min(t,e)/2,h=Math.max(1,c-s/2),m=v("svg",{class:"sf-loader-svg",viewBox:`0 0 ${t} ${e}`,width:l?t:null,height:l?e:null,"aria-hidden":"true",focusable:"false"}),u={cx:r,cy:d,r:w(h),fill:"none",stroke:"currentColor","stroke-width":s},f=v("circle",{class:"sf-loader-ring-filled",...u,opacity:"0.3"}),p=v("circle",{class:"sf-loader-ring-accent",...u,"stroke-linecap":"round",pathLength:100,"stroke-dasharray":"30 70",transform:`rotate(90 ${r} ${d})`}),g=v("g",{class:"sf-loader-comet",display:"none",transform:`rotate(-90 ${r} ${d})`});for(let t=0;t<10;t+=1){const e=9===t;g.append(v("circle",{class:"sf-loader-comet-segment"+(e?" sf-loader-comet-head":""),...u,"stroke-linecap":e?"round":"butt",pathLength:100,"stroke-dasharray":`${w(4)} ${w(96)}`,"stroke-dashoffset":w(-4*t),opacity:w(((t+1)/10)**1.6)}))}const b=Math.max(3,Math.min(32,Math.floor(Number(o)||8))),y=Math.max(1,Math.min(b,Math.floor(Number(n)||3))),C=Math.min(s,.7*Math.PI*(c-s)/b),_=null==i||""===i?C:Math.max(1,Math.min(Number(i)||C,c/4)),E=Math.max(_,c-_),A=v("g",{class:"sf-loader-dots",display:"none",style:`--sf-loader-dot-count:${b}; --sf-loader-dot-filled:${y};`});for(let t=0;t<b;t+=1){const e=2*Math.PI/b*t-Math.PI/2,s="counterclockwise"===a?t:(b-t)%b;A.append(v("circle",{class:"sf-loader-dot"+(t<y?" sf-loader-dot--active":""),cx:w(r+E*Math.cos(e)),cy:w(d+E*Math.sin(e)),r:w(_),fill:"currentColor",style:`--sf-loader-dot-index:${t}; --sf-loader-dot-step:${s};`}))}return m.append(f,p,g,A),m}({...t,width:24,height:24,stroke:2,dotRadius:null,pixel:!1})}const _=Symbol.for("simai.modal.document-stack");function E(){return document[_]||Object.defineProperty(document,_,{value:{items:[],lockOwner:null},configurable:!0}),document[_]}function A(){return E().items.at(-1)||null}function S(){E().items.forEach((t,e)=>t.applyStackPosition(e)),function(t){const e=t?.getModalRoot?.()||t?.template,s=e?.querySelector?.("[data-sf-modal-panel]"),o=document[u];if(o&&o.panel===s&&o.before.isConnected&&o.after.isConnected)return;if(o?.before.remove(),o?.after.remove(),delete document[u],!s?.parentNode)return;const n={panel:s,relaying:!1};for(const t of["before","after"]){const o=s.ownerDocument.createElement("span");o.tabIndex=0,o.className="sf-modal-focus-guard",o.setAttribute("aria-hidden","true"),o.addEventListener("focus",()=>{if(n.relaying||!s.isConnected||e.inert||"true"===e.getAttribute("aria-hidden"))return;const o="before"===t,i=p(s,o),a=o?i.at(-1):i[0];a&&"IFRAME"!==a.tagName?a.focus({preventScroll:!0}):s.focus({preventScroll:!0})}),n[t]=o}s.before(n.before),s.after(n.after),document[u]=n}(A())}const x=t=>!t.inContainer;function L(t,e=!1){if(!t?.isConnected||"function"!=typeof t.focus||t.matches(":disabled")||t.closest('[inert], [hidden], [aria-hidden="true"]')||!t.getClientRects().length||"visible"!==t.ownerDocument.defaultView.getComputedStyle(t).visibility)return!1;const s=e&&!t.hasAttribute("tabindex");let o;const n=()=>{o?.disconnect(),t.removeEventListener("blur",n),s&&"-1"===t.getAttribute("tabindex")&&t.removeAttribute("tabindex")};s&&(t.setAttribute("tabindex","-1"),t.addEventListener("blur",n,{once:!0}),o=new t.ownerDocument.defaultView.MutationObserver(()=>{t.isConnected||n()}),o.observe(t.ownerDocument.documentElement,{childList:!0,subtree:!0}));let i=!1;try{return t.focus({preventScroll:!0}),i=t.ownerDocument.activeElement===t,i}catch{return!1}finally{s&&!i&&n()}}const k="[data-sf-overlay-container], [data-sf-drawer-container]";function T(...t){return t.filter(Boolean).join(" ").trim()}function N(t="medium"){const e=String(t||"medium").trim().toLowerCase();return["none","small","medium","large"].includes(e)?e:"medium"}function O(t="medium"){return`backdrop-blur-${N(t)}`}function M(t){return["none","small","medium","large"].includes(String(t||"").trim().toLowerCase())}function F(t){return String(t||"").trim()}const P={en:{title:"Dialog",close:"Close",loading:"Loading…",loadFailed:"Failed to load content",frameFailed:"Failed to load iframe content"},ru:{title:"Окно",close:"Закрыть",loading:"Загрузка…",loadFailed:"Не удалось загрузить содержимое",frameFailed:"Не удалось загрузить встроенную страницу"}},B=(t,e)=>c(P,t,e?.isConnected?e:document.documentElement,"sf-modal"),I=t=>c(P,"title",t);class $ extends t{static componentName="Modal";static registry=new Map;static globalBound=!1;static stack=[];static openCount=0;static uid=0;static lockState=null;static baseZIndex=9e3;static getTopModal(){return A()}static isTopModal(t){return $.getTopModal()===t}static addToStack(t){t&&"inline"!==t.display&&($.stack=$.stack.filter(e=>e!==t),$.stack.push(t),$.openCount=$.stack.length,function(t,e){const s=E();s.items.includes(t)||(x(t)&&!s.lockOwner&&(s.lockOwner=e,e.lockPage(t.preserveScrollGap)),s.items.push(t),S())}(t,$))}static removeFromStack(t){t&&"inline"!==t.display&&($.stack=$.stack.filter(e=>e!==t),$.openCount=$.stack.length,function(t){const e=E(),s=e.items.indexOf(t);s<0||(e.items.splice(s,1),e.lockOwner&&!e.items.some(x)&&(e.lockOwner.unlockPage(),e.lockOwner=null),S())}(t))}static bringToFront(t){t&&"inline"!==t.display&&$.stack.includes(t)&&($.stack=$.stack.filter(e=>e!==t),$.stack.push(t),function(t){const e=E(),s=e.items.indexOf(t);s<0||(e.items.splice(s,1),e.items.push(t),S())}(t))}static updateStackStyles(){S()}constructor(t){super(t);const e=this.params||{};this.modalId=this.id||e.id||"sf-modal-"+ ++$.uid,this.isOpen=!1,this.lastActive=null,this.root=e.root||null,this.container=e.container||null,this.overlay=this.toBoolean(e.overlay,!0),this.unclose=this.toBoolean(e.unclose,!1),this.showClose=this.toBoolean(e.showClose,!0)&&!this.unclose,this.showFooter=this.toBoolean(e.showFooter,!0),this.closeOnEsc=this.toBoolean(e.closeOnEsc,!0)&&!this.unclose,this.closeOnOverlay=this.toBoolean(e.closeOnOverlay,!0)&&!this.unclose,this.preserveScrollGap=this.toBoolean(e.preserveScrollGap,!0),this.autoload=this.toBoolean(e.autoload,!1),this.position=function(t="center"){const e=String(t||"center").trim().toLowerCase();return["center","left","right","inline-start","inline-end","top","bottom"].includes(e)?e:"center"}(e.position),this.fullscreen=this.toBoolean(e.fullscreen,!1),this.mode=function(t){const e=String(t||"inline").trim().toLowerCase();return["inline","ajax","iframe"].includes(e)?e:"inline"}(e.mode),this.display=function(t){const e=String(t||"modal").trim().toLowerCase();return["modal","inline"].includes(e)?e:"modal"}(e.display),this.src=e.src||"",this.preload=this.toBoolean(e.preload,!0),this._fetchController=null,this._contentLoaded=!1,this._contentError=null,this._loadingTimer=null,this._loadingShown=!1,this._loadingDebounceMs=500,this.blur=!!M(e.blur)||this.toBoolean(e.blur,!1),this.hasCustomBlurType=M(e.blurType)||M(e.blur),this.blurType=N(e.blurType||(M(e.blur)?e.blur:"")),this.onOverlayClick=this.onOverlayClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this._modalState="closed",this._stackIndex=-1,this._closeTimer=null,this._closeTransitionAbort=null,this.template=this.buildTemplate(e),this.template.id=this.modalId,this.template.setAttribute("data-sf-modal-id",this.modalId),this.template.setAttribute("aria-hidden","true"),this.init()}overlayHomeFor(t=null){let e=this.container;if("string"==typeof e&&(e=document.querySelector(e)),e instanceof Element)return e.matches(k)||e.setAttribute("data-sf-overlay-container",""),e;return(t instanceof Element?t.closest(k):null)||document.body}get overlayHome(){return this.overlayHomeFor()}get inContainer(){return Boolean(this.template?.parentElement?.closest(k))}placeIn(t){"inline"!==this.display&&!this.root&&this.template&&t&&this.template.parentElement!==t&&t.append(this.template)}emitEvent(t,{cancelable:e=!1,detail:s={}}={}){const o={modal:this,id:this.modalId,isOpen:this.isOpen,...s};let n=!1;if(this.template){const s=new CustomEvent(t,{bubbles:!0,cancelable:e,detail:o});this.template.dispatchEvent(s),n=n||s.defaultPrevented}if("undefined"!=typeof window){const e=new CustomEvent(t,{cancelable:!1,detail:o});window.dispatchEvent(e)}return!n}runCallback(t,e={}){const s=this.params?.[t];if("function"==typeof s)return s({modal:this,id:this.modalId,isOpen:this.isOpen,...e})}emitBeforeOpen(){const t=this.emitEvent("modal:before-open",{cancelable:!0,detail:{phase:"before-open"}}),e=this.emitEvent("SFModalBeforeOpenWindow",{cancelable:!0,detail:{phase:"before-open"}});if(!t||!e)return!1;const s=this.runCallback("beforeOpen",{phase:"before-open"}),o=this.runCallback("beforeOpenWindow",{phase:"before-open"});return!1!==s&&!1!==o}emitAfterOpen(){this.emitEvent("modal:after-open",{detail:{phase:"after-open"}}),this.emitEvent("SFModalAfterOpenWindow",{detail:{phase:"after-open"}}),this.runCallback("afterOpen",{phase:"after-open"}),this.runCallback("afterOpenWindow",{phase:"after-open"})}emitBeforeClose(){const t=this.emitEvent("modal:before-close",{cancelable:!0,detail:{phase:"before-close"}}),e=this.emitEvent("SFModalBeforeCloseWindow",{cancelable:!0,detail:{phase:"before-close"}});if(!t||!e)return!1;const s=this.runCallback("beforeClose",{phase:"before-close"}),o=this.runCallback("beforeCloseWindow",{phase:"before-close"});return!1!==s&&!1!==o}emitAfterClose(){this.emitEvent("modal:after-close",{detail:{phase:"after-close"}}),this.emitEvent("SFModalAfterCloseWindow",{detail:{phase:"after-close"}}),this.runCallback("afterClose",{phase:"after-close"}),this.runCallback("afterCloseWindow",{phase:"after-close"})}toBoolean(t,e){if(null==t)return e;if("boolean"==typeof t)return t;const s=`${t}`.trim().toLowerCase();return!!["1","true","yes","on"].includes(s)||!["0","false","no","off"].includes(s)&&e}getBlurClasses(){return this.hasCustomBlurType?[O(this.blurType)]:[]}setOverlay(t){this.overlay=this.toBoolean(t,!0);const e=this.template?.querySelector("[data-sf-modal-overlay]");return e?(e.classList.toggle("hidden",!this.overlay||"inline"===this.display),this):this}buildTemplate(t){const e="inline"===this.display,s=document.createElement("div");s.className=e?`sf-modal sf-modal--inline sf-modal--position-${this.position} sf-modal--positon-${this.position} inline-block w-full`:`sf-modal sf-modal--position-${this.position} sf-modal--positon-${this.position} hidden fixed top-0 inline-start-0 w-full h-full z-9 p-3 items-cross-center content-main-center`,s.setAttribute("role",e?"region":"dialog"),s.setAttribute("aria-modal",e?"false":"true"),s.setAttribute("data-sf-modal-position",this.position),s.setAttribute("data-sf-modal-fullscreen",String(this.fullscreen)),s.setAttribute("data-sf-modal-display",this.display),s.setAttribute("data-sf-modal-state",e?"inline":"closed");const o=document.createElement("div");o.className=T("absolute top-0 inline-start-0 w-full h-full",this.blur?this.hasCustomBlurType?this.getBlurClasses().join(" "):"bg-surface-overlay":"bg-black opacity-6",t.overlayClass),o.setAttribute("data-sf-modal-overlay",""),this.overlay&&!e||o.classList.add("hidden");const n=document.createElement("section");n.className=T("relative overflow-visible",t.panelClass),n.setAttribute("data-sf-modal-panel","");const i=F(t.width),a=F(t.height);i&&(n.style.setProperty("--sf-modal-width",i),n.setAttribute("data-sf-modal-has-width","")),a&&(n.style.setProperty("--sf-modal-height",a),n.setAttribute("data-sf-modal-has-height",""));const l=document.createElement("div");l.className=T(e?"bg-surface border border-outline-variant radius-surface p-2 flex flex-col gap-1 min-w-0":"bg-surface border border-outline-variant radius-surface shadow-3 p-2 flex flex-col gap-1 min-w-0",t.surfaceClass),l.setAttribute("data-sf-modal-surface","");const r=document.createElement("header");if(r.className=T("sf-modal-header flex items-start min-w-0 border-b border-outline-variant gap-1",t.headerClass),Array.isArray(t.headerNodes)&&t.headerNodes.length)s.setAttribute("aria-label",t.title||I(s)),t.headerNodes.forEach(t=>{t instanceof Node&&r.append(t)});else{const e=document.createElement("h2");if(e.id=`${this.modalId}-title`,s.setAttribute("aria-labelledby",e.id),e.className="sf-modal-header-content title-3 m-0",e.textContent=t.title||I(s),r.append(e),this.showClose){const e=document.createElement("button");e.type="button",e.className=T("sf-icon-button sf-modal-header-action sf-modal-close-button sf-icon-button--close sf-icon-button--link sf-icon-button--on-surface sf-icon-button--size-1/3 m-0",t.closeClass),e.setAttribute("aria-label",c(P,"close",e.isConnected?e:document.documentElement)),e.setAttribute("data-sf-modal-close",this.modalId),e.innerHTML=' <span\n class="sf-close sf-close--size-1/3 flex justify-center items-center"\n aria-hidden="true"\n >\n <span class="sf-close-icon"></span>\n </span>',r.append(e)}}const d=document.createElement("div");d.className="sf-modal-body flex flex-col gap-1 min-w-0 overflow-visible",d.setAttribute("data-sf-modal-body","");const h=document.createElement("div");h.className="sf-modal-body-viewport min-w-0 overflow-visible",h.setAttribute("data-sf-modal-body-viewport","");const m=document.createElement("div");m.className=T("sf-modal-body-scroll h-full min-w-0 overflow-y-auto flex flex-col gap-1 p-1/4",t.bodyClass),m.setAttribute("data-sf-modal-body-scroll","");const u=document.createElement("div");if(u.className="sf-modal-content-placeholder flex flex-col gap-2 min-h-8 items-cross-center content-main-center",u.setAttribute("data-sf-modal-content-placeholder",""),"ajax"!==this.mode&&"iframe"!==this.mode||!this.src){if(Array.isArray(t.contentNodes)&&t.contentNodes.length){const e=document.createElement("div");e.className=T("sf-modal-content flex flex-col gap-2",t.contentClass),t.contentNodes.forEach(t=>{t instanceof Node&&e.append(t)}),m.append(e)}}else this._scheduleLoading(u),m.append(u);if(Array.isArray(t.footerNodes)&&t.footerNodes.length&&this.showFooter){const e=document.createElement("div");e.className=T("sf-modal-footer flex flex-wrap",t.footerClass),t.footerNodes.forEach(t=>{t instanceof Node&&e.append(t)}),d.append(e)}else if("string"==typeof t.html&&t.html.trim())m.innerHTML=t.html;else if("ajax"===this.mode&&this.src||"iframe"===this.mode&&this.src);else{const e=document.createElement("p");e.className="m-0 text-2",e.textContent=t.text||"",m.append(e)}return h.append(m),d.prepend(h),l.append(r,d),n.append(l),s.append(o,n),s}_scheduleLoading(t){this._cancelLoadingTimer(),this._loadingShown=!1,this._loadingTimer=setTimeout(()=>{this._showLoading(t),this._loadingShown=!0},this._loadingDebounceMs)}_cancelLoadingTimer(){this._loadingTimer&&(clearTimeout(this._loadingTimer),this._loadingTimer=null)}_finishLoading(){this._cancelLoadingTimer()}_showLoading(t){t.innerHTML="";const e=document.createElement("div");e.className="sf-modal-loading flex flex-col gap-2 items-cross-center content-main-center p-4",e.setAttribute("data-sf-modal-state","loading");const s=B("loading",this.template);e.setAttribute("role","status"),e.setAttribute("aria-label",s);const o=document.createElement("p");o.className="m-0 text-2 color-on-surface-variant",o.textContent=s,e.append(o),e.prepend(function({className:t="",overlay:e=!1}={}){const s=document.createElement("span");s.className=["sf-loader-container","sf-loader--infinite",t,t&&e?`${t}--overlay`:""].filter(Boolean).join(" "),s.dataset.sfSpinnerBound="1",s.dataset.infinite="true",s.setAttribute("aria-hidden","true");const o=document.createElement("span");return o.className="sf-loader--loading-indicator",o.append(C()),s.append(o),s}({className:"sf-modal-spinner"})),t.append(e)}_showError(t,e){t.innerHTML="";const s=document.createElement("div");s.className="sf-modal-error flex flex-col gap-2 items-cross-center content-main-center p-4",s.setAttribute("data-sf-modal-state","error"),s.innerHTML=`\n <div class="sf-modal-error-icon text-4 color-error">⚠</div>\n <p class="sf-modal-error-text m-0 text-2 color-error">${this.escapeHtml(e||B("loadFailed",this.template))}</p>\n `,t.append(s)}_abortFetch(){this._fetchController&&(this._fetchController.abort(),this._fetchController=null)}async _loadContent(){this.src&&("iframe"!==this.mode?"ajax"===this.mode&&this._loadAjax():this._loadIframe())}async _loadAjax(){if(this.src.startsWith("#")){const t=document.querySelector(this.src);if(t){this._emitBeforeContentUpload();const e=t.cloneNode(!0);e.removeAttribute("id"),this._finishLoading(),this._replaceContentWithNode(e),this._contentLoaded=!0,this._emitAfterContentUpload()}else this._contentError=`Element not found: ${this.src}`,this._finishLoading(),this._showContentError();return}this._abortFetch();const t=new AbortController;this._fetchController=t;try{this._emitBeforeContentUpload();const e=await fetch(this.src,{signal:t.signal});if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);const s=await e.text();this._contentLoaded=!0,this._finishLoading(),this._replaceContentWithHtml(s),this._fetchController=null,this._emitAfterContentUpload()}catch(e){if("AbortError"===e.name)return void(this._fetchController&&this._fetchController!==t||this._finishLoading());this._contentError=e.message,this._finishLoading(),this._showContentError()}}_loadIframe(){this._emitBeforeContentUpload();const t=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!t)return;t.innerHTML="";const e=document.createElement("iframe");e.className="sf-modal-iframe w-full border-0 radius-surface",e.src=this.src,e.setAttribute("data-sf-modal-iframe",""),e.setAttribute("allowfullscreen",""),e.style.minHeight="var(--sf-modal-iframe-min-height)",e.style.height="100%",e.addEventListener("load",()=>{this._contentLoaded=!0,this._finishLoading(),this._emitAfterContentUpload()}),e.addEventListener("error",()=>{this._contentError=B("frameFailed",this.template),this._finishLoading(),this._showContentError()}),t.append(e)}_replaceContentWithNode(t){const e=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!e)return;e.innerHTML="";const s=document.createElement("div");s.className="sf-modal-content flex flex-col gap-2",s.append(t),e.append(s)}_replaceContentWithHtml(t){const e=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!e)return;e.innerHTML="";const s=document.createElement("div");s.className="sf-modal-content flex flex-col gap-2",s.innerHTML=t,e.append(s)}_showContentError(){const t=this.template?.querySelector("[data-sf-modal-body-scroll]");if(!t)return;t.innerHTML="";const e=document.createElement("div");e.className="sf-modal-error flex flex-col gap-2 items-cross-center content-main-center p-4",e.setAttribute("data-sf-modal-state","error"),e.innerHTML=`\n <div class="sf-modal-error-icon text-4 color-error">⚠</div>\n <p class="sf-modal-error-text m-0 text-2 color-error">${this.escapeHtml(this._contentError||B("loadFailed",this.template))}</p>\n `,t.append(e)}_emitBeforeContentUpload(){this.emitEvent("modal:before-content-upload",{detail:{src:this.src}}),this.runCallback("beforeContentUpload",{src:this.src})}_emitAfterContentUpload(){this.emitEvent("modal:after-content-upload",{detail:{src:this.src}}),this.runCallback("afterContentUpload",{src:this.src})}escapeHtml(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}init(){if("inline"===this.display)return this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.template.classList.remove("hidden"),this.toBoolean(this.params?.open,!0)?this.isOpen=!0:(this.isOpen=!1,this._modalState="closed",this.template.setAttribute("data-sf-modal-state","closed"),this.template.classList.add("hidden")),this.template.setAttribute("aria-hidden",String(!this.isOpen)),this.root&&this.root.append(this.template),$.registry.set(this.modalId,this),void("ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent());if(this.template.isConnected||this.overlayHome.append(this.template),"inline"===this.display)return this.isOpen=!0,this._modalState="open",this.template.setAttribute("data-sf-modal-state","inline"),this.template.classList.remove("hidden"),$.registry.set(this.modalId,this),void("ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent());this.template.addEventListener("click",this.onOverlayClick),document.addEventListener("keydown",this.onKeyDown),$.registry.set(this.modalId,this),$.bindGlobalEvents();(this.toBoolean(this.params?.open,!1)||this.autoload)&&requestAnimationFrame(()=>{this.open({animate:!1})}),"ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent()}destroyInternal(){this._abortFetch(),this._cancelLoadingTimer(),this.cancelCloseTransition(),"inline"===this.display||!this.isOpen&&"closing"!==this._modalState||(this._modalState="closing",this.finishClose()),$.removeFromStack(this),this.template.removeEventListener("click",this.onOverlayClick),document.removeEventListener("keydown",this.onKeyDown),$.registry.delete(this.modalId)}onOverlayClick(t){t.target===this.template.querySelector("[data-sf-modal-overlay]")&&this.closeOnOverlay&&this.close()}onKeyDown(t){if((this.isOpen||"closing"===this._modalState)&&$.isTopModal(this))return"Escape"!==t.key||!this.closeOnEsc||"closing"===this._modalState||t.defaultPrevented||document.documentElement?.dataset?.sfPopoverOpen?void("Tab"===t.key&&this.trapFocus(t)):(t.preventDefault(),t.stopImmediatePropagation(),void this.close())}trapFocus(t){if(!$.isTopModal(this))return;!function(t,e){if(!t)return;const s=p(t,e.shiftKey),o=t.ownerDocument.activeElement;if(!s.length)return e.preventDefault(),void t.focus();const n=s[0],i=s[s.length-1],a=e.shiftKey?n:i;if(!t.contains(o)||o===t||o===a||f(o,a)){const s=e.shiftKey?i:n,o=t.ownerDocument[u];if("IFRAME"===s.tagName&&o?.panel===t){o.relaying=!0;try{(e.shiftKey?o.after:o.before).focus({preventScroll:!0})}finally{o.relaying=!1}return}e.preventDefault(),s.focus()}}(this.template.querySelector("[data-sf-modal-panel]"),t)}focusFirst(){if("inline"!==this.display&&!$.isTopModal(this))return;const t=this.template.querySelector("[data-sf-modal-panel]");t&&(t.setAttribute("tabindex","-1"),t.focus())}applyStackPosition(t=function(t){return E().items.indexOf(t)}(this)){return this._stackIndex=t,this.template&&"inline"!==this.display?t<0?(this.template.style.removeProperty("z-index"),this.template.style.removeProperty("--sf-modal-stack-index"),this):(this.template.style.setProperty("--sf-modal-stack-index",String(t)),this.template.style.zIndex=String($.baseZIndex+2*t),this):this}open(t={}){const{animate:e=!0}="boolean"==typeof t?{animate:t}:t;if("inline"===this.display){if(this.isOpen)return;if(!this.emitBeforeOpen())return;return this.isOpen=!0,this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.template.classList.remove("hidden"),this.template.setAttribute("aria-hidden","false"),void this.emitAfterOpen()}if(this.isOpen)return $.bringToFront(this),void this.cancelCloseTransition();if(this.emitBeforeOpen()){if(("ajax"===this.mode||"iframe"===this.mode)&&this.src&&!this._contentLoaded&&!this._contentError){const t=this.template?.querySelector("[data-sf-modal-body-scroll]");t&&this._scheduleLoading(t),this._loadContent()}if(this._releaseClosingContent?.(),this._releaseClosingContent=null,"closing"!==this._modalState&&(this.lastActive=document.activeElement,this._focusReturnAncestors=function(t){const e=[];for(let s=t?.parentElement;s;s=s.parentElement)s.matches('main, section, article, [role="main"], [role="region"]')&&e.push(s);return e}(this.lastActive),this.placeIn(this.overlayHomeFor(this.lastActive))),this.cancelCloseTransition(),this.template.classList.remove("hidden"),this.template.classList.add("flex"),this.template.setAttribute("aria-hidden","false"),this.template.classList.toggle("animate",Boolean(e)),this.template.setAttribute("data-sf-modal-state","opening"),this.isOpen=!0,$.addToStack(this),!e)return this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.focusFirst(),void this.emitAfterOpen();b(()=>{this.isOpen&&"closing"!==this._modalState&&(this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"),this.focusFirst(),this.emitAfterOpen())})}}close(){if("inline"===this.display){if(!this.emitBeforeClose())return;return this.isOpen=!1,this._modalState="closed",this.template.setAttribute("data-sf-modal-state","closed"),this.template.classList.add("hidden"),this.template.setAttribute("aria-hidden","true"),void this.emitAfterClose()}if(!this.isOpen||"closing"===this._modalState)return;if(!this.emitBeforeClose())return;this._modalState="closing",this.template.setAttribute("data-sf-modal-state","closing"),this.isOpen=!1;const t=this.template.querySelector("[data-sf-modal-panel]");this._releaseClosingContent=function(t,e=!1){if(!t)return()=>{};const s=new Set,o=()=>{for(const e of t.children)e.hasAttribute("inert")||(e.setAttribute("inert",""),s.add(e))};e&&t.focus({preventScroll:!0}),o();const n=new t.ownerDocument.defaultView.MutationObserver(o);return n.observe(t,{childList:!0}),()=>{n.disconnect();for(const t of s)""===t.getAttribute("inert")&&t.removeAttribute("inert");s.clear()}}(t,$.isTopModal(this)),this._closeTransitionAbort=y(()=>this.template,()=>this.finishClose())}toggle(){this.isOpen?this.close():this.open()}setSrc(t){if(this.src=t||"",this._contentLoaded=!1,this._contentError=null,this._loadingShown=!1,this._abortFetch(),!this.template||!this.isOpen)return this;const e=this.template?.querySelector("[data-sf-modal-body-scroll]");return e&&this._scheduleLoading(e),"ajax"!==this.mode&&"iframe"!==this.mode||!this.src||!1===this.preload||this._loadContent(),this}reloadContent(){if(("ajax"===this.mode||"iframe"===this.mode)&&this.src){this._contentLoaded=!1,this._contentError=null,this._loadingShown=!1,this._abortFetch();const t=this.template?.querySelector("[data-sf-modal-body-scroll]");t&&this._scheduleLoading(t),this._loadContent()}return this}cancelCloseTransition(){this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),this._closeTransitionAbort&&(this._closeTransitionAbort(),this._closeTransitionAbort=null),"closing"===this._modalState&&(this._modalState="open",this.template.setAttribute("data-sf-modal-state","open"))}finishClose(){if("closing"!==this._modalState)return;this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),this._closeTransitionAbort&&(this._closeTransitionAbort(),this._closeTransitionAbort=null),this.template.classList.remove("flex"),this.template.classList.add("hidden"),this.template.setAttribute("data-sf-modal-state","closed"),this.template.setAttribute("aria-hidden","true"),this._releaseClosingContent?.(),this._releaseClosingContent=null,this._modalState="closed";const t=$.isTopModal(this);$.removeFromStack(this),function(t,e,s=[]){if(!t)return;const o=A(),n=o?.getModalRoot?.()||o?.template;if((!o||n?.contains(e))&&L(e))return;if(o)return void o.focusFirst();const i=new Set([...s,...document.querySelectorAll('main, [role="main"]'),document.body]);for(const t of i)if(L(t,!0))return}(t,this.lastActive,this._focusReturnAncestors),this.emitAfterClose()}static bindGlobalEvents(){$.globalBound||"undefined"==typeof document||(document.addEventListener("click",t=>{const e=t.target.closest("[data-sf-modal-open]");if(e){const t=e.getAttribute("data-sf-modal-open"),s=$.registry.get(t);return void(s&&s.open())}const s=t.target.closest("[data-sf-modal-close]");if(!s)return;const o=s.getAttribute("data-sf-modal-close");if(o){const t=$.registry.get(o);return void(t&&t.close())}const n=s.closest(".sf-modal");if(!n)return;const i=n.getAttribute("data-sf-modal-id"),a=$.registry.get(i);a&&a.close()}),$.globalBound=!0)}static lockPage(t=!0){$.lockState||($.lockState=function(t=!0){const e=document.documentElement,s=document.body;if(!e||!s)return null;const o=Math.max(0,window.innerWidth-e.clientWidth),n=parseFloat(window.getComputedStyle(s).paddingInlineEnd)||0,i={docEl:e,body:s,htmlLocked:e.classList.contains("overflow-hidden"),bodyLocked:s.classList.contains("overflow-hidden"),bodyPaddingInlineEnd:s.style.getPropertyValue("padding-inline-end"),paddingPriority:s.style.getPropertyPriority("padding-inline-end"),appliedPadding:null};return e.classList.add("overflow-hidden"),s.classList.add("overflow-hidden"),t&&o>0&&(s.style.setProperty("padding-inline-end",`${n+o}px`,i.paddingPriority),i.appliedPadding=s.style.getPropertyValue("padding-inline-end")),i}(t))}static unlockPage(){!function(t){if(!t)return;const{docEl:e,body:s}=t;t.htmlLocked||e.classList.remove("overflow-hidden"),t.bodyLocked||s.classList.remove("overflow-hidden"),null!==t.appliedPadding&&s.style.getPropertyValue("padding-inline-end")===t.appliedPadding&&s.style.getPropertyPriority("padding-inline-end")===t.paddingPriority&&(t.bodyPaddingInlineEnd?s.style.setProperty("padding-inline-end",t.bodyPaddingInlineEnd,t.paddingPriority):s.style.removeProperty("padding-inline-end"))}($.lockState),$.lockState=null}}e("Modal",$)})();
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-field-hidden-by-its-condition-is-not-saved",
|
|
3
|
+
"intent": "group.save",
|
|
4
|
+
"summary": "A field its condition hides is absent from the save, and the host keeps what it holds.",
|
|
5
|
+
"given": {
|
|
6
|
+
"capabilities": [],
|
|
7
|
+
"fields": [
|
|
8
|
+
{
|
|
9
|
+
"key": "type",
|
|
10
|
+
"value": "framework"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "valid_until",
|
|
14
|
+
"value": "2027-01-01",
|
|
15
|
+
"when": {
|
|
16
|
+
"visible": {
|
|
17
|
+
"field": "type",
|
|
18
|
+
"op": "eq",
|
|
19
|
+
"value": "framework"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"when": {
|
|
26
|
+
"intent": "group.save",
|
|
27
|
+
"payload": {
|
|
28
|
+
"record_id": "record-1",
|
|
29
|
+
"collection": "contracts",
|
|
30
|
+
"section": "main",
|
|
31
|
+
"group": "terms",
|
|
32
|
+
"values": {
|
|
33
|
+
"type": "single"
|
|
34
|
+
},
|
|
35
|
+
"revision": "7"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"then": {
|
|
39
|
+
"answer": "applied",
|
|
40
|
+
"answer_must_include": [
|
|
41
|
+
"record"
|
|
42
|
+
],
|
|
43
|
+
"note": "valid_until is hidden once the type is single, so it is not in values -- and it is not emptied: the record answered still holds 2027-01-01. Hidden by a condition is not the same as cleared."
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-field-says-what-it-falls-back-to",
|
|
3
|
+
"intent": "record.load",
|
|
4
|
+
"summary": "A field that holds nothing and falls back to something says what it falls back to, so a person can tell «not set» from «set to the same value».",
|
|
5
|
+
"given": {"capabilities": []},
|
|
6
|
+
"when": {"intent": "record.load", "payload": {"record_id": "record-1", "collection": "pages", "reason": "connected"}},
|
|
7
|
+
"then": {
|
|
8
|
+
"answer": "applied",
|
|
9
|
+
"answer_must_include": ["record"],
|
|
10
|
+
"note": "`inherited` says that a value comes from somewhere else; `inheritedValue` says what it is. Both are needed: a colour inherited from the theme and a colour chosen to match the theme look identical on screen, and only the first follows the theme when the theme moves. A running Larena site inherits fourteen colours this way, which is why the pair exists."
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-field-taken-out-of-an-area-is-unplaced",
|
|
3
|
+
"intent": "view.save",
|
|
4
|
+
"capability": "view-settings",
|
|
5
|
+
"summary": "A field removed from an area is written with a null group and comes back in `unplaced`, not as a hidden field.",
|
|
6
|
+
"given": {
|
|
7
|
+
"capabilities": [
|
|
8
|
+
"view-settings"
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"when": {
|
|
12
|
+
"intent": "view.save",
|
|
13
|
+
"payload": {
|
|
14
|
+
"record_id": null,
|
|
15
|
+
"collection": "pages",
|
|
16
|
+
"target": {
|
|
17
|
+
"kind": "personal",
|
|
18
|
+
"revision": "v7"
|
|
19
|
+
},
|
|
20
|
+
"view": {
|
|
21
|
+
"schema_version": 1,
|
|
22
|
+
"sections": {},
|
|
23
|
+
"groups": {},
|
|
24
|
+
"fields": {
|
|
25
|
+
"code": {
|
|
26
|
+
"group": null,
|
|
27
|
+
"order": 1
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"then": {
|
|
34
|
+
"answer": "applied",
|
|
35
|
+
"answer_must_include": [
|
|
36
|
+
"revision"
|
|
37
|
+
],
|
|
38
|
+
"note": "Hiding and taking out are different things and the port has both. A hidden field is one the layer above may have hidden for everyone; an unplaced field belongs to no area and is offered back where areas take fields. Answering a null group with a hidden field would make removal look permanent."
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-reader-is-offered-nothing-to-change",
|
|
3
|
+
"intent": "record.load",
|
|
4
|
+
"summary": "A person who may only read gets the record with no record.edit and no lifecycle act among its actions.",
|
|
5
|
+
"given": {
|
|
6
|
+
"capabilities": []
|
|
7
|
+
},
|
|
8
|
+
"when": {
|
|
9
|
+
"intent": "record.load",
|
|
10
|
+
"payload": {
|
|
11
|
+
"record_id": "record-1",
|
|
12
|
+
"collection": "pages",
|
|
13
|
+
"reason": "connected"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"then": {
|
|
17
|
+
"answer": "applied",
|
|
18
|
+
"answer_must_include": [
|
|
19
|
+
"record"
|
|
20
|
+
],
|
|
21
|
+
"note": "actions is [] or names only what this person may do; the component draws no edit, no footer and no delete for it."
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-related-group-is-a-list-not-fields",
|
|
3
|
+
"intent": "record.load",
|
|
4
|
+
"summary": "A group marked «related» holds other records rather than fields. The component composes a data view in it, and that view asks the host for its own port.",
|
|
5
|
+
"given": {
|
|
6
|
+
"capabilities": []
|
|
7
|
+
},
|
|
8
|
+
"when": {
|
|
9
|
+
"intent": "record.load",
|
|
10
|
+
"payload": {
|
|
11
|
+
"record_id": "record-1",
|
|
12
|
+
"collection": "pages",
|
|
13
|
+
"reason": "connected"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"then": {
|
|
17
|
+
"answer": "applied",
|
|
18
|
+
"answer_must_include": [
|
|
19
|
+
"record"
|
|
20
|
+
],
|
|
21
|
+
"note": "The records themselves never travel through this port. A related list asks for a data-view port by raising sf-host-port-request with the owner, the record and the group, and the host answers with the port it already implements for collections. Routing rows, columns, sorting and paging through the property-view seam instead would duplicate a whole vocabulary and make the property view a relay for one it does not speak."
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "a-stale-confirmation-is-asked-again",
|
|
3
|
+
"intent": "group.save",
|
|
4
|
+
"summary": "A digest that no longer matches the save -- the values or the object moved since it was issued -- is answered with a new confirmation, not applied.",
|
|
5
|
+
"given": {
|
|
6
|
+
"capabilities": [],
|
|
7
|
+
"confirms": [
|
|
8
|
+
"group.save"
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"when": {
|
|
12
|
+
"intent": "group.save",
|
|
13
|
+
"payload": {
|
|
14
|
+
"record_id": "record-1",
|
|
15
|
+
"collection": "contracts",
|
|
16
|
+
"section": "main",
|
|
17
|
+
"group": "terms",
|
|
18
|
+
"values": {
|
|
19
|
+
"type": {
|
|
20
|
+
"value": "single",
|
|
21
|
+
"label": "Разовый"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"revision": "7",
|
|
25
|
+
"confirm": "c0ffee"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"then": {
|
|
29
|
+
"answer": "refused",
|
|
30
|
+
"answer_must_include": [
|
|
31
|
+
"reason",
|
|
32
|
+
"confirm"
|
|
33
|
+
],
|
|
34
|
+
"data_must_include": [
|
|
35
|
+
"confirm"
|
|
36
|
+
],
|
|
37
|
+
"note": "reason is confirm_required again, with a new summary and digest. The component shows the new summary; a person confirms what will actually happen."
|
|
38
|
+
}
|
|
39
|
+
}
|