@haiilo/catalyst 10.28.2 → 10.30.0

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 (74) hide show
  1. package/dist/catalyst/catalyst.css +3 -1
  2. package/dist/catalyst/catalyst.esm.js +1 -1
  3. package/dist/catalyst/catalyst.esm.js.map +1 -1
  4. package/dist/catalyst/index.esm.js +1 -1
  5. package/dist/catalyst/p-41a50f19.entry.js +10 -0
  6. package/dist/catalyst/p-41a50f19.entry.js.map +1 -0
  7. package/dist/catalyst/{p-e5aee21d.js → p-9500d6fb.js} +1 -1
  8. package/dist/catalyst/{p-e5aee21d.js.map → p-9500d6fb.js.map} +1 -1
  9. package/dist/catalyst/scss/core/_notification.scss +4 -1
  10. package/dist/catalyst/scss/utils/_elevation.mixins.scss +8 -2
  11. package/dist/cjs/cat-alert_30.cjs.entry.js +274 -180
  12. package/dist/cjs/cat-alert_30.cjs.entry.js.map +1 -1
  13. package/dist/cjs/catalyst.cjs.js +1 -1
  14. package/dist/cjs/index.cjs.js +1 -1
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/{of-aaee31a6.js → of-958251e4.js} +1 -1
  17. package/dist/cjs/{of-aaee31a6.js.map → of-958251e4.js.map} +1 -1
  18. package/dist/collection/components/cat-button/cat-button.css +1 -1
  19. package/dist/collection/components/cat-date/cat-date.js +8 -7
  20. package/dist/collection/components/cat-date/cat-date.js.map +1 -1
  21. package/dist/collection/components/cat-date-inline/cat-date-inline.js +10 -8
  22. package/dist/collection/components/cat-date-inline/cat-date-inline.js.map +1 -1
  23. package/dist/collection/components/cat-date-inline/cat-date-locale.js +2 -4
  24. package/dist/collection/components/cat-date-inline/cat-date-locale.js.map +1 -1
  25. package/dist/collection/components/cat-datepicker/cat-datepicker.js +9 -8
  26. package/dist/collection/components/cat-datepicker/cat-datepicker.js.map +1 -1
  27. package/dist/collection/components/cat-dropdown/cat-dropdown.js +1 -1
  28. package/dist/collection/components/cat-input/cat-input.js +8 -4
  29. package/dist/collection/components/cat-input/cat-input.js.map +1 -1
  30. package/dist/collection/components/cat-select/cat-select.js +1 -1
  31. package/dist/collection/components/cat-textarea/cat-textarea.js +25 -3
  32. package/dist/collection/components/cat-textarea/cat-textarea.js.map +1 -1
  33. package/dist/collection/components/cat-time/cat-time.js +8 -7
  34. package/dist/collection/components/cat-time/cat-time.js.map +1 -1
  35. package/dist/collection/components/cat-tooltip/cat-tooltip.css +18 -9
  36. package/dist/collection/scss/core/_notification.scss +4 -1
  37. package/dist/collection/scss/utils/_elevation.mixins.scss +8 -2
  38. package/dist/components/cat-button2.js +1 -1
  39. package/dist/components/cat-button2.js.map +1 -1
  40. package/dist/components/cat-date-inline2.js +12 -12
  41. package/dist/components/cat-date-inline2.js.map +1 -1
  42. package/dist/components/cat-date.js +3 -3
  43. package/dist/components/cat-date.js.map +1 -1
  44. package/dist/components/cat-datepicker.js +4 -4
  45. package/dist/components/cat-datepicker.js.map +1 -1
  46. package/dist/components/cat-dropdown2.js +169 -118
  47. package/dist/components/cat-dropdown2.js.map +1 -1
  48. package/dist/components/cat-input2.js +7 -4
  49. package/dist/components/cat-input2.js.map +1 -1
  50. package/dist/components/cat-textarea.js +8 -3
  51. package/dist/components/cat-textarea.js.map +1 -1
  52. package/dist/components/cat-time.js +3 -3
  53. package/dist/components/cat-time.js.map +1 -1
  54. package/dist/components/cat-tooltip.js +1 -1
  55. package/dist/components/cat-tooltip.js.map +1 -1
  56. package/dist/components/floating-ui.dom.esm.js +67 -29
  57. package/dist/components/floating-ui.dom.esm.js.map +1 -1
  58. package/dist/components/loglevel.js.map +1 -1
  59. package/dist/esm/cat-alert_30.entry.js +274 -180
  60. package/dist/esm/cat-alert_30.entry.js.map +1 -1
  61. package/dist/esm/catalyst.js +1 -1
  62. package/dist/esm/index.js +2 -2
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/{of-acb1f3a9.js → of-e4ec2eb4.js} +1 -1
  65. package/dist/esm/{of-acb1f3a9.js.map → of-e4ec2eb4.js.map} +1 -1
  66. package/dist/types/components/cat-date/cat-date.d.ts +1 -1
  67. package/dist/types/components/cat-datepicker/cat-datepicker.d.ts +1 -1
  68. package/dist/types/components/cat-input/cat-input.d.ts +2 -0
  69. package/dist/types/components/cat-textarea/cat-textarea.d.ts +6 -0
  70. package/dist/types/components/cat-time/cat-time.d.ts +1 -1
  71. package/dist/types/components.d.ts +11 -3
  72. package/package.json +8 -8
  73. package/dist/catalyst/p-ee89e395.entry.js +0 -10
  74. package/dist/catalyst/p-ee89e395.entry.js.map +0 -1
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-0c9af7fb.js');
6
- const of = require('./of-aaee31a6.js');
6
+ const of = require('./of-958251e4.js');
7
7
 
8
8
  const ObjectUnsubscribedError = of.createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {
9
9
  _super(this);
@@ -1106,7 +1106,7 @@ function findClosest(selector, element) {
1106
1106
  return nextElement ? findClosest(selector, nextElement) : null;
1107
1107
  }
1108
1108
 
1109
- const catButtonCss = ":host{display:inline-block;max-width:100%;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}:host([data-button-group=middle]),:host([data-button-group=last]){margin-left:-1px}.cat-button{position:relative;font:inherit;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--cat-border-radius-m, 0.25rem);text-decoration:none;width:100%;box-sizing:border-box;cursor:pointer;transition:color 125ms linear, border-color 125ms linear, background-color 125ms linear, box-shadow 125ms linear}.cat-button:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.cat-button-content{display:flex;flex-direction:column;min-width:0}.cat-button-empty .cat-button-content{display:none}.cat-button-content-inner{word-wrap:break-word;word-break:break-word}.cat-button-ellipsed .cat-button-content-inner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.cat-button-disabled{cursor:not-allowed}.cat-button-round{border-radius:10rem}.cat-button-loading{cursor:default}.cat-button-loading cat-spinner{position:absolute}.cat-button-loading>*:not(cat-spinner){visibility:hidden}.cat-button-group-first{border-top-right-radius:0;border-bottom-right-radius:0}.cat-button-group-middle{border-radius:0}.cat-button-group-last{border-top-left-radius:0;border-bottom-left-radius:0}.cat-button-group:hover{z-index:1}.cat-button-group:focus-visible{z-index:2}.cat-button-filled{background-color:rgb(var(--bg));color:rgb(var(--fill));font-weight:var(--cat-font-weight-button, 600);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}.cat-button-filled.cat-button-disabled{--bg:242, 244, 247;--fill:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-outlined{background-color:white;box-shadow:inset 0 0 0 1px color-mix(in srgb, rgb(var(--base)) 20%, #fff);color:rgb(var(--text))}.cat-button-outlined.cat-button-disabled{--base:var(--cat-font-color-muted, 81, 92, 108);--text:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-outlined:hover:not(.cat-button-disabled):not(.cat-button-loading){background-color:color-mix(in srgb, rgb(var(--base)) 10%, #fff)}.cat-button-outlined.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){background-color:color-mix(in srgb, rgb(var(--base)) 10%, #fff)}.cat-button-outlined:active:not(.cat-button-disabled):not(.cat-button-loading){background-color:color-mix(in srgb, rgb(var(--base)) 10%, #fff)}.cat-button-text{background-color:transparent;color:rgb(var(--text));text-decoration:var(--cat-link-button-decoration, none)}.cat-button-text.cat-button-disabled{--text:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-text:hover:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.cat-button-text.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.cat-button-link{background-color:transparent;color:rgb(var(--text))}.cat-button-link.cat-button-disabled{--text:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-link:hover:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-decoration-hover, underline)}.cat-button-link.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-decoration-hover, underline)}.cat-button-primary{--bg:var(--cat-primary-bg, 0, 129, 148);--fill:var(--cat-primary-fill, 255, 255, 255);--text:var(--cat-primary-text, 0, 129, 148);--base:var(--cat-primary-text, 0, 129, 148)}.cat-button-primary:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-primary-bg-hover, 1, 115, 132);--fill:var(--cat-primary-fill-hover, 255, 255, 255);--text:var(--cat-primary-text-hover, 1, 115, 132)}.cat-button-primary.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-primary:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-primary-bg-active, 2, 99, 113);--fill:var(--cat-primary-fill-active, 255, 255, 255);--text:var(--cat-primary-text-active, 2, 99, 113)}.cat-button-secondary{--bg:var(--cat-secondary-bg, 105, 118, 135);--fill:var(--cat-secondary-fill, 255, 255, 255);--text:var(--cat-secondary-text, 0, 0, 0);--base:var(--cat-secondary-bg, 105, 118, 135)}.cat-button-secondary:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-secondary-bg-hover, 105, 118, 135);--fill:var(--cat-secondary-fill-hover, 255, 255, 255);--text:var(--cat-secondary-text-hover, 0, 0, 0)}.cat-button-secondary.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-secondary:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-secondary-bg-active, 105, 118, 135);--fill:var(--cat-secondary-fill-active, 255, 255, 255);--text:var(--cat-secondary-text-active, 0, 0, 0)}.cat-button-info{--bg:var(--cat-info-bg, 0, 115, 230);--fill:var(--cat-info-fill, 255, 255, 255);--text:var(--cat-info-text, 0, 115, 230);--base:var(--cat-info-text, 0, 115, 230)}.cat-button-info:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-info-bg-hover, 0, 107, 227);--fill:var(--cat-info-fill-hover, 255, 255, 255);--text:var(--cat-info-text-hover, 0, 107, 227)}.cat-button-info.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-info:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-info-bg-active, 0, 96, 223);--fill:var(--cat-info-fill-active, 255, 255, 255);--text:var(--cat-info-text-active, 0, 96, 223)}.cat-button-success{--bg:var(--cat-success-bg, 0, 132, 88);--fill:var(--cat-success-fill, 255, 255, 255);--text:var(--cat-success-text, 0, 132, 88);--base:var(--cat-success-text, 0, 132, 88)}.cat-button-success:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-success-bg-hover, 0, 117, 78);--fill:var(--cat-success-fill-hover, 255, 255, 255);--text:var(--cat-success-text-hover, 0, 117, 78)}.cat-button-success.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-success:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-success-bg-active, 0, 105, 70);--fill:var(--cat-success-fill-active, 255, 255, 255);--text:var(--cat-success-text-active, 0, 105, 70)}.cat-button-warning{--bg:var(--cat-warning-bg, 255, 206, 128);--fill:var(--cat-warning-fill, 0, 0, 0);--text:var(--cat-warning-text, 159, 97, 0);--base:var(--cat-warning-text, 159, 97, 0)}.cat-button-warning:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-warning-bg-hover, 255, 214, 148);--fill:var(--cat-warning-fill-hover, 0, 0, 0);--text:var(--cat-warning-text-hover, 159, 97, 0)}.cat-button-warning.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-warning:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-warning-bg-active, 255, 222, 168);--fill:var(--cat-warning-fill-active, 0, 0, 0);--text:var(--cat-warning-text-active, 159, 97, 0)}.cat-button-danger{--bg:var(--cat-danger-bg, 217, 52, 13);--fill:var(--cat-danger-fill, 255, 255, 255);--text:var(--cat-danger-text, 217, 52, 13);--base:var(--cat-danger-text, 217, 52, 13)}.cat-button-danger:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-danger-bg-hover, 194, 46, 11);--fill:var(--cat-danger-fill-hover, 255, 255, 255);--text:var(--cat-danger-text-hover, 194, 46, 11)}.cat-button-danger.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-danger:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-danger-bg-active, 174, 42, 10);--fill:var(--cat-danger-fill-active, 255, 255, 255);--text:var(--cat-danger-text-active, 174, 42, 10)}:host(.cat-button-pull:not([size])){margin:-0.625rem -0.75rem}:host(.cat-button-pull-h:not([size])){margin-left:-0.75rem;margin-right:-0.75rem}:host(.cat-button-pull-v:not([size])){margin-top:-0.625rem;margin-bottom:-0.625rem}:host(.cat-button-pull-t:not([size])){margin-top:-0.625rem}:host(.cat-button-pull-l:not([size])){margin-left:-0.75rem}:host(.cat-button-pull-b:not([size])){margin-bottom:-0.625rem}:host(.cat-button-pull-r:not([size])){margin-right:-0.75rem}.cat-button-xs{min-width:1.5rem;padding:0.1875rem 0.25rem;font-size:0.875rem;line-height:1.125rem;gap:0.25rem}.cat-button-xs.cat-button-icon{width:1.5rem;height:1.5rem;padding:0}:host(.cat-button-pull[size=xs]){margin:-0.1875rem -0.25rem}:host(.cat-button-pull-h[size=xs]){margin-left:-0.25rem;margin-right:-0.25rem}:host(.cat-button-pull-v[size=xs]){margin-top:-0.1875rem;margin-bottom:-0.1875rem}:host(.cat-button-pull-t[size=xs]){margin-top:-0.1875rem}:host(.cat-button-pull-l[size=xs]){margin-left:-0.25rem}:host(.cat-button-pull-b[size=xs]){margin-bottom:-0.1875rem}:host(.cat-button-pull-r[size=xs]){margin-right:-0.25rem}.cat-button-s{min-width:2rem;padding:0.375rem 0.5rem;font-size:0.9375rem;line-height:1.25rem;gap:0.25rem}.cat-button-s cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-s.cat-button-icon{width:2rem;height:2rem;padding:0}:host(.cat-button-pull[size=s]){margin:-0.375rem -0.5rem}:host(.cat-button-pull-h[size=s]){margin-left:-0.5rem;margin-right:-0.5rem}:host(.cat-button-pull-v[size=s]){margin-top:-0.375rem;margin-bottom:-0.375rem}:host(.cat-button-pull-t[size=s]){margin-top:-0.375rem}:host(.cat-button-pull-l[size=s]){margin-left:-0.5rem}:host(.cat-button-pull-b[size=s]){margin-bottom:-0.375rem}:host(.cat-button-pull-r[size=s]){margin-right:-0.5rem}.cat-button-m{min-width:2.5rem;padding:0.625rem 0.75rem;font-size:0.9375rem;line-height:1.25rem;gap:0.25rem}.cat-button-m cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-m.cat-button-icon{width:2.5rem;height:2.5rem;padding:0}:host(.cat-button-pull[size=m]){margin:-0.625rem -0.75rem}:host(.cat-button-pull-h[size=m]){margin-left:-0.75rem;margin-right:-0.75rem}:host(.cat-button-pull-v[size=m]){margin-top:-0.625rem;margin-bottom:-0.625rem}:host(.cat-button-pull-t[size=m]){margin-top:-0.625rem}:host(.cat-button-pull-l[size=m]){margin-left:-0.75rem}:host(.cat-button-pull-b[size=m]){margin-bottom:-0.625rem}:host(.cat-button-pull-r[size=m]){margin-right:-0.75rem}.cat-button-l{min-width:3rem;padding:0.875rem 1rem;font-size:0.9375rem;line-height:1.25rem;gap:0.25rem}.cat-button-l cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-l.cat-button-icon{width:3rem;height:3rem;padding:0}:host(.cat-button-pull[size=l]){margin:-0.875rem -1rem}:host(.cat-button-pull-h[size=l]){margin-left:-1rem;margin-right:-1rem}:host(.cat-button-pull-v[size=l]){margin-top:-0.875rem;margin-bottom:-0.875rem}:host(.cat-button-pull-t[size=l]){margin-top:-0.875rem}:host(.cat-button-pull-l[size=l]){margin-left:-1rem}:host(.cat-button-pull-b[size=l]){margin-bottom:-0.875rem}:host(.cat-button-pull-r[size=l]){margin-right:-1rem}.cat-button-xl{min-width:3.5rem;padding:1rem 1.25rem;font-size:1.125rem;line-height:1.5rem;gap:0.25rem}.cat-button-xl.cat-button-icon{width:3.5rem;height:3.5rem;padding:0}:host(.cat-button-pull[size=xl]){margin:-1rem -1.25rem}:host(.cat-button-pull-h[size=xl]){margin-left:-1.25rem;margin-right:-1.25rem}:host(.cat-button-pull-v[size=xl]){margin-top:-1rem;margin-bottom:-1rem}:host(.cat-button-pull-t[size=xl]){margin-top:-1rem}:host(.cat-button-pull-l[size=xl]){margin-left:-1.25rem}:host(.cat-button-pull-b[size=xl]){margin-bottom:-1rem}:host(.cat-button-pull-r[size=xl]){margin-right:-1.25rem}:host(.cat-tab)::part(button){padding:1.125rem 0.75rem;--cat-secondary-bg:transparent;--cat-primary-text:transparent;--cat-danger-text:transparent}:host(.cat-tab)::part(content)::before{content:attr(data-text);content:attr(data-text)/\"\";height:0;visibility:hidden;overflow:hidden;user-select:none;pointer-events:none;font-weight:700}:host(.cat-text-left) .cat-button{justify-content:left;text-align:left}:host(.cat-text-right) .cat-button{justify-content:right;text-align:right}:host(.cat-nav-item){width:100%}:host(.cat-nav-item) .cat-button{box-shadow:none;justify-content:left;gap:0.5rem}:host(.cat-nav-item) .cat-button:focus-visible{outline-offset:-2px}:host(.cat-time-format) .cat-button{border-radius:0}:host(.cat-date-toggle) .cat-button,:host(.cat-time-toggle) .cat-button{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host(.cat-date-item) .cat-button:hover,:host(.cat-date-toggle) .cat-button:hover,:host(.cat-time-format) .cat-button:hover,:host(.cat-time-toggle) .cat-button:hover{z-index:1}:host(.cat-date-item) .cat-button:focus-visible,:host(.cat-date-toggle) .cat-button:focus-visible,:host(.cat-time-format) .cat-button:focus-visible,:host(.cat-time-toggle) .cat-button:focus-visible{z-index:2}:host(.cat-date-item) .cat-button{padding:0;min-width:2rem;max-height:3rem;aspect-ratio:1}:host(.date-start:not(.date-end)) .cat-button{border-top-right-radius:0;border-bottom-right-radius:0}:host(.date-end:not(.date-start)) .cat-button{border-top-left-radius:0;border-bottom-left-radius:0}";
1109
+ const catButtonCss = ":host{display:inline-block;max-width:100%;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}:host([data-button-group=middle]),:host([data-button-group=last]){margin-left:-1px}.cat-button{position:relative;font:inherit;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--cat-border-radius-m, 0.25rem);text-decoration:none;width:100%;box-sizing:border-box;cursor:pointer;transition:color 125ms linear, border-color 125ms linear, background-color 125ms linear, box-shadow 125ms linear}.cat-button:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.cat-button-content{display:flex;flex-direction:column;min-width:0}.cat-button-empty .cat-button-content{display:none}.cat-button-content-inner{word-wrap:break-word;word-break:break-word}.cat-button-ellipsed .cat-button-content-inner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.cat-button-disabled{cursor:not-allowed}.cat-button-round{border-radius:10rem}.cat-button-loading{cursor:default}.cat-button-loading cat-spinner{position:absolute}.cat-button-loading>*:not(cat-spinner){visibility:hidden}.cat-button-group-first{border-top-right-radius:0;border-bottom-right-radius:0}.cat-button-group-middle{border-radius:0}.cat-button-group-last{border-top-left-radius:0;border-bottom-left-radius:0}.cat-button-group:hover{z-index:1}.cat-button-group:focus-visible{z-index:2}.cat-button-filled{background-color:rgb(var(--bg));color:rgb(var(--fill));font-weight:var(--cat-font-weight-button, 600);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}.cat-button-filled.cat-button-disabled{--bg:242, 244, 247;--fill:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-outlined{background-color:white;box-shadow:inset 0 0 0 1px color-mix(in srgb, rgb(var(--base)) 20%, #fff);color:rgb(var(--text))}.cat-button-outlined.cat-button-disabled{--base:var(--cat-font-color-muted, 81, 92, 108);--text:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-outlined:hover:not(.cat-button-disabled):not(.cat-button-loading){background-color:color-mix(in srgb, rgb(var(--base)) 10%, #fff)}.cat-button-outlined.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){background-color:color-mix(in srgb, rgb(var(--base)) 10%, #fff)}.cat-button-outlined:active:not(.cat-button-disabled):not(.cat-button-loading){background-color:color-mix(in srgb, rgb(var(--base)) 10%, #fff)}.cat-button-text{background-color:transparent;color:rgb(var(--text));text-decoration:var(--cat-link-button-decoration, none)}.cat-button-text.cat-button-disabled{--text:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-text:hover:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.cat-button-text.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.cat-button-link{background-color:transparent;color:rgb(var(--text))}.cat-button-link.cat-button-disabled{--text:var(--cat-font-color-muted, 81, 92, 108)}.cat-button-link:hover:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-decoration-hover, underline)}.cat-button-link.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-decoration-hover, underline)}.cat-button-primary{--bg:var(--cat-primary-bg, 0, 129, 148);--fill:var(--cat-primary-fill, 255, 255, 255);--text:var(--cat-primary-text, 0, 129, 148);--base:var(--cat-primary-text, 0, 129, 148)}.cat-button-primary:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-primary-bg-hover, 1, 115, 132);--fill:var(--cat-primary-fill-hover, 255, 255, 255);--text:var(--cat-primary-text-hover, 1, 115, 132)}.cat-button-primary.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-primary:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-primary-bg-active, 2, 99, 113);--fill:var(--cat-primary-fill-active, 255, 255, 255);--text:var(--cat-primary-text-active, 2, 99, 113)}.cat-button-secondary{--bg:var(--cat-secondary-bg, 105, 118, 135);--fill:var(--cat-secondary-fill, 255, 255, 255);--text:var(--cat-secondary-text, 0, 0, 0);--base:var(--cat-secondary-bg, 105, 118, 135)}.cat-button-secondary:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-secondary-bg-hover, 105, 118, 135);--fill:var(--cat-secondary-fill-hover, 255, 255, 255);--text:var(--cat-secondary-text-hover, 0, 0, 0)}.cat-button-secondary.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-secondary:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-secondary-bg-active, 105, 118, 135);--fill:var(--cat-secondary-fill-active, 255, 255, 255);--text:var(--cat-secondary-text-active, 0, 0, 0)}.cat-button-info{--bg:var(--cat-info-bg, 0, 115, 230);--fill:var(--cat-info-fill, 255, 255, 255);--text:var(--cat-info-text, 0, 115, 230);--base:var(--cat-info-text, 0, 115, 230)}.cat-button-info:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-info-bg-hover, 0, 107, 227);--fill:var(--cat-info-fill-hover, 255, 255, 255);--text:var(--cat-info-text-hover, 0, 107, 227)}.cat-button-info.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-info:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-info-bg-active, 0, 96, 223);--fill:var(--cat-info-fill-active, 255, 255, 255);--text:var(--cat-info-text-active, 0, 96, 223)}.cat-button-success{--bg:var(--cat-success-bg, 0, 132, 88);--fill:var(--cat-success-fill, 255, 255, 255);--text:var(--cat-success-text, 0, 132, 88);--base:var(--cat-success-text, 0, 132, 88)}.cat-button-success:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-success-bg-hover, 0, 117, 78);--fill:var(--cat-success-fill-hover, 255, 255, 255);--text:var(--cat-success-text-hover, 0, 117, 78)}.cat-button-success.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-success:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-success-bg-active, 0, 105, 70);--fill:var(--cat-success-fill-active, 255, 255, 255);--text:var(--cat-success-text-active, 0, 105, 70)}.cat-button-warning{--bg:var(--cat-warning-bg, 255, 206, 128);--fill:var(--cat-warning-fill, 0, 0, 0);--text:var(--cat-warning-text, 159, 97, 0);--base:var(--cat-warning-text, 159, 97, 0)}.cat-button-warning:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-warning-bg-hover, 255, 214, 148);--fill:var(--cat-warning-fill-hover, 0, 0, 0);--text:var(--cat-warning-text-hover, 159, 97, 0)}.cat-button-warning.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-warning:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-warning-bg-active, 255, 222, 168);--fill:var(--cat-warning-fill-active, 0, 0, 0);--text:var(--cat-warning-text-active, 159, 97, 0)}.cat-button-danger{--bg:var(--cat-danger-bg, 217, 52, 13);--fill:var(--cat-danger-fill, 255, 255, 255);--text:var(--cat-danger-text, 217, 52, 13);--base:var(--cat-danger-text, 217, 52, 13)}.cat-button-danger:hover:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-danger-bg-hover, 194, 46, 11);--fill:var(--cat-danger-fill-hover, 255, 255, 255);--text:var(--cat-danger-text-hover, 194, 46, 11)}.cat-button-danger.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading),.cat-button-danger:active:not(.cat-button-disabled):not(.cat-button-loading){--bg:var(--cat-danger-bg-active, 174, 42, 10);--fill:var(--cat-danger-fill-active, 255, 255, 255);--text:var(--cat-danger-text-active, 174, 42, 10)}:host(.cat-button-pull:not([size])){margin:-0.625rem -0.75rem}:host(.cat-button-pull-h:not([size])){margin-left:-0.75rem;margin-right:-0.75rem}:host(.cat-button-pull-v:not([size])){margin-top:-0.625rem;margin-bottom:-0.625rem}:host(.cat-button-pull-t:not([size])){margin-top:-0.625rem}:host(.cat-button-pull-l:not([size])){margin-left:-0.75rem}:host(.cat-button-pull-b:not([size])){margin-bottom:-0.625rem}:host(.cat-button-pull-r:not([size])){margin-right:-0.75rem}.cat-button-xs{min-width:1.5rem;padding:0.1875rem 0.25rem;font-size:0.875rem;line-height:1.125rem;gap:0.25rem}.cat-button-xs.cat-button-icon{width:1.5rem;height:1.5rem;padding:0}:host(.cat-button-pull[size=xs]){margin:-0.1875rem -0.25rem}:host(.cat-button-pull-h[size=xs]){margin-left:-0.25rem;margin-right:-0.25rem}:host(.cat-button-pull-v[size=xs]){margin-top:-0.1875rem;margin-bottom:-0.1875rem}:host(.cat-button-pull-t[size=xs]){margin-top:-0.1875rem}:host(.cat-button-pull-l[size=xs]){margin-left:-0.25rem}:host(.cat-button-pull-b[size=xs]){margin-bottom:-0.1875rem}:host(.cat-button-pull-r[size=xs]){margin-right:-0.25rem}.cat-button-s{min-width:2rem;padding:0.375rem 0.5rem;font-size:0.9375rem;line-height:1.25rem;gap:0.25rem}.cat-button-s cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-s.cat-button-icon{width:2rem;height:2rem;padding:0}:host(.cat-button-pull[size=s]){margin:-0.375rem -0.5rem}:host(.cat-button-pull-h[size=s]){margin-left:-0.5rem;margin-right:-0.5rem}:host(.cat-button-pull-v[size=s]){margin-top:-0.375rem;margin-bottom:-0.375rem}:host(.cat-button-pull-t[size=s]){margin-top:-0.375rem}:host(.cat-button-pull-l[size=s]){margin-left:-0.5rem}:host(.cat-button-pull-b[size=s]){margin-bottom:-0.375rem}:host(.cat-button-pull-r[size=s]){margin-right:-0.5rem}.cat-button-m{min-width:2.5rem;padding:0.625rem 0.75rem;font-size:0.9375rem;line-height:1.25rem;gap:0.25rem}.cat-button-m cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-m.cat-button-icon{width:2.5rem;height:2.5rem;padding:0}:host(.cat-button-pull[size=m]){margin:-0.625rem -0.75rem}:host(.cat-button-pull-h[size=m]){margin-left:-0.75rem;margin-right:-0.75rem}:host(.cat-button-pull-v[size=m]){margin-top:-0.625rem;margin-bottom:-0.625rem}:host(.cat-button-pull-t[size=m]){margin-top:-0.625rem}:host(.cat-button-pull-l[size=m]){margin-left:-0.75rem}:host(.cat-button-pull-b[size=m]){margin-bottom:-0.625rem}:host(.cat-button-pull-r[size=m]){margin-right:-0.75rem}.cat-button-l{min-width:3rem;padding:0.875rem 1rem;font-size:0.9375rem;line-height:1.25rem;gap:0.25rem}.cat-button-l cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-l.cat-button-icon{width:3rem;height:3rem;padding:0}:host(.cat-button-pull[size=l]){margin:-0.875rem -1rem}:host(.cat-button-pull-h[size=l]){margin-left:-1rem;margin-right:-1rem}:host(.cat-button-pull-v[size=l]){margin-top:-0.875rem;margin-bottom:-0.875rem}:host(.cat-button-pull-t[size=l]){margin-top:-0.875rem}:host(.cat-button-pull-l[size=l]){margin-left:-1rem}:host(.cat-button-pull-b[size=l]){margin-bottom:-0.875rem}:host(.cat-button-pull-r[size=l]){margin-right:-1rem}.cat-button-xl{min-width:3.5rem;padding:1rem 1.25rem;font-size:1.125rem;line-height:1.5rem;gap:0.5rem}.cat-button-xl.cat-button-icon{width:3.5rem;height:3.5rem;padding:0}:host(.cat-button-pull[size=xl]){margin:-1rem -1.25rem}:host(.cat-button-pull-h[size=xl]){margin-left:-1.25rem;margin-right:-1.25rem}:host(.cat-button-pull-v[size=xl]){margin-top:-1rem;margin-bottom:-1rem}:host(.cat-button-pull-t[size=xl]){margin-top:-1rem}:host(.cat-button-pull-l[size=xl]){margin-left:-1.25rem}:host(.cat-button-pull-b[size=xl]){margin-bottom:-1rem}:host(.cat-button-pull-r[size=xl]){margin-right:-1.25rem}:host(.cat-tab)::part(button){padding:1.125rem 0.75rem;--cat-secondary-bg:transparent;--cat-primary-text:transparent;--cat-danger-text:transparent}:host(.cat-tab)::part(content)::before{content:attr(data-text);content:attr(data-text)/\"\";height:0;visibility:hidden;overflow:hidden;user-select:none;pointer-events:none;font-weight:700}:host(.cat-text-left) .cat-button{justify-content:left;text-align:left}:host(.cat-text-right) .cat-button{justify-content:right;text-align:right}:host(.cat-nav-item){width:100%}:host(.cat-nav-item) .cat-button{box-shadow:none;justify-content:left;gap:0.5rem}:host(.cat-nav-item) .cat-button:focus-visible{outline-offset:-2px}:host(.cat-time-format) .cat-button{border-radius:0}:host(.cat-date-toggle) .cat-button,:host(.cat-time-toggle) .cat-button{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host(.cat-date-item) .cat-button:hover,:host(.cat-date-toggle) .cat-button:hover,:host(.cat-time-format) .cat-button:hover,:host(.cat-time-toggle) .cat-button:hover{z-index:1}:host(.cat-date-item) .cat-button:focus-visible,:host(.cat-date-toggle) .cat-button:focus-visible,:host(.cat-time-format) .cat-button:focus-visible,:host(.cat-time-toggle) .cat-button:focus-visible{z-index:2}:host(.cat-date-item) .cat-button{padding:0;min-width:2rem;max-height:3rem;aspect-ratio:1}:host(.date-start:not(.date-end)) .cat-button{border-top-right-radius:0;border-bottom-right-radius:0}:host(.date-end:not(.date-start)) .cat-button{border-top-left-radius:0;border-bottom-left-radius:0}";
1110
1110
  const CatButtonStyle0 = catButtonCss;
1111
1111
 
1112
1112
  const CatButton = class {
@@ -1434,14 +1434,12 @@ const CatCheckbox = class {
1434
1434
  CatCheckbox.style = CatCheckboxStyle0;
1435
1435
 
1436
1436
  function getDays(language, weekday = 'long') {
1437
- const date = new Date();
1438
- const firstDayOfWeek = (date.getUTCDate() - date.getUTCDay() + 7) % 7;
1439
1437
  const format = new Intl.DateTimeFormat(language, { weekday }).format;
1440
- return [...Array(7).keys()].map(day => format(new Date(date.getTime()).setUTCDate(firstDayOfWeek + day)));
1438
+ return [...Array(7).keys()].map(day => format(new Date(2000, 4, 14 + day)));
1441
1439
  }
1442
1440
  function getMonths(language, month = 'long') {
1443
1441
  const format = new Intl.DateTimeFormat(language, { month }).format;
1444
- return [...Array(12).keys()].map(month => format(new Date(2000, month, 1)));
1442
+ return [...Array(12).keys()].map(month => format(new Date(2000, month, 15)));
1445
1443
  }
1446
1444
  function getWeekInfo(language) {
1447
1445
  const locale = new Intl.Locale(language);
@@ -1548,7 +1546,7 @@ const CatDate = class {
1548
1546
  this.inputFocused = false;
1549
1547
  this.requiredMarker = 'optional';
1550
1548
  this.horizontal = false;
1551
- this.autoComplete = undefined;
1549
+ this.autoComplete = 'off';
1552
1550
  this.clearable = false;
1553
1551
  this.disabled = false;
1554
1552
  this.hint = undefined;
@@ -1626,14 +1624,14 @@ const CatDate = class {
1626
1624
  }
1627
1625
  render() {
1628
1626
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
1629
- return (index.h(index.Host, { key: '6cb5833dd0f95cf170ad74d3841eee067e315df1' }, index.h("cat-input", { key: 'a97d7b5f9ee3a6f63a648e491182b2ab9287bedf', class: "cat-date-input", ref: el => (this.input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, value: this.inputValue, onCatFocus: e => {
1627
+ return (index.h(index.Host, { key: '9635d72c77b9f68f5d650a5ef9e1883672e4865f' }, index.h("cat-input", { key: '469f2bab5fd76cb6f09ee7b484cb222a154e3718', class: "cat-date-input", ref: el => (this.input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, value: this.inputValue, onCatFocus: e => {
1630
1628
  this.inputFocused = e.target === this.input;
1631
1629
  e.stopPropagation();
1632
1630
  this.catFocus.emit(e.detail);
1633
1631
  }, onCatBlur: e => {
1634
1632
  e.stopPropagation();
1635
1633
  this.onInputBlur(e.detail);
1636
- } }, index.h("span", { key: 'c7d342b0fa3b522af5d0368e590345a2524c40ee', slot: "label" }, this.label, index.h("span", { key: '44d02ddce886497f9f93dc8bb73b943ae7317d07', class: "label-aria" }, " (", this.locale.formatStr, ")")), index.h("cat-dropdown", { key: 'a4b84508af92334d93b406f767f8080ab28a831b', slot: "addon", placement: this.placement, arrowNavigation: "none", noResize: true, onCatOpen: () => this.dateInline?.resetView() }, index.h("cat-button", { key: '0e48c43b6bb3b34bb70c97e7ed2bae01664c3d4e', slot: "trigger", icon: "$cat:datepicker-calendar", iconOnly: true, class: "cat-date-toggle", disabled: this.disabled, a11yLabel: this.getTriggerA11yLabel() }), index.h("div", { key: '976f8aa393d60c1425a63198baeabf7522bc38c4', slot: "content" }, index.h("cat-date-inline", { key: '08d8833fef723d80000c330fa58a3eb30d57d211', ref: el => (this.dateInline = el), min: this.min, max: this.max, value: this.value, hint: true, weeks: true, noClear: true, onCatChange: this.onDateChange.bind(this) }))))));
1634
+ } }, index.h("span", { key: '65e0c84bf675f0c76896f06452068acfb0326e2e', slot: "label" }, this.label, index.h("span", { key: '67f3e80eb70dd817b481ca7945edfc83d2451c78', class: "label-aria" }, " (", this.locale.formatStr, ")")), index.h("cat-dropdown", { key: 'a05ef8d20ade5dda5801e44142efdb3b532b76f7', slot: "addon", placement: this.placement, arrowNavigation: "none", noResize: true, onCatOpen: () => this.dateInline?.resetView() }, index.h("cat-button", { key: 'a4d464eead26162405655074e352e2024c04a201', slot: "trigger", icon: "$cat:datepicker-calendar", iconOnly: true, class: "cat-date-toggle", disabled: this.disabled, a11yLabel: this.getTriggerA11yLabel() }), index.h("div", { key: 'e9b8ac737e80392f98b933d4870309cb8843d166', slot: "content" }, index.h("cat-date-inline", { key: '541651169cd502dd166aa9443c6392118f3bd26a', ref: el => (this.dateInline = el), min: this.min, max: this.max, value: this.value, hint: true, weeks: true, noClear: true, onCatChange: this.onDateChange.bind(this) }))))));
1637
1635
  }
1638
1636
  getTriggerA11yLabel() {
1639
1637
  const date = this.locale.fromLocalISO(this.value);
@@ -2472,14 +2470,16 @@ const CatDateInline = class {
2472
2470
  }
2473
2471
  }
2474
2472
  navigate(direction, period) {
2475
- this.viewDate = new Date(direction === 'prev'
2476
- ? period === 'year'
2477
- ? this.viewDate.setFullYear(this.viewDate.getFullYear() - 1)
2478
- : this.viewDate.setMonth(this.viewDate.getMonth() - 1)
2479
- : period === 'year'
2480
- ? this.viewDate.setFullYear(this.viewDate.getFullYear() + 1)
2481
- : this.viewDate.setMonth(this.viewDate.getMonth() + 1));
2482
- // announce the new month and year
2473
+ const offset = direction === 'prev' ? -1 : 1;
2474
+ const targetYear = this.viewDate.getFullYear() + (period === 'year' ? offset : 0);
2475
+ const targetMonth = this.viewDate.getMonth() + (period === 'month' ? offset : 0);
2476
+ const date = new Date(this.viewDate);
2477
+ date.setFullYear(targetYear);
2478
+ date.setMonth(targetMonth);
2479
+ const minDate = new Date(targetYear, targetMonth, 1);
2480
+ const maxDay = new Date(targetYear, targetMonth + 1, 0).getDate();
2481
+ const maxDate = new Date(targetYear, targetMonth, maxDay);
2482
+ this.viewDate = clampDate(minDate, date, maxDate);
2483
2483
  this.setAriaLive(this.getHeadline());
2484
2484
  }
2485
2485
  setAriaLive(text) {
@@ -6588,7 +6588,7 @@ function isOverflowElement(element) {
6588
6588
  function isTableElement(element) {
6589
6589
  return ['table', 'td', 'th'].includes(getNodeName(element));
6590
6590
  }
6591
- function isTopLayer$1(element) {
6591
+ function isTopLayer(element) {
6592
6592
  return [':popover-open', ':modal'].some(selector => {
6593
6593
  try {
6594
6594
  return element.matches(selector);
@@ -6602,14 +6602,15 @@ function isContainingBlock(elementOrCss) {
6602
6602
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
6603
6603
 
6604
6604
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
6605
- return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
6605
+ // https://drafts.csswg.org/css-transforms-2/#individual-transforms
6606
+ return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
6606
6607
  }
6607
6608
  function getContainingBlock(element) {
6608
6609
  let currentNode = getParentNode(element);
6609
6610
  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
6610
6611
  if (isContainingBlock(currentNode)) {
6611
6612
  return currentNode;
6612
- } else if (isTopLayer$1(currentNode)) {
6613
+ } else if (isTopLayer(currentNode)) {
6613
6614
  return null;
6614
6615
  }
6615
6616
  currentNode = getParentNode(currentNode);
@@ -6786,7 +6787,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
6786
6787
  const win = getWindow(domElement);
6787
6788
  const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
6788
6789
  let currentWin = win;
6789
- let currentIFrame = currentWin.frameElement;
6790
+ let currentIFrame = getFrameElement(currentWin);
6790
6791
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
6791
6792
  const iframeScale = getScale(currentIFrame);
6792
6793
  const iframeRect = currentIFrame.getBoundingClientRect();
@@ -6800,7 +6801,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
6800
6801
  x += left;
6801
6802
  y += top;
6802
6803
  currentWin = getWindow(currentIFrame);
6803
- currentIFrame = currentWin.frameElement;
6804
+ currentIFrame = getFrameElement(currentWin);
6804
6805
  }
6805
6806
  }
6806
6807
  return rectToClientRect({
@@ -6811,15 +6812,29 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
6811
6812
  });
6812
6813
  }
6813
6814
 
6814
- const topLayerSelectors = [':popover-open', ':modal'];
6815
- function isTopLayer(element) {
6816
- return topLayerSelectors.some(selector => {
6817
- try {
6818
- return element.matches(selector);
6819
- } catch (e) {
6820
- return false;
6821
- }
6822
- });
6815
+ // If <html> has a CSS width greater than the viewport, then this will be
6816
+ // incorrect for RTL.
6817
+ function getWindowScrollBarX(element, rect) {
6818
+ const leftScroll = getNodeScroll(element).scrollLeft;
6819
+ if (!rect) {
6820
+ return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
6821
+ }
6822
+ return rect.left + leftScroll;
6823
+ }
6824
+
6825
+ function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
6826
+ if (ignoreScrollbarX === void 0) {
6827
+ ignoreScrollbarX = false;
6828
+ }
6829
+ const htmlRect = documentElement.getBoundingClientRect();
6830
+ const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
6831
+ // RTL <body> scrollbar.
6832
+ getWindowScrollBarX(documentElement, htmlRect));
6833
+ const y = htmlRect.top + scroll.scrollTop;
6834
+ return {
6835
+ x,
6836
+ y
6837
+ };
6823
6838
  }
6824
6839
 
6825
6840
  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
@@ -6853,11 +6868,12 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
6853
6868
  offsets.y = offsetRect.y + offsetParent.clientTop;
6854
6869
  }
6855
6870
  }
6871
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
6856
6872
  return {
6857
6873
  width: rect.width * scale.x,
6858
6874
  height: rect.height * scale.y,
6859
- x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
6860
- y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
6875
+ x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
6876
+ y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
6861
6877
  };
6862
6878
  }
6863
6879
 
@@ -6865,12 +6881,6 @@ function getClientRects(element) {
6865
6881
  return Array.from(element.getClientRects());
6866
6882
  }
6867
6883
 
6868
- function getWindowScrollBarX(element) {
6869
- // If <html> has a CSS width greater than the viewport, then this will be
6870
- // incorrect for RTL.
6871
- return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
6872
- }
6873
-
6874
6884
  // Gets the entire size of the scrollable document area, even extending outside
6875
6885
  // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
6876
6886
  function getDocumentRect(element) {
@@ -6945,9 +6955,10 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
6945
6955
  } else {
6946
6956
  const visualOffsets = getVisualOffsets(element);
6947
6957
  rect = {
6948
- ...clippingAncestor,
6949
6958
  x: clippingAncestor.x - visualOffsets.x,
6950
- y: clippingAncestor.y - visualOffsets.y
6959
+ y: clippingAncestor.y - visualOffsets.y,
6960
+ width: clippingAncestor.width,
6961
+ height: clippingAncestor.height
6951
6962
  };
6952
6963
  }
6953
6964
  return rectToClientRect(rect);
@@ -7052,11 +7063,14 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
7052
7063
  offsets.x = offsetRect.x + offsetParent.clientLeft;
7053
7064
  offsets.y = offsetRect.y + offsetParent.clientTop;
7054
7065
  } else if (documentElement) {
7066
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
7067
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
7055
7068
  offsets.x = getWindowScrollBarX(documentElement);
7056
7069
  }
7057
7070
  }
7058
- const x = rect.left + scroll.scrollLeft - offsets.x;
7059
- const y = rect.top + scroll.scrollTop - offsets.y;
7071
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
7072
+ const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
7073
+ const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
7060
7074
  return {
7061
7075
  x,
7062
7076
  y,
@@ -7076,7 +7090,16 @@ function getTrueOffsetParent(element, polyfill) {
7076
7090
  if (polyfill) {
7077
7091
  return polyfill(element);
7078
7092
  }
7079
- return element.offsetParent;
7093
+ let rawOffsetParent = element.offsetParent;
7094
+
7095
+ // Firefox returns the <html> element as the offsetParent if it's non-static,
7096
+ // while Chrome and Safari return the <body> element. The <body> element must
7097
+ // be used to perform the correct calculations even if the <html> element is
7098
+ // non-static.
7099
+ if (getDocumentElement(element) === rawOffsetParent) {
7100
+ rawOffsetParent = rawOffsetParent.ownerDocument.body;
7101
+ }
7102
+ return rawOffsetParent;
7080
7103
  }
7081
7104
 
7082
7105
  // Gets the closest ancestor positioned element. Handles some edge cases,
@@ -7138,6 +7161,10 @@ const platform = {
7138
7161
  isRTL
7139
7162
  };
7140
7163
 
7164
+ function rectsAreEqual(a, b) {
7165
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
7166
+ }
7167
+
7141
7168
  // https://samthor.au/2021/observing-dom/
7142
7169
  function observeMove(element, onMove) {
7143
7170
  let io = null;
@@ -7157,12 +7184,13 @@ function observeMove(element, onMove) {
7157
7184
  threshold = 1;
7158
7185
  }
7159
7186
  cleanup();
7187
+ const elementRectForRootMargin = element.getBoundingClientRect();
7160
7188
  const {
7161
7189
  left,
7162
7190
  top,
7163
7191
  width,
7164
7192
  height
7165
- } = element.getBoundingClientRect();
7193
+ } = elementRectForRootMargin;
7166
7194
  if (!skip) {
7167
7195
  onMove();
7168
7196
  }
@@ -7195,6 +7223,16 @@ function observeMove(element, onMove) {
7195
7223
  refresh(false, ratio);
7196
7224
  }
7197
7225
  }
7226
+ if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
7227
+ // It's possible that even though the ratio is reported as 1, the
7228
+ // element is not actually fully within the IntersectionObserver's root
7229
+ // area anymore. This can happen under performance constraints. This may
7230
+ // be a bug in the browser's IntersectionObserver implementation. To
7231
+ // work around this, we compare the element's bounding rect now with
7232
+ // what it was at the time we created the IntersectionObserver. If they
7233
+ // are not equal then the element moved, so we refresh.
7234
+ refresh();
7235
+ }
7198
7236
  isFirstUpdate = false;
7199
7237
  }
7200
7238
 
@@ -7272,7 +7310,7 @@ function autoUpdate(reference, floating, update, options) {
7272
7310
  }
7273
7311
  function frameLoop() {
7274
7312
  const nextRefRect = getBoundingClientRect(reference);
7275
- if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {
7313
+ if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
7276
7314
  update();
7277
7315
  }
7278
7316
  prevRefRect = nextRefRect;
@@ -7396,7 +7434,7 @@ const CatDatepickerFlat = class {
7396
7434
  this.hasSlottedHint = false;
7397
7435
  this.requiredMarker = 'optional';
7398
7436
  this.horizontal = false;
7399
- this.autoComplete = undefined;
7437
+ this.autoComplete = 'off';
7400
7438
  this.clearable = false;
7401
7439
  this.disabled = false;
7402
7440
  this.hint = undefined;
@@ -7484,7 +7522,7 @@ const CatDatepickerFlat = class {
7484
7522
  }
7485
7523
  render() {
7486
7524
  return [
7487
- index.h("cat-input", { key: 'c59dfb87d3f67f8850473274bab82063c3ea4d17', ref: el => (this._input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, label: this.label, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, value: this.value, errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, onCatChange: e => {
7525
+ index.h("cat-input", { key: '472e33835c2ac42e3e648d7b4b80551bfad276bb', ref: el => (this._input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, label: this.label, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, value: this.value, errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, onCatChange: e => {
7488
7526
  e.stopPropagation();
7489
7527
  this.value = e.detail || undefined;
7490
7528
  }, onCatFocus: e => {
@@ -7493,8 +7531,8 @@ const CatDatepickerFlat = class {
7493
7531
  }, onCatBlur: e => {
7494
7532
  e.stopPropagation();
7495
7533
  this.catBlur.emit(e.detail);
7496
- } }, this.hasSlottedLabel && (index.h("span", { key: '67cf2c46b67fcd119c01c3d313ac547b54c343ec', slot: "label" }, index.h("slot", { key: '7a2c43caf422ef58381b5b78bd0a1e83efe2ba6c', name: "label" }))), this.hasSlottedHint && (index.h("span", { key: '3135c3f956f714b1f57aa97aab905bbe6735f677', slot: "hint" }, index.h("slot", { key: '7a423675a763a2a139dc3f05cd7141731c825d8d', name: "hint" })))),
7497
- index.h("div", { key: '635b797993490f712b1f8ee28d086524b5a0bc4f', ref: el => (this._calendarWrapper = el), class: "datepicker-wrapper" })
7534
+ } }, this.hasSlottedLabel && (index.h("span", { key: '9e883cc02c66b78e8be8221a5632f37b016df965', slot: "label" }, index.h("slot", { key: '892603e7cb7e645e92503a30f2eb89dc5b2be9bc', name: "label" }))), this.hasSlottedHint && (index.h("span", { key: 'b5f4e4fad0aca02ab0d9c1a94d4f5e7582634490', slot: "hint" }, index.h("slot", { key: '4d9184fd37321b6b7709a25a3cee17057b5cfcb7', name: "hint" })))),
7535
+ index.h("div", { key: '8eccd0924e6dfcd2fdf2d71feba880ca84d44e87', ref: el => (this._calendarWrapper = el), class: "datepicker-wrapper" })
7498
7536
  ];
7499
7537
  }
7500
7538
  initDatepicker(input) {
@@ -7637,10 +7675,32 @@ CatDatepickerInline.style = CatDatepickerInlineStyle0;
7637
7675
  const timeTransitionS = 125;
7638
7676
 
7639
7677
  /*!
7640
- * focus-trap 7.5.4
7678
+ * focus-trap 7.6.4
7641
7679
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
7642
7680
  */
7643
7681
 
7682
+ function _arrayLikeToArray(r, a) {
7683
+ (null == a || a > r.length) && (a = r.length);
7684
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
7685
+ return n;
7686
+ }
7687
+ function _arrayWithoutHoles(r) {
7688
+ if (Array.isArray(r)) return _arrayLikeToArray(r);
7689
+ }
7690
+ function _defineProperty(e, r, t) {
7691
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
7692
+ value: t,
7693
+ enumerable: true,
7694
+ configurable: true,
7695
+ writable: true
7696
+ }) : e[r] = t, e;
7697
+ }
7698
+ function _iterableToArray(r) {
7699
+ if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
7700
+ }
7701
+ function _nonIterableSpread() {
7702
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
7703
+ }
7644
7704
  function ownKeys(e, r) {
7645
7705
  var t = Object.keys(e);
7646
7706
  if (Object.getOwnPropertySymbols) {
@@ -7654,7 +7714,7 @@ function ownKeys(e, r) {
7654
7714
  function _objectSpread2(e) {
7655
7715
  for (var r = 1; r < arguments.length; r++) {
7656
7716
  var t = null != arguments[r] ? arguments[r] : {};
7657
- r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
7717
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
7658
7718
  _defineProperty(e, r, t[r]);
7659
7719
  }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
7660
7720
  Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
@@ -7662,33 +7722,29 @@ function _objectSpread2(e) {
7662
7722
  }
7663
7723
  return e;
7664
7724
  }
7665
- function _defineProperty(obj, key, value) {
7666
- key = _toPropertyKey(key);
7667
- if (key in obj) {
7668
- Object.defineProperty(obj, key, {
7669
- value: value,
7670
- enumerable: true,
7671
- configurable: true,
7672
- writable: true
7673
- });
7674
- } else {
7675
- obj[key] = value;
7676
- }
7677
- return obj;
7678
- }
7679
- function _toPrimitive(input, hint) {
7680
- if (typeof input !== "object" || input === null) return input;
7681
- var prim = input[Symbol.toPrimitive];
7682
- if (prim !== undefined) {
7683
- var res = prim.call(input, hint || "default");
7684
- if (typeof res !== "object") return res;
7725
+ function _toConsumableArray(r) {
7726
+ return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
7727
+ }
7728
+ function _toPrimitive(t, r) {
7729
+ if ("object" != typeof t || !t) return t;
7730
+ var e = t[Symbol.toPrimitive];
7731
+ if (undefined !== e) {
7732
+ var i = e.call(t, r || "default");
7733
+ if ("object" != typeof i) return i;
7685
7734
  throw new TypeError("@@toPrimitive must return a primitive value.");
7686
7735
  }
7687
- return (hint === "string" ? String : Number)(input);
7736
+ return ("string" === r ? String : Number)(t);
7688
7737
  }
7689
- function _toPropertyKey(arg) {
7690
- var key = _toPrimitive(arg, "string");
7691
- return typeof key === "symbol" ? key : String(key);
7738
+ function _toPropertyKey(t) {
7739
+ var i = _toPrimitive(t, "string");
7740
+ return "symbol" == typeof i ? i : i + "";
7741
+ }
7742
+ function _unsupportedIterableToArray(r, a) {
7743
+ if (r) {
7744
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
7745
+ var t = {}.toString.call(r).slice(8, -1);
7746
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : undefined;
7747
+ }
7692
7748
  }
7693
7749
 
7694
7750
  var activeFocusTraps = {
@@ -7696,7 +7752,7 @@ var activeFocusTraps = {
7696
7752
  if (trapStack.length > 0) {
7697
7753
  var activeTrap = trapStack[trapStack.length - 1];
7698
7754
  if (activeTrap !== trap) {
7699
- activeTrap.pause();
7755
+ activeTrap._setPausedState(true);
7700
7756
  }
7701
7757
  }
7702
7758
  var trapIndex = trapStack.indexOf(trap);
@@ -7713,8 +7769,8 @@ var activeFocusTraps = {
7713
7769
  if (trapIndex !== -1) {
7714
7770
  trapStack.splice(trapIndex, 1);
7715
7771
  }
7716
- if (trapStack.length > 0) {
7717
- trapStack[trapStack.length - 1].unpause();
7772
+ if (trapStack.length > 0 && !trapStack[trapStack.length - 1]._isManuallyPaused()) {
7773
+ trapStack[trapStack.length - 1]._setPausedState(false);
7718
7774
  }
7719
7775
  }
7720
7776
  };
@@ -7722,10 +7778,10 @@ var isSelectableInput = function isSelectableInput(node) {
7722
7778
  return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';
7723
7779
  };
7724
7780
  var isEscapeEvent = function isEscapeEvent(e) {
7725
- return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;
7781
+ return (e === null || e === undefined ? undefined : e.key) === 'Escape' || (e === null || e === undefined ? undefined : e.key) === 'Esc' || (e === null || e === undefined ? undefined : e.keyCode) === 27;
7726
7782
  };
7727
7783
  var isTabEvent = function isTabEvent(e) {
7728
- return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;
7784
+ return (e === null || e === undefined ? undefined : e.key) === 'Tab' || (e === null || e === undefined ? undefined : e.keyCode) === 9;
7729
7785
  };
7730
7786
 
7731
7787
  // checks for TAB by default
@@ -7741,22 +7797,6 @@ var delay = function delay(fn) {
7741
7797
  return setTimeout(fn, 0);
7742
7798
  };
7743
7799
 
7744
- // Array.find/findIndex() are not supported on IE; this replicates enough
7745
- // of Array.findIndex() for our needs
7746
- var findIndex = function findIndex(arr, fn) {
7747
- var idx = -1;
7748
- arr.every(function (value, i) {
7749
- if (fn(value)) {
7750
- idx = i;
7751
- return false; // break
7752
- }
7753
-
7754
- return true; // next
7755
- });
7756
-
7757
- return idx;
7758
- };
7759
-
7760
7800
  /**
7761
7801
  * Get an option's value when it could be a plain value, or a handler that provides
7762
7802
  * the value.
@@ -7768,7 +7808,7 @@ var valueOrHandler = function valueOrHandler(value) {
7768
7808
  for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7769
7809
  params[_key - 1] = arguments[_key];
7770
7810
  }
7771
- return typeof value === 'function' ? value.apply(void 0, params) : value;
7811
+ return typeof value === 'function' ? value.apply(undefined, params) : value;
7772
7812
  };
7773
7813
  var getActualTarget = function getActualTarget(event) {
7774
7814
  // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the
@@ -7787,8 +7827,8 @@ var internalTrapStack = [];
7787
7827
  var createFocusTrap = function createFocusTrap(elements, userOptions) {
7788
7828
  // SSR: a live trap shouldn't be created in this type of environment so this
7789
7829
  // should be safe code to execute if the `document` option isn't specified
7790
- var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;
7791
- var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;
7830
+ var doc = (userOptions === null || userOptions === undefined ? undefined : userOptions.document) || document;
7831
+ var trapStack = (userOptions === null || userOptions === undefined ? undefined : userOptions.trapStack) || internalTrapStack;
7792
7832
  var config = _objectSpread2({
7793
7833
  returnFocusOnDeactivate: true,
7794
7834
  escapeDeactivates: true,
@@ -7828,6 +7868,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7828
7868
  mostRecentlyFocusedNode: null,
7829
7869
  active: false,
7830
7870
  paused: false,
7871
+ manuallyPaused: false,
7831
7872
  // timer ID for when delayInitialFocus is true and initial focus in this trap
7832
7873
  // has been delayed during activation
7833
7874
  delayInitialFocusTimer: undefined,
@@ -7859,18 +7900,18 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7859
7900
  * if the element isn't found.
7860
7901
  */
7861
7902
  var findContainerIndex = function findContainerIndex(element, event) {
7862
- var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;
7903
+ var composedPath = typeof (event === null || event === undefined ? undefined : event.composedPath) === 'function' ? event.composedPath() : undefined;
7863
7904
  // NOTE: search `containerGroups` because it's possible a group contains no tabbable
7864
7905
  // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)
7865
7906
  // and we still need to find the element in there
7866
7907
  return state.containerGroups.findIndex(function (_ref) {
7867
7908
  var container = _ref.container,
7868
7909
  tabbableNodes = _ref.tabbableNodes;
7869
- return container.contains(element) || ( // fall back to explicit tabbable search which will take into consideration any
7910
+ return container.contains(element) || (// fall back to explicit tabbable search which will take into consideration any
7870
7911
  // web components if the `tabbableOptions.getShadowRoot` option was used for
7871
7912
  // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't
7872
7913
  // look inside web components even if open)
7873
- composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {
7914
+ composedPath === null || composedPath === undefined ? undefined : composedPath.includes(container)) || tabbableNodes.find(function (node) {
7874
7915
  return node === element;
7875
7916
  });
7876
7917
  });
@@ -7882,25 +7923,31 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7882
7923
  * (if a node is explicitly NOT given), or a function that returns any of these
7883
7924
  * values.
7884
7925
  * @param {string} optionName
7885
- * @returns {undefined | false | HTMLElement | SVGElement} Returns
7886
- * `undefined` if the option is not specified; `false` if the option
7887
- * resolved to `false` (node explicitly not given); otherwise, the resolved
7888
- * DOM node.
7926
+ * @param {Object} options
7927
+ * @param {boolean} [options.hasFallback] True if the option could be a selector string
7928
+ * and the option allows for a fallback scenario in the case where the selector is
7929
+ * valid but does not match a node (i.e. the queried node doesn't exist in the DOM).
7930
+ * @param {Array} [options.params] Params to pass to the option if it's a function.
7931
+ * @returns {undefined | null | false | HTMLElement | SVGElement} Returns
7932
+ * `undefined` if the option is not specified; `null` if the option didn't resolve
7933
+ * to a node but `options.hasFallback=true`, `false` if the option resolved to `false`
7934
+ * (node explicitly not given); otherwise, the resolved DOM node.
7889
7935
  * @throws {Error} If the option is set, not `false`, and is not, or does not
7890
- * resolve to a node.
7936
+ * resolve to a node, unless the option is a selector string and `options.hasFallback=true`.
7891
7937
  */
7892
7938
  var getNodeForOption = function getNodeForOption(optionName) {
7939
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
7940
+ _ref2$hasFallback = _ref2.hasFallback,
7941
+ hasFallback = _ref2$hasFallback === undefined ? false : _ref2$hasFallback,
7942
+ _ref2$params = _ref2.params,
7943
+ params = _ref2$params === undefined ? [] : _ref2$params;
7893
7944
  var optionValue = config[optionName];
7894
7945
  if (typeof optionValue === 'function') {
7895
- for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
7896
- params[_key2 - 1] = arguments[_key2];
7897
- }
7898
- optionValue = optionValue.apply(void 0, params);
7946
+ optionValue = optionValue.apply(undefined, _toConsumableArray(params));
7899
7947
  }
7900
7948
  if (optionValue === true) {
7901
7949
  optionValue = undefined; // use default value
7902
7950
  }
7903
-
7904
7951
  if (!optionValue) {
7905
7952
  if (optionValue === undefined || optionValue === false) {
7906
7953
  return optionValue;
@@ -7912,21 +7959,31 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7912
7959
  var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point
7913
7960
 
7914
7961
  if (typeof optionValue === 'string') {
7915
- node = doc.querySelector(optionValue); // resolve to node, or null if fails
7962
+ try {
7963
+ node = doc.querySelector(optionValue); // resolve to node, or null if fails
7964
+ } catch (err) {
7965
+ throw new Error("`".concat(optionName, "` appears to be an invalid selector; error=\"").concat(err.message, "\""));
7966
+ }
7916
7967
  if (!node) {
7917
- throw new Error("`".concat(optionName, "` as selector refers to no known node"));
7968
+ if (!hasFallback) {
7969
+ throw new Error("`".concat(optionName, "` as selector refers to no known node"));
7970
+ }
7971
+ // else, `node` MUST be `null` because that's what `Document.querySelector()` returns
7972
+ // if the selector is valid but doesn't match anything
7918
7973
  }
7919
7974
  }
7920
7975
  return node;
7921
7976
  };
7922
7977
  var getInitialFocusNode = function getInitialFocusNode() {
7923
- var node = getNodeForOption('initialFocus');
7978
+ var node = getNodeForOption('initialFocus', {
7979
+ hasFallback: true
7980
+ });
7924
7981
 
7925
7982
  // false explicitly indicates we want no initialFocus at all
7926
7983
  if (node === false) {
7927
7984
  return false;
7928
7985
  }
7929
- if (node === undefined || !isFocusable(node, config.tabbableOptions)) {
7986
+ if (node === undefined || node && !isFocusable(node, config.tabbableOptions)) {
7930
7987
  // option not specified nor focusable: use fallback options
7931
7988
  if (findContainerIndex(doc.activeElement) >= 0) {
7932
7989
  node = doc.activeElement;
@@ -7937,6 +7994,10 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7937
7994
  // NOTE: `fallbackFocus` option function cannot return `false` (not supported)
7938
7995
  node = firstTabbableNode || getNodeForOption('fallbackFocus');
7939
7996
  }
7997
+ } else if (node === null) {
7998
+ // option is a VALID selector string that doesn't yield a node: use the `fallbackFocus`
7999
+ // option instead of the default behavior when the option isn't specified at all
8000
+ node = getNodeForOption('fallbackFocus');
7940
8001
  }
7941
8002
  if (!node) {
7942
8003
  throw new Error('Your focus-trap needs to have at least one focusable element');
@@ -8046,25 +8107,25 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8046
8107
  *
8047
8108
  * @returns {HTMLElement} The element that currently has the focus
8048
8109
  **/
8049
- var getActiveElement = function getActiveElement(el) {
8110
+ var _getActiveElement = function getActiveElement(el) {
8050
8111
  var activeElement = el.activeElement;
8051
8112
  if (!activeElement) {
8052
8113
  return;
8053
8114
  }
8054
8115
  if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {
8055
- return getActiveElement(activeElement.shadowRoot);
8116
+ return _getActiveElement(activeElement.shadowRoot);
8056
8117
  }
8057
8118
  return activeElement;
8058
8119
  };
8059
- var tryFocus = function tryFocus(node) {
8120
+ var _tryFocus = function tryFocus(node) {
8060
8121
  if (node === false) {
8061
8122
  return;
8062
8123
  }
8063
- if (node === getActiveElement(document)) {
8124
+ if (node === _getActiveElement(document)) {
8064
8125
  return;
8065
8126
  }
8066
8127
  if (!node || !node.focus) {
8067
- tryFocus(getInitialFocusNode());
8128
+ _tryFocus(getInitialFocusNode());
8068
8129
  return;
8069
8130
  }
8070
8131
  node.focus({
@@ -8077,7 +8138,9 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8077
8138
  }
8078
8139
  };
8079
8140
  var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {
8080
- var node = getNodeForOption('setReturnFocus', previousActiveElement);
8141
+ var node = getNodeForOption('setReturnFocus', {
8142
+ params: [previousActiveElement]
8143
+ });
8081
8144
  return node ? node : node === false ? false : previousActiveElement;
8082
8145
  };
8083
8146
 
@@ -8092,11 +8155,11 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8092
8155
  * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be
8093
8156
  * determined given the current state of the trap.
8094
8157
  */
8095
- var findNextNavNode = function findNextNavNode(_ref2) {
8096
- var target = _ref2.target,
8097
- event = _ref2.event,
8098
- _ref2$isBackward = _ref2.isBackward,
8099
- isBackward = _ref2$isBackward === void 0 ? false : _ref2$isBackward;
8158
+ var findNextNavNode = function findNextNavNode(_ref3) {
8159
+ var target = _ref3.target,
8160
+ event = _ref3.event,
8161
+ _ref3$isBackward = _ref3.isBackward,
8162
+ isBackward = _ref3$isBackward === undefined ? false : _ref3$isBackward;
8100
8163
  target = target || getActualTarget(event);
8101
8164
  updateTabbableNodes();
8102
8165
  var destinationNode = null;
@@ -8120,8 +8183,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8120
8183
  // REVERSE
8121
8184
 
8122
8185
  // is the target the first tabbable node in a group?
8123
- var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {
8124
- var firstTabbableNode = _ref3.firstTabbableNode;
8186
+ var startOfGroupIndex = state.tabbableGroups.findIndex(function (_ref4) {
8187
+ var firstTabbableNode = _ref4.firstTabbableNode;
8125
8188
  return target === firstTabbableNode;
8126
8189
  });
8127
8190
  if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {
@@ -8149,8 +8212,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8149
8212
  // FORWARD
8150
8213
 
8151
8214
  // is the target the last tabbable node in a group?
8152
- var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref4) {
8153
- var lastTabbableNode = _ref4.lastTabbableNode;
8215
+ var lastOfGroupIndex = state.tabbableGroups.findIndex(function (_ref5) {
8216
+ var lastTabbableNode = _ref5.lastTabbableNode;
8154
8217
  return target === lastTabbableNode;
8155
8218
  });
8156
8219
  if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {
@@ -8308,9 +8371,9 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8308
8371
  });
8309
8372
  }
8310
8373
  if (nextNode) {
8311
- tryFocus(nextNode);
8374
+ _tryFocus(nextNode);
8312
8375
  } else {
8313
- tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
8376
+ _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
8314
8377
  }
8315
8378
  }
8316
8379
  state.recentNavEvent = undefined; // clear
@@ -8335,19 +8398,21 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8335
8398
  // to where it normally would
8336
8399
  event.preventDefault();
8337
8400
  }
8338
- tryFocus(destinationNode);
8401
+ _tryFocus(destinationNode);
8339
8402
  }
8340
8403
  // else, let the browser take care of [shift+]tab and move the focus
8341
8404
  };
8405
+ var checkTabKey = function checkTabKey(event) {
8406
+ if (config.isKeyForward(event) || config.isKeyBackward(event)) {
8407
+ checkKeyNav(event, config.isKeyBackward(event));
8408
+ }
8409
+ };
8342
8410
 
8343
- var checkKey = function checkKey(event) {
8411
+ // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates
8412
+ var checkEscapeKey = function checkEscapeKey(event) {
8344
8413
  if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {
8345
8414
  event.preventDefault();
8346
8415
  trap.deactivate();
8347
- return;
8348
- }
8349
- if (config.isKeyForward(event) || config.isKeyBackward(event)) {
8350
- checkKeyNav(event, config.isKeyBackward(event));
8351
8416
  }
8352
8417
  };
8353
8418
  var checkClick = function checkClick(e) {
@@ -8380,8 +8445,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8380
8445
  // Delay ensures that the focused element doesn't capture the event
8381
8446
  // that caused the focus trap activation.
8382
8447
  state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {
8383
- tryFocus(getInitialFocusNode());
8384
- }) : tryFocus(getInitialFocusNode());
8448
+ _tryFocus(getInitialFocusNode());
8449
+ }) : _tryFocus(getInitialFocusNode());
8385
8450
  doc.addEventListener('focusin', checkFocusIn, true);
8386
8451
  doc.addEventListener('mousedown', checkPointerDown, {
8387
8452
  capture: true,
@@ -8395,10 +8460,11 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8395
8460
  capture: true,
8396
8461
  passive: false
8397
8462
  });
8398
- doc.addEventListener('keydown', checkKey, {
8463
+ doc.addEventListener('keydown', checkTabKey, {
8399
8464
  capture: true,
8400
8465
  passive: false
8401
8466
  });
8467
+ doc.addEventListener('keydown', checkEscapeKey);
8402
8468
  return trap;
8403
8469
  };
8404
8470
  var removeListeners = function removeListeners() {
@@ -8409,7 +8475,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8409
8475
  doc.removeEventListener('mousedown', checkPointerDown, true);
8410
8476
  doc.removeEventListener('touchstart', checkPointerDown, true);
8411
8477
  doc.removeEventListener('click', checkClick, true);
8412
- doc.removeEventListener('keydown', checkKey, true);
8478
+ doc.removeEventListener('keydown', checkTabKey, true);
8479
+ doc.removeEventListener('keydown', checkEscapeKey);
8413
8480
  return trap;
8414
8481
  };
8415
8482
 
@@ -8428,7 +8495,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8428
8495
  // If the currently focused is removed then browsers will move focus to the
8429
8496
  // <body> element. If this happens, try to move focus back into the trap.
8430
8497
  if (isFocusedNodeRemoved) {
8431
- tryFocus(getInitialFocusNode());
8498
+ _tryFocus(getInitialFocusNode());
8432
8499
  }
8433
8500
  };
8434
8501
 
@@ -8474,14 +8541,14 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8474
8541
  state.active = true;
8475
8542
  state.paused = false;
8476
8543
  state.nodeFocusedBeforeActivation = doc.activeElement;
8477
- onActivate === null || onActivate === void 0 || onActivate();
8544
+ onActivate === null || onActivate === undefined || onActivate();
8478
8545
  var finishActivation = function finishActivation() {
8479
8546
  if (checkCanFocusTrap) {
8480
8547
  updateTabbableNodes();
8481
8548
  }
8482
8549
  addListeners();
8483
8550
  updateObservedNodes();
8484
- onPostActivate === null || onPostActivate === void 0 || onPostActivate();
8551
+ onPostActivate === null || onPostActivate === undefined || onPostActivate();
8485
8552
  };
8486
8553
  if (checkCanFocusTrap) {
8487
8554
  checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);
@@ -8510,13 +8577,13 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8510
8577
  var onPostDeactivate = getOption(options, 'onPostDeactivate');
8511
8578
  var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');
8512
8579
  var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');
8513
- onDeactivate === null || onDeactivate === void 0 || onDeactivate();
8580
+ onDeactivate === null || onDeactivate === undefined || onDeactivate();
8514
8581
  var finishDeactivation = function finishDeactivation() {
8515
8582
  delay(function () {
8516
8583
  if (returnFocus) {
8517
- tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
8584
+ _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
8518
8585
  }
8519
- onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();
8586
+ onPostDeactivate === null || onPostDeactivate === undefined || onPostDeactivate();
8520
8587
  });
8521
8588
  };
8522
8589
  if (returnFocus && checkCanReturnFocus) {
@@ -8527,31 +8594,21 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8527
8594
  return this;
8528
8595
  },
8529
8596
  pause: function pause(pauseOptions) {
8530
- if (state.paused || !state.active) {
8597
+ if (!state.active) {
8531
8598
  return this;
8532
8599
  }
8533
- var onPause = getOption(pauseOptions, 'onPause');
8534
- var onPostPause = getOption(pauseOptions, 'onPostPause');
8535
- state.paused = true;
8536
- onPause === null || onPause === void 0 || onPause();
8537
- removeListeners();
8538
- updateObservedNodes();
8539
- onPostPause === null || onPostPause === void 0 || onPostPause();
8540
- return this;
8600
+ state.manuallyPaused = true;
8601
+ return this._setPausedState(true, pauseOptions);
8541
8602
  },
8542
8603
  unpause: function unpause(unpauseOptions) {
8543
- if (!state.paused || !state.active) {
8604
+ if (!state.active) {
8544
8605
  return this;
8545
8606
  }
8546
- var onUnpause = getOption(unpauseOptions, 'onUnpause');
8547
- var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');
8548
- state.paused = false;
8549
- onUnpause === null || onUnpause === void 0 || onUnpause();
8550
- updateTabbableNodes();
8551
- addListeners();
8552
- updateObservedNodes();
8553
- onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();
8554
- return this;
8607
+ state.manuallyPaused = false;
8608
+ if (trapStack[trapStack.length - 1] !== this) {
8609
+ return this;
8610
+ }
8611
+ return this._setPausedState(false, unpauseOptions);
8555
8612
  },
8556
8613
  updateContainerElements: function updateContainerElements(containerElements) {
8557
8614
  var elementsAsArray = [].concat(containerElements).filter(Boolean);
@@ -8565,6 +8622,38 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8565
8622
  return this;
8566
8623
  }
8567
8624
  };
8625
+ Object.defineProperties(trap, {
8626
+ _isManuallyPaused: {
8627
+ value: function value() {
8628
+ return state.manuallyPaused;
8629
+ }
8630
+ },
8631
+ _setPausedState: {
8632
+ value: function value(paused, options) {
8633
+ if (state.paused === paused) {
8634
+ return this;
8635
+ }
8636
+ state.paused = paused;
8637
+ if (paused) {
8638
+ var onPause = getOption(options, 'onPause');
8639
+ var onPostPause = getOption(options, 'onPostPause');
8640
+ onPause === null || onPause === undefined || onPause();
8641
+ removeListeners();
8642
+ updateObservedNodes();
8643
+ onPostPause === null || onPostPause === undefined || onPostPause();
8644
+ } else {
8645
+ var onUnpause = getOption(options, 'onUnpause');
8646
+ var onPostUnpause = getOption(options, 'onPostUnpause');
8647
+ onUnpause === null || onUnpause === undefined || onUnpause();
8648
+ updateTabbableNodes();
8649
+ addListeners();
8650
+ updateObservedNodes();
8651
+ onPostUnpause === null || onPostUnpause === undefined || onPostUnpause();
8652
+ }
8653
+ return this;
8654
+ }
8655
+ }
8656
+ });
8568
8657
 
8569
8658
  // initialize container elements
8570
8659
  trap.updateContainerElements(elements);
@@ -10411,6 +10500,7 @@ const CatInput = class {
10411
10500
  this._id = `cat-input-${nextUniqueId$7++}`;
10412
10501
  this.hasSlottedLabel = false;
10413
10502
  this.hasSlottedHint = false;
10503
+ this.hasSlottedCounter = false;
10414
10504
  this.isPasswordShown = false;
10415
10505
  this.errorMap = undefined;
10416
10506
  this.requiredMarker = 'optional';
@@ -10452,6 +10542,7 @@ const CatInput = class {
10452
10542
  componentWillRender() {
10453
10543
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
10454
10544
  this.hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
10545
+ this.hasSlottedCounter = !!this.hostElement.querySelector('[slot="counter"]');
10455
10546
  }
10456
10547
  /**
10457
10548
  * Programmatically move focus to the input. Use this method instead of
@@ -10504,19 +10595,19 @@ const CatInput = class {
10504
10595
  }
10505
10596
  render() {
10506
10597
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
10507
- return (index.h("div", { key: 'ffbaf104a60dbf73cb59e07e3164fe0c421540a5', class: {
10598
+ return (index.h("div", { key: '3d28dff29d5ced59f609ce9fcf6c2b2a14cfdda7', class: {
10508
10599
  'input-field': true,
10509
10600
  'input-horizontal': this.horizontal
10510
- } }, index.h("div", { key: 'e6139d1d950c2d8c2674bb90f0acbe9333ace2eb', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (index.h("label", { key: 'fce898969b37f4579f780c1a62354ccb0da5a73e', htmlFor: this.id, part: "label" }, index.h("span", { key: '8a4d0f653bae9a75db600080ad7d0b9199c14db5', class: "label-wrapper" }, (this.hasSlottedLabel && index.h("slot", { key: '6073eadb00b587d1f3ba22d212e5235d21826b08', name: "label" })) || this.label, index.h("div", { key: 'fc4be508caec71287f275873d49adb5c16931289', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (index.h("span", { key: 'c1010a473d4bfadb8ada56825db91f0c4d2b7871', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (index.h("span", { key: '8b2184a224afa6857f207aeaf71d83e12c92ef9a', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.required'), ")")), this.maxLength && (index.h("div", { key: '6aee4428a06faba6ecf6a82963f0ecf3ca0d5d7b', class: "label-character-count", "aria-hidden": "true" }, this.value?.toString().length ?? 0, "/", this.maxLength))))))), index.h("div", { key: '9c88a62af0c4083162bea13dc1fd5ead5708efbb', class: "input-container" }, index.h("div", { key: '556a7b1bc45da66739d8a7afec3d4e1b64f12e77', class: "input-outer-wrapper" }, index.h("div", { key: '16d000652a934588fa87c71929565aa5cc15069b', class: {
10601
+ } }, index.h("div", { key: '41399390b76c6a2e96dc3df48eede8ea2bcc4698', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (index.h("label", { key: '68bb767790072eb2728d680d448e1ee80e641013', htmlFor: this.id, part: "label" }, index.h("span", { key: '04c217ff1f227a1fb82b9a52b284bbd67f8d89dd', class: "label-wrapper" }, (this.hasSlottedLabel && index.h("slot", { key: '0c462827456af3b83935e569fac4fb45459c2edc', name: "label" })) || this.label, index.h("div", { key: '9415db27af950dc50efac0c60bdc47aa5efc8c97', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (index.h("span", { key: 'fc45ea569ef7c9eec048bae75a8b5127beafcc09', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (index.h("span", { key: '20f36a7a3e2c042fa4f802ea3f71cb20f60188b3', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.required'), ")")), (this.maxLength || this.hasSlottedCounter) && (index.h("div", { key: '58338cb0be0db04c6030e9f295428079ba2c7316', class: "label-character-count", "aria-hidden": "true" }, this.hasSlottedCounter ? (index.h("slot", { name: "counter" })) : (`${this.value?.length ?? 0}/${this.maxLength}`)))))))), index.h("div", { key: '5ed2b9c0c812c65d2e7d77d02f61cb88f33567e1', class: "input-container" }, index.h("div", { key: '9b73f259436d1f7d75f2efcaec3959759631f579', class: "input-outer-wrapper" }, index.h("div", { key: '04ba158193111283c31ea6e8d3d4e34e0dafe995', class: {
10511
10602
  'input-wrapper': true,
10512
10603
  'input-round': this.round,
10513
10604
  'input-readonly': this.readonly,
10514
10605
  'input-disabled': this.disabled,
10515
10606
  'input-invalid': this.invalid
10516
- }, onClick: () => this.input.focus() }, this.textPrefix && (index.h("span", { key: 'de3b5da6a0a09c1f66caeb2fb3c9772a2426778a', class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && (index.h("cat-icon", { key: 'f950a57fa6060b9f82629d26b91dcb449b86cd2a', icon: this.icon, class: "icon-prefix", size: "l", onClick: () => this.doFocus() })), index.h("div", { key: 'b98cd1a805712c454262bfa8fae92f1e92b33f09', class: "input-inner-wrapper" }, index.h("input", { key: '9bd8bc8f345c80ced98a06728d9d09bc462e0823', ...this.nativeAttributes, part: "input", ref: el => (this.input = el), id: this.id, class: {
10607
+ }, onClick: () => this.input.focus() }, this.textPrefix && (index.h("span", { key: '6e834d91bca7660e24f7f917034db92a530d3901', class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && (index.h("cat-icon", { key: '606625d78126b10f1efbdeec78d2339d9a66cf04', icon: this.icon, class: "icon-prefix", size: "l", onClick: () => this.doFocus() })), index.h("div", { key: '28776786dd55f04d60c985ed7891d85c0e4c1f7b', class: "input-inner-wrapper" }, index.h("input", { key: '7ee17b1603ed56cd4b98561c9a7f5426edfcb9e8', ...this.nativeAttributes, part: "input", ref: el => (this.input = el), id: this.id, class: {
10517
10608
  'has-clearable': this.clearable && !this.disabled && !this.readonly && !!this.value,
10518
10609
  'has-toggle-password': this.togglePassword && !this.disabled && !this.readonly && !!this.value
10519
- }, autocomplete: this.autoComplete, disabled: this.disabled, max: this.max, maxlength: this.maxLength, min: this.min, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, type: this.isPasswordShown ? 'text' : this.type, value: this.value, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-invalid": this.invalid ? 'true' : undefined, "aria-describedby": this.hasHint ? this.id + '-hint' : undefined }), this.clearable && !this.disabled && !this.readonly && this.value && (index.h("cat-button", { key: '255d4760d151bfb36f0217295ee378b5cec26647', class: "clearable", icon: "$cat:input-close", "icon-only": "true", size: "s", variant: "text", "a11y-label": of.catI18nRegistry.t('input.clear'), onClick: this.clear.bind(this), "data-dropdown-no-close": true })), this.togglePassword && !this.disabled && !this.readonly && this.value && (index.h("cat-button", { key: 'd5e62dccaaa64370723d4721d567789b06c94b11', class: "toggle-password", icon: this.isPasswordShown ? '$cat:input-password-hide' : '$cat:input-password-show', "icon-only": "true", size: "s", variant: "text", "a11y-label": of.catI18nRegistry.t(this.isPasswordShown ? 'input.hidePassword' : 'input.showPassword'), onClick: this.doTogglePassword.bind(this) }))), this.loading && index.h("cat-spinner", { key: '22218dd7cd48b2599d2125ec080467c925b04a4d', size: "m", class: "icon-loading" }), !this.invalid && this.icon && this.iconRight && (index.h("cat-icon", { key: 'c9e5f18bfc54321ad9b18df56a199d0096739621', icon: this.icon, class: "icon-suffix", size: "l", onClick: () => this.doFocus() })), this.invalid && (index.h("cat-icon", { key: '307c0d5f2a1dff6efb7d6bf05a035c487f947994', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" })), this.textSuffix && (index.h("span", { key: '3216d4e278951898d9a96ad48b2df7c17d54c6a3', class: "text-suffix", part: "suffix" }, this.textSuffix))), index.h("slot", { key: 'd996aab9325a2eb77401490c3fa2a9e8eaf0ffc6', name: "addon" })), this.hasHint && (index.h(CatFormHint, { key: '84980cbf543e9405c70d481bce339cd9c743da43', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && index.h("slot", { name: "hint" }), errorMap: this.errorMap })))));
10610
+ }, autocomplete: this.autoComplete, disabled: this.disabled, max: this.max, maxlength: this.maxLength, min: this.min, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, type: this.isPasswordShown ? 'text' : this.type, value: this.value, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-invalid": this.invalid ? 'true' : undefined, "aria-describedby": this.hasHint ? this.id + '-hint' : undefined }), this.clearable && !this.disabled && !this.readonly && this.value && (index.h("cat-button", { key: '5195866111feaf77f8ae6b9272443c7f2e6f6c9b', class: "clearable", icon: "$cat:input-close", "icon-only": "true", size: "s", variant: "text", "a11y-label": of.catI18nRegistry.t('input.clear'), onClick: this.clear.bind(this), "data-dropdown-no-close": true })), this.togglePassword && !this.disabled && !this.readonly && this.value && (index.h("cat-button", { key: 'ffbd5c49957d02e672d1da2710fb5a2698fe34a5', class: "toggle-password", icon: this.isPasswordShown ? '$cat:input-password-hide' : '$cat:input-password-show', "icon-only": "true", size: "s", variant: "text", "a11y-label": of.catI18nRegistry.t(this.isPasswordShown ? 'input.hidePassword' : 'input.showPassword'), onClick: this.doTogglePassword.bind(this) }))), this.loading && index.h("cat-spinner", { key: '19e83c45128e1110c4404fb266b97d9a0b23ea75', size: "m", class: "icon-loading" }), !this.invalid && this.icon && this.iconRight && (index.h("cat-icon", { key: '2363be86adba00d3748a2b4e72d968027e3cbc03', icon: this.icon, class: "icon-suffix", size: "l", onClick: () => this.doFocus() })), this.invalid && (index.h("cat-icon", { key: '158ae6c58f520b87023e534239550cd963c6c3f2', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" })), this.textSuffix && (index.h("span", { key: '8d0148452fe5b0184ed04fbaa7e84d805ef8648f', class: "text-suffix", part: "suffix" }, this.textSuffix))), index.h("slot", { key: 'cc46bb14d556c4144c28b8901e0aac7ff2c6908e', name: "addon" })), this.hasHint && (index.h(CatFormHint, { key: '0de0feb24f62246485c054bb83237d5610c89a21', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && index.h("slot", { name: "hint" }), errorMap: this.errorMap })))));
10520
10611
  }
10521
10612
  get hasHint() {
10522
10613
  return !!this.hint || !!this.hasSlottedHint || this.invalid;
@@ -13445,9 +13536,11 @@ const CatTextarea = class {
13445
13536
  this._id = `cat-textarea-${nextUniqueId$2++}`;
13446
13537
  this.hasSlottedLabel = false;
13447
13538
  this.hasSlottedHint = false;
13539
+ this.hasSlottedCounter = false;
13448
13540
  this.errorMap = undefined;
13449
13541
  this.requiredMarker = 'optional';
13450
13542
  this.horizontal = false;
13543
+ this.autoComplete = undefined;
13451
13544
  this.disabled = false;
13452
13545
  this.hint = undefined;
13453
13546
  this.identifier = undefined;
@@ -13474,6 +13567,7 @@ const CatTextarea = class {
13474
13567
  componentWillRender() {
13475
13568
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
13476
13569
  this.hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
13570
+ this.hasSlottedCounter = !!this.hostElement.querySelector('[slot="counter"]');
13477
13571
  }
13478
13572
  componentDidLoad() {
13479
13573
  n(this.textarea);
@@ -13517,15 +13611,15 @@ const CatTextarea = class {
13517
13611
  }
13518
13612
  render() {
13519
13613
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
13520
- return (index.h(index.Host, { key: '7baa83d9d2722e629503623daa7d64f669d9d14b' }, index.h("div", { key: '7e23d71bea6eb4b3c1f512ce6e6052c4d0c93675', class: {
13614
+ return (index.h(index.Host, { key: 'c4cab207b93c4c13de6cce9f1558b2d4fce925ef' }, index.h("div", { key: '179e2a2dfe8740447dc6ff9824e492ee02e4d47a', class: {
13521
13615
  'textarea-field': true,
13522
13616
  'textarea-horizontal': this.horizontal
13523
- } }, index.h("div", { key: '51da73044afe3fb0100c921556f4bc60f4823597', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (index.h("label", { key: '21efe02e678b15577efbd4e6889ed278e519f6e1', htmlFor: this.id, part: "label" }, index.h("span", { key: '35e58dc082d073296563ec6473734ec7bb995b5e', class: "label-wrapper" }, (this.hasSlottedLabel && index.h("slot", { key: 'f32da2b24d1d50b06a7d55d4d15185441feb285a', name: "label" })) || this.label, index.h("div", { key: 'ed4abb4e4b492130a990fca89699fea9838c758c', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (index.h("span", { key: '97dfc883e7a8af4d2090bb4b40208e0886585da6', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (index.h("span", { key: '9c74951359ccab83ec46bbd868bccefaf1356f6f', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.required'), ")")), this.maxLength && (index.h("div", { key: '702c2c4a8238430927882a11490cd5be399bd3f5', class: "label-character-count", "aria-hidden": "true" }, this.value?.length ?? 0, "/", this.maxLength))))))), index.h("div", { key: '3f2aa62a32dd8b775b9826fe8c92129219135dcb', class: "textarea-container" }, index.h("div", { key: '270d8f0b27b99f7388e17edc88affe7daab15438', class: {
13617
+ } }, index.h("div", { key: '5ecc1e393465659830aba909126564e860143648', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (index.h("label", { key: '156179fd03e76824cf7ddf55d4570f717a5ec96f', htmlFor: this.id, part: "label" }, index.h("span", { key: '466b8ee054f2fa75c40b6d93dcaf6e308f499577', class: "label-wrapper" }, (this.hasSlottedLabel && index.h("slot", { key: 'ca380dd71b02626140596777c05baa1d5f2454f1', name: "label" })) || this.label, index.h("div", { key: '72a97643fbbfc3335ca46aed185228703ba15f1c', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (index.h("span", { key: '2daf2d71efdadc2c840838e9f3b55aff31860c57', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (index.h("span", { key: '3d26ff6a20935bb3895df9a35ee3ed52bae4892d', class: "label-optional", "aria-hidden": "true" }, "(", of.catI18nRegistry.t('input.required'), ")")), (this.maxLength || this.hasSlottedCounter) && (index.h("div", { key: '9c2940f48e9ee33b48f0fdc800fb6c9b03e74cd3', class: "label-character-count", "aria-hidden": "true" }, this.hasSlottedCounter ? (index.h("slot", { name: "counter" })) : (`${this.value?.length ?? 0}/${this.maxLength}`)))))))), index.h("div", { key: 'fb1fc6a8626ae38042ee7d58e309cb8552177a5a', class: "textarea-container" }, index.h("div", { key: 'c2bc69007aa78f3f7473d7d00d5edd096e034d82', class: {
13524
13618
  'textarea-wrapper': true,
13525
13619
  'textarea-readonly': this.readonly,
13526
13620
  'textarea-disabled': this.disabled,
13527
13621
  'textarea-invalid': this.invalid
13528
- } }, index.h("textarea", { key: 'a0091c3f756c983d416ee12bf777cf7101c07b48', ...this.nativeAttributes, part: "textarea", ref: el => (this.textarea = el), id: this.id, disabled: this.disabled, maxlength: this.maxLength, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, rows: this.rows, value: this.value, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-invalid": this.invalid ? 'true' : undefined, "aria-describedby": this.hasHint ? this.id + '-hint' : undefined }), this.invalid && (index.h("cat-icon", { key: '9ff1a0a8b7bf6ae5deb8b489f4426053d5ff54b9', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l", onClick: () => this.textarea.focus() }))), this.hasHint && (index.h(CatFormHint, { key: 'badc9780d07df9f6645c7f4bbdcfe97610db6741', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && index.h("slot", { name: "hint" }), errorMap: this.errorMap }))))));
13622
+ } }, index.h("textarea", { key: '33186afce9ab71467701ee679c7fd25ab15e48c0', ...this.nativeAttributes, part: "textarea", ref: el => (this.textarea = el), id: this.id, disabled: this.disabled, autocomplete: this.autoComplete, maxlength: this.maxLength, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, rows: this.rows, value: this.value, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-invalid": this.invalid ? 'true' : undefined, "aria-describedby": this.hasHint ? this.id + '-hint' : undefined }), this.invalid && (index.h("cat-icon", { key: '19da7431db208bd34032cd22d4112b8c9b2c786f', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l", onClick: () => this.textarea.focus() }))), this.hasHint && (index.h(CatFormHint, { key: '3f4bf8b4ac56e28ba482ef5e3883a17c3336f2b5', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && index.h("slot", { name: "hint" }), errorMap: this.errorMap }))))));
13529
13623
  }
13530
13624
  get hasHint() {
13531
13625
  return !!this.hint || !!this.hasSlottedHint || this.invalid;
@@ -13636,7 +13730,7 @@ const CatTime = class {
13636
13730
  this.valueChangedBySelection = false;
13637
13731
  this.requiredMarker = 'optional';
13638
13732
  this.horizontal = false;
13639
- this.autoComplete = undefined;
13733
+ this.autoComplete = 'off';
13640
13734
  this.clearable = false;
13641
13735
  this.disabled = false;
13642
13736
  this.hint = undefined;
@@ -13762,14 +13856,14 @@ const CatTime = class {
13762
13856
  }
13763
13857
  render() {
13764
13858
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
13765
- return (index.h(index.Host, { key: '9f7564ec41354b98ec0779dde23198a18689f1a3' }, index.h("cat-input", { key: '776a76b393d92278a5afd389602c767c319c9238', class: "cat-time-input", ref: el => (this.input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, label: this.label, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, value: this.format(this.selectionTime, false), errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, onCatFocus: e => this.catFocus.emit(e.detail), onCatBlur: e => this.onInputBlur(e.detail) }, index.h("span", { key: '016bab3b23282fa4a5aeb764e4b80b337d2f9cca', slot: "label" }, this.hasSlottedLabel && index.h("slot", { key: '233b40757fe0c822716b87c23538b5b02371d9d2', name: "label" }), !this.hasSlottedLabel && this.label, index.h("span", { key: '6ae7d40f0fbf4cf729e29ad124df6f3cdd8b22f8', class: "label-aria" }, " (HH:mm)")), index.h("div", { key: '7aaab9d8ee9e06a8a68a9f94e664ba12422a18c5', slot: "addon", class: "cat-time-addon" }, this.locale.timeFormat === '12' && (index.h("cat-button", { key: '9130d436847a0fb250b28d5630e7c3a403ec494a', class: "cat-time-format", disabled: this.disabled || this.readonly, onCatClick: () => this.toggleAm() }, this.isAm ? 'AM' : 'PM')), index.h("cat-dropdown", { key: '10948ba2be73ffcde722fb22c5a4b9f3891b329d', slot: "addon", placement: this.placement }, index.h("cat-button", { key: '3e4d74066110ca2b7141d809a1a276f78d0382a1', slot: "trigger", class: "cat-time-toggle", disabled: this.disabled || this.readonly, icon: "$cat:timepicker-clock", iconOnly: true, a11yLabel: this.selectionTime ? `${this.locale.change}, ${this.format(this.selectionTime)}` : this.locale.choose }), index.h("nav", { key: '27a2a17080a09e8148b5cae0af36d03735b8afcf', slot: "content", class: "cat-nav" }, index.h("ul", { key: '8181974cae0ed2c3cc99c43d51f3ccbc5e188592' }, this.timeArray().map(time => {
13859
+ return (index.h(index.Host, { key: '55ddaea80f34a762b7f3b97145f3fc23678764df' }, index.h("cat-input", { key: 'b9c72fafc50c6f123478f426d771ae25fa77d7d9', class: "cat-time-input", ref: el => (this.input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, label: this.label, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, value: this.format(this.selectionTime, false), errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, onCatFocus: e => this.catFocus.emit(e.detail), onCatBlur: e => this.onInputBlur(e.detail) }, index.h("span", { key: 'fff1bf4b55421e1d3d0a59c6526e2a1489531c73', slot: "label" }, this.hasSlottedLabel && index.h("slot", { key: '3bf7db213bf73ed33f47b78df88445654feef6f1', name: "label" }), !this.hasSlottedLabel && this.label, index.h("span", { key: 'cd3bc1b7be142e85106f03ab84f664279f129c02', class: "label-aria" }, " (HH:mm)")), index.h("div", { key: 'c56add3522077567621147d80a327c7acfa93110', slot: "addon", class: "cat-time-addon" }, this.locale.timeFormat === '12' && (index.h("cat-button", { key: 'e895941581bd1d6a67eb3f384d6cdf4cd6663ca2', class: "cat-time-format", disabled: this.disabled || this.readonly, onCatClick: () => this.toggleAm() }, this.isAm ? 'AM' : 'PM')), index.h("cat-dropdown", { key: 'b44d49f1d06c3a78342f60b873ad57d613fe38c5', slot: "addon", placement: this.placement }, index.h("cat-button", { key: '95789ba8b632e442a41059c60a8394efa61a6e54', slot: "trigger", class: "cat-time-toggle", disabled: this.disabled || this.readonly, icon: "$cat:timepicker-clock", iconOnly: true, a11yLabel: this.selectionTime ? `${this.locale.change}, ${this.format(this.selectionTime)}` : this.locale.choose }), index.h("nav", { key: 'fd16e5301bdde5fa3f3ac929380d9f8ca7cef75b', slot: "content", class: "cat-nav" }, index.h("ul", { key: '9107c10a9533ef4cef0c0718cba17e097a7d54bd' }, this.timeArray().map(time => {
13766
13860
  const isoTime = formatIso(time);
13767
13861
  const disabled = isBefore(time, this.min ?? null) || isAfter(time, this.max ?? null);
13768
13862
  return (index.h("li", null, index.h("cat-button", { class: {
13769
13863
  'cat-nav-item': true,
13770
13864
  'time-disabled': disabled
13771
13865
  }, disabled: disabled, active: isoTime === this.value, color: isoTime === this.value ? 'primary' : 'secondary', variant: isoTime === this.value ? 'filled' : 'outlined', onCatClick: () => this.select(time), "data-time": isoTime }, this.format(time))));
13772
- }))))), this.hasSlottedHint && (index.h("span", { key: 'cd316e5045ad3298aac0e4056c865f7bd6b1dcf3', slot: "hint" }, index.h("slot", { key: '7fa90c7b83032013bfc9d1626bc8b53072e9aa85', name: "hint" }))))));
13866
+ }))))), this.hasSlottedHint && (index.h("span", { key: '55b0ac7a0d4aa7f743d23a3f0f8461b4f1e44781', slot: "hint" }, index.h("slot", { key: '8f05bb69ab686061bebad8cc6a1364e0bea5267a', name: "hint" }))))));
13773
13867
  }
13774
13868
  timeArray() {
13775
13869
  const result = [];
@@ -13929,7 +14023,7 @@ CatToggle.style = CatToggleStyle0;
13929
14023
 
13930
14024
  const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
13931
14025
 
13932
- const catTooltipCss = ":host{display:contents}:host([hidden]){display:none}.tooltip{--cat-font-color-head:var(--cat-font-color-tooltip, 255, 255, 255);--cat-font-color-body:var(--cat-font-color-tooltip, 255, 255, 255);position:fixed;width:max-content;top:0;left:0;box-sizing:border-box;font-size:0.875rem;line-height:1.125rem;font-weight:500;background-color:rgb(var(--cat-bg-tooltip, 0, 0, 0));border-radius:var(--cat-border-radius-m, 0.25rem);color:rgb(var(--cat-font-color-tooltip, 255, 255, 255));transition:opacity 250ms linear, visibility 250ms linear;visibility:hidden;opacity:0;box-shadow:rgba(0, 0, 0, 0.08) 0 1px 8px 0;z-index:calc(var(--cat-z-index, 1000) + 200);max-width:min(100vw - 0.5rem, 20rem)}.tooltip-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.tooltip-show{opacity:1;visibility:visible}.tooltip p{margin:0}.tooltip-round{border-radius:10rem}.tooltip-s{padding:0.375rem 0.5rem}.tooltip-s.tooltip-round{padding:0.375rem 0.75rem}.tooltip-m{padding:0.75rem}.tooltip-m.tooltip-round{padding:0.75rem 1rem}.tooltip-l{padding:1rem}.tooltip-l.tooltip-round{padding:1rem 1.5rem}";
14026
+ const catTooltipCss = ":host{display:contents}:host([hidden]){display:none}.tooltip{--cat-font-color-head:var(--cat-font-color-tooltip, 255, 255, 255);--cat-font-color-body:var(--cat-font-color-tooltip, 255, 255, 255);position:fixed;width:max-content;top:0;left:0;box-sizing:border-box;background-color:rgb(var(--cat-bg-tooltip, 0, 0, 0));border-radius:var(--cat-border-radius-m, 0.25rem);color:rgb(var(--cat-font-color-tooltip, 255, 255, 255));transition:opacity 250ms linear, visibility 250ms linear;visibility:hidden;opacity:0;box-shadow:rgba(0, 0, 0, 0.08) 0 1px 8px 0;z-index:calc(var(--cat-z-index, 1000) + 200);max-width:min(100vw - 0.5rem, 20rem)}.tooltip-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.tooltip-show{opacity:1;visibility:visible}.tooltip p{margin:0}.tooltip-round{border-radius:10rem}.tooltip-s{padding:0.25rem 0.375rem;font-size:0.75rem;line-height:1rem;font-weight:500}.tooltip-s.tooltip-round{padding-left:0.5rem;padding-right:0.5rem}.tooltip-m{padding:0.375rem 0.5rem;font-size:0.875rem;line-height:1.125rem;font-weight:500}.tooltip-m.tooltip-round{padding-left:0.75rem;padding-right:0.75rem}.tooltip-l{padding:0.5rem 0.75rem;font-size:0.9375rem;line-height:1.25rem;font-weight:500}.tooltip-l.tooltip-round{padding-left:1rem;padding-right:1rem}";
13933
14027
  const CatTooltipStyle0 = catTooltipCss;
13934
14028
 
13935
14029
  let nextUniqueId = 0;