@simai-studio/ui 5.20261019.1710 → 5.20261019.1921

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +4 -4
  2. package/distr/component/button-group/css/button-group.min.css +1 -1
  3. package/distr/component/country-code/js/country-code.min.js +1 -1
  4. package/distr/component/dropdown/js/dropdown.min.js +1 -1
  5. package/distr/component/file-upload/js/file-upload.min.js +1 -1
  6. package/distr/component/inputs/js/inputs.min.js +1 -1
  7. package/distr/component/pagination/css/pagination.min.css +1 -1
  8. package/distr/component/quantity/js/quantity.min.js +1 -1
  9. package/distr/component/textarea/js/textarea.min.js +1 -1
  10. package/distr/core/contracts/adaptive-sizing.schema.json +1 -1
  11. package/distr/core/contracts/composite-host-port.v1.schema.json +1 -1
  12. package/distr/core/contracts/composition-document.v1.schema.json +1 -1
  13. package/distr/core/contracts/composition-editor-field-kind.v1.schema.json +1 -1
  14. package/distr/core/contracts/composition-editor-manifest.v1.schema.json +1 -1
  15. package/distr/core/contracts/composition-port-manifest.v1.schema.json +1 -1
  16. package/distr/core/contracts/composition-type-manifest.v1.schema.json +1 -1
  17. package/distr/core/contracts/public-js-api.json +1 -0
  18. package/distr/core/contracts/public-variables.v1.json +11 -0
  19. package/distr/core/css/core.css +11 -0
  20. package/distr/core/css/core.min.css +1 -1
  21. package/distr/core/js/core-loader.js +13 -11
  22. package/distr/core/js/core-loader.min.js +1 -1
  23. package/distr/core/js/core.js +75 -24
  24. package/distr/core/js/core.min.js +2 -2
  25. package/distr/core/js/smart-base.js +2 -2
  26. package/distr/core/js/smart-base.min.js +1 -1
  27. package/distr/core/js/template-utilities.generated.json +1 -0
  28. package/distr/smart/avatar/js/avatar.min.js +1 -1
  29. package/distr/smart/badges/js/badges.min.js +1 -1
  30. package/distr/smart/button-group/js/button-group.min.js +22 -21
  31. package/distr/smart/button-group/smart.manifest.json +22 -1
  32. package/distr/smart/button-group/template/default.js +4 -0
  33. package/distr/smart/buttons/js/buttons.min.js +1 -1
  34. package/distr/smart/country-code/js/country-code.min.js +1 -1
  35. package/distr/smart/datepicker/js/datepicker.min.js +1 -1
  36. package/distr/smart/dropdown/js/dropdown.min.js +1 -1
  37. package/distr/smart/file-upload/js/file-upload.min.js +1 -1
  38. package/distr/smart/inputs/js/inputs.min.js +1 -1
  39. package/distr/smart/list-item/js/list-item.min.js +16 -16
  40. package/distr/smart/modal/contract.json +1 -1
  41. package/distr/smart/progress-scale/js/progress-scale.min.js +1 -1
  42. package/distr/smart/reference-link/js/reference-link.min.js +1 -1
  43. package/distr/smart/tags/js/tags.min.js +1 -1
  44. package/distr/smart/textarea/js/textarea.min.js +5 -5
  45. package/package-manifest.json +46 -46
  46. package/package.json +4 -4
@@ -1 +1 @@
1
- @layer sf.components{_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}@supports not (padding-inline-end: initial){html:not([dir="rtl"]) .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(ltr)){padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}@supports not (padding-inline-end: initial){[dir="rtl"] .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(rtl)){padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}@supports not (padding-inline-start: initial){html:not([dir="rtl"]) .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(ltr)){padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}@supports not (padding-inline-start: initial){[dir="rtl"] .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(rtl)){padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-start-radius)}@supports not (border-start-start-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-start-radius)}}.sf-page-number:where(:dir(ltr)){border-top-left-radius:var(--sf-page-number--border-start-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-start-radius)}@supports not (border-start-start-radius: initial){[dir="rtl"] .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-start-radius)}}.sf-page-number:where(:dir(rtl)){border-top-right-radius:var(--sf-page-number--border-start-start-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-end-radius)}@supports not (border-start-end-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-end-radius)}}.sf-page-number:where(:dir(ltr)){border-top-right-radius:var(--sf-page-number--border-start-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-end-radius)}@supports not (border-start-end-radius: initial){[dir="rtl"] .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-end-radius)}}.sf-page-number:where(:dir(rtl)){border-top-left-radius:var(--sf-page-number--border-start-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-start-radius)}@supports not (border-end-start-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-start-radius)}}.sf-page-number:where(:dir(ltr)){border-bottom-left-radius:var(--sf-page-number--border-end-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-start-radius)}@supports not (border-end-start-radius: initial){[dir="rtl"] .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-start-radius)}}.sf-page-number:where(:dir(rtl)){border-bottom-right-radius:var(--sf-page-number--border-end-start-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-end-radius)}@supports not (border-end-end-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-end-radius)}}.sf-page-number:where(:dir(ltr)){border-bottom-right-radius:var(--sf-page-number--border-end-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-end-radius)}@supports not (border-end-end-radius: initial){[dir="rtl"] .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-end-radius)}}.sf-page-number:where(:dir(rtl)){border-bottom-left-radius:var(--sf-page-number--border-end-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-end-width, 0)}@supports not (border-inline-end-width: initial){html:not([dir="rtl"]) .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-end-width, 0)}}.sf-page-number:where(:dir(ltr)){border-right-width:0;border-right-width:var(--sf-page-number--border-inline-end-width, 0)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-end-width, 0)}@supports not (border-inline-end-width: initial){[dir="rtl"] .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-end-width, 0)}}.sf-page-number:where(:dir(rtl)){border-left-width:0;border-left-width:var(--sf-page-number--border-inline-end-width, 0)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-start-width, 0)}@supports not (border-inline-start-width: initial){html:not([dir="rtl"]) .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-start-width, 0)}}.sf-page-number:where(:dir(ltr)){border-left-width:0;border-left-width:var(--sf-page-number--border-inline-start-width, 0)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-start-width, 0)}@supports not (border-inline-start-width: initial){[dir="rtl"] .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-start-width, 0)}}.sf-page-number:where(:dir(rtl)){border-right-width:0;border-right-width:var(--sf-page-number--border-inline-start-width, 0)}.sf-page-number{align-items:center;font-family:var(--sf-text--family);font-family:var(--sf-page-number--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-page-number--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-page-number--font-weight, var(--sf-font-weight-regular));gap:var(--sf-b0);gap:var(--sf-page-number--gap, var(--sf-b0));height:var(--sf-ui-1--control-height);block-size:var(--sf-ui-1--control-height);height:var(--sf-ui-1--control-height);height:var(--sf-page-number--height, var(--sf-ui-1--control-height));block-size:var(--sf-page-number--height, var(--sf-ui-1--control-height));line-height:var(--sf-text-height-1);line-height:var(--sf-page-number--line-height, var(--sf-text-height-1));padding-bottom:var(--sf-space-1\/3);-webkit-padding-after:var(--sf-space-1\/3);padding-block-end:var(--sf-space-1\/3);padding-bottom:var(--sf-space-1\/3);padding-bottom:var(--sf-page-number--padding-bottom, var(--sf-space-1\/3));-webkit-padding-after:var(--sf-page-number--padding-bottom, var(--sf-space-1\/3));padding-block-end:var(--sf-page-number--padding-bottom, var(--sf-space-1\/3));-webkit-padding-end:var(--sf-space-1\/3);padding-inline-end:var(--sf-space-1\/3);-webkit-padding-end:var(--sf-page-number--padding-right, var(--sf-space-1\/3));padding-inline-end:var(--sf-page-number--padding-right, var(--sf-space-1\/3));-webkit-padding-start:var(--sf-space-1\/3);padding-inline-start:var(--sf-space-1\/3);-webkit-padding-start:var(--sf-page-number--padding-left, var(--sf-space-1\/3));padding-inline-start:var(--sf-page-number--padding-left, var(--sf-space-1\/3));padding-top:var(--sf-space-1\/3);-webkit-padding-before:var(--sf-space-1\/3);padding-block-start:var(--sf-space-1\/3);padding-top:var(--sf-space-1\/3);padding-top:var(--sf-page-number--padding-top, var(--sf-space-1\/3));-webkit-padding-before:var(--sf-page-number--padding-top, var(--sf-space-1\/3));padding-block-start:var(--sf-page-number--padding-top, var(--sf-space-1\/3));width:var(--sf-ui-1--control-height);inline-size:var(--sf-ui-1--control-height);width:var(--sf-ui-1--control-height);width:var(--sf-page-number--width, var(--sf-ui-1--control-height));inline-size:var(--sf-page-number--width, var(--sf-ui-1--control-height));border-start-start-radius:var(--sf-page-number--border-start-start-radius);border-start-end-radius:var(--sf-page-number--border-start-end-radius);border-end-start-radius:var(--sf-page-number--border-end-start-radius);border-end-end-radius:var(--sf-page-number--border-end-end-radius);background-color:var(--sf-page-number--background-color);color:var(--sf-page-number--color);box-shadow:var(--sf-page-number--box-shadow);border-color:transparent;border-color:var(--sf-page-number--border-color, transparent);border-width:0;border-width:var(--sf-page-number--border-width, 0);border-top-width:0;border-block-start-width:0;border-top-width:0;border-top-width:var(--sf-page-number--border-top-width, 0);border-block-start-width:var(--sf-page-number--border-top-width, 0);border-inline-end-width:0;border-inline-end-width:var(--sf-page-number--border-inline-end-width, 0);border-bottom-width:0;border-block-end-width:0;border-bottom-width:0;border-bottom-width:var(--sf-page-number--border-bottom-width, 0);border-block-end-width:var(--sf-page-number--border-bottom-width, 0);border-inline-start-width:0;border-inline-start-width:var(--sf-page-number--border-inline-start-width, 0);border-style:solid;border-style:var(--sf-page-number--border-style, solid);box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration:none;white-space:nowrap;transition-property:background-color,border-color,box-shadow,color;transition-duration:var(--sf-duration-fast);transition-timing-function:var(--sf-animation);--sf-page-number--background-color: var(--sf-surface-0);--sf-page-number--color: var(--sf-on-surface-variant);--sf-page-number--border-top-width: var(--sf-px);--sf-page-number--border-bottom-width: var(--sf-px);--sf-page-number--border-inline-start-width: var(--sf-px);--sf-page-number--border-inline-end-width: var(--sf-px)}.sf-page-number--square{--sf-page-number--border-end-end-radius: var(--sf-radius--ui);--sf-page-number--border-end-start-radius: var(--sf-radius--ui);--sf-page-number--border-start-end-radius: var(--sf-radius--ui);--sf-page-number--border-start-start-radius: var(--sf-radius--ui)}.sf-page-number--circle{--sf-page-number--border-end-end-radius: var(--sf-radius-circle);--sf-page-number--border-end-start-radius: var(--sf-radius-circle);--sf-page-number--border-start-end-radius: var(--sf-radius-circle);--sf-page-number--border-start-start-radius: var(--sf-radius-circle)}.sf-page-number:not(:disabled):not(.disabled).focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-page-number:not(:disabled):not(.disabled):focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-page-number:not(:disabled):not(.disabled):hover{--sf-page-number--background-color: var(--sf-surface-container);--sf-on-surface-variant: var(--sf-on-surface-container--variant);--sf-page-number--color: var(--sf-on-surface)}.sf-page-number:not(:disabled):not(.disabled):active,.sf-page-number.selected{--sf-page-number--background-color: var(--sf-primary-container-active);--sf-page-number--border-color: var(--sf-primary-active);--sf-page-number--border-style: solid;--sf-page-number--border-width: var(--sf-px);--sf-page-number--color: var(--sf-primary-active);--sf-page-number--font-weight: var(--sf-font-weight-medium)}.sf-page-number--ellipsis{--sf-page-number--background-color: transparent;--sf-page-number--border-bottom-width: 0;--sf-page-number--border-inline-end-width: 0;--sf-page-number--border-inline-start-width: 0;--sf-page-number--border-top-width: 0;align-items:center;display:inline-flex;justify-content:center}.sf-page-number:disabled,.sf-page-number.disabled{--sf-page-number--background-color: var(--sf-disable);--sf-page-number--color: var(--sf-on-disable);cursor:not-allowed}@media(forced-colors: active){.sf-page-number:not(:disabled):not(.disabled).focus-visible{outline:var(--sf-a2) solid Highlight;outline-offset:var(--sf-a1)}.sf-page-number:not(:disabled):not(.disabled):focus-visible{outline:var(--sf-a2) solid Highlight;outline-offset:var(--sf-a1)}.sf-page-number.selected{border-color:Highlight}}@media(prefers-reduced-motion: reduce){.sf-page-number{transition-duration:0s}}}@layer sf.components{}@layer sf.components{.sf-pagination{background-color:transparent;background-color:var(--sf-pagination--background-color, transparent);min-width:0;min-inline-size:0}.sf-pagination.sf-pagination--size-1\/2{--sf-pagination-marked-text--font-size: var(--sf-text-size-1\/2);--sf-pagination-marked-text--line-height: var(--sf-text-height-1\/2);--sf-pagination-total--font-size: var(--sf-text-size-1\/2);--sf-pagination-total--line-height: var(--sf-text-height-1\/2);--sf-pagination-container--font-size: var(--sf-text-size-1\/2);--sf-pagination-container--line-height: var(--sf-text-height-1\/2);--sf-pagination-count--font-size: var(--sf-text-size-1\/2);--sf-pagination-count--line-height: var(--sf-text-height-1\/2);--sf-page-number--font-size: var(--sf-text-size-1\/2);--sf-page-number--line-height: var(--sf-text-height-1\/2);--sf-page-number--height: var(--sf-ui-1\/2--control-height);--sf-page-number--width: var(--sf-ui-1\/2--control-height)}.sf-pagination .sf-pagination-top{--sf-pagination-top--background-color: transparent;--sf-pagination-top--border-bottom-width: var(--sf-px);--sf-pagination-top--border-color: var(--sf-outline-variant);--sf-pagination-top--border-style: solid;--sf-pagination-top--padding-bottom: calc(var(--sf-space-3) - var(--sf-space-1));background-color:var(--sf-pagination-top--background-color);border-bottom-width:var(--sf-pagination-top--border-bottom-width);border-color:transparent;border-color:var(--sf-pagination-top--border-color, transparent);border-style:solid;border-style:var(--sf-pagination-top--border-style, solid);gap:var(--sf-b0);padding-bottom:var(--sf-pagination-top--padding-bottom)}.sf-pagination .sf-pagination-main{--sf-pagination-main--background-color: transparent;--sf-pagination-main--border-bottom-width: var(--sf-px);--sf-pagination-main--border-color: var(--sf-outline-variant);--sf-pagination-main--border-style: solid;--sf-pagination-main--padding-bottom: var(--sf-space-1);--sf-pagination-main--padding-top: var(--sf-space-1);background-color:var(--sf-pagination-main--background-color);border-bottom-width:var(--sf-pagination-main--border-bottom-width);border-color:transparent;border-color:var(--sf-pagination-main--border-color, transparent);border-style:solid;border-style:var(--sf-pagination-main--border-style, solid);gap:var(--sf-space-1);padding-bottom:var(--sf-pagination-main--padding-bottom);padding-top:var(--sf-pagination-main--padding-top)}.sf-pagination .sf-pagination-left{--sf-pagination-left--background-color: transparent;--sf-pagination-left--gap: var(--sf-space-1);background-color:var(--sf-pagination-left--background-color);gap:var(--sf-pagination-left--gap);min-width:0;min-inline-size:0}.sf-pagination .sf-pagination-marked{--sf-pagination-marked--background-color: transparent;--sf-pagination-marked--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-marked--background-color);gap:var(--sf-pagination-marked--gap)}.sf-pagination .sf-pagination-marked-text{--sf-pagination-marked-text--font-family: var(--sf-text--family);--sf-pagination-marked-text--font-size: var(--sf-text-size-1);--sf-pagination-marked-text--line-height: var(--sf-text-height-1)}.sf-pagination.sf-pagination--size-1\/2 .sf-pagination-marked-text{--sf-pagination-marked-text--font-size: var(--sf-text-size-1\/2);--sf-pagination-marked-text--line-height: var(--sf-text-height-1\/2)}.sf-pagination .sf-pagination-marked-text{color:var(--sf-pagination-marked-text--color);font-family:var(--sf-pagination-marked-text--font-family);font-size:var(--sf-pagination-marked-text--font-size);font-weight:var(--sf-pagination-marked-text--font-weight);line-height:var(--sf-pagination-marked-text--line-height)}.sf-pagination .sf-pagination-total{--sf-pagination-total--background-color: transparent;--sf-pagination-total--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-total--background-color);color:var(--sf-on-surface-variant);color:var(--sf-pagination-total--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-family:var(--sf-pagination-total--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-pagination-total--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-pagination-total--font-weight, var(--sf-font-weight-regular));gap:var(--sf-pagination-total--gap);line-height:var(--sf-text-height-1);line-height:var(--sf-pagination-total--line-height, var(--sf-text-height-1))}.sf-pagination .sf-pagination-container{--sf-pagination-container--background-color: transparent;--sf-pagination-container--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-container--background-color);color:var(--sf-on-surface-variant);color:var(--sf-pagination-container--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-family:var(--sf-pagination-container--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-pagination-container--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-pagination-container--font-weight, var(--sf-font-weight-regular));gap:var(--sf-pagination-container--gap);line-height:var(--sf-text-height-1);line-height:var(--sf-pagination-container--line-height, var(--sf-text-height-1));min-width:0;min-inline-size:0;white-space:nowrap}.sf-pagination .sf-pagination-list{gap:var(--sf-pagination-container--gap);list-style:none;margin:0;min-width:0;min-inline-size:0;padding:0}.sf-pagination .sf-pagination-item{display:flex;flex:0 0 auto}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-end-radius)}@supports not (border-end-end-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-bottom-right-radius:var(--sf-icon-button--border-end-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-end-radius)}@supports not (border-end-end-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-bottom-left-radius:var(--sf-icon-button--border-end-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-start-radius)}@supports not (border-end-start-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-bottom-left-radius:var(--sf-icon-button--border-end-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-start-radius)}@supports not (border-end-start-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-bottom-right-radius:var(--sf-icon-button--border-end-start-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-end-radius)}@supports not (border-start-end-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-top-right-radius:var(--sf-icon-button--border-start-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-end-radius)}@supports not (border-start-end-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-top-left-radius:var(--sf-icon-button--border-start-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-start-radius)}@supports not (border-start-start-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-top-left-radius:var(--sf-icon-button--border-start-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-start-radius)}@supports not (border-start-start-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-top-right-radius:var(--sf-icon-button--border-start-start-radius)}.sf-pagination .sf-icon-button{--sf-icon-button--border-end-end-radius: var(--sf-radius--ui);--sf-icon-button--border-end-start-radius: var(--sf-radius--ui);--sf-icon-button--border-start-end-radius: var(--sf-radius--ui);--sf-icon-button--border-start-start-radius: var(--sf-radius--ui);border-end-end-radius:var(--sf-icon-button--border-end-end-radius);border-end-start-radius:var(--sf-icon-button--border-end-start-radius);border-start-end-radius:var(--sf-icon-button--border-start-end-radius);border-start-start-radius:var(--sf-icon-button--border-start-start-radius)}.sf-pagination .sf-pagination-main .sf-pagination-container .sf-icon-button.sf-icon-button--link:not(:disabled):not(.disabled)>.sf-icon{--sf-icon--color: var(--sf-on-surface-variant);color:var(--sf-icon--color)}[dir=rtl] .sf-pagination .sf-pagination-direction .sf-icon,[dir=rtl] .sf-pagination .sf-pagination-direction sf-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.sf-pagination .sf-pagination-count{--sf-pagination-count--background-color: transparent;--sf-pagination-count--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-count--background-color);color:var(--sf-on-surface-variant);color:var(--sf-pagination-count--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-family:var(--sf-pagination-count--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-pagination-count--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-pagination-count--font-weight, var(--sf-font-weight-regular));gap:var(--sf-pagination-count--gap);line-height:var(--sf-text-height-1);line-height:var(--sf-pagination-count--line-height, var(--sf-text-height-1))}.sf-pagination .sf-pagination-bottom{--sf-pagination-bottom--background-color: transparent;--sf-pagination-bottom--gap: var(--sf-space-1\/2);--sf-pagination-bottom--padding-bottom: var(--sf-space-1);--sf-pagination-bottom--padding-top: var(--sf-space-1);background-color:var(--sf-pagination-bottom--background-color);gap:var(--sf-pagination-bottom--gap);padding-bottom:var(--sf-pagination-bottom--padding-bottom);padding-top:var(--sf-pagination-bottom--padding-top);min-width:0;min-inline-size:0}.sf-pagination-actions{--sf-pagination-actions--background-color: var(--sf-elevation-2--surface);--sf-on-surface-variant: var(--sf-on-elevation-2--variant);--sf-pagination-actions--border-color: var(--sf-outline-variant);--sf-pagination-actions--gap: var(--sf-space-1);--sf-pagination-actions--padding-block: var(--sf-space-1);--sf-pagination-actions--padding-inline: var(--sf-space-2);--sf-pagination-actions--radius: var(--sf-radius--surface);position:sticky;bottom:0;inset-block-end:0;width:100%;inline-size:100%;flex-wrap:wrap;gap:var(--sf-pagination-actions--gap);padding-top:var(--sf-pagination-actions--padding-block);padding-bottom:var(--sf-pagination-actions--padding-block);padding-block:var(--sf-pagination-actions--padding-block);padding-left:var(--sf-pagination-actions--padding-inline);padding-right:var(--sf-pagination-actions--padding-inline);padding-inline:var(--sf-pagination-actions--padding-inline);background-color:var(--sf-pagination-actions--background-color);border-top:var(--sf-px) solid var(--sf-pagination-actions--border-color);-webkit-border-before:var(--sf-px) solid var(--sf-pagination-actions--border-color);border-block-start:var(--sf-px) solid var(--sf-pagination-actions--border-color);border-radius:var(--sf-pagination-actions--radius);box-shadow:var(--sf-elevation-2--shadow);z-index:var(--sf-z-index-3)}.sf-pagination .sf-pagination-list .sf-pagination-item[\:has\(sf-icon-button\)]{display:contents}.sf-pagination .sf-pagination-list .sf-pagination-item:has(sf-icon-button){display:contents}.sf-pagination .sf-pagination-page-field{--sf-pagination-page-input--digits: 1;gap:var(--sf-space-1\/2);white-space:nowrap}.sf-pagination .sf-pagination-page-input{width:auto;inline-size:auto}.sf-pagination .sf-pagination-page-input .sf-input-field input{flex:0 0 auto;box-sizing:border-box;width:calc(max(1,1)*1ch + var(--sf-a0) + var(--sf-a0));inline-size:calc(max(1,1)*1ch + var(--sf-a0) + var(--sf-a0));width:calc(max(1,1)*1ch + var(--sf-a0) + var(--sf-a0));width:calc(max(var(--sf-pagination-page-input--digits, 1),1)*1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));inline-size:calc(max(var(--sf-pagination-page-input--digits, 1),1)*1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));min-width:calc(1ch + var(--sf-a0) + var(--sf-a0));min-inline-size:calc(1ch + var(--sf-a0) + var(--sf-a0));min-width:calc(1ch + var(--sf-a0) + var(--sf-a0));min-width:calc(1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));min-inline-size:calc(1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));text-align:center}.sf-pagination-actions-count{color:var(--sf-on-surface);font-weight:var(--sf-font-weight-medium);white-space:nowrap}.sf-pagination-actions-separator{align-self:stretch;width:var(--sf-px);inline-size:var(--sf-px);background-color:var(--sf-outline-variant)}.sf-pagination .sf-pagination-marked-text:nth-child(1){--sf-pagination-marked-text--color: var(--sf-on-surface-variant);--sf-pagination-marked-text--font-weight: var(--sf-font-weight-regular)}.sf-pagination .sf-pagination-marked-text:nth-child(2){--sf-pagination-marked-text--color: var(--sf-on-surface);--sf-pagination-marked-text--font-weight: var(--sf-font-weight-medium)}@media(max-width: 44rem){.sf-pagination .sf-pagination-main{align-items:stretch;flex-direction:column}.sf-pagination .sf-pagination-left{justify-content:space-between;width:100%;inline-size:100%}.sf-pagination .sf-pagination-container{justify-content:space-between;width:100%;inline-size:100%}.sf-pagination .sf-pagination-pages-label{display:none}.sf-pagination .sf-pagination-list{justify-content:center;width:100%;inline-size:100%}.sf-pagination .sf-pagination-count,.sf-pagination .sf-pagination-bottom{align-items:stretch;flex-direction:column}}}@layer sf.components{.sf-pagination-count .sf-dropdown-field{max-width:var(--sf-e3);max-width:var(--sf-pagination-count--dropdown, var(--sf-e3))}.sf-pagination-bottom .sf-dropdown-field{max-width:var(--sf-f2);max-width:var(--sf-pagination-bottom--dropdown, var(--sf-f2))}.sf-pagination-more{flex:1 1 auto;min-width:0;min-inline-size:0}.sf-pagination-more>sf-button>button{flex:1 1 auto}}
1
+ @layer sf.components{_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}@supports not (padding-inline-end: initial){html:not([dir="rtl"]) .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(ltr)){padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}@supports not (padding-inline-end: initial){[dir="rtl"] .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(rtl)){padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-right, var(--sf-space-1\/3))}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}@supports not (padding-inline-start: initial){html:not([dir="rtl"]) .sf-page-number{padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(ltr)){padding-left:var(--sf-space-1\/3);padding-left:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}@supports not (padding-inline-start: initial){[dir="rtl"] .sf-page-number{padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}}.sf-page-number:where(:dir(rtl)){padding-right:var(--sf-space-1\/3);padding-right:var(--sf-page-number--padding-left, var(--sf-space-1\/3))}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-start-radius)}@supports not (border-start-start-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-start-radius)}}.sf-page-number:where(:dir(ltr)){border-top-left-radius:var(--sf-page-number--border-start-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-start-radius)}@supports not (border-start-start-radius: initial){[dir="rtl"] .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-start-radius)}}.sf-page-number:where(:dir(rtl)){border-top-right-radius:var(--sf-page-number--border-start-start-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-end-radius)}@supports not (border-start-end-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-top-right-radius:var(--sf-page-number--border-start-end-radius)}}.sf-page-number:where(:dir(ltr)){border-top-right-radius:var(--sf-page-number--border-start-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-end-radius)}@supports not (border-start-end-radius: initial){[dir="rtl"] .sf-page-number{border-top-left-radius:var(--sf-page-number--border-start-end-radius)}}.sf-page-number:where(:dir(rtl)){border-top-left-radius:var(--sf-page-number--border-start-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-start-radius)}@supports not (border-end-start-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-start-radius)}}.sf-page-number:where(:dir(ltr)){border-bottom-left-radius:var(--sf-page-number--border-end-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-start-radius)}@supports not (border-end-start-radius: initial){[dir="rtl"] .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-start-radius)}}.sf-page-number:where(:dir(rtl)){border-bottom-right-radius:var(--sf-page-number--border-end-start-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-end-radius)}@supports not (border-end-end-radius: initial){html:not([dir="rtl"]) .sf-page-number{border-bottom-right-radius:var(--sf-page-number--border-end-end-radius)}}.sf-page-number:where(:dir(ltr)){border-bottom-right-radius:var(--sf-page-number--border-end-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-end-radius)}@supports not (border-end-end-radius: initial){[dir="rtl"] .sf-page-number{border-bottom-left-radius:var(--sf-page-number--border-end-end-radius)}}.sf-page-number:where(:dir(rtl)){border-bottom-left-radius:var(--sf-page-number--border-end-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-end-width, 0)}@supports not (border-inline-end-width: initial){html:not([dir="rtl"]) .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-end-width, 0)}}.sf-page-number:where(:dir(ltr)){border-right-width:0;border-right-width:var(--sf-page-number--border-inline-end-width, 0)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-end-width, 0)}@supports not (border-inline-end-width: initial){[dir="rtl"] .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-end-width, 0)}}.sf-page-number:where(:dir(rtl)){border-left-width:0;border-left-width:var(--sf-page-number--border-inline-end-width, 0)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-start-width, 0)}@supports not (border-inline-start-width: initial){html:not([dir="rtl"]) .sf-page-number{border-left-width:0;border-left-width:var(--sf-page-number--border-inline-start-width, 0)}}.sf-page-number:where(:dir(ltr)){border-left-width:0;border-left-width:var(--sf-page-number--border-inline-start-width, 0)}_:-ms-input-placeholder, [dir="rtl"] .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-start-width, 0)}@supports not (border-inline-start-width: initial){[dir="rtl"] .sf-page-number{border-right-width:0;border-right-width:var(--sf-page-number--border-inline-start-width, 0)}}.sf-page-number:where(:dir(rtl)){border-right-width:0;border-right-width:var(--sf-page-number--border-inline-start-width, 0)}.sf-page-number{align-items:center;font-family:var(--sf-text--family);font-family:var(--sf-page-number--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-page-number--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-page-number--font-weight, var(--sf-font-weight-regular));gap:var(--sf-b0);gap:var(--sf-page-number--gap, var(--sf-b0));height:var(--sf-ui-1--control-height);block-size:var(--sf-ui-1--control-height);height:var(--sf-ui-1--control-height);height:var(--sf-page-number--height, var(--sf-ui-1--control-height));block-size:var(--sf-page-number--height, var(--sf-ui-1--control-height));line-height:var(--sf-text-height-1);line-height:var(--sf-page-number--line-height, var(--sf-text-height-1));padding-bottom:var(--sf-space-1\/3);-webkit-padding-after:var(--sf-space-1\/3);padding-block-end:var(--sf-space-1\/3);padding-bottom:var(--sf-space-1\/3);padding-bottom:var(--sf-page-number--padding-bottom, var(--sf-space-1\/3));-webkit-padding-after:var(--sf-page-number--padding-bottom, var(--sf-space-1\/3));padding-block-end:var(--sf-page-number--padding-bottom, var(--sf-space-1\/3));-webkit-padding-end:var(--sf-space-1\/3);padding-inline-end:var(--sf-space-1\/3);-webkit-padding-end:var(--sf-page-number--padding-right, var(--sf-space-1\/3));padding-inline-end:var(--sf-page-number--padding-right, var(--sf-space-1\/3));-webkit-padding-start:var(--sf-space-1\/3);padding-inline-start:var(--sf-space-1\/3);-webkit-padding-start:var(--sf-page-number--padding-left, var(--sf-space-1\/3));padding-inline-start:var(--sf-page-number--padding-left, var(--sf-space-1\/3));padding-top:var(--sf-space-1\/3);-webkit-padding-before:var(--sf-space-1\/3);padding-block-start:var(--sf-space-1\/3);padding-top:var(--sf-space-1\/3);padding-top:var(--sf-page-number--padding-top, var(--sf-space-1\/3));-webkit-padding-before:var(--sf-page-number--padding-top, var(--sf-space-1\/3));padding-block-start:var(--sf-page-number--padding-top, var(--sf-space-1\/3));width:var(--sf-ui-1--control-height);inline-size:var(--sf-ui-1--control-height);width:var(--sf-ui-1--control-height);width:var(--sf-page-number--width, var(--sf-ui-1--control-height));inline-size:var(--sf-page-number--width, var(--sf-ui-1--control-height));border-start-start-radius:var(--sf-page-number--border-start-start-radius);border-start-end-radius:var(--sf-page-number--border-start-end-radius);border-end-start-radius:var(--sf-page-number--border-end-start-radius);border-end-end-radius:var(--sf-page-number--border-end-end-radius);background-color:var(--sf-page-number--background-color);color:var(--sf-page-number--color);box-shadow:var(--sf-page-number--box-shadow);border-color:transparent;border-color:var(--sf-page-number--border-color, transparent);border-width:0;border-width:var(--sf-page-number--border-width, 0);border-top-width:0;border-block-start-width:0;border-top-width:0;border-top-width:var(--sf-page-number--border-top-width, 0);border-block-start-width:var(--sf-page-number--border-top-width, 0);border-inline-end-width:0;border-inline-end-width:var(--sf-page-number--border-inline-end-width, 0);border-bottom-width:0;border-block-end-width:0;border-bottom-width:0;border-bottom-width:var(--sf-page-number--border-bottom-width, 0);border-block-end-width:var(--sf-page-number--border-bottom-width, 0);border-inline-start-width:0;border-inline-start-width:var(--sf-page-number--border-inline-start-width, 0);border-style:solid;border-style:var(--sf-page-number--border-style, solid);box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration:none;white-space:nowrap;transition-property:background-color,border-color,box-shadow,color;transition-duration:var(--sf-duration-fast);transition-timing-function:var(--sf-animation);--sf-page-number--background-color: var(--sf-surface-0);--sf-page-number--color: var(--sf-on-surface-variant);--sf-page-number--border-top-width: var(--sf-px);--sf-page-number--border-bottom-width: var(--sf-px);--sf-page-number--border-inline-start-width: var(--sf-px);--sf-page-number--border-inline-end-width: var(--sf-px)}.sf-page-number--square{--sf-page-number--border-end-end-radius: var(--sf-radius--ui);--sf-page-number--border-end-start-radius: var(--sf-radius--ui);--sf-page-number--border-start-end-radius: var(--sf-radius--ui);--sf-page-number--border-start-start-radius: var(--sf-radius--ui)}.sf-page-number--circle{--sf-page-number--border-end-end-radius: var(--sf-radius-circle);--sf-page-number--border-end-start-radius: var(--sf-radius-circle);--sf-page-number--border-start-end-radius: var(--sf-radius-circle);--sf-page-number--border-start-start-radius: var(--sf-radius-circle)}.sf-page-number:not(:disabled):not(.disabled).focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-page-number:not(:disabled):not(.disabled):focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-focus--offset)}.sf-page-number:not(:disabled):not(.disabled):hover{--sf-page-number--background-color: var(--sf-surface-container);--sf-on-surface-variant: var(--sf-on-surface-container--variant);--sf-page-number--color: var(--sf-on-surface)}.sf-page-number:not(:disabled):not(.disabled):active,.sf-page-number.selected{--sf-page-number--background-color: var(--sf-primary-container-active);--sf-page-number--border-color: var(--sf-primary-active);--sf-page-number--border-style: solid;--sf-page-number--border-width: var(--sf-px);--sf-page-number--color: var(--sf-primary-active);--sf-page-number--font-weight: var(--sf-font-weight-medium)}.sf-page-number--ellipsis{--sf-page-number--background-color: transparent;--sf-page-number--border-bottom-width: 0;--sf-page-number--border-inline-end-width: 0;--sf-page-number--border-inline-start-width: 0;--sf-page-number--border-top-width: 0;align-items:center;display:inline-flex;justify-content:center}.sf-page-number:disabled,.sf-page-number.disabled{--sf-page-number--background-color: var(--sf-disable);--sf-page-number--color: var(--sf-on-disable);cursor:not-allowed}@media(forced-colors: active){.sf-page-number:not(:disabled):not(.disabled).focus-visible{outline:var(--sf-a2) solid Highlight;outline-offset:var(--sf-a1)}.sf-page-number:not(:disabled):not(.disabled):focus-visible{outline:var(--sf-a2) solid Highlight;outline-offset:var(--sf-a1)}.sf-page-number.selected{border-color:Highlight}}@media(prefers-reduced-motion: reduce){.sf-page-number{transition-duration:0s}}}@layer sf.components{}@layer sf.components{.sf-pagination{background-color:transparent;background-color:var(--sf-pagination--background-color, transparent);min-width:0;min-inline-size:0}.sf-pagination.sf-pagination--size-1\/2{--sf-pagination-marked-text--font-size: var(--sf-text-size-1\/2);--sf-pagination-marked-text--line-height: var(--sf-text-height-1\/2);--sf-pagination-total--font-size: var(--sf-text-size-1\/2);--sf-pagination-total--line-height: var(--sf-text-height-1\/2);--sf-pagination-container--font-size: var(--sf-text-size-1\/2);--sf-pagination-container--line-height: var(--sf-text-height-1\/2);--sf-pagination-count--font-size: var(--sf-text-size-1\/2);--sf-pagination-count--line-height: var(--sf-text-height-1\/2);--sf-page-number--font-size: var(--sf-text-size-1\/2);--sf-page-number--line-height: var(--sf-text-height-1\/2);--sf-page-number--height: var(--sf-ui-1\/2--control-height);--sf-page-number--width: var(--sf-ui-1\/2--control-height)}.sf-pagination .sf-pagination-top{--sf-pagination-top--background-color: transparent;--sf-pagination-top--border-bottom-width: var(--sf-px);--sf-pagination-top--border-color: var(--sf-outline-variant);--sf-pagination-top--border-style: solid;--sf-pagination-top--padding-bottom: calc(var(--sf-space-3) - var(--sf-space-1));background-color:var(--sf-pagination-top--background-color);border-bottom-width:var(--sf-pagination-top--border-bottom-width);border-color:transparent;border-color:var(--sf-pagination-top--border-color, transparent);border-style:solid;border-style:var(--sf-pagination-top--border-style, solid);gap:var(--sf-b0);padding-bottom:var(--sf-pagination-top--padding-bottom)}.sf-pagination .sf-pagination-main{flex-wrap:wrap;--sf-pagination-main--background-color: transparent;--sf-pagination-main--border-bottom-width: var(--sf-px);--sf-pagination-main--border-color: var(--sf-outline-variant);--sf-pagination-main--border-style: solid;--sf-pagination-main--padding-bottom: var(--sf-space-1);--sf-pagination-main--padding-top: var(--sf-space-1);background-color:var(--sf-pagination-main--background-color);border-bottom-width:var(--sf-pagination-main--border-bottom-width);border-color:transparent;border-color:var(--sf-pagination-main--border-color, transparent);border-style:solid;border-style:var(--sf-pagination-main--border-style, solid);gap:var(--sf-space-1);padding-bottom:var(--sf-pagination-main--padding-bottom);padding-top:var(--sf-pagination-main--padding-top)}.sf-pagination .sf-pagination-left{--sf-pagination-left--background-color: transparent;--sf-pagination-left--gap: var(--sf-space-1);background-color:var(--sf-pagination-left--background-color);gap:var(--sf-pagination-left--gap);min-width:0;min-inline-size:0}.sf-pagination .sf-pagination-marked{--sf-pagination-marked--background-color: transparent;--sf-pagination-marked--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-marked--background-color);gap:var(--sf-pagination-marked--gap)}.sf-pagination .sf-pagination-marked-text{--sf-pagination-marked-text--font-family: var(--sf-text--family);--sf-pagination-marked-text--font-size: var(--sf-text-size-1);--sf-pagination-marked-text--line-height: var(--sf-text-height-1)}.sf-pagination.sf-pagination--size-1\/2 .sf-pagination-marked-text{--sf-pagination-marked-text--font-size: var(--sf-text-size-1\/2);--sf-pagination-marked-text--line-height: var(--sf-text-height-1\/2)}.sf-pagination .sf-pagination-marked-text{color:var(--sf-pagination-marked-text--color);font-family:var(--sf-pagination-marked-text--font-family);font-size:var(--sf-pagination-marked-text--font-size);font-weight:var(--sf-pagination-marked-text--font-weight);line-height:var(--sf-pagination-marked-text--line-height)}.sf-pagination .sf-pagination-total{--sf-pagination-total--background-color: transparent;--sf-pagination-total--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-total--background-color);color:var(--sf-on-surface-variant);color:var(--sf-pagination-total--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-family:var(--sf-pagination-total--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-pagination-total--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-pagination-total--font-weight, var(--sf-font-weight-regular));gap:var(--sf-pagination-total--gap);line-height:var(--sf-text-height-1);line-height:var(--sf-pagination-total--line-height, var(--sf-text-height-1))}.sf-pagination .sf-pagination-container{flex-wrap:wrap;--sf-pagination-container--background-color: transparent;--sf-pagination-container--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-container--background-color);color:var(--sf-on-surface-variant);color:var(--sf-pagination-container--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-family:var(--sf-pagination-container--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-pagination-container--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-pagination-container--font-weight, var(--sf-font-weight-regular));gap:var(--sf-pagination-container--gap);line-height:var(--sf-text-height-1);line-height:var(--sf-pagination-container--line-height, var(--sf-text-height-1));min-width:0;min-inline-size:0;white-space:nowrap}.sf-pagination .sf-pagination-list{gap:var(--sf-pagination-container--gap);list-style:none;margin:0;min-width:0;min-inline-size:0;padding:0}.sf-pagination .sf-pagination-item{display:flex;flex:0 0 auto}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-end-radius)}@supports not (border-end-end-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-bottom-right-radius:var(--sf-icon-button--border-end-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-end-radius)}@supports not (border-end-end-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-bottom-left-radius:var(--sf-icon-button--border-end-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-start-radius)}@supports not (border-end-start-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-bottom-left-radius:var(--sf-icon-button--border-end-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-bottom-left-radius:var(--sf-icon-button--border-end-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-start-radius)}@supports not (border-end-start-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-bottom-right-radius:var(--sf-icon-button--border-end-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-bottom-right-radius:var(--sf-icon-button--border-end-start-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-end-radius)}@supports not (border-start-end-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-top-right-radius:var(--sf-icon-button--border-start-end-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-end-radius)}@supports not (border-start-end-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-end-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-top-left-radius:var(--sf-icon-button--border-start-end-radius)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-start-radius)}@supports not (border-start-start-radius: initial){html:not([dir="rtl"]) .sf-pagination .sf-icon-button{border-top-left-radius:var(--sf-icon-button--border-start-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(ltr)){border-top-left-radius:var(--sf-icon-button--border-start-start-radius)}_:-ms-input-placeholder, [dir="rtl"] .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-start-radius)}@supports not (border-start-start-radius: initial){[dir="rtl"] .sf-pagination .sf-icon-button{border-top-right-radius:var(--sf-icon-button--border-start-start-radius)}}.sf-pagination .sf-icon-button:where(:dir(rtl)){border-top-right-radius:var(--sf-icon-button--border-start-start-radius)}.sf-pagination .sf-icon-button{--sf-icon-button--border-end-end-radius: var(--sf-radius--ui);--sf-icon-button--border-end-start-radius: var(--sf-radius--ui);--sf-icon-button--border-start-end-radius: var(--sf-radius--ui);--sf-icon-button--border-start-start-radius: var(--sf-radius--ui);border-end-end-radius:var(--sf-icon-button--border-end-end-radius);border-end-start-radius:var(--sf-icon-button--border-end-start-radius);border-start-end-radius:var(--sf-icon-button--border-start-end-radius);border-start-start-radius:var(--sf-icon-button--border-start-start-radius)}.sf-pagination .sf-pagination-main .sf-pagination-container .sf-icon-button.sf-icon-button--link:not(:disabled):not(.disabled)>.sf-icon{--sf-icon--color: var(--sf-on-surface-variant);color:var(--sf-icon--color)}[dir=rtl] .sf-pagination .sf-pagination-direction .sf-icon,[dir=rtl] .sf-pagination .sf-pagination-direction sf-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.sf-pagination .sf-pagination-count{--sf-pagination-count--background-color: transparent;--sf-pagination-count--gap: var(--sf-space-1\/3);background-color:var(--sf-pagination-count--background-color);color:var(--sf-on-surface-variant);color:var(--sf-pagination-count--color, var(--sf-on-surface-variant));font-family:var(--sf-text--family);font-family:var(--sf-pagination-count--font-family, var(--sf-text--family));font-size:var(--sf-text-size-1);font-size:var(--sf-pagination-count--font-size, var(--sf-text-size-1));font-weight:var(--sf-font-weight-regular);font-weight:var(--sf-pagination-count--font-weight, var(--sf-font-weight-regular));gap:var(--sf-pagination-count--gap);line-height:var(--sf-text-height-1);line-height:var(--sf-pagination-count--line-height, var(--sf-text-height-1))}.sf-pagination .sf-pagination-bottom{--sf-pagination-bottom--background-color: transparent;--sf-pagination-bottom--gap: var(--sf-space-1\/2);--sf-pagination-bottom--padding-bottom: var(--sf-space-1);--sf-pagination-bottom--padding-top: var(--sf-space-1);background-color:var(--sf-pagination-bottom--background-color);gap:var(--sf-pagination-bottom--gap);padding-bottom:var(--sf-pagination-bottom--padding-bottom);padding-top:var(--sf-pagination-bottom--padding-top);min-width:0;min-inline-size:0}.sf-pagination-actions{--sf-pagination-actions--background-color: var(--sf-elevation-2--surface);--sf-on-surface-variant: var(--sf-on-elevation-2--variant);--sf-pagination-actions--border-color: var(--sf-outline-variant);--sf-pagination-actions--gap: var(--sf-space-1);--sf-pagination-actions--padding-block: var(--sf-space-1);--sf-pagination-actions--padding-inline: var(--sf-space-2);--sf-pagination-actions--radius: var(--sf-radius--surface);position:sticky;bottom:0;inset-block-end:0;width:100%;inline-size:100%;flex-wrap:wrap;gap:var(--sf-pagination-actions--gap);padding-top:var(--sf-pagination-actions--padding-block);padding-bottom:var(--sf-pagination-actions--padding-block);padding-block:var(--sf-pagination-actions--padding-block);padding-left:var(--sf-pagination-actions--padding-inline);padding-right:var(--sf-pagination-actions--padding-inline);padding-inline:var(--sf-pagination-actions--padding-inline);background-color:var(--sf-pagination-actions--background-color);border-top:var(--sf-px) solid var(--sf-pagination-actions--border-color);-webkit-border-before:var(--sf-px) solid var(--sf-pagination-actions--border-color);border-block-start:var(--sf-px) solid var(--sf-pagination-actions--border-color);border-radius:var(--sf-pagination-actions--radius);box-shadow:var(--sf-elevation-2--shadow);z-index:var(--sf-z-index-3)}.sf-pagination .sf-pagination-list .sf-pagination-item[\:has\(sf-icon-button\)]{display:contents}.sf-pagination .sf-pagination-list .sf-pagination-item:has(sf-icon-button){display:contents}.sf-pagination .sf-pagination-page-field{--sf-pagination-page-input--digits: 1;gap:var(--sf-space-1\/2);white-space:nowrap}.sf-pagination .sf-pagination-page-input{width:auto;inline-size:auto}.sf-pagination .sf-pagination-page-input .sf-input-field input{flex:0 0 auto;box-sizing:border-box;width:calc(max(1,1)*1ch + var(--sf-a0) + var(--sf-a0));inline-size:calc(max(1,1)*1ch + var(--sf-a0) + var(--sf-a0));width:calc(max(1,1)*1ch + var(--sf-a0) + var(--sf-a0));width:calc(max(var(--sf-pagination-page-input--digits, 1),1)*1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));inline-size:calc(max(var(--sf-pagination-page-input--digits, 1),1)*1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));min-width:calc(1ch + var(--sf-a0) + var(--sf-a0));min-inline-size:calc(1ch + var(--sf-a0) + var(--sf-a0));min-width:calc(1ch + var(--sf-a0) + var(--sf-a0));min-width:calc(1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));min-inline-size:calc(1ch + var(--sf-input-input--padding-inline-start, var(--sf-a0)) + var(--sf-input-input--padding-inline-end, var(--sf-a0)));text-align:center}.sf-pagination-actions-count{color:var(--sf-on-surface);font-weight:var(--sf-font-weight-medium);white-space:nowrap}.sf-pagination-actions-separator{align-self:stretch;width:var(--sf-px);inline-size:var(--sf-px);background-color:var(--sf-outline-variant)}.sf-pagination .sf-pagination-marked-text:nth-child(1){--sf-pagination-marked-text--color: var(--sf-on-surface-variant);--sf-pagination-marked-text--font-weight: var(--sf-font-weight-regular)}.sf-pagination .sf-pagination-marked-text:nth-child(2){--sf-pagination-marked-text--color: var(--sf-on-surface);--sf-pagination-marked-text--font-weight: var(--sf-font-weight-medium)}@media(max-width: 44rem){.sf-pagination .sf-pagination-main{align-items:stretch;flex-direction:column}.sf-pagination .sf-pagination-left{justify-content:space-between;width:100%;inline-size:100%}.sf-pagination .sf-pagination-container{justify-content:space-between;width:100%;inline-size:100%}.sf-pagination .sf-pagination-pages-label{display:none}.sf-pagination .sf-pagination-list{justify-content:center;width:100%;inline-size:100%}.sf-pagination .sf-pagination-count,.sf-pagination .sf-pagination-bottom{align-items:stretch;flex-direction:column}}}@layer sf.components{.sf-pagination-count .sf-dropdown-field{max-width:var(--sf-e3);max-width:var(--sf-pagination-count--dropdown, var(--sf-e3))}.sf-pagination-bottom .sf-dropdown-field{max-width:var(--sf-f2);max-width:var(--sf-pagination-bottom--dropdown, var(--sf-f2))}.sf-pagination-more{flex:1 1 auto;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;min-inline-size:-webkit-max-content;min-inline-size:-moz-max-content;min-inline-size:max-content}.sf-pagination-more>sf-button>button{flex:1 1 auto}}
@@ -1 +1 @@
1
- (()=>{"use strict";class e{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(e){this.props=e,this.id=e?.id,this.params=e?.param,this.attrs=e?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(e){if(!Array.isArray(e))return[];const t=new Set;return e.forEach(e=>{if("string"!=typeof e)return;const n=e.match(/\(([^)]+)\)/g);n&&n.forEach(e=>{e.slice(1,-1).split(/\s+/).filter(Boolean).forEach(e=>{e.startsWith(".")&&e.length>1&&t.add(e.slice(1))})})}),Array.from(t)}applyLayoutUtilities(e,t){if(!e||!t)return;const n=this.getUtilityMap();if(!n||!n[t])return;this.extractUtilityClasses(n[t]).forEach(t=>e.classList.add(t))}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 t=function(e,t){if(e&&t)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(e,t);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([e,t])}}else window.registerSfComponent(e,t)},n=JSON.parse('{".sf-quantity":["display/flex (.flex)","flex-direction/column (.flex-col)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)"],".sf-quantity .sf-quantity-label":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)","align-items/flex-start (.items-start)"],".sf-quantity .sf-quantity-wrap":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-2)","justify-content/center (.justify-center)","align-items/center (.items-center)"],".sf-quantity .sf-quantity-count":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","justify-content/flex-start (.justify-start)","align-items/center (.items-center)"],".sf-quantity .sf-quantity-wrap input":["display/flex (.flex)"]}');let i=0;const a=new WeakMap;function r(e,{prefix:t="sf-field",required:n=!1,invalid:r=!1,hint:s="",errorMessage:o=""}={}){const l=function(e,t){if(e&&a.has(e))return a.get(e);const n=(e?.id?String(e.id).trim():"")||`${t}-${++i}`,r={controlId:`${n}-control`,messageId:`${n}-message`};return!e||"object"!=typeof e&&"function"!=typeof e||a.set(e,r),r}(e,t),u=Boolean(r),c=u&&o?o:s;return{...l,required:Boolean(n),invalid:u,message:c,describedBy:c?l.messageId:"",errorMessageId:u&&o?l.messageId:""}}function s(e,t,{prefix:n="sf-field",required:i=!1,invalid:a=!1,messageNode:s=null,labelNode:o=null,errorMessage:l=""}={}){if(!e||!t)return null;const u=r(e,{prefix:n,required:i,invalid:a,hint:s?.textContent?.trim()||"",errorMessage:l});var c,d;return t.id||(t.id=u.controlId),"LABEL"!==e.tagName||e.hasAttribute("for")||e.setAttribute("for",t.id),!o?.textContent?.trim()||t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||(o.id||(o.id=`${t.id}-label`),t.setAttribute("aria-labelledby",o.id)),t.required=u.required,e.classList.toggle("error",u.invalid),t.classList.toggle("error",u.invalid),u.invalid?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),s&&(s.id||(s.id=u.messageId),t.setAttribute("aria-describedby",(c=t.getAttribute("aria-describedby"),d=[s.id],[...new Set([...String(c||"").split(/\s+/).filter(Boolean),...d.filter(Boolean)])].join(" ")))),u.errorMessageId&&s?t.setAttribute("aria-errormessage",s.id):t.removeAttribute("aria-errormessage"),u}function o(){const e=globalThis.SF=globalThis.SF||{};return e.__deprecationNotes instanceof Map||Object.defineProperty(e,"__deprecationNotes",{value:new Map,configurable:!0}),e.__deprecationNotes}function l({component:e="",kind:t="attribute",attribute:n="",from:i,to:a=null}={}){if(!i)return;const r=[e,t,n,i].join("|"),s=o(),l=s.get(r);if(l)l.count+=1;else if(s.set(r,{component:e,kind:t,attribute:n,from:i,to:a,count:1}),function(){const e=globalThis.document?.documentElement;return"warn"===e?.dataset?.sfDeprecations||!0===globalThis.SF?.deprecations?.warn}()){const r=e?`${e}: `:"",s="value"===t?`${n}="${i}"`:`${t} ${i}`;globalThis.console?.warn?.(`[Simai Framework] ${r}${s} is a legacy name${a?`; write ${a}`:""}. See contracts/changes/journal.json.`)}}if("undefined"!=typeof globalThis){globalThis.SF=globalThis.SF||{};const e=globalThis.SF.deprecations||{};e.list=function(){return[...o().values()].map(e=>({...e}))},e.clear=function(){o().clear()},e.note=l,globalThis.SF.deprecations=e}const u=Object.freeze(["1/2","1","2"]),c=Object.freeze({"1/3":"1/2",3:"2"}),d=new Set;function f(e,t="field",n="1"){const i=String(e??"").trim().toLowerCase();if(u.includes(i))return i;if(Object.hasOwn(c,i)){const e=c[i];l({component:t,kind:"value",attribute:"size",from:i,to:e});const n=`${t}:${i}`;return d.has(n)||"undefined"==typeof console||(d.add(n),console.warn(`[Simai Framework] ${t}: size ${i} is retired for form fields; rendering size ${e}.`)),e}return n}const m=new WeakMap,p=new WeakSet;let y=null;const g=(()=>{const e="undefined"!=typeof globalThis?globalThis:{},t="__sfPageLanguage";return e[t]||(e[t]={listeners:new Set,registered:new Map,chosen:null}),e[t]})(),b=g.listeners,w=g.registered,h=e=>String(e??"").trim().toLowerCase().replace("_","-"),N=()=>{for(const e of[...b])try{e()}catch{}};function v(e){let t=e;for(;t;){const e="function"==typeof t.closest?t.closest("[lang]"):null;if(e)return e;const n="function"==typeof t.getRootNode?t.getRootNode():null;t=n&&n!==t&&n.host?n.host:null}return null}function _(e){if(g.chosen)return g.chosen.split("-")[0];const t=v(e),n=t?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en";return h(n).split("-")[0]||"en"}function S(e){if(g.chosen)return g.chosen;const t=v(e);return h(t?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en")}function L(e,t,n,i){const a=i??(e=>{const t=e?.tagName;return"string"==typeof t?t.toLowerCase():null})(n);for(const i of(e=>{const t=h(e),n=t.split("-")[0],i=[];for(const e of[t,n,"en"])e&&!i.includes(e)&&i.push(e);return i})(S(n))){const n=a?w.get(a)?.get(i)?.[t]:void 0;if(void 0!==n)return n;const r=e?.[i]?.[t];if(void 0!==r)return r}return t}const q={current:(e=globalThis.document?.documentElement??null)=>S(e),use(e){const t=null==e?null:h(e);return t===g.chosen||(g.chosen=t,N()),g.chosen},register(e,t,n){const i=String(e??"").toLowerCase(),a=h(t);if(!i||!a)throw new TypeError("a component and a language are required");w.has(i)||w.set(i,new Map);const r=w.get(i);return null===n?r.delete(a):r.set(a,{...r.get(a)??{},...n}),N(),this},registerAll(e,t={}){for(const[n,i]of Object.entries(t))this.register(n,e,i);return this},known(e){const t=String(e??"").toLowerCase();return[...w.get(t)?.keys()??[]]},components:()=>[...w.keys()],onChange:e=>"function"!=typeof e?()=>{}:(b.add(e),()=>b.delete(e)),forget(){return w.clear(),g.chosen=null,N(),this}};"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.language=q,window.SF.pageLanguage=_,window.SF.pageText=L);const E={en:{decrement:"Decrease value",increment:"Increase value"},ru:{decrement:"Уменьшить значение",increment:"Увеличить значение"}},x=".sf-quantity",Q="sfQuantityBound",M=new WeakSet,F=new Map;function k(e,t=0){const n=String(e??"").trim().replace(/\s+/g,"").replace(",",".");if(""===n)return t;const i=Number(n);return Number.isFinite(i)?i:t}function H(e,t,n){return Number.isFinite(t)&&(e=Math.max(e,t)),Number.isFinite(n)&&(e=Math.min(e,n)),e}function $(e,t=!0){if(null==e||""===e)return t;if("boolean"==typeof e)return e;const n=String(e).toLowerCase();return!["0","false","no","off"].includes(n)&&(!!["1","true","yes","on"].includes(n)||t)}function B(e){const t=String(e??"").trim().toLowerCase();if(!Number.isFinite(Number(t))||Number(t)<=0)return 0;const[n,i="0"]=t.split("e"),a=n.split(".")[1]?.length||0;return Math.max(0,a-Number(i))}function C(e,t){const n=t.dataset.precision??e.dataset.precision??String(B(t.step));return{precision:Math.min(100,Math.max(0,parseInt(n,10)||0)),grouping:$(t.dataset.grouping??e.dataset.grouping,!0),locale:t.dataset.locale??e.dataset.locale??S(t??e)}}function O(e,t,n){return{inputMode:"strict"===(t.dataset.inputMode??e.dataset.inputMode??"soft").toString().toLowerCase()?"strict":"soft",allowNegative:$(t.dataset.allowNegative??e.dataset.allowNegative,!1),allowDecimal:$(t.dataset.allowDecimal??e.dataset.allowDecimal,n.precision>0)}}function T(e,t){const n=P(t?.locale);let i=String(e??"").replace(/[\u061c\u200e\u200f]/g,"");for(const[e,t]of n.digits)i=i.split(e).join(t);i=i.split(n.minus).join("-").replace(/\s+/g,"");const a=n.group.replace(/\s+/g,"");if(a&&a!==n.decimal&&i.includes(a)){const e=i.split(n.decimal),t=e[0].replace(/^-/,"").split(a);e.length<=2&&t.length>1&&t.every(e=>/^\d+$/.test(e))&&t[0].length<=n.secondary&&t.at(-1).length===n.primary&&t.slice(1,-1).every(e=>e.length===n.secondary)&&(i=i.split(a).join(""))}return i.split(n.decimal).join(".")}function A(e,t,n){e=T(e,n).replace(/,/g,".");const{allowNegative:i,allowDecimal:a}=t;return(a?i?/^-?\d*([.,]\d*)?$/:/^\d*([.,]\d*)?$/:i?/^-?\d*$/:/^\d*$/).test(e)}function D(e,t){const n=10**t,i=e*n;return Number.isFinite(i)?Math.round(i)/n:e}function I(e,t){const{precision:n,grouping:i,locale:a}=t;try{return new Intl.NumberFormat(a,{minimumFractionDigits:n,maximumFractionDigits:n,useGrouping:i}).format(e)}catch{return e.toFixed(n)}}function j(e,t=Number.NaN){if(!String(e.value).trim())return t;const n=k(e.dataset.rawValue,Number.NaN);return Number.isFinite(n)?n:k(e.value,t)}function P(e){if(F.has(e))return F.get(e);let t;try{t=new Intl.NumberFormat(e)}catch{t=new Intl.NumberFormat("en-US")}const n=t.formatToParts(-123456789.6),i=n.filter(e=>"integer"===e.type).map(e=>e.value),a={group:n.find(e=>"group"===e.type)?.value||" ",decimal:n.find(e=>"decimal"===e.type)?.value||".",minus:n.find(e=>"minusSign"===e.type)?.value||"-",primary:Array.from(i.at(-1)||"").length||3,secondary:Array.from(i.at(-2)||"").length||3,digits:Array.from({length:10},(e,n)=>[t.format(n),String(n)])};return F.size>=32&&F.delete(F.keys().next().value),F.set(e,a),a}function V(e,t,n=Number.NaN){if(!String(t.value).trim())return n;const i=e.__sfQuantityMask;return i&&"number"==typeof i.typedValue&&Number.isFinite(i.typedValue)?i.typedValue:j(t,n)}async function R(e,t){if(!function(e,t){return $(t.dataset.mask??e.dataset.mask,!1)}(e,t))return;const n={};e.__sfQuantityMaskRequest=n;const i=await function(){const e=()=>window.SF?.Mask?.create?window.SF.Mask:null,t=e();return t?Promise.resolve(t):y||(y=new Promise(t=>{const n=[[window,"sf-mask-ready"],[window,"sf-loader-ready"],[window,"load"],[document,"DOMContentLoaded"]],i=()=>{const a=e();a&&(n.forEach(([e,t])=>e.removeEventListener(t,i)),y=null,t(a))};n.forEach(([e,t])=>e.addEventListener(t,i))}),y)}();if(e.__sfQuantityMaskRequest!==n)return;const a=C(e,t),r=O(e,t,a),s=""===t.min?Number.NaN:k(t.min,Number.NaN),o=""===t.max?Number.NaN:k(t.max,Number.NaN),{group:l,decimal:u}=P(a.locale),c=[".",","].filter(e=>e!==u),d={mask:Number,scale:a.precision,signed:r.allowNegative,normalizeZeros:!0,padFractionalZeros:a.precision>0,thousandsSeparator:l,radix:u,mapToRadix:c};Number.isFinite(s)&&(d.min=s),Number.isFinite(o)&&(d.max=o);try{const r=await i.create(t,d);if(!r)return;if("1"!==e.dataset[Q]||e.__sfQuantityMaskRequest!==n||e.querySelector(".sf-quantity-wrap input")!==t)return void i.destroy(r);if(e.__sfQuantityMask=r,!t.value.trim())return r.value="",delete t.dataset.rawValue,void W(e);const o=V(e,t,Number.isFinite(s)?s:0);if(Number.isFinite(o)){const e=D(o,a.precision);r.typedValue=e,t.dataset.rawValue=String(e)}W(e)}catch(e){console.warn("SF.Quantity mask init failed",e)}}function z(e){const t=e.querySelector(".sf-quantity-wrap input");if(!t)return;const n=C(e,t),i=V(e,t,Number.NaN);if(!Number.isFinite(i))return;const a=D(H(i,""===t.min?Number.NaN:k(t.min,Number.NaN),""===t.max?Number.NaN:k(t.max,Number.NaN)),n.precision);t.dataset.rawValue=String(a),e.__sfQuantityMask?e.__sfQuantityMask.typedValue=a:t.value=I(a,n)}function U(e){const t=Array.from(e.querySelectorAll(".sf-quantity-count"));return{minusButton:t[0]||null,plusButton:t[1]||null}}function W(e){const t=e.querySelector(".sf-quantity-wrap input");if(!t)return;const{minusButton:n,plusButton:i}=U(e),a=Boolean(t.disabled||t.readOnly),r=V(e,t,Number.NaN),s=""===t.min?Number.NaN:k(t.min,Number.NaN),o=""===t.max?Number.NaN:k(t.max,Number.NaN),l=(e,n)=>{if(!(e instanceof HTMLButtonElement))return;const i=a||n;!i||e.disabled||a||e.ownerDocument?.activeElement!==e||t.focus({preventScroll:!0}),e.disabled=i};l(n,Number.isFinite(r)&&Number.isFinite(s)&&r<=s),l(i,Number.isFinite(r)&&Number.isFinite(o)&&r>=o)}function K(e,t){const n=e.querySelector(".sf-quantity-wrap input");if(!n||n.disabled||n.readOnly)return;const i=C(e,n),a=k(n.step,1),r=a>0?a:1,s=""===n.min?Number.NaN:k(n.min,Number.NaN),o=""===n.max?Number.NaN:k(n.max,Number.NaN),l=V(e,n,Number.isFinite(s)?s:0),u=D(H(l+r*t,s,o),i.precision);if(u===l)return void W(e);n.dataset.rawValue=String(u),e.__sfQuantityMask?e.__sfQuantityMask.typedValue=u:n.value=I(u,i),W(e);const c=new Event("change",{bubbles:!0});M.add(c);try{n.dispatchEvent(c)}finally{M.delete(c)}}function G(e){if(function(e,t){if(e?.classList)for(const[n,i]of Object.entries(c)){const i=`${t}--size-${n}`;e.classList.contains(i)&&e.classList.replace(i,`${t}--size-${f(n,t)}`)}}(e,"sf-quantity"),!e||"1"===e.dataset[Q])return;const t=e.querySelector(".sf-quantity-wrap input");if(!t)return;s(e,t,{prefix:"sf-quantity",labelNode:e.querySelector(".sf-quantity-text"),required:t.required||Boolean(e.querySelector(".sf-quantity-required")),invalid:e.classList.contains("error")||t.classList.contains("error")});const{minusButton:n,plusButton:i}=U(e),a=t=>{t.preventDefault(),K(e,-1)},r=t=>{t.preventDefault(),K(e,1)},o=n=>{if(M.has(n))return;if(!t.value.trim())return delete t.dataset.rawValue,void W(e);const i=C(e,t);if(e.__sfQuantityMask){const n=""===t.min?Number.NaN:k(t.min,Number.NaN),a=Number.isFinite(n)?n:0,r="number"==typeof e.__sfQuantityMask.typedValue?e.__sfQuantityMask.typedValue:Number.NaN,s=D(Number.isFinite(r)?r:k(t.value,V(e,t,a)),i.precision);return t.dataset.rawValue=String(s),void W(e)}const a=O(e,t,i),r=function(e,t,n){const{allowNegative:i,allowDecimal:a}=t;let r=T(e,n).replace(/,/g,".");r=r.replace(/[^0-9.\-]/g,"");const s=i&&r.includes("-");if(r=r.replace(/-/g,""),s&&(r=`-${r}`),a){const e=r.indexOf(".");e>=0&&(r=r.slice(0,e+1)+r.slice(e+1).replace(/\./g,""))}else r=r.replace(/\./g,"");return r}(t.value,a,i),s="change"!==n?.type,o=r.replace(".",P(i.locale).decimal);if(s&&o!==t.value&&(t.value=o),""===r||"-"===r||"."===r||"-."===r)return delete t.dataset.rawValue,void W(e);const l=""===t.min?Number.NaN:k(t.min,Number.NaN),u=Number.isFinite(l)?l:0,c=D(k(r,j(t,u)),i.precision);t.dataset.rawValue=String(c),W(e)},l=()=>{z(e),W(e)},u=n=>{if(t.disabled||t.readOnly)return;const i=C(e,t),a=O(e,t,i);if("strict"===a.inputMode&&"insertText"===n.inputType&&"string"==typeof n.data){const e=t.selectionStart??t.value.length,r=t.selectionEnd??t.value.length;A(t.value.slice(0,e)+n.data+t.value.slice(r),a,i)||n.preventDefault()}},d=n=>{if(t.disabled||t.readOnly)return;const i=C(e,t),a=O(e,t,i);if("strict"!==a.inputMode)return;const r=(n.clipboardData?.getData("text")??"").trim();if(!r||!A(r,a,i))return void n.preventDefault();n.preventDefault();const s=t.selectionStart??t.value.length,o=t.selectionEnd??t.value.length,l=t.value.slice(0,s)+r+t.value.slice(o);A(l,a,i)&&(t.value=l,t.dispatchEvent(new Event("input",{bubbles:!0})))},y=()=>{e.classList.add("sf-quantity--pointer-focus")},g=()=>{e.classList.remove("sf-quantity--pointer-focus")},b=t=>{t.relatedTarget?e.contains(t.relatedTarget)||e.classList.remove("sf-quantity--pointer-focus"):window.setTimeout(()=>{e.contains(document.activeElement)||e.classList.remove("sf-quantity--pointer-focus")},0)};n&&n.addEventListener("click",a),i&&i.addEventListener("click",r),t.addEventListener("input",o),t.addEventListener("change",o),t.addEventListener("blur",l),t.addEventListener("beforeinput",u),t.addEventListener("paste",d),e.addEventListener("pointerdown",y,!0),e.addEventListener("keydown",g,!0),e.addEventListener("focusout",b),e.__sfQuantityMinusHandler=a,e.__sfQuantityPlusHandler=r,e.__sfQuantitySyncHandler=o,e.__sfQuantityBlurHandler=l,e.__sfQuantityBeforeInputHandler=u,e.__sfQuantityPasteHandler=d,e.__sfQuantityPointerFocusHandler=y,e.__sfQuantityKeyboardFocusHandler=g,e.__sfQuantityFocusOutHandler=b,e.__sfQuantityReleaseReset=function(e,t){const n=e.ownerDocument;p.has(n)||(n.addEventListener("reset",e=>{const t=e.target;if("FORM"!==t?.tagName)return;const n=Array.from(t.elements);setTimeout(()=>{if(!e.defaultPrevented)for(const e of n)if(e.isConnected&&e.form===t)for(const t of m.get(e)||[])t()},0)},!0),p.add(n));let i=m.get(e);return i||m.set(e,i=new Set),i.add(t),()=>i.delete(t)}(t,()=>{delete t.dataset.rawValue,e.__sfQuantityMask&&(e.__sfQuantityMask.value=t.value),z(e),W(e)}),e.__sfQuantityControlObserver=new MutationObserver(()=>W(e)),e.__sfQuantityControlObserver.observe(t,{attributes:!0,attributeFilter:["disabled","readonly"]}),e.dataset[Q]="1",z(e),W(e),R(e,t)}function Z(e=document){e.querySelectorAll(x).forEach(G)}class J extends e{static componentName="Quantity";html=null;constructor(e){super(e);const{size:t="1",label:n="",required:i=!1,value:a,min:r,max:s,step:o="1",precision:l,grouping:u=!0,locale:c,inputMode:d="soft",allowNegative:m=!1,allowDecimal:p,mask:y=!1,name:g,disabled:b=!1,readonly:w=!1,placeholder:h="",decrementLabel:N=L(E,"decrement",document.documentElement),incrementLabel:v=L(E,"increment",document.documentElement),decrementIcon:_="remove",incrementIcon:S="add"}=this.params||{},q=f(t,"sf-quantity"),x=this.attrs.class||this.attrs.className;this.template=document.createElement("label"),this.id&&(this.template.id=this.id),this.template.classList.add("sf-quantity",`sf-quantity--size-${q}`),x&&this.template.classList.add(...`${x}`.split(" ").filter(Boolean));const Q=document.createElement("span");Q.classList.add("sf-quantity-label");const M=document.createElement("span");if(M.classList.add("sf-quantity-text"),M.textContent=n,Q.append(M),i){const e=document.createElement("span");e.classList.add("sf-quantity-required"),e.textContent="*",Q.append(e)}const F=document.createElement("span");F.classList.add("sf-quantity-wrap");const k=document.createElement("button");k.type="button",k.classList.add("sf-quantity-count","sf-icon-button","sf-icon-button--secondary","sf-icon-button--tonal","sf-icon-button--size-1/3"),k.setAttribute("aria-label",String(N)),k.innerHTML=`<i class="sf-icon">${_}</i>`;const H=document.createElement("input");H.type="text";const $=l??B(o);H.inputMode=p??Number($)>0?"decimal":"numeric";const C=this.attrs.value,O=a??C??"";H.value=String(O),H.defaultValue=String(O),g&&(H.name=g),null!=r&&""!==r&&(H.min=String(r)),null!=s&&""!==s&&(H.max=String(s)),null!=o&&""!==o&&(H.step=String(o)),H.disabled=Boolean(b),H.readOnly=Boolean(w),H.placeholder=String(h),null!=l&&""!==l&&(H.dataset.precision=String(l)),H.dataset.grouping=String(Boolean(u)),c&&(H.dataset.locale=String(c)),H.dataset.inputMode=String(d),H.dataset.allowNegative=String(Boolean(m)),H.dataset.mask=String(Boolean(y)),null!=p&&""!==p&&(H.dataset.allowDecimal=String(Boolean(p)));const T=document.createElement("button");T.type="button",T.classList.add("sf-quantity-count","sf-icon-button","sf-icon-button--secondary","sf-icon-button--tonal","sf-icon-button--size-1/3"),T.setAttribute("aria-label",String(v)),T.innerHTML=`<i class="sf-icon">${S}</i>`,F.append(k,H,T),this.template.append(Q,F),this.applyLayoutUtilities(this.template,".sf-quantity"),this.applyLayoutUtilities(Q,".sf-quantity .sf-quantity-label"),this.applyLayoutUtilities(F,".sf-quantity .sf-quantity-wrap"),this.applyLayoutUtilities(k,".sf-quantity .sf-quantity-count"),this.applyLayoutUtilities(T,".sf-quantity .sf-quantity-count"),this.applyLayoutUtilities(H,".sf-quantity .sf-quantity-wrap input")}init(){G(this.template)}destroyInternal(){!function(e){if(!e||"1"!==e.dataset[Q])return;delete e.__sfQuantityMaskRequest,e.__sfQuantityReleaseReset?.(),delete e.__sfQuantityReleaseReset,e.__sfQuantityControlObserver?.disconnect(),delete e.__sfQuantityControlObserver;const t=e.querySelector(".sf-quantity-wrap input"),{minusButton:n,plusButton:i}=U(e);n&&e.__sfQuantityMinusHandler&&n.removeEventListener("click",e.__sfQuantityMinusHandler),i&&e.__sfQuantityPlusHandler&&i.removeEventListener("click",e.__sfQuantityPlusHandler),t&&e.__sfQuantitySyncHandler&&(t.removeEventListener("input",e.__sfQuantitySyncHandler),t.removeEventListener("change",e.__sfQuantitySyncHandler)),t&&e.__sfQuantityBlurHandler&&t.removeEventListener("blur",e.__sfQuantityBlurHandler),t&&e.__sfQuantityBeforeInputHandler&&t.removeEventListener("beforeinput",e.__sfQuantityBeforeInputHandler),t&&e.__sfQuantityPasteHandler&&t.removeEventListener("paste",e.__sfQuantityPasteHandler),e.__sfQuantityPointerFocusHandler&&e.removeEventListener("pointerdown",e.__sfQuantityPointerFocusHandler,!0),e.__sfQuantityKeyboardFocusHandler&&e.removeEventListener("keydown",e.__sfQuantityKeyboardFocusHandler,!0),e.__sfQuantityFocusOutHandler&&e.removeEventListener("focusout",e.__sfQuantityFocusOutHandler),delete e.__sfQuantityMinusHandler,delete e.__sfQuantityPlusHandler,delete e.__sfQuantitySyncHandler,delete e.__sfQuantityBlurHandler,delete e.__sfQuantityBeforeInputHandler,delete e.__sfQuantityPasteHandler,delete e.__sfQuantityPointerFocusHandler,delete e.__sfQuantityKeyboardFocusHandler,delete e.__sfQuantityFocusOutHandler,e.classList.remove("sf-quantity--pointer-focus"),e.__sfQuantityMask&&(window.SF?.Mask?.destroy?.(e.__sfQuantityMask),delete e.__sfQuantityMask),delete e.dataset[Q]}(this.template)}}J.utilityMap=n,t("Quantity",J),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>Z()):Z();new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(x)&&G(e),Z(e))})})}).observe(document.documentElement,{childList:!0,subtree:!0})})();
1
+ (()=>{"use strict";class e{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(e){this.props=e,this.id=e?.id,this.params=e?.param,this.attrs=e?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(e){if(!Array.isArray(e))return[];const t=new Set;return e.forEach(e=>{if("string"!=typeof e)return;const n=e.match(/\(([^)]+)\)/g);n&&n.forEach(e=>{e.slice(1,-1).split(/\s+/).filter(Boolean).forEach(e=>{e.startsWith(".")&&e.length>1&&t.add(e.slice(1))})})}),Array.from(t)}applyLayoutUtilities(e,t){if(!e||!t)return;const n=this.getUtilityMap();if(!n||!n[t])return;this.extractUtilityClasses(n[t]).forEach(t=>e.classList.add(t))}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 t=function(e,t){if(e&&t)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(e,t);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([e,t])}}else window.registerSfComponent(e,t)},n=JSON.parse('{".sf-quantity":["display/flex (.flex)","flex-direction/column (.flex-col)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)"],".sf-quantity .sf-quantity-label":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)","align-items/flex-start (.items-start)"],".sf-quantity .sf-quantity-wrap":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-2)","justify-content/center (.justify-center)","align-items/center (.items-center)"],".sf-quantity .sf-quantity-count":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","justify-content/flex-start (.justify-start)","align-items/center (.items-center)"],".sf-quantity .sf-quantity-wrap input":["display/flex (.flex)"]}');let i=0;const a=new WeakMap;function r(e,{prefix:t="sf-field",required:n=!1,invalid:r=!1,hint:s="",errorMessage:o=""}={}){const l=function(e,t){if(e&&a.has(e))return a.get(e);const n=(e?.id?String(e.id).trim():"")||`${t}-${++i}`,r={controlId:`${n}-control`,messageId:`${n}-message`};return!e||"object"!=typeof e&&"function"!=typeof e||a.set(e,r),r}(e,t),u=Boolean(r),c=u&&o?o:s;return{...l,required:Boolean(n),invalid:u,message:c,describedBy:c?l.messageId:"",errorMessageId:u&&o?l.messageId:""}}function s(e,t,{prefix:n="sf-field",required:i=!1,invalid:a=!1,messageNode:s=null,labelNode:o=null,errorMessage:l=""}={}){if(!e||!t)return null;const u=r(e,{prefix:n,required:i,invalid:a,hint:s?.textContent?.trim()||"",errorMessage:l});var c,d;return t.id||(t.id=u.controlId),"LABEL"!==e.tagName||e.hasAttribute("for")||e.setAttribute("for",t.id),!o?.textContent?.trim()||t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||(o.id||(o.id=`${t.id}-label`),t.setAttribute("aria-labelledby",o.id)),t.required=u.required,e.classList.toggle("error",u.invalid),t.classList.toggle("error",u.invalid),u.invalid?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),s&&(s.id||(s.id=u.messageId),t.setAttribute("aria-describedby",(c=t.getAttribute("aria-describedby"),d=[s.id],[...new Set([...String(c||"").split(/\s+/).filter(Boolean),...d.filter(Boolean)])].join(" ")))),u.errorMessageId&&s?t.setAttribute("aria-errormessage",s.id):t.removeAttribute("aria-errormessage"),u}function o(){const e=globalThis.SF=globalThis.SF||{};return e.__deprecationNotes instanceof Map||Object.defineProperty(e,"__deprecationNotes",{value:new Map,configurable:!0}),e.__deprecationNotes}function l({component:e="",kind:t="attribute",attribute:n="",from:i,to:a=null}={}){if(!i)return;const r=[e,t,n,i].join("|"),s=o(),l=s.get(r);if(l)l.count+=1;else if(s.set(r,{component:e,kind:t,attribute:n,from:i,to:a,count:1}),function(){const e=globalThis.document?.documentElement;return"warn"===e?.dataset?.sfDeprecations||!0===globalThis.SF?.deprecations?.warn}()){const r=e?`${e}: `:"",s="value"===t?`${n}="${i}"`:`${t} ${i}`;globalThis.console?.warn?.(`[SIMAI Framework] ${r}${s} is a legacy name${a?`; write ${a}`:""}. See contracts/changes/journal.json.`)}}if("undefined"!=typeof globalThis){globalThis.SF=globalThis.SF||{};const e=globalThis.SF.deprecations||{};e.list=function(){return[...o().values()].map(e=>({...e}))},e.clear=function(){o().clear()},e.note=l,globalThis.SF.deprecations=e}const u=Object.freeze(["1/2","1","2"]),c=Object.freeze({"1/3":"1/2",3:"2"}),d=new Set;function f(e,t="field",n="1"){const i=String(e??"").trim().toLowerCase();if(u.includes(i))return i;if(Object.hasOwn(c,i)){const e=c[i];l({component:t,kind:"value",attribute:"size",from:i,to:e});const n=`${t}:${i}`;return d.has(n)||"undefined"==typeof console||(d.add(n),console.warn(`[SIMAI Framework] ${t}: size ${i} is retired for form fields; rendering size ${e}.`)),e}return n}const m=new WeakMap,p=new WeakSet;let y=null;const g=(()=>{const e="undefined"!=typeof globalThis?globalThis:{},t="__sfPageLanguage";return e[t]||(e[t]={listeners:new Set,registered:new Map,chosen:null}),e[t]})(),b=g.listeners,w=g.registered,h=e=>String(e??"").trim().toLowerCase().replace("_","-"),N=()=>{for(const e of[...b])try{e()}catch{}};function v(e){let t=e;for(;t;){const e="function"==typeof t.closest?t.closest("[lang]"):null;if(e)return e;const n="function"==typeof t.getRootNode?t.getRootNode():null;t=n&&n!==t&&n.host?n.host:null}return null}function _(e){if(g.chosen)return g.chosen.split("-")[0];const t=v(e),n=t?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en";return h(n).split("-")[0]||"en"}function S(e){if(g.chosen)return g.chosen;const t=v(e);return h(t?.getAttribute("lang")||globalThis.document?.documentElement?.lang||"en")}function L(e,t,n,i){const a=i??(e=>{const t=e?.tagName;return"string"==typeof t?t.toLowerCase():null})(n);for(const i of(e=>{const t=h(e),n=t.split("-")[0],i=[];for(const e of[t,n,"en"])e&&!i.includes(e)&&i.push(e);return i})(S(n))){const n=a?w.get(a)?.get(i)?.[t]:void 0;if(void 0!==n)return n;const r=e?.[i]?.[t];if(void 0!==r)return r}return t}const q={current:(e=globalThis.document?.documentElement??null)=>S(e),use(e){const t=null==e?null:h(e);return t===g.chosen||(g.chosen=t,N()),g.chosen},register(e,t,n){const i=String(e??"").toLowerCase(),a=h(t);if(!i||!a)throw new TypeError("a component and a language are required");w.has(i)||w.set(i,new Map);const r=w.get(i);return null===n?r.delete(a):r.set(a,{...r.get(a)??{},...n}),N(),this},registerAll(e,t={}){for(const[n,i]of Object.entries(t))this.register(n,e,i);return this},known(e){const t=String(e??"").toLowerCase();return[...w.get(t)?.keys()??[]]},components:()=>[...w.keys()],onChange:e=>"function"!=typeof e?()=>{}:(b.add(e),()=>b.delete(e)),forget(){return w.clear(),g.chosen=null,N(),this}};"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.language=q,window.SF.pageLanguage=_,window.SF.pageText=L);const E={en:{decrement:"Decrease value",increment:"Increase value"},ru:{decrement:"Уменьшить значение",increment:"Увеличить значение"}},x=".sf-quantity",M="sfQuantityBound",Q=new WeakSet,F=new Map;function k(e,t=0){const n=String(e??"").trim().replace(/\s+/g,"").replace(",",".");if(""===n)return t;const i=Number(n);return Number.isFinite(i)?i:t}function H(e,t,n){return Number.isFinite(t)&&(e=Math.max(e,t)),Number.isFinite(n)&&(e=Math.min(e,n)),e}function $(e,t=!0){if(null==e||""===e)return t;if("boolean"==typeof e)return e;const n=String(e).toLowerCase();return!["0","false","no","off"].includes(n)&&(!!["1","true","yes","on"].includes(n)||t)}function B(e){const t=String(e??"").trim().toLowerCase();if(!Number.isFinite(Number(t))||Number(t)<=0)return 0;const[n,i="0"]=t.split("e"),a=n.split(".")[1]?.length||0;return Math.max(0,a-Number(i))}function C(e,t){const n=t.dataset.precision??e.dataset.precision??String(B(t.step));return{precision:Math.min(100,Math.max(0,parseInt(n,10)||0)),grouping:$(t.dataset.grouping??e.dataset.grouping,!0),locale:t.dataset.locale??e.dataset.locale??S(t??e)}}function O(e,t,n){return{inputMode:"strict"===(t.dataset.inputMode??e.dataset.inputMode??"soft").toString().toLowerCase()?"strict":"soft",allowNegative:$(t.dataset.allowNegative??e.dataset.allowNegative,!1),allowDecimal:$(t.dataset.allowDecimal??e.dataset.allowDecimal,n.precision>0)}}function T(e,t){const n=P(t?.locale);let i=String(e??"").replace(/[\u061c\u200e\u200f]/g,"");for(const[e,t]of n.digits)i=i.split(e).join(t);i=i.split(n.minus).join("-").replace(/\s+/g,"");const a=n.group.replace(/\s+/g,"");if(a&&a!==n.decimal&&i.includes(a)){const e=i.split(n.decimal),t=e[0].replace(/^-/,"").split(a);e.length<=2&&t.length>1&&t.every(e=>/^\d+$/.test(e))&&t[0].length<=n.secondary&&t.at(-1).length===n.primary&&t.slice(1,-1).every(e=>e.length===n.secondary)&&(i=i.split(a).join(""))}return i.split(n.decimal).join(".")}function A(e,t,n){e=T(e,n).replace(/,/g,".");const{allowNegative:i,allowDecimal:a}=t;return(a?i?/^-?\d*([.,]\d*)?$/:/^\d*([.,]\d*)?$/:i?/^-?\d*$/:/^\d*$/).test(e)}function I(e,t){const n=10**t,i=e*n;return Number.isFinite(i)?Math.round(i)/n:e}function D(e,t){const{precision:n,grouping:i,locale:a}=t;try{return new Intl.NumberFormat(a,{minimumFractionDigits:n,maximumFractionDigits:n,useGrouping:i}).format(e)}catch{return e.toFixed(n)}}function j(e,t=Number.NaN){if(!String(e.value).trim())return t;const n=k(e.dataset.rawValue,Number.NaN);return Number.isFinite(n)?n:k(e.value,t)}function P(e){if(F.has(e))return F.get(e);let t;try{t=new Intl.NumberFormat(e)}catch{t=new Intl.NumberFormat("en-US")}const n=t.formatToParts(-123456789.6),i=n.filter(e=>"integer"===e.type).map(e=>e.value),a={group:n.find(e=>"group"===e.type)?.value||" ",decimal:n.find(e=>"decimal"===e.type)?.value||".",minus:n.find(e=>"minusSign"===e.type)?.value||"-",primary:Array.from(i.at(-1)||"").length||3,secondary:Array.from(i.at(-2)||"").length||3,digits:Array.from({length:10},(e,n)=>[t.format(n),String(n)])};return F.size>=32&&F.delete(F.keys().next().value),F.set(e,a),a}function V(e,t,n=Number.NaN){if(!String(t.value).trim())return n;const i=e.__sfQuantityMask;return i&&"number"==typeof i.typedValue&&Number.isFinite(i.typedValue)?i.typedValue:j(t,n)}async function R(e,t){if(!function(e,t){return $(t.dataset.mask??e.dataset.mask,!1)}(e,t))return;const n={};e.__sfQuantityMaskRequest=n;const i=await function(){const e=()=>window.SF?.Mask?.create?window.SF.Mask:null,t=e();return t?Promise.resolve(t):y||(y=new Promise(t=>{const n=[[window,"sf-mask-ready"],[window,"sf-loader-ready"],[window,"load"],[document,"DOMContentLoaded"]],i=()=>{const a=e();a&&(n.forEach(([e,t])=>e.removeEventListener(t,i)),y=null,t(a))};n.forEach(([e,t])=>e.addEventListener(t,i))}),y)}();if(e.__sfQuantityMaskRequest!==n)return;const a=C(e,t),r=O(e,t,a),s=""===t.min?Number.NaN:k(t.min,Number.NaN),o=""===t.max?Number.NaN:k(t.max,Number.NaN),{group:l,decimal:u}=P(a.locale),c=[".",","].filter(e=>e!==u),d={mask:Number,scale:a.precision,signed:r.allowNegative,normalizeZeros:!0,padFractionalZeros:a.precision>0,thousandsSeparator:l,radix:u,mapToRadix:c};Number.isFinite(s)&&(d.min=s),Number.isFinite(o)&&(d.max=o);try{const r=await i.create(t,d);if(!r)return;if("1"!==e.dataset[M]||e.__sfQuantityMaskRequest!==n||e.querySelector(".sf-quantity-wrap input")!==t)return void i.destroy(r);if(e.__sfQuantityMask=r,!t.value.trim())return r.value="",delete t.dataset.rawValue,void W(e);const o=V(e,t,Number.isFinite(s)?s:0);if(Number.isFinite(o)){const e=I(o,a.precision);r.typedValue=e,t.dataset.rawValue=String(e)}W(e)}catch(e){console.warn("SF.Quantity mask init failed",e)}}function z(e){const t=e.querySelector(".sf-quantity-wrap input");if(!t)return;const n=C(e,t),i=V(e,t,Number.NaN);if(!Number.isFinite(i))return;const a=I(H(i,""===t.min?Number.NaN:k(t.min,Number.NaN),""===t.max?Number.NaN:k(t.max,Number.NaN)),n.precision);t.dataset.rawValue=String(a),e.__sfQuantityMask?e.__sfQuantityMask.typedValue=a:t.value=D(a,n)}function U(e){const t=Array.from(e.querySelectorAll(".sf-quantity-count"));return{minusButton:t[0]||null,plusButton:t[1]||null}}function W(e){const t=e.querySelector(".sf-quantity-wrap input");if(!t)return;const{minusButton:n,plusButton:i}=U(e),a=Boolean(t.disabled||t.readOnly),r=V(e,t,Number.NaN),s=""===t.min?Number.NaN:k(t.min,Number.NaN),o=""===t.max?Number.NaN:k(t.max,Number.NaN),l=(e,n)=>{if(!(e instanceof HTMLButtonElement))return;const i=a||n;!i||e.disabled||a||e.ownerDocument?.activeElement!==e||t.focus({preventScroll:!0}),e.disabled=i};l(n,Number.isFinite(r)&&Number.isFinite(s)&&r<=s),l(i,Number.isFinite(r)&&Number.isFinite(o)&&r>=o)}function K(e,t){const n=e.querySelector(".sf-quantity-wrap input");if(!n||n.disabled||n.readOnly)return;const i=C(e,n),a=k(n.step,1),r=a>0?a:1,s=""===n.min?Number.NaN:k(n.min,Number.NaN),o=""===n.max?Number.NaN:k(n.max,Number.NaN),l=V(e,n,Number.isFinite(s)?s:0),u=I(H(l+r*t,s,o),i.precision);if(u===l)return void W(e);n.dataset.rawValue=String(u),e.__sfQuantityMask?e.__sfQuantityMask.typedValue=u:n.value=D(u,i),W(e);const c=new Event("change",{bubbles:!0});Q.add(c);try{n.dispatchEvent(c)}finally{Q.delete(c)}}function G(e){if(function(e,t){if(e?.classList)for(const[n,i]of Object.entries(c)){const i=`${t}--size-${n}`;e.classList.contains(i)&&e.classList.replace(i,`${t}--size-${f(n,t)}`)}}(e,"sf-quantity"),!e||"1"===e.dataset[M])return;const t=e.querySelector(".sf-quantity-wrap input");if(!t)return;s(e,t,{prefix:"sf-quantity",labelNode:e.querySelector(".sf-quantity-text"),required:t.required||Boolean(e.querySelector(".sf-quantity-required")),invalid:e.classList.contains("error")||t.classList.contains("error")});const{minusButton:n,plusButton:i}=U(e),a=t=>{t.preventDefault(),K(e,-1)},r=t=>{t.preventDefault(),K(e,1)},o=n=>{if(Q.has(n))return;if(!t.value.trim())return delete t.dataset.rawValue,void W(e);const i=C(e,t);if(e.__sfQuantityMask){const n=""===t.min?Number.NaN:k(t.min,Number.NaN),a=Number.isFinite(n)?n:0,r="number"==typeof e.__sfQuantityMask.typedValue?e.__sfQuantityMask.typedValue:Number.NaN,s=I(Number.isFinite(r)?r:k(t.value,V(e,t,a)),i.precision);return t.dataset.rawValue=String(s),void W(e)}const a=O(e,t,i),r=function(e,t,n){const{allowNegative:i,allowDecimal:a}=t;let r=T(e,n).replace(/,/g,".");r=r.replace(/[^0-9.\-]/g,"");const s=i&&r.includes("-");if(r=r.replace(/-/g,""),s&&(r=`-${r}`),a){const e=r.indexOf(".");e>=0&&(r=r.slice(0,e+1)+r.slice(e+1).replace(/\./g,""))}else r=r.replace(/\./g,"");return r}(t.value,a,i),s="change"!==n?.type,o=r.replace(".",P(i.locale).decimal);if(s&&o!==t.value&&(t.value=o),""===r||"-"===r||"."===r||"-."===r)return delete t.dataset.rawValue,void W(e);const l=""===t.min?Number.NaN:k(t.min,Number.NaN),u=Number.isFinite(l)?l:0,c=I(k(r,j(t,u)),i.precision);t.dataset.rawValue=String(c),W(e)},l=()=>{z(e),W(e)},u=n=>{if(t.disabled||t.readOnly)return;const i=C(e,t),a=O(e,t,i);if("strict"===a.inputMode&&"insertText"===n.inputType&&"string"==typeof n.data){const e=t.selectionStart??t.value.length,r=t.selectionEnd??t.value.length;A(t.value.slice(0,e)+n.data+t.value.slice(r),a,i)||n.preventDefault()}},d=n=>{if(t.disabled||t.readOnly)return;const i=C(e,t),a=O(e,t,i);if("strict"!==a.inputMode)return;const r=(n.clipboardData?.getData("text")??"").trim();if(!r||!A(r,a,i))return void n.preventDefault();n.preventDefault();const s=t.selectionStart??t.value.length,o=t.selectionEnd??t.value.length,l=t.value.slice(0,s)+r+t.value.slice(o);A(l,a,i)&&(t.value=l,t.dispatchEvent(new Event("input",{bubbles:!0})))},y=()=>{e.classList.add("sf-quantity--pointer-focus")},g=()=>{e.classList.remove("sf-quantity--pointer-focus")},b=t=>{t.relatedTarget?e.contains(t.relatedTarget)||e.classList.remove("sf-quantity--pointer-focus"):window.setTimeout(()=>{e.contains(document.activeElement)||e.classList.remove("sf-quantity--pointer-focus")},0)};n&&n.addEventListener("click",a),i&&i.addEventListener("click",r),t.addEventListener("input",o),t.addEventListener("change",o),t.addEventListener("blur",l),t.addEventListener("beforeinput",u),t.addEventListener("paste",d),e.addEventListener("pointerdown",y,!0),e.addEventListener("keydown",g,!0),e.addEventListener("focusout",b),e.__sfQuantityMinusHandler=a,e.__sfQuantityPlusHandler=r,e.__sfQuantitySyncHandler=o,e.__sfQuantityBlurHandler=l,e.__sfQuantityBeforeInputHandler=u,e.__sfQuantityPasteHandler=d,e.__sfQuantityPointerFocusHandler=y,e.__sfQuantityKeyboardFocusHandler=g,e.__sfQuantityFocusOutHandler=b,e.__sfQuantityReleaseReset=function(e,t){const n=e.ownerDocument;p.has(n)||(n.addEventListener("reset",e=>{const t=e.target;if("FORM"!==t?.tagName)return;const n=Array.from(t.elements);setTimeout(()=>{if(!e.defaultPrevented)for(const e of n)if(e.isConnected&&e.form===t)for(const t of m.get(e)||[])t()},0)},!0),p.add(n));let i=m.get(e);return i||m.set(e,i=new Set),i.add(t),()=>i.delete(t)}(t,()=>{delete t.dataset.rawValue,e.__sfQuantityMask&&(e.__sfQuantityMask.value=t.value),z(e),W(e)}),e.__sfQuantityControlObserver=new MutationObserver(()=>W(e)),e.__sfQuantityControlObserver.observe(t,{attributes:!0,attributeFilter:["disabled","readonly"]}),e.dataset[M]="1",z(e),W(e),R(e,t)}function Z(e=document){e.querySelectorAll(x).forEach(G)}class J extends e{static componentName="Quantity";html=null;constructor(e){super(e);const{size:t="1",label:n="",required:i=!1,value:a,min:r,max:s,step:o="1",precision:l,grouping:u=!0,locale:c,inputMode:d="soft",allowNegative:m=!1,allowDecimal:p,mask:y=!1,name:g,disabled:b=!1,readonly:w=!1,placeholder:h="",decrementLabel:N=L(E,"decrement",document.documentElement),incrementLabel:v=L(E,"increment",document.documentElement),decrementIcon:_="remove",incrementIcon:S="add"}=this.params||{},q=f(t,"sf-quantity"),x=this.attrs.class||this.attrs.className;this.template=document.createElement("label"),this.id&&(this.template.id=this.id),this.template.classList.add("sf-quantity",`sf-quantity--size-${q}`),x&&this.template.classList.add(...`${x}`.split(" ").filter(Boolean));const M=document.createElement("span");M.classList.add("sf-quantity-label");const Q=document.createElement("span");if(Q.classList.add("sf-quantity-text"),Q.textContent=n,M.append(Q),i){const e=document.createElement("span");e.classList.add("sf-quantity-required"),e.textContent="*",M.append(e)}const F=document.createElement("span");F.classList.add("sf-quantity-wrap");const k=document.createElement("button");k.type="button",k.classList.add("sf-quantity-count","sf-icon-button","sf-icon-button--secondary","sf-icon-button--tonal","sf-icon-button--size-1/3"),k.setAttribute("aria-label",String(N)),k.innerHTML=`<i class="sf-icon">${_}</i>`;const H=document.createElement("input");H.type="text";const $=l??B(o);H.inputMode=p??Number($)>0?"decimal":"numeric";const C=this.attrs.value,O=a??C??"";H.value=String(O),H.defaultValue=String(O),g&&(H.name=g),null!=r&&""!==r&&(H.min=String(r)),null!=s&&""!==s&&(H.max=String(s)),null!=o&&""!==o&&(H.step=String(o)),H.disabled=Boolean(b),H.readOnly=Boolean(w),H.placeholder=String(h),null!=l&&""!==l&&(H.dataset.precision=String(l)),H.dataset.grouping=String(Boolean(u)),c&&(H.dataset.locale=String(c)),H.dataset.inputMode=String(d),H.dataset.allowNegative=String(Boolean(m)),H.dataset.mask=String(Boolean(y)),null!=p&&""!==p&&(H.dataset.allowDecimal=String(Boolean(p)));const T=document.createElement("button");T.type="button",T.classList.add("sf-quantity-count","sf-icon-button","sf-icon-button--secondary","sf-icon-button--tonal","sf-icon-button--size-1/3"),T.setAttribute("aria-label",String(v)),T.innerHTML=`<i class="sf-icon">${S}</i>`,F.append(k,H,T),this.template.append(M,F),this.applyLayoutUtilities(this.template,".sf-quantity"),this.applyLayoutUtilities(M,".sf-quantity .sf-quantity-label"),this.applyLayoutUtilities(F,".sf-quantity .sf-quantity-wrap"),this.applyLayoutUtilities(k,".sf-quantity .sf-quantity-count"),this.applyLayoutUtilities(T,".sf-quantity .sf-quantity-count"),this.applyLayoutUtilities(H,".sf-quantity .sf-quantity-wrap input")}init(){G(this.template)}destroyInternal(){!function(e){if(!e||"1"!==e.dataset[M])return;delete e.__sfQuantityMaskRequest,e.__sfQuantityReleaseReset?.(),delete e.__sfQuantityReleaseReset,e.__sfQuantityControlObserver?.disconnect(),delete e.__sfQuantityControlObserver;const t=e.querySelector(".sf-quantity-wrap input"),{minusButton:n,plusButton:i}=U(e);n&&e.__sfQuantityMinusHandler&&n.removeEventListener("click",e.__sfQuantityMinusHandler),i&&e.__sfQuantityPlusHandler&&i.removeEventListener("click",e.__sfQuantityPlusHandler),t&&e.__sfQuantitySyncHandler&&(t.removeEventListener("input",e.__sfQuantitySyncHandler),t.removeEventListener("change",e.__sfQuantitySyncHandler)),t&&e.__sfQuantityBlurHandler&&t.removeEventListener("blur",e.__sfQuantityBlurHandler),t&&e.__sfQuantityBeforeInputHandler&&t.removeEventListener("beforeinput",e.__sfQuantityBeforeInputHandler),t&&e.__sfQuantityPasteHandler&&t.removeEventListener("paste",e.__sfQuantityPasteHandler),e.__sfQuantityPointerFocusHandler&&e.removeEventListener("pointerdown",e.__sfQuantityPointerFocusHandler,!0),e.__sfQuantityKeyboardFocusHandler&&e.removeEventListener("keydown",e.__sfQuantityKeyboardFocusHandler,!0),e.__sfQuantityFocusOutHandler&&e.removeEventListener("focusout",e.__sfQuantityFocusOutHandler),delete e.__sfQuantityMinusHandler,delete e.__sfQuantityPlusHandler,delete e.__sfQuantitySyncHandler,delete e.__sfQuantityBlurHandler,delete e.__sfQuantityBeforeInputHandler,delete e.__sfQuantityPasteHandler,delete e.__sfQuantityPointerFocusHandler,delete e.__sfQuantityKeyboardFocusHandler,delete e.__sfQuantityFocusOutHandler,e.classList.remove("sf-quantity--pointer-focus"),e.__sfQuantityMask&&(window.SF?.Mask?.destroy?.(e.__sfQuantityMask),delete e.__sfQuantityMask),delete e.dataset[M]}(this.template)}}J.utilityMap=n,t("Quantity",J),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>Z()):Z();new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(x)&&G(e),Z(e))})})}).observe(document.documentElement,{childList:!0,subtree:!0})})();
@@ -1 +1 @@
1
- (()=>{"use strict";class e{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(e){this.props=e,this.id=e?.id,this.params=e?.param,this.attrs=e?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(e){if(!Array.isArray(e))return[];const t=new Set;return e.forEach(e=>{if("string"!=typeof e)return;const r=e.match(/\(([^)]+)\)/g);r&&r.forEach(e=>{e.slice(1,-1).split(/\s+/).filter(Boolean).forEach(e=>{e.startsWith(".")&&e.length>1&&t.add(e.slice(1))})})}),Array.from(t)}applyLayoutUtilities(e,t){if(!e||!t)return;const r=this.getUtilityMap();if(!r||!r[t])return;this.extractUtilityClasses(r[t]).forEach(t=>e.classList.add(t))}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 t=function(e,t){if(e&&t)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(e,t);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([e,t])}}else window.registerSfComponent(e,t)},r=JSON.parse('{".sf-textarea":["display/flex (.flex)","flex-direction/column (.flex-col)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)"],".sf-textarea .sf-textarea-label":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)","align-items/flex-start (.items-start)"],".sf-textarea textarea":[],".sf-textarea .sf-textarea-hint-text-wrap":["flex/1 (.flex-1)","display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-b0)","justify-content/flex-start (.justify-start)","align-items/center (.items-center)"]}');let a=0;const s=new WeakMap;function n(e,{prefix:t="sf-field",required:r=!1,invalid:n=!1,hint:i="",errorMessage:o=""}={}){const l=function(e,t){if(e&&s.has(e))return s.get(e);const r=(e?.id?String(e.id).trim():"")||`${t}-${++a}`,n={controlId:`${r}-control`,messageId:`${r}-message`};return!e||"object"!=typeof e&&"function"!=typeof e||s.set(e,n),n}(e,t),d=Boolean(n),c=d&&o?o:i;return{...l,required:Boolean(r),invalid:d,message:c,describedBy:c?l.messageId:"",errorMessageId:d&&o?l.messageId:""}}function i(e,t,{prefix:r="sf-field",required:a=!1,invalid:s=!1,messageNode:i=null,labelNode:o=null,errorMessage:l=""}={}){if(!e||!t)return null;const d=n(e,{prefix:r,required:a,invalid:s,hint:i?.textContent?.trim()||"",errorMessage:l});var c,f;return t.id||(t.id=d.controlId),"LABEL"!==e.tagName||e.hasAttribute("for")||e.setAttribute("for",t.id),!o?.textContent?.trim()||t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||(o.id||(o.id=`${t.id}-label`),t.setAttribute("aria-labelledby",o.id)),t.required=d.required,e.classList.toggle("error",d.invalid),t.classList.toggle("error",d.invalid),d.invalid?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),i&&(i.id||(i.id=d.messageId),t.setAttribute("aria-describedby",(c=t.getAttribute("aria-describedby"),f=[i.id],[...new Set([...String(c||"").split(/\s+/).filter(Boolean),...f.filter(Boolean)])].join(" ")))),d.errorMessageId&&i?t.setAttribute("aria-errormessage",i.id):t.removeAttribute("aria-errormessage"),d}function o(){const e=globalThis.SF=globalThis.SF||{};return e.__deprecationNotes instanceof Map||Object.defineProperty(e,"__deprecationNotes",{value:new Map,configurable:!0}),e.__deprecationNotes}function l({component:e="",kind:t="attribute",attribute:r="",from:a,to:s=null}={}){if(!a)return;const n=[e,t,r,a].join("|"),i=o(),l=i.get(n);if(l)l.count+=1;else if(i.set(n,{component:e,kind:t,attribute:r,from:a,to:s,count:1}),function(){const e=globalThis.document?.documentElement;return"warn"===e?.dataset?.sfDeprecations||!0===globalThis.SF?.deprecations?.warn}()){const n=e?`${e}: `:"",i="value"===t?`${r}="${a}"`:`${t} ${a}`;globalThis.console?.warn?.(`[Simai Framework] ${n}${i} is a legacy name${s?`; write ${s}`:""}. See contracts/changes/journal.json.`)}}if("undefined"!=typeof globalThis){globalThis.SF=globalThis.SF||{};const e=globalThis.SF.deprecations||{};e.list=function(){return[...o().values()].map(e=>({...e}))},e.clear=function(){o().clear()},e.note=l,globalThis.SF.deprecations=e}const d=Object.freeze(["1/2","1","2"]),c=Object.freeze({"1/3":"1/2",3:"2"}),f=new Set;function u(e,t="field",r="1"){const a=String(e??"").trim().toLowerCase();if(d.includes(a))return a;if(Object.hasOwn(c,a)){const e=c[a];l({component:t,kind:"value",attribute:"size",from:a,to:e});const r=`${t}:${a}`;return f.has(r)||"undefined"==typeof console||(f.add(r),console.warn(`[Simai Framework] ${t}: size ${a} is retired for form fields; rendering size ${e}.`)),e}return r}const p=new WeakMap,m=new WeakSet;let h=null;const x="label.sf-textarea",w="sfTextareaBound",g=new Set(["bordered","filled"]),y=new Set(["","none","text","tel","url","email","numeric","decimal","search"]),b=new Set(["soft","hard"]);function S(e){if(""===e||null==e)return null;const t=Number(e);return Number.isInteger(t)&&t>=0?t:null}function v(e,t=!1){return null==e||""===e?t:"boolean"==typeof e?e:["1","true","yes","on"].includes(String(e).toLowerCase())}function _(e){return e?.querySelector?.("textarea")||null}function L(e){return e?.querySelector?.(".sf-textarea-hint-text-wrap")||null}function T(e){const t=L(e);return{messageNode:t,errorMessage:"error"===t?.dataset.fieldMessage&&t.textContent?.trim()||""}}function E(e){if(!e||"string"!=typeof e)return null;const t=e.trim();if(!t)return null;try{const e=JSON.parse(t);return e&&"object"==typeof e?e:null}catch{return null}}async function M(e,t){const r=function(e,t){if(!v(t.dataset.mask??e.dataset.mask,!1))return null;const r=E(t.dataset.maskOptions),a=E(e.dataset.maskOptions);if(r)return r;if(a)return a;const s=t.dataset.maskPattern??e.dataset.maskPattern;return s?{mask:String(s)}:null}(e,t);if(!r)return;const a={};e.__sfTextareaMaskRequest=a;try{const s=await function(){const e=()=>window.SF?.Mask?.create?window.SF.Mask:null,t=e();return t?Promise.resolve(t):h||(h=new Promise(t=>{const r=[[window,"sf-mask-ready"],[window,"sf-loader-ready"],[window,"load"],[document,"DOMContentLoaded"]],a=()=>{const s=e();s&&(r.forEach(([e,t])=>e.removeEventListener(t,a)),h=null,t(s))};r.forEach(([e,t])=>e.addEventListener(t,a))}),h)}();if(e.__sfTextareaMaskRequest!==a)return;const n=await s.create(t,r);if(!n)return;if("1"!==e.dataset[w]||e.__sfTextareaMaskRequest!==a||_(e)!==t)return void s.destroy(n);e.__sfTextareaMask=n}catch(e){console.warn("SF.Textarea mask init failed",e)}}function k(e){if(function(e,t){if(e?.classList)for(const[r,a]of Object.entries(c)){const a=`${t}--size-${r}`;e.classList.contains(a)&&e.classList.replace(a,`${t}--size-${u(r,t)}`)}}(e,"sf-textarea"),!e||"1"===e.dataset[w])return;const t=_(e);if(!t)return;const r=()=>{},a=()=>e.classList.add("sf-textarea--pointer-focus"),s=()=>e.classList.remove("sf-textarea--pointer-focus");t.addEventListener("input",r),t.addEventListener("pointerdown",a),t.addEventListener("blur",s),e.__sfTextareaNoopHandler=r,e.__sfTextareaPointerFocusHandler=a,e.__sfTextareaBlurHandler=s,e.dataset[w]="1";const n=T(e);i(e,t,{prefix:"sf-textarea",labelNode:e.querySelector(".sf-textarea-text"),required:t.required||Boolean(e.querySelector(".sf-textarea-required")),invalid:e.classList.contains("error")||t.classList.contains("error"),...n}),e.__sfTextareaReleaseReset=function(e,t){const r=e.ownerDocument;m.has(r)||(r.addEventListener("reset",e=>{const t=e.target;if("FORM"!==t?.tagName)return;const r=Array.from(t.elements);setTimeout(()=>{if(!e.defaultPrevented)for(const e of r)if(e.isConnected&&e.form===t)for(const t of p.get(e)||[])t()},0)},!0),m.add(r));let a=p.get(e);return a||p.set(e,a=new Set),a.add(t),()=>a.delete(t)}(t,()=>{e.__sfTextareaMask&&(e.__sfTextareaMask.value=t.value)}),M(e,t)}function N(e=document){e.querySelectorAll(x).forEach(k)}class O extends e{static componentName="Textarea";html=null;constructor(e){super(e);const{size:t="1",type:r="bordered",label:a="",required:s=!1,placeholder:n="",autocomplete:i="",inputMode:o="",minLength:l="",maxLength:d="",spellcheck:c=!0,wrap:f="soft",hint:p="",value:m="",name:h="",rows:x=3,disabled:w=!1,readonly:_=!1,error:L=!1,invalid:T=!1,errorMessage:E="",mask:M=!1,maskOptions:k,maskPattern:N}=this.params||{},O=this.attrs.class||this.attrs.className,$=u(t,"sf-textarea"),F=function(e,t,r){const a=String(e||r);return t.has(a)?a:r}(r,g,"bordered");this.template=document.createElement("label"),this.id&&(this.template.id=this.id),this.template.classList.add("sf-textarea",`sf-textarea--size-${$}`,`sf-textarea--${F}`),this.template.classList.toggle("error",v(T||L,!1)),O&&this.template.classList.add(...`${O}`.split(" ").filter(Boolean));const q=document.createElement("span");q.classList.add("sf-textarea-label");const C=document.createElement("span");if(C.classList.add("sf-textarea-text"),C.textContent=String(a),q.append(C),v(s,!0)){const e=document.createElement("span");e.classList.add("sf-textarea-required"),e.textContent="*",q.append(e)}const j=document.createElement("textarea");j.placeholder=String(n??""),i&&(j.autocomplete=String(i)),j.inputMode=function(e){const t=String(e||"").toLowerCase();return y.has(t)?t:""}(o);const P=S(l),A=S(d);null!==P&&(j.minLength=P),null!==A&&(j.maxLength=A),j.spellcheck=v(c,!0),j.wrap=function(e){const t=String(e||"soft").toLowerCase();return b.has(t)?t:"soft"}(f),j.value=String(m??""),j.defaultValue=String(m??""),j.rows=Number(x)>0?Number(x):3,h&&(j.name=String(h)),j.disabled=v(w,!1),j.readOnly=v(_,!1),j.required=v(s,!0),j.classList.toggle("error",v(T||L,!1)),j.dataset.mask=String(Boolean(M)),N&&(j.dataset.maskPattern=String(N)),k&&"object"==typeof k&&(j.dataset.maskOptions=JSON.stringify(k)),this.template.append(q,j);const B=v(T||L,!1)&&E?E:p;if(B){const e=document.createElement("span");e.classList.add("sf-textarea-hint-text-wrap"),e.textContent=String(B),e.dataset.fieldMessage=v(T||L,!1)&&E?"error":"hint",this.template.append(e)}this.applyLayoutUtilities(this.template,".sf-textarea"),this.applyLayoutUtilities(q,".sf-textarea .sf-textarea-label"),this.applyLayoutUtilities(j,".sf-textarea textarea")}init(){k(this.template)}destroyInternal(){!function(e){if(!e||"1"!==e.dataset[w])return;delete e.__sfTextareaMaskRequest;const t=_(e);t&&e.__sfTextareaNoopHandler&&t.removeEventListener("input",e.__sfTextareaNoopHandler),t&&e.__sfTextareaPointerFocusHandler&&t.removeEventListener("pointerdown",e.__sfTextareaPointerFocusHandler),t&&e.__sfTextareaBlurHandler&&t.removeEventListener("blur",e.__sfTextareaBlurHandler),e.__sfTextareaMask&&window.SF?.Mask?.destroy?.(e.__sfTextareaMask),e.__sfTextareaReleaseReset?.(),delete e.__sfTextareaReleaseReset,delete e.__sfTextareaMask,delete e.__sfTextareaNoopHandler,delete e.__sfTextareaPointerFocusHandler,delete e.__sfTextareaBlurHandler,e.classList.remove("sf-textarea--pointer-focus"),delete e.dataset[w]}(this.template)}}O.utilityMap=r,t("Textarea",O),"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.Textarea=window.SF.Textarea||{},window.SF.Textarea.setState=function(e,t={}){const r=e instanceof HTMLElement?e.closest(x)||e:null;if(!r)return!1;const a=_(r);if(!a)return!1;if(Object.prototype.hasOwnProperty.call(t,"disabled")&&(a.disabled=v(t.disabled)),Object.prototype.hasOwnProperty.call(t,"error")){const e=v(t.error);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"invalid")){const e=v(t.invalid);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"errorMessage")){const e=String(t.errorMessage??""),s=e?function(e){const t=L(e);if(t)return t;const r=document.createElement("span");return r.classList.add("sf-textarea-hint-text-wrap"),e.append(r),r}(r):L(r);if(s){s.textContent=e;const t=r.classList.contains("error")||a.classList.contains("error");s.dataset.fieldMessage=e&&t?"error":"hint"}}return Object.prototype.hasOwnProperty.call(t,"value")&&(a.value=String(t.value??""),a.dispatchEvent(new Event("input",{bubbles:!0}))),i(r,a,{prefix:"sf-textarea",labelNode:r.querySelector(".sf-textarea-text"),required:a.required||Boolean(r.querySelector(".sf-textarea-required")),invalid:r.classList.contains("error")||a.classList.contains("error"),...T(r)}),!0}),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>N()):N();new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(x)&&k(e),N(e))})})}).observe(document.documentElement,{childList:!0,subtree:!0})})();
1
+ (()=>{"use strict";class e{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(e){this.props=e,this.id=e?.id,this.params=e?.param,this.attrs=e?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(e){if(!Array.isArray(e))return[];const t=new Set;return e.forEach(e=>{if("string"!=typeof e)return;const r=e.match(/\(([^)]+)\)/g);r&&r.forEach(e=>{e.slice(1,-1).split(/\s+/).filter(Boolean).forEach(e=>{e.startsWith(".")&&e.length>1&&t.add(e.slice(1))})})}),Array.from(t)}applyLayoutUtilities(e,t){if(!e||!t)return;const r=this.getUtilityMap();if(!r||!r[t])return;this.extractUtilityClasses(r[t]).forEach(t=>e.classList.add(t))}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 t=function(e,t){if(e&&t)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(e,t);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([e,t])}}else window.registerSfComponent(e,t)},r=JSON.parse('{".sf-textarea":["display/flex (.flex)","flex-direction/column (.flex-col)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)"],".sf-textarea .sf-textarea-label":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)","align-items/flex-start (.items-start)"],".sf-textarea textarea":[],".sf-textarea .sf-textarea-hint-text-wrap":["flex/1 (.flex-1)","display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-b0)","justify-content/flex-start (.justify-start)","align-items/center (.items-center)"]}');let a=0;const s=new WeakMap;function n(e,{prefix:t="sf-field",required:r=!1,invalid:n=!1,hint:i="",errorMessage:o=""}={}){const l=function(e,t){if(e&&s.has(e))return s.get(e);const r=(e?.id?String(e.id).trim():"")||`${t}-${++a}`,n={controlId:`${r}-control`,messageId:`${r}-message`};return!e||"object"!=typeof e&&"function"!=typeof e||s.set(e,n),n}(e,t),d=Boolean(n),c=d&&o?o:i;return{...l,required:Boolean(r),invalid:d,message:c,describedBy:c?l.messageId:"",errorMessageId:d&&o?l.messageId:""}}function i(e,t,{prefix:r="sf-field",required:a=!1,invalid:s=!1,messageNode:i=null,labelNode:o=null,errorMessage:l=""}={}){if(!e||!t)return null;const d=n(e,{prefix:r,required:a,invalid:s,hint:i?.textContent?.trim()||"",errorMessage:l});var c,f;return t.id||(t.id=d.controlId),"LABEL"!==e.tagName||e.hasAttribute("for")||e.setAttribute("for",t.id),!o?.textContent?.trim()||t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||(o.id||(o.id=`${t.id}-label`),t.setAttribute("aria-labelledby",o.id)),t.required=d.required,e.classList.toggle("error",d.invalid),t.classList.toggle("error",d.invalid),d.invalid?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),i&&(i.id||(i.id=d.messageId),t.setAttribute("aria-describedby",(c=t.getAttribute("aria-describedby"),f=[i.id],[...new Set([...String(c||"").split(/\s+/).filter(Boolean),...f.filter(Boolean)])].join(" ")))),d.errorMessageId&&i?t.setAttribute("aria-errormessage",i.id):t.removeAttribute("aria-errormessage"),d}function o(){const e=globalThis.SF=globalThis.SF||{};return e.__deprecationNotes instanceof Map||Object.defineProperty(e,"__deprecationNotes",{value:new Map,configurable:!0}),e.__deprecationNotes}function l({component:e="",kind:t="attribute",attribute:r="",from:a,to:s=null}={}){if(!a)return;const n=[e,t,r,a].join("|"),i=o(),l=i.get(n);if(l)l.count+=1;else if(i.set(n,{component:e,kind:t,attribute:r,from:a,to:s,count:1}),function(){const e=globalThis.document?.documentElement;return"warn"===e?.dataset?.sfDeprecations||!0===globalThis.SF?.deprecations?.warn}()){const n=e?`${e}: `:"",i="value"===t?`${r}="${a}"`:`${t} ${a}`;globalThis.console?.warn?.(`[SIMAI Framework] ${n}${i} is a legacy name${s?`; write ${s}`:""}. See contracts/changes/journal.json.`)}}if("undefined"!=typeof globalThis){globalThis.SF=globalThis.SF||{};const e=globalThis.SF.deprecations||{};e.list=function(){return[...o().values()].map(e=>({...e}))},e.clear=function(){o().clear()},e.note=l,globalThis.SF.deprecations=e}const d=Object.freeze(["1/2","1","2"]),c=Object.freeze({"1/3":"1/2",3:"2"}),f=new Set;function u(e,t="field",r="1"){const a=String(e??"").trim().toLowerCase();if(d.includes(a))return a;if(Object.hasOwn(c,a)){const e=c[a];l({component:t,kind:"value",attribute:"size",from:a,to:e});const r=`${t}:${a}`;return f.has(r)||"undefined"==typeof console||(f.add(r),console.warn(`[SIMAI Framework] ${t}: size ${a} is retired for form fields; rendering size ${e}.`)),e}return r}const p=new WeakMap,m=new WeakSet;let h=null;const x="label.sf-textarea",w="sfTextareaBound",g=new Set(["bordered","filled"]),y=new Set(["","none","text","tel","url","email","numeric","decimal","search"]),b=new Set(["soft","hard"]);function S(e){if(""===e||null==e)return null;const t=Number(e);return Number.isInteger(t)&&t>=0?t:null}function v(e,t=!1){return null==e||""===e?t:"boolean"==typeof e?e:["1","true","yes","on"].includes(String(e).toLowerCase())}function _(e){return e?.querySelector?.("textarea")||null}function L(e){return e?.querySelector?.(".sf-textarea-hint-text-wrap")||null}function T(e){const t=L(e);return{messageNode:t,errorMessage:"error"===t?.dataset.fieldMessage&&t.textContent?.trim()||""}}function M(e){if(!e||"string"!=typeof e)return null;const t=e.trim();if(!t)return null;try{const e=JSON.parse(t);return e&&"object"==typeof e?e:null}catch{return null}}async function E(e,t){const r=function(e,t){if(!v(t.dataset.mask??e.dataset.mask,!1))return null;const r=M(t.dataset.maskOptions),a=M(e.dataset.maskOptions);if(r)return r;if(a)return a;const s=t.dataset.maskPattern??e.dataset.maskPattern;return s?{mask:String(s)}:null}(e,t);if(!r)return;const a={};e.__sfTextareaMaskRequest=a;try{const s=await function(){const e=()=>window.SF?.Mask?.create?window.SF.Mask:null,t=e();return t?Promise.resolve(t):h||(h=new Promise(t=>{const r=[[window,"sf-mask-ready"],[window,"sf-loader-ready"],[window,"load"],[document,"DOMContentLoaded"]],a=()=>{const s=e();s&&(r.forEach(([e,t])=>e.removeEventListener(t,a)),h=null,t(s))};r.forEach(([e,t])=>e.addEventListener(t,a))}),h)}();if(e.__sfTextareaMaskRequest!==a)return;const n=await s.create(t,r);if(!n)return;if("1"!==e.dataset[w]||e.__sfTextareaMaskRequest!==a||_(e)!==t)return void s.destroy(n);e.__sfTextareaMask=n}catch(e){console.warn("SF.Textarea mask init failed",e)}}function k(e){if(function(e,t){if(e?.classList)for(const[r,a]of Object.entries(c)){const a=`${t}--size-${r}`;e.classList.contains(a)&&e.classList.replace(a,`${t}--size-${u(r,t)}`)}}(e,"sf-textarea"),!e||"1"===e.dataset[w])return;const t=_(e);if(!t)return;const r=()=>{},a=()=>e.classList.add("sf-textarea--pointer-focus"),s=()=>e.classList.remove("sf-textarea--pointer-focus");t.addEventListener("input",r),t.addEventListener("pointerdown",a),t.addEventListener("blur",s),e.__sfTextareaNoopHandler=r,e.__sfTextareaPointerFocusHandler=a,e.__sfTextareaBlurHandler=s,e.dataset[w]="1";const n=T(e);i(e,t,{prefix:"sf-textarea",labelNode:e.querySelector(".sf-textarea-text"),required:t.required||Boolean(e.querySelector(".sf-textarea-required")),invalid:e.classList.contains("error")||t.classList.contains("error"),...n}),e.__sfTextareaReleaseReset=function(e,t){const r=e.ownerDocument;m.has(r)||(r.addEventListener("reset",e=>{const t=e.target;if("FORM"!==t?.tagName)return;const r=Array.from(t.elements);setTimeout(()=>{if(!e.defaultPrevented)for(const e of r)if(e.isConnected&&e.form===t)for(const t of p.get(e)||[])t()},0)},!0),m.add(r));let a=p.get(e);return a||p.set(e,a=new Set),a.add(t),()=>a.delete(t)}(t,()=>{e.__sfTextareaMask&&(e.__sfTextareaMask.value=t.value)}),E(e,t)}function N(e=document){e.querySelectorAll(x).forEach(k)}class O extends e{static componentName="Textarea";html=null;constructor(e){super(e);const{size:t="1",type:r="bordered",label:a="",required:s=!1,placeholder:n="",autocomplete:i="",inputMode:o="",minLength:l="",maxLength:d="",spellcheck:c=!0,wrap:f="soft",hint:p="",value:m="",name:h="",rows:x=3,disabled:w=!1,readonly:_=!1,error:L=!1,invalid:T=!1,errorMessage:M="",mask:E=!1,maskOptions:k,maskPattern:N}=this.params||{},O=this.attrs.class||this.attrs.className,$=u(t,"sf-textarea"),F=function(e,t,r){const a=String(e||r);return t.has(a)?a:r}(r,g,"bordered");this.template=document.createElement("label"),this.id&&(this.template.id=this.id),this.template.classList.add("sf-textarea",`sf-textarea--size-${$}`,`sf-textarea--${F}`),this.template.classList.toggle("error",v(T||L,!1)),O&&this.template.classList.add(...`${O}`.split(" ").filter(Boolean));const q=document.createElement("span");q.classList.add("sf-textarea-label");const C=document.createElement("span");if(C.classList.add("sf-textarea-text"),C.textContent=String(a),q.append(C),v(s,!0)){const e=document.createElement("span");e.classList.add("sf-textarea-required"),e.textContent="*",q.append(e)}const j=document.createElement("textarea");j.placeholder=String(n??""),i&&(j.autocomplete=String(i)),j.inputMode=function(e){const t=String(e||"").toLowerCase();return y.has(t)?t:""}(o);const P=S(l),A=S(d);null!==P&&(j.minLength=P),null!==A&&(j.maxLength=A),j.spellcheck=v(c,!0),j.wrap=function(e){const t=String(e||"soft").toLowerCase();return b.has(t)?t:"soft"}(f),j.value=String(m??""),j.defaultValue=String(m??""),j.rows=Number(x)>0?Number(x):3,h&&(j.name=String(h)),j.disabled=v(w,!1),j.readOnly=v(_,!1),j.required=v(s,!0),j.classList.toggle("error",v(T||L,!1)),j.dataset.mask=String(Boolean(E)),N&&(j.dataset.maskPattern=String(N)),k&&"object"==typeof k&&(j.dataset.maskOptions=JSON.stringify(k)),this.template.append(q,j);const I=v(T||L,!1)&&M?M:p;if(I){const e=document.createElement("span");e.classList.add("sf-textarea-hint-text-wrap"),e.textContent=String(I),e.dataset.fieldMessage=v(T||L,!1)&&M?"error":"hint",this.template.append(e)}this.applyLayoutUtilities(this.template,".sf-textarea"),this.applyLayoutUtilities(q,".sf-textarea .sf-textarea-label"),this.applyLayoutUtilities(j,".sf-textarea textarea")}init(){k(this.template)}destroyInternal(){!function(e){if(!e||"1"!==e.dataset[w])return;delete e.__sfTextareaMaskRequest;const t=_(e);t&&e.__sfTextareaNoopHandler&&t.removeEventListener("input",e.__sfTextareaNoopHandler),t&&e.__sfTextareaPointerFocusHandler&&t.removeEventListener("pointerdown",e.__sfTextareaPointerFocusHandler),t&&e.__sfTextareaBlurHandler&&t.removeEventListener("blur",e.__sfTextareaBlurHandler),e.__sfTextareaMask&&window.SF?.Mask?.destroy?.(e.__sfTextareaMask),e.__sfTextareaReleaseReset?.(),delete e.__sfTextareaReleaseReset,delete e.__sfTextareaMask,delete e.__sfTextareaNoopHandler,delete e.__sfTextareaPointerFocusHandler,delete e.__sfTextareaBlurHandler,e.classList.remove("sf-textarea--pointer-focus"),delete e.dataset[w]}(this.template)}}O.utilityMap=r,t("Textarea",O),"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.Textarea=window.SF.Textarea||{},window.SF.Textarea.setState=function(e,t={}){const r=e instanceof HTMLElement?e.closest(x)||e:null;if(!r)return!1;const a=_(r);if(!a)return!1;if(Object.prototype.hasOwnProperty.call(t,"disabled")&&(a.disabled=v(t.disabled)),Object.prototype.hasOwnProperty.call(t,"error")){const e=v(t.error);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"invalid")){const e=v(t.invalid);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"errorMessage")){const e=String(t.errorMessage??""),s=e?function(e){const t=L(e);if(t)return t;const r=document.createElement("span");return r.classList.add("sf-textarea-hint-text-wrap"),e.append(r),r}(r):L(r);if(s){s.textContent=e;const t=r.classList.contains("error")||a.classList.contains("error");s.dataset.fieldMessage=e&&t?"error":"hint"}}return Object.prototype.hasOwnProperty.call(t,"value")&&(a.value=String(t.value??""),a.dispatchEvent(new Event("input",{bubbles:!0}))),i(r,a,{prefix:"sf-textarea",labelNode:r.querySelector(".sf-textarea-text"),required:a.required||Boolean(r.querySelector(".sf-textarea-required")),invalid:r.classList.contains("error")||a.classList.contains("error"),...T(r)}),!0}),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>N()):N();new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(x)&&k(e),N(e))})})}).observe(document.documentElement,{childList:!0,subtree:!0})})();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://simai.io/schema/vertical-sizing-contract-v1.json",
4
- "title": "Simai Framework vertical adaptive sizing contract",
4
+ "title": "SIMAI Framework vertical adaptive sizing contract",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
7
  "required": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://simai.io/contracts/composite-host-port.v1.schema.json",
4
- "title": "Simai Composite Host Port v1",
4
+ "title": "SIMAI Composite Host Port v1",
5
5
  "x-simai-version": "1.1.0",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://simai.io/contracts/composition-document.v1.schema.json",
4
- "title": "Simai Composition Document v1",
4
+ "title": "SIMAI Composition Document v1",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
7
  "required": ["schema", "id", "profile", "root"],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://simai.io/contracts/composition-editor-field-kind.v1.schema.json",
4
- "title": "Simai Composition Editor Field Kind v1",
4
+ "title": "SIMAI Composition Editor Field Kind v1",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
7
  "required": ["schema", "kind", "version", "status", "match", "value_schema", "default", "constraints", "normalization", "validation", "accessibility", "themes", "localization", "server_fallback"],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://simai.io/contracts/composition-editor-manifest.v1.schema.json",
4
- "title": "Simai Composition Editor Manifest v1",
4
+ "title": "SIMAI Composition Editor Manifest v1",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
7
  "required": ["schema", "type", "type_version", "fields"],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://simai.io/contracts/composition-port-manifest.v1.schema.json",
4
- "title": "Simai Composition Port Manifest v1",
4
+ "title": "SIMAI Composition Port Manifest v1",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
7
  "required": ["schema", "element", "version", "component", "component_version", "outputs", "inputs"],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://simai.io/contracts/composition-type-manifest.v1.schema.json",
4
- "title": "Simai Composition Type Manifest v1",
4
+ "title": "SIMAI Composition Type Manifest v1",
5
5
  "x-simai-version": "1.2.0",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
@@ -103,6 +103,7 @@
103
103
  "mountWindows",
104
104
  "loadEffect",
105
105
  "placeEffect",
106
+ "EFFECT_FORMAT",
106
107
  "EFFECT_SCHEMA",
107
108
  "SANDBOX_RUNNER_SHA256"
108
109
  ]
@@ -1069,6 +1069,17 @@
1069
1069
  "size"
1070
1070
  ]
1071
1071
  },
1072
+ {
1073
+ "name": "--sf-button-group-radius",
1074
+ "role": "radius",
1075
+ "summary": "The corner radius of a segment and the plate under the selected one, a button-sized control; the track takes it plus the padding, so the corners stay concentric. The radius attribute, when set, wins.",
1076
+ "default": "var(--sf-button-radius, var(--sf-radius--ui))",
1077
+ "since": "2026-10-19",
1078
+ "varies_with": [
1079
+ "appearance",
1080
+ "size"
1081
+ ]
1082
+ },
1072
1083
  {
1073
1084
  "name": "--sf-button-group-color",
1074
1085
  "role": "color",
@@ -169,6 +169,17 @@
169
169
  .theme-dark {
170
170
  color-scheme: dark;
171
171
  }
172
+ /* An effect area or window card takes the theme its effect is drawn in
173
+ (SF.Effects, area-takes-the-drawn-theme). The class changes the tokens,
174
+ but the text keeps the colour it inherited from the page, so a light page
175
+ left dark text over a dark scene; the area takes its theme's ink. In
176
+ sf.base, so a colour utility on the area still wins. */
177
+ .sf-effect-area.theme-dark {
178
+ color: var(--sf-on-surface);
179
+ }
180
+ .sf-effect-area.theme-light {
181
+ color: var(--sf-on-surface);
182
+ }
172
183
  .theme-light,
173
184
  .theme-dark {
174
185
  --sf-neutral: light-dark(var(--sf-neutral-40), var(--sf-neutral-80));