@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
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-30afba72.js';
2
- import { e as createErrorClass, O as Observable, f as errorContext, E as EMPTY_SUBSCRIPTION, S as Subscription, g as arrRemove, h as operate, i as createOperatorSubscriber, j as innerFrom, k as executeSchedule, l as isFunction, m as identity, n as from, p as popScheduler, q as isArrayLike, r as isScheduler, s as popNumber, t as noop, u as log, a as catI18nRegistry, c as commonjsGlobal$1, d as catIconRegistry, o as of } from './of-acb1f3a9.js';
2
+ import { e as createErrorClass, O as Observable, f as errorContext, E as EMPTY_SUBSCRIPTION, S as Subscription, g as arrRemove, h as operate, i as createOperatorSubscriber, j as innerFrom, k as executeSchedule, l as isFunction, m as identity, n as from, p as popScheduler, q as isArrayLike, r as isScheduler, s as popNumber, t as noop, u as log, a as catI18nRegistry, c as commonjsGlobal$1, d as catIconRegistry, o as of } from './of-e4ec2eb4.js';
3
3
 
4
4
  const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {
5
5
  _super(this);
@@ -1102,7 +1102,7 @@ function findClosest(selector, element) {
1102
1102
  return nextElement ? findClosest(selector, nextElement) : null;
1103
1103
  }
1104
1104
 
1105
- 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}";
1105
+ 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}";
1106
1106
  const CatButtonStyle0 = catButtonCss;
1107
1107
 
1108
1108
  const CatButton = class {
@@ -1430,14 +1430,12 @@ const CatCheckbox = class {
1430
1430
  CatCheckbox.style = CatCheckboxStyle0;
1431
1431
 
1432
1432
  function getDays(language, weekday = 'long') {
1433
- const date = new Date();
1434
- const firstDayOfWeek = (date.getUTCDate() - date.getUTCDay() + 7) % 7;
1435
1433
  const format = new Intl.DateTimeFormat(language, { weekday }).format;
1436
- return [...Array(7).keys()].map(day => format(new Date(date.getTime()).setUTCDate(firstDayOfWeek + day)));
1434
+ return [...Array(7).keys()].map(day => format(new Date(2000, 4, 14 + day)));
1437
1435
  }
1438
1436
  function getMonths(language, month = 'long') {
1439
1437
  const format = new Intl.DateTimeFormat(language, { month }).format;
1440
- return [...Array(12).keys()].map(month => format(new Date(2000, month, 1)));
1438
+ return [...Array(12).keys()].map(month => format(new Date(2000, month, 15)));
1441
1439
  }
1442
1440
  function getWeekInfo(language) {
1443
1441
  const locale = new Intl.Locale(language);
@@ -1544,7 +1542,7 @@ const CatDate = class {
1544
1542
  this.inputFocused = false;
1545
1543
  this.requiredMarker = 'optional';
1546
1544
  this.horizontal = false;
1547
- this.autoComplete = undefined;
1545
+ this.autoComplete = 'off';
1548
1546
  this.clearable = false;
1549
1547
  this.disabled = false;
1550
1548
  this.hint = undefined;
@@ -1622,14 +1620,14 @@ const CatDate = class {
1622
1620
  }
1623
1621
  render() {
1624
1622
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
1625
- return (h(Host, { key: '6cb5833dd0f95cf170ad74d3841eee067e315df1' }, 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 => {
1623
+ return (h(Host, { key: '9635d72c77b9f68f5d650a5ef9e1883672e4865f' }, 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 => {
1626
1624
  this.inputFocused = e.target === this.input;
1627
1625
  e.stopPropagation();
1628
1626
  this.catFocus.emit(e.detail);
1629
1627
  }, onCatBlur: e => {
1630
1628
  e.stopPropagation();
1631
1629
  this.onInputBlur(e.detail);
1632
- } }, h("span", { key: 'c7d342b0fa3b522af5d0368e590345a2524c40ee', slot: "label" }, this.label, h("span", { key: '44d02ddce886497f9f93dc8bb73b943ae7317d07', class: "label-aria" }, " (", this.locale.formatStr, ")")), h("cat-dropdown", { key: 'a4b84508af92334d93b406f767f8080ab28a831b', slot: "addon", placement: this.placement, arrowNavigation: "none", noResize: true, onCatOpen: () => this.dateInline?.resetView() }, h("cat-button", { key: '0e48c43b6bb3b34bb70c97e7ed2bae01664c3d4e', slot: "trigger", icon: "$cat:datepicker-calendar", iconOnly: true, class: "cat-date-toggle", disabled: this.disabled, a11yLabel: this.getTriggerA11yLabel() }), h("div", { key: '976f8aa393d60c1425a63198baeabf7522bc38c4', slot: "content" }, 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) }))))));
1630
+ } }, h("span", { key: '65e0c84bf675f0c76896f06452068acfb0326e2e', slot: "label" }, this.label, h("span", { key: '67f3e80eb70dd817b481ca7945edfc83d2451c78', class: "label-aria" }, " (", this.locale.formatStr, ")")), h("cat-dropdown", { key: 'a05ef8d20ade5dda5801e44142efdb3b532b76f7', slot: "addon", placement: this.placement, arrowNavigation: "none", noResize: true, onCatOpen: () => this.dateInline?.resetView() }, h("cat-button", { key: 'a4d464eead26162405655074e352e2024c04a201', slot: "trigger", icon: "$cat:datepicker-calendar", iconOnly: true, class: "cat-date-toggle", disabled: this.disabled, a11yLabel: this.getTriggerA11yLabel() }), h("div", { key: 'e9b8ac737e80392f98b933d4870309cb8843d166', slot: "content" }, 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) }))))));
1633
1631
  }
1634
1632
  getTriggerA11yLabel() {
1635
1633
  const date = this.locale.fromLocalISO(this.value);
@@ -2468,14 +2466,16 @@ const CatDateInline = class {
2468
2466
  }
2469
2467
  }
2470
2468
  navigate(direction, period) {
2471
- this.viewDate = new Date(direction === 'prev'
2472
- ? period === 'year'
2473
- ? this.viewDate.setFullYear(this.viewDate.getFullYear() - 1)
2474
- : this.viewDate.setMonth(this.viewDate.getMonth() - 1)
2475
- : period === 'year'
2476
- ? this.viewDate.setFullYear(this.viewDate.getFullYear() + 1)
2477
- : this.viewDate.setMonth(this.viewDate.getMonth() + 1));
2478
- // announce the new month and year
2469
+ const offset = direction === 'prev' ? -1 : 1;
2470
+ const targetYear = this.viewDate.getFullYear() + (period === 'year' ? offset : 0);
2471
+ const targetMonth = this.viewDate.getMonth() + (period === 'month' ? offset : 0);
2472
+ const date = new Date(this.viewDate);
2473
+ date.setFullYear(targetYear);
2474
+ date.setMonth(targetMonth);
2475
+ const minDate = new Date(targetYear, targetMonth, 1);
2476
+ const maxDay = new Date(targetYear, targetMonth + 1, 0).getDate();
2477
+ const maxDate = new Date(targetYear, targetMonth, maxDay);
2478
+ this.viewDate = clampDate(minDate, date, maxDate);
2479
2479
  this.setAriaLive(this.getHeadline());
2480
2480
  }
2481
2481
  setAriaLive(text) {
@@ -6584,7 +6584,7 @@ function isOverflowElement(element) {
6584
6584
  function isTableElement(element) {
6585
6585
  return ['table', 'td', 'th'].includes(getNodeName(element));
6586
6586
  }
6587
- function isTopLayer$1(element) {
6587
+ function isTopLayer(element) {
6588
6588
  return [':popover-open', ':modal'].some(selector => {
6589
6589
  try {
6590
6590
  return element.matches(selector);
@@ -6598,14 +6598,15 @@ function isContainingBlock(elementOrCss) {
6598
6598
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
6599
6599
 
6600
6600
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
6601
- 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));
6601
+ // https://drafts.csswg.org/css-transforms-2/#individual-transforms
6602
+ 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));
6602
6603
  }
6603
6604
  function getContainingBlock(element) {
6604
6605
  let currentNode = getParentNode(element);
6605
6606
  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
6606
6607
  if (isContainingBlock(currentNode)) {
6607
6608
  return currentNode;
6608
- } else if (isTopLayer$1(currentNode)) {
6609
+ } else if (isTopLayer(currentNode)) {
6609
6610
  return null;
6610
6611
  }
6611
6612
  currentNode = getParentNode(currentNode);
@@ -6782,7 +6783,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
6782
6783
  const win = getWindow(domElement);
6783
6784
  const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
6784
6785
  let currentWin = win;
6785
- let currentIFrame = currentWin.frameElement;
6786
+ let currentIFrame = getFrameElement(currentWin);
6786
6787
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
6787
6788
  const iframeScale = getScale(currentIFrame);
6788
6789
  const iframeRect = currentIFrame.getBoundingClientRect();
@@ -6796,7 +6797,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
6796
6797
  x += left;
6797
6798
  y += top;
6798
6799
  currentWin = getWindow(currentIFrame);
6799
- currentIFrame = currentWin.frameElement;
6800
+ currentIFrame = getFrameElement(currentWin);
6800
6801
  }
6801
6802
  }
6802
6803
  return rectToClientRect({
@@ -6807,15 +6808,29 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
6807
6808
  });
6808
6809
  }
6809
6810
 
6810
- const topLayerSelectors = [':popover-open', ':modal'];
6811
- function isTopLayer(element) {
6812
- return topLayerSelectors.some(selector => {
6813
- try {
6814
- return element.matches(selector);
6815
- } catch (e) {
6816
- return false;
6817
- }
6818
- });
6811
+ // If <html> has a CSS width greater than the viewport, then this will be
6812
+ // incorrect for RTL.
6813
+ function getWindowScrollBarX(element, rect) {
6814
+ const leftScroll = getNodeScroll(element).scrollLeft;
6815
+ if (!rect) {
6816
+ return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
6817
+ }
6818
+ return rect.left + leftScroll;
6819
+ }
6820
+
6821
+ function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
6822
+ if (ignoreScrollbarX === void 0) {
6823
+ ignoreScrollbarX = false;
6824
+ }
6825
+ const htmlRect = documentElement.getBoundingClientRect();
6826
+ const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
6827
+ // RTL <body> scrollbar.
6828
+ getWindowScrollBarX(documentElement, htmlRect));
6829
+ const y = htmlRect.top + scroll.scrollTop;
6830
+ return {
6831
+ x,
6832
+ y
6833
+ };
6819
6834
  }
6820
6835
 
6821
6836
  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
@@ -6849,11 +6864,12 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
6849
6864
  offsets.y = offsetRect.y + offsetParent.clientTop;
6850
6865
  }
6851
6866
  }
6867
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
6852
6868
  return {
6853
6869
  width: rect.width * scale.x,
6854
6870
  height: rect.height * scale.y,
6855
- x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
6856
- y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
6871
+ x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
6872
+ y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
6857
6873
  };
6858
6874
  }
6859
6875
 
@@ -6861,12 +6877,6 @@ function getClientRects(element) {
6861
6877
  return Array.from(element.getClientRects());
6862
6878
  }
6863
6879
 
6864
- function getWindowScrollBarX(element) {
6865
- // If <html> has a CSS width greater than the viewport, then this will be
6866
- // incorrect for RTL.
6867
- return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
6868
- }
6869
-
6870
6880
  // Gets the entire size of the scrollable document area, even extending outside
6871
6881
  // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
6872
6882
  function getDocumentRect(element) {
@@ -6941,9 +6951,10 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
6941
6951
  } else {
6942
6952
  const visualOffsets = getVisualOffsets(element);
6943
6953
  rect = {
6944
- ...clippingAncestor,
6945
6954
  x: clippingAncestor.x - visualOffsets.x,
6946
- y: clippingAncestor.y - visualOffsets.y
6955
+ y: clippingAncestor.y - visualOffsets.y,
6956
+ width: clippingAncestor.width,
6957
+ height: clippingAncestor.height
6947
6958
  };
6948
6959
  }
6949
6960
  return rectToClientRect(rect);
@@ -7048,11 +7059,14 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
7048
7059
  offsets.x = offsetRect.x + offsetParent.clientLeft;
7049
7060
  offsets.y = offsetRect.y + offsetParent.clientTop;
7050
7061
  } else if (documentElement) {
7062
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
7063
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
7051
7064
  offsets.x = getWindowScrollBarX(documentElement);
7052
7065
  }
7053
7066
  }
7054
- const x = rect.left + scroll.scrollLeft - offsets.x;
7055
- const y = rect.top + scroll.scrollTop - offsets.y;
7067
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
7068
+ const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
7069
+ const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
7056
7070
  return {
7057
7071
  x,
7058
7072
  y,
@@ -7072,7 +7086,16 @@ function getTrueOffsetParent(element, polyfill) {
7072
7086
  if (polyfill) {
7073
7087
  return polyfill(element);
7074
7088
  }
7075
- return element.offsetParent;
7089
+ let rawOffsetParent = element.offsetParent;
7090
+
7091
+ // Firefox returns the <html> element as the offsetParent if it's non-static,
7092
+ // while Chrome and Safari return the <body> element. The <body> element must
7093
+ // be used to perform the correct calculations even if the <html> element is
7094
+ // non-static.
7095
+ if (getDocumentElement(element) === rawOffsetParent) {
7096
+ rawOffsetParent = rawOffsetParent.ownerDocument.body;
7097
+ }
7098
+ return rawOffsetParent;
7076
7099
  }
7077
7100
 
7078
7101
  // Gets the closest ancestor positioned element. Handles some edge cases,
@@ -7134,6 +7157,10 @@ const platform = {
7134
7157
  isRTL
7135
7158
  };
7136
7159
 
7160
+ function rectsAreEqual(a, b) {
7161
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
7162
+ }
7163
+
7137
7164
  // https://samthor.au/2021/observing-dom/
7138
7165
  function observeMove(element, onMove) {
7139
7166
  let io = null;
@@ -7153,12 +7180,13 @@ function observeMove(element, onMove) {
7153
7180
  threshold = 1;
7154
7181
  }
7155
7182
  cleanup();
7183
+ const elementRectForRootMargin = element.getBoundingClientRect();
7156
7184
  const {
7157
7185
  left,
7158
7186
  top,
7159
7187
  width,
7160
7188
  height
7161
- } = element.getBoundingClientRect();
7189
+ } = elementRectForRootMargin;
7162
7190
  if (!skip) {
7163
7191
  onMove();
7164
7192
  }
@@ -7191,6 +7219,16 @@ function observeMove(element, onMove) {
7191
7219
  refresh(false, ratio);
7192
7220
  }
7193
7221
  }
7222
+ if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
7223
+ // It's possible that even though the ratio is reported as 1, the
7224
+ // element is not actually fully within the IntersectionObserver's root
7225
+ // area anymore. This can happen under performance constraints. This may
7226
+ // be a bug in the browser's IntersectionObserver implementation. To
7227
+ // work around this, we compare the element's bounding rect now with
7228
+ // what it was at the time we created the IntersectionObserver. If they
7229
+ // are not equal then the element moved, so we refresh.
7230
+ refresh();
7231
+ }
7194
7232
  isFirstUpdate = false;
7195
7233
  }
7196
7234
 
@@ -7268,7 +7306,7 @@ function autoUpdate(reference, floating, update, options) {
7268
7306
  }
7269
7307
  function frameLoop() {
7270
7308
  const nextRefRect = getBoundingClientRect(reference);
7271
- if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {
7309
+ if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
7272
7310
  update();
7273
7311
  }
7274
7312
  prevRefRect = nextRefRect;
@@ -7392,7 +7430,7 @@ const CatDatepickerFlat = class {
7392
7430
  this.hasSlottedHint = false;
7393
7431
  this.requiredMarker = 'optional';
7394
7432
  this.horizontal = false;
7395
- this.autoComplete = undefined;
7433
+ this.autoComplete = 'off';
7396
7434
  this.clearable = false;
7397
7435
  this.disabled = false;
7398
7436
  this.hint = undefined;
@@ -7480,7 +7518,7 @@ const CatDatepickerFlat = class {
7480
7518
  }
7481
7519
  render() {
7482
7520
  return [
7483
- 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 => {
7521
+ 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 => {
7484
7522
  e.stopPropagation();
7485
7523
  this.value = e.detail || undefined;
7486
7524
  }, onCatFocus: e => {
@@ -7489,8 +7527,8 @@ const CatDatepickerFlat = class {
7489
7527
  }, onCatBlur: e => {
7490
7528
  e.stopPropagation();
7491
7529
  this.catBlur.emit(e.detail);
7492
- } }, this.hasSlottedLabel && (h("span", { key: '67cf2c46b67fcd119c01c3d313ac547b54c343ec', slot: "label" }, h("slot", { key: '7a2c43caf422ef58381b5b78bd0a1e83efe2ba6c', name: "label" }))), this.hasSlottedHint && (h("span", { key: '3135c3f956f714b1f57aa97aab905bbe6735f677', slot: "hint" }, h("slot", { key: '7a423675a763a2a139dc3f05cd7141731c825d8d', name: "hint" })))),
7493
- h("div", { key: '635b797993490f712b1f8ee28d086524b5a0bc4f', ref: el => (this._calendarWrapper = el), class: "datepicker-wrapper" })
7530
+ } }, this.hasSlottedLabel && (h("span", { key: '9e883cc02c66b78e8be8221a5632f37b016df965', slot: "label" }, h("slot", { key: '892603e7cb7e645e92503a30f2eb89dc5b2be9bc', name: "label" }))), this.hasSlottedHint && (h("span", { key: 'b5f4e4fad0aca02ab0d9c1a94d4f5e7582634490', slot: "hint" }, h("slot", { key: '4d9184fd37321b6b7709a25a3cee17057b5cfcb7', name: "hint" })))),
7531
+ h("div", { key: '8eccd0924e6dfcd2fdf2d71feba880ca84d44e87', ref: el => (this._calendarWrapper = el), class: "datepicker-wrapper" })
7494
7532
  ];
7495
7533
  }
7496
7534
  initDatepicker(input) {
@@ -7633,10 +7671,32 @@ CatDatepickerInline.style = CatDatepickerInlineStyle0;
7633
7671
  const timeTransitionS = 125;
7634
7672
 
7635
7673
  /*!
7636
- * focus-trap 7.5.4
7674
+ * focus-trap 7.6.4
7637
7675
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
7638
7676
  */
7639
7677
 
7678
+ function _arrayLikeToArray(r, a) {
7679
+ (null == a || a > r.length) && (a = r.length);
7680
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
7681
+ return n;
7682
+ }
7683
+ function _arrayWithoutHoles(r) {
7684
+ if (Array.isArray(r)) return _arrayLikeToArray(r);
7685
+ }
7686
+ function _defineProperty(e, r, t) {
7687
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
7688
+ value: t,
7689
+ enumerable: true,
7690
+ configurable: true,
7691
+ writable: true
7692
+ }) : e[r] = t, e;
7693
+ }
7694
+ function _iterableToArray(r) {
7695
+ if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
7696
+ }
7697
+ function _nonIterableSpread() {
7698
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
7699
+ }
7640
7700
  function ownKeys(e, r) {
7641
7701
  var t = Object.keys(e);
7642
7702
  if (Object.getOwnPropertySymbols) {
@@ -7650,7 +7710,7 @@ function ownKeys(e, r) {
7650
7710
  function _objectSpread2(e) {
7651
7711
  for (var r = 1; r < arguments.length; r++) {
7652
7712
  var t = null != arguments[r] ? arguments[r] : {};
7653
- r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
7713
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
7654
7714
  _defineProperty(e, r, t[r]);
7655
7715
  }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
7656
7716
  Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
@@ -7658,33 +7718,29 @@ function _objectSpread2(e) {
7658
7718
  }
7659
7719
  return e;
7660
7720
  }
7661
- function _defineProperty(obj, key, value) {
7662
- key = _toPropertyKey(key);
7663
- if (key in obj) {
7664
- Object.defineProperty(obj, key, {
7665
- value: value,
7666
- enumerable: true,
7667
- configurable: true,
7668
- writable: true
7669
- });
7670
- } else {
7671
- obj[key] = value;
7672
- }
7673
- return obj;
7674
- }
7675
- function _toPrimitive(input, hint) {
7676
- if (typeof input !== "object" || input === null) return input;
7677
- var prim = input[Symbol.toPrimitive];
7678
- if (prim !== undefined) {
7679
- var res = prim.call(input, hint || "default");
7680
- if (typeof res !== "object") return res;
7721
+ function _toConsumableArray(r) {
7722
+ return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
7723
+ }
7724
+ function _toPrimitive(t, r) {
7725
+ if ("object" != typeof t || !t) return t;
7726
+ var e = t[Symbol.toPrimitive];
7727
+ if (undefined !== e) {
7728
+ var i = e.call(t, r || "default");
7729
+ if ("object" != typeof i) return i;
7681
7730
  throw new TypeError("@@toPrimitive must return a primitive value.");
7682
7731
  }
7683
- return (hint === "string" ? String : Number)(input);
7732
+ return ("string" === r ? String : Number)(t);
7684
7733
  }
7685
- function _toPropertyKey(arg) {
7686
- var key = _toPrimitive(arg, "string");
7687
- return typeof key === "symbol" ? key : String(key);
7734
+ function _toPropertyKey(t) {
7735
+ var i = _toPrimitive(t, "string");
7736
+ return "symbol" == typeof i ? i : i + "";
7737
+ }
7738
+ function _unsupportedIterableToArray(r, a) {
7739
+ if (r) {
7740
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
7741
+ var t = {}.toString.call(r).slice(8, -1);
7742
+ 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;
7743
+ }
7688
7744
  }
7689
7745
 
7690
7746
  var activeFocusTraps = {
@@ -7692,7 +7748,7 @@ var activeFocusTraps = {
7692
7748
  if (trapStack.length > 0) {
7693
7749
  var activeTrap = trapStack[trapStack.length - 1];
7694
7750
  if (activeTrap !== trap) {
7695
- activeTrap.pause();
7751
+ activeTrap._setPausedState(true);
7696
7752
  }
7697
7753
  }
7698
7754
  var trapIndex = trapStack.indexOf(trap);
@@ -7709,8 +7765,8 @@ var activeFocusTraps = {
7709
7765
  if (trapIndex !== -1) {
7710
7766
  trapStack.splice(trapIndex, 1);
7711
7767
  }
7712
- if (trapStack.length > 0) {
7713
- trapStack[trapStack.length - 1].unpause();
7768
+ if (trapStack.length > 0 && !trapStack[trapStack.length - 1]._isManuallyPaused()) {
7769
+ trapStack[trapStack.length - 1]._setPausedState(false);
7714
7770
  }
7715
7771
  }
7716
7772
  };
@@ -7718,10 +7774,10 @@ var isSelectableInput = function isSelectableInput(node) {
7718
7774
  return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';
7719
7775
  };
7720
7776
  var isEscapeEvent = function isEscapeEvent(e) {
7721
- 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;
7777
+ 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;
7722
7778
  };
7723
7779
  var isTabEvent = function isTabEvent(e) {
7724
- return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;
7780
+ return (e === null || e === undefined ? undefined : e.key) === 'Tab' || (e === null || e === undefined ? undefined : e.keyCode) === 9;
7725
7781
  };
7726
7782
 
7727
7783
  // checks for TAB by default
@@ -7737,22 +7793,6 @@ var delay = function delay(fn) {
7737
7793
  return setTimeout(fn, 0);
7738
7794
  };
7739
7795
 
7740
- // Array.find/findIndex() are not supported on IE; this replicates enough
7741
- // of Array.findIndex() for our needs
7742
- var findIndex = function findIndex(arr, fn) {
7743
- var idx = -1;
7744
- arr.every(function (value, i) {
7745
- if (fn(value)) {
7746
- idx = i;
7747
- return false; // break
7748
- }
7749
-
7750
- return true; // next
7751
- });
7752
-
7753
- return idx;
7754
- };
7755
-
7756
7796
  /**
7757
7797
  * Get an option's value when it could be a plain value, or a handler that provides
7758
7798
  * the value.
@@ -7764,7 +7804,7 @@ var valueOrHandler = function valueOrHandler(value) {
7764
7804
  for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7765
7805
  params[_key - 1] = arguments[_key];
7766
7806
  }
7767
- return typeof value === 'function' ? value.apply(void 0, params) : value;
7807
+ return typeof value === 'function' ? value.apply(undefined, params) : value;
7768
7808
  };
7769
7809
  var getActualTarget = function getActualTarget(event) {
7770
7810
  // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the
@@ -7783,8 +7823,8 @@ var internalTrapStack = [];
7783
7823
  var createFocusTrap = function createFocusTrap(elements, userOptions) {
7784
7824
  // SSR: a live trap shouldn't be created in this type of environment so this
7785
7825
  // should be safe code to execute if the `document` option isn't specified
7786
- var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;
7787
- var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;
7826
+ var doc = (userOptions === null || userOptions === undefined ? undefined : userOptions.document) || document;
7827
+ var trapStack = (userOptions === null || userOptions === undefined ? undefined : userOptions.trapStack) || internalTrapStack;
7788
7828
  var config = _objectSpread2({
7789
7829
  returnFocusOnDeactivate: true,
7790
7830
  escapeDeactivates: true,
@@ -7824,6 +7864,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7824
7864
  mostRecentlyFocusedNode: null,
7825
7865
  active: false,
7826
7866
  paused: false,
7867
+ manuallyPaused: false,
7827
7868
  // timer ID for when delayInitialFocus is true and initial focus in this trap
7828
7869
  // has been delayed during activation
7829
7870
  delayInitialFocusTimer: undefined,
@@ -7855,18 +7896,18 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7855
7896
  * if the element isn't found.
7856
7897
  */
7857
7898
  var findContainerIndex = function findContainerIndex(element, event) {
7858
- var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;
7899
+ var composedPath = typeof (event === null || event === undefined ? undefined : event.composedPath) === 'function' ? event.composedPath() : undefined;
7859
7900
  // NOTE: search `containerGroups` because it's possible a group contains no tabbable
7860
7901
  // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)
7861
7902
  // and we still need to find the element in there
7862
7903
  return state.containerGroups.findIndex(function (_ref) {
7863
7904
  var container = _ref.container,
7864
7905
  tabbableNodes = _ref.tabbableNodes;
7865
- return container.contains(element) || ( // fall back to explicit tabbable search which will take into consideration any
7906
+ return container.contains(element) || (// fall back to explicit tabbable search which will take into consideration any
7866
7907
  // web components if the `tabbableOptions.getShadowRoot` option was used for
7867
7908
  // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't
7868
7909
  // look inside web components even if open)
7869
- composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {
7910
+ composedPath === null || composedPath === undefined ? undefined : composedPath.includes(container)) || tabbableNodes.find(function (node) {
7870
7911
  return node === element;
7871
7912
  });
7872
7913
  });
@@ -7878,25 +7919,31 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7878
7919
  * (if a node is explicitly NOT given), or a function that returns any of these
7879
7920
  * values.
7880
7921
  * @param {string} optionName
7881
- * @returns {undefined | false | HTMLElement | SVGElement} Returns
7882
- * `undefined` if the option is not specified; `false` if the option
7883
- * resolved to `false` (node explicitly not given); otherwise, the resolved
7884
- * DOM node.
7922
+ * @param {Object} options
7923
+ * @param {boolean} [options.hasFallback] True if the option could be a selector string
7924
+ * and the option allows for a fallback scenario in the case where the selector is
7925
+ * valid but does not match a node (i.e. the queried node doesn't exist in the DOM).
7926
+ * @param {Array} [options.params] Params to pass to the option if it's a function.
7927
+ * @returns {undefined | null | false | HTMLElement | SVGElement} Returns
7928
+ * `undefined` if the option is not specified; `null` if the option didn't resolve
7929
+ * to a node but `options.hasFallback=true`, `false` if the option resolved to `false`
7930
+ * (node explicitly not given); otherwise, the resolved DOM node.
7885
7931
  * @throws {Error} If the option is set, not `false`, and is not, or does not
7886
- * resolve to a node.
7932
+ * resolve to a node, unless the option is a selector string and `options.hasFallback=true`.
7887
7933
  */
7888
7934
  var getNodeForOption = function getNodeForOption(optionName) {
7935
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
7936
+ _ref2$hasFallback = _ref2.hasFallback,
7937
+ hasFallback = _ref2$hasFallback === undefined ? false : _ref2$hasFallback,
7938
+ _ref2$params = _ref2.params,
7939
+ params = _ref2$params === undefined ? [] : _ref2$params;
7889
7940
  var optionValue = config[optionName];
7890
7941
  if (typeof optionValue === 'function') {
7891
- for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
7892
- params[_key2 - 1] = arguments[_key2];
7893
- }
7894
- optionValue = optionValue.apply(void 0, params);
7942
+ optionValue = optionValue.apply(undefined, _toConsumableArray(params));
7895
7943
  }
7896
7944
  if (optionValue === true) {
7897
7945
  optionValue = undefined; // use default value
7898
7946
  }
7899
-
7900
7947
  if (!optionValue) {
7901
7948
  if (optionValue === undefined || optionValue === false) {
7902
7949
  return optionValue;
@@ -7908,21 +7955,31 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7908
7955
  var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point
7909
7956
 
7910
7957
  if (typeof optionValue === 'string') {
7911
- node = doc.querySelector(optionValue); // resolve to node, or null if fails
7958
+ try {
7959
+ node = doc.querySelector(optionValue); // resolve to node, or null if fails
7960
+ } catch (err) {
7961
+ throw new Error("`".concat(optionName, "` appears to be an invalid selector; error=\"").concat(err.message, "\""));
7962
+ }
7912
7963
  if (!node) {
7913
- throw new Error("`".concat(optionName, "` as selector refers to no known node"));
7964
+ if (!hasFallback) {
7965
+ throw new Error("`".concat(optionName, "` as selector refers to no known node"));
7966
+ }
7967
+ // else, `node` MUST be `null` because that's what `Document.querySelector()` returns
7968
+ // if the selector is valid but doesn't match anything
7914
7969
  }
7915
7970
  }
7916
7971
  return node;
7917
7972
  };
7918
7973
  var getInitialFocusNode = function getInitialFocusNode() {
7919
- var node = getNodeForOption('initialFocus');
7974
+ var node = getNodeForOption('initialFocus', {
7975
+ hasFallback: true
7976
+ });
7920
7977
 
7921
7978
  // false explicitly indicates we want no initialFocus at all
7922
7979
  if (node === false) {
7923
7980
  return false;
7924
7981
  }
7925
- if (node === undefined || !isFocusable(node, config.tabbableOptions)) {
7982
+ if (node === undefined || node && !isFocusable(node, config.tabbableOptions)) {
7926
7983
  // option not specified nor focusable: use fallback options
7927
7984
  if (findContainerIndex(doc.activeElement) >= 0) {
7928
7985
  node = doc.activeElement;
@@ -7933,6 +7990,10 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7933
7990
  // NOTE: `fallbackFocus` option function cannot return `false` (not supported)
7934
7991
  node = firstTabbableNode || getNodeForOption('fallbackFocus');
7935
7992
  }
7993
+ } else if (node === null) {
7994
+ // option is a VALID selector string that doesn't yield a node: use the `fallbackFocus`
7995
+ // option instead of the default behavior when the option isn't specified at all
7996
+ node = getNodeForOption('fallbackFocus');
7936
7997
  }
7937
7998
  if (!node) {
7938
7999
  throw new Error('Your focus-trap needs to have at least one focusable element');
@@ -8042,25 +8103,25 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8042
8103
  *
8043
8104
  * @returns {HTMLElement} The element that currently has the focus
8044
8105
  **/
8045
- var getActiveElement = function getActiveElement(el) {
8106
+ var _getActiveElement = function getActiveElement(el) {
8046
8107
  var activeElement = el.activeElement;
8047
8108
  if (!activeElement) {
8048
8109
  return;
8049
8110
  }
8050
8111
  if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {
8051
- return getActiveElement(activeElement.shadowRoot);
8112
+ return _getActiveElement(activeElement.shadowRoot);
8052
8113
  }
8053
8114
  return activeElement;
8054
8115
  };
8055
- var tryFocus = function tryFocus(node) {
8116
+ var _tryFocus = function tryFocus(node) {
8056
8117
  if (node === false) {
8057
8118
  return;
8058
8119
  }
8059
- if (node === getActiveElement(document)) {
8120
+ if (node === _getActiveElement(document)) {
8060
8121
  return;
8061
8122
  }
8062
8123
  if (!node || !node.focus) {
8063
- tryFocus(getInitialFocusNode());
8124
+ _tryFocus(getInitialFocusNode());
8064
8125
  return;
8065
8126
  }
8066
8127
  node.focus({
@@ -8073,7 +8134,9 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8073
8134
  }
8074
8135
  };
8075
8136
  var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {
8076
- var node = getNodeForOption('setReturnFocus', previousActiveElement);
8137
+ var node = getNodeForOption('setReturnFocus', {
8138
+ params: [previousActiveElement]
8139
+ });
8077
8140
  return node ? node : node === false ? false : previousActiveElement;
8078
8141
  };
8079
8142
 
@@ -8088,11 +8151,11 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8088
8151
  * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be
8089
8152
  * determined given the current state of the trap.
8090
8153
  */
8091
- var findNextNavNode = function findNextNavNode(_ref2) {
8092
- var target = _ref2.target,
8093
- event = _ref2.event,
8094
- _ref2$isBackward = _ref2.isBackward,
8095
- isBackward = _ref2$isBackward === void 0 ? false : _ref2$isBackward;
8154
+ var findNextNavNode = function findNextNavNode(_ref3) {
8155
+ var target = _ref3.target,
8156
+ event = _ref3.event,
8157
+ _ref3$isBackward = _ref3.isBackward,
8158
+ isBackward = _ref3$isBackward === undefined ? false : _ref3$isBackward;
8096
8159
  target = target || getActualTarget(event);
8097
8160
  updateTabbableNodes();
8098
8161
  var destinationNode = null;
@@ -8116,8 +8179,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8116
8179
  // REVERSE
8117
8180
 
8118
8181
  // is the target the first tabbable node in a group?
8119
- var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {
8120
- var firstTabbableNode = _ref3.firstTabbableNode;
8182
+ var startOfGroupIndex = state.tabbableGroups.findIndex(function (_ref4) {
8183
+ var firstTabbableNode = _ref4.firstTabbableNode;
8121
8184
  return target === firstTabbableNode;
8122
8185
  });
8123
8186
  if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {
@@ -8145,8 +8208,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8145
8208
  // FORWARD
8146
8209
 
8147
8210
  // is the target the last tabbable node in a group?
8148
- var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref4) {
8149
- var lastTabbableNode = _ref4.lastTabbableNode;
8211
+ var lastOfGroupIndex = state.tabbableGroups.findIndex(function (_ref5) {
8212
+ var lastTabbableNode = _ref5.lastTabbableNode;
8150
8213
  return target === lastTabbableNode;
8151
8214
  });
8152
8215
  if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {
@@ -8304,9 +8367,9 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8304
8367
  });
8305
8368
  }
8306
8369
  if (nextNode) {
8307
- tryFocus(nextNode);
8370
+ _tryFocus(nextNode);
8308
8371
  } else {
8309
- tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
8372
+ _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
8310
8373
  }
8311
8374
  }
8312
8375
  state.recentNavEvent = undefined; // clear
@@ -8331,19 +8394,21 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8331
8394
  // to where it normally would
8332
8395
  event.preventDefault();
8333
8396
  }
8334
- tryFocus(destinationNode);
8397
+ _tryFocus(destinationNode);
8335
8398
  }
8336
8399
  // else, let the browser take care of [shift+]tab and move the focus
8337
8400
  };
8401
+ var checkTabKey = function checkTabKey(event) {
8402
+ if (config.isKeyForward(event) || config.isKeyBackward(event)) {
8403
+ checkKeyNav(event, config.isKeyBackward(event));
8404
+ }
8405
+ };
8338
8406
 
8339
- var checkKey = function checkKey(event) {
8407
+ // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates
8408
+ var checkEscapeKey = function checkEscapeKey(event) {
8340
8409
  if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {
8341
8410
  event.preventDefault();
8342
8411
  trap.deactivate();
8343
- return;
8344
- }
8345
- if (config.isKeyForward(event) || config.isKeyBackward(event)) {
8346
- checkKeyNav(event, config.isKeyBackward(event));
8347
8412
  }
8348
8413
  };
8349
8414
  var checkClick = function checkClick(e) {
@@ -8376,8 +8441,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8376
8441
  // Delay ensures that the focused element doesn't capture the event
8377
8442
  // that caused the focus trap activation.
8378
8443
  state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {
8379
- tryFocus(getInitialFocusNode());
8380
- }) : tryFocus(getInitialFocusNode());
8444
+ _tryFocus(getInitialFocusNode());
8445
+ }) : _tryFocus(getInitialFocusNode());
8381
8446
  doc.addEventListener('focusin', checkFocusIn, true);
8382
8447
  doc.addEventListener('mousedown', checkPointerDown, {
8383
8448
  capture: true,
@@ -8391,10 +8456,11 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8391
8456
  capture: true,
8392
8457
  passive: false
8393
8458
  });
8394
- doc.addEventListener('keydown', checkKey, {
8459
+ doc.addEventListener('keydown', checkTabKey, {
8395
8460
  capture: true,
8396
8461
  passive: false
8397
8462
  });
8463
+ doc.addEventListener('keydown', checkEscapeKey);
8398
8464
  return trap;
8399
8465
  };
8400
8466
  var removeListeners = function removeListeners() {
@@ -8405,7 +8471,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8405
8471
  doc.removeEventListener('mousedown', checkPointerDown, true);
8406
8472
  doc.removeEventListener('touchstart', checkPointerDown, true);
8407
8473
  doc.removeEventListener('click', checkClick, true);
8408
- doc.removeEventListener('keydown', checkKey, true);
8474
+ doc.removeEventListener('keydown', checkTabKey, true);
8475
+ doc.removeEventListener('keydown', checkEscapeKey);
8409
8476
  return trap;
8410
8477
  };
8411
8478
 
@@ -8424,7 +8491,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8424
8491
  // If the currently focused is removed then browsers will move focus to the
8425
8492
  // <body> element. If this happens, try to move focus back into the trap.
8426
8493
  if (isFocusedNodeRemoved) {
8427
- tryFocus(getInitialFocusNode());
8494
+ _tryFocus(getInitialFocusNode());
8428
8495
  }
8429
8496
  };
8430
8497
 
@@ -8470,14 +8537,14 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8470
8537
  state.active = true;
8471
8538
  state.paused = false;
8472
8539
  state.nodeFocusedBeforeActivation = doc.activeElement;
8473
- onActivate === null || onActivate === void 0 || onActivate();
8540
+ onActivate === null || onActivate === undefined || onActivate();
8474
8541
  var finishActivation = function finishActivation() {
8475
8542
  if (checkCanFocusTrap) {
8476
8543
  updateTabbableNodes();
8477
8544
  }
8478
8545
  addListeners();
8479
8546
  updateObservedNodes();
8480
- onPostActivate === null || onPostActivate === void 0 || onPostActivate();
8547
+ onPostActivate === null || onPostActivate === undefined || onPostActivate();
8481
8548
  };
8482
8549
  if (checkCanFocusTrap) {
8483
8550
  checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);
@@ -8506,13 +8573,13 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8506
8573
  var onPostDeactivate = getOption(options, 'onPostDeactivate');
8507
8574
  var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');
8508
8575
  var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');
8509
- onDeactivate === null || onDeactivate === void 0 || onDeactivate();
8576
+ onDeactivate === null || onDeactivate === undefined || onDeactivate();
8510
8577
  var finishDeactivation = function finishDeactivation() {
8511
8578
  delay(function () {
8512
8579
  if (returnFocus) {
8513
- tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
8580
+ _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
8514
8581
  }
8515
- onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();
8582
+ onPostDeactivate === null || onPostDeactivate === undefined || onPostDeactivate();
8516
8583
  });
8517
8584
  };
8518
8585
  if (returnFocus && checkCanReturnFocus) {
@@ -8523,31 +8590,21 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8523
8590
  return this;
8524
8591
  },
8525
8592
  pause: function pause(pauseOptions) {
8526
- if (state.paused || !state.active) {
8593
+ if (!state.active) {
8527
8594
  return this;
8528
8595
  }
8529
- var onPause = getOption(pauseOptions, 'onPause');
8530
- var onPostPause = getOption(pauseOptions, 'onPostPause');
8531
- state.paused = true;
8532
- onPause === null || onPause === void 0 || onPause();
8533
- removeListeners();
8534
- updateObservedNodes();
8535
- onPostPause === null || onPostPause === void 0 || onPostPause();
8536
- return this;
8596
+ state.manuallyPaused = true;
8597
+ return this._setPausedState(true, pauseOptions);
8537
8598
  },
8538
8599
  unpause: function unpause(unpauseOptions) {
8539
- if (!state.paused || !state.active) {
8600
+ if (!state.active) {
8540
8601
  return this;
8541
8602
  }
8542
- var onUnpause = getOption(unpauseOptions, 'onUnpause');
8543
- var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');
8544
- state.paused = false;
8545
- onUnpause === null || onUnpause === void 0 || onUnpause();
8546
- updateTabbableNodes();
8547
- addListeners();
8548
- updateObservedNodes();
8549
- onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();
8550
- return this;
8603
+ state.manuallyPaused = false;
8604
+ if (trapStack[trapStack.length - 1] !== this) {
8605
+ return this;
8606
+ }
8607
+ return this._setPausedState(false, unpauseOptions);
8551
8608
  },
8552
8609
  updateContainerElements: function updateContainerElements(containerElements) {
8553
8610
  var elementsAsArray = [].concat(containerElements).filter(Boolean);
@@ -8561,6 +8618,38 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
8561
8618
  return this;
8562
8619
  }
8563
8620
  };
8621
+ Object.defineProperties(trap, {
8622
+ _isManuallyPaused: {
8623
+ value: function value() {
8624
+ return state.manuallyPaused;
8625
+ }
8626
+ },
8627
+ _setPausedState: {
8628
+ value: function value(paused, options) {
8629
+ if (state.paused === paused) {
8630
+ return this;
8631
+ }
8632
+ state.paused = paused;
8633
+ if (paused) {
8634
+ var onPause = getOption(options, 'onPause');
8635
+ var onPostPause = getOption(options, 'onPostPause');
8636
+ onPause === null || onPause === undefined || onPause();
8637
+ removeListeners();
8638
+ updateObservedNodes();
8639
+ onPostPause === null || onPostPause === undefined || onPostPause();
8640
+ } else {
8641
+ var onUnpause = getOption(options, 'onUnpause');
8642
+ var onPostUnpause = getOption(options, 'onPostUnpause');
8643
+ onUnpause === null || onUnpause === undefined || onUnpause();
8644
+ updateTabbableNodes();
8645
+ addListeners();
8646
+ updateObservedNodes();
8647
+ onPostUnpause === null || onPostUnpause === undefined || onPostUnpause();
8648
+ }
8649
+ return this;
8650
+ }
8651
+ }
8652
+ });
8564
8653
 
8565
8654
  // initialize container elements
8566
8655
  trap.updateContainerElements(elements);
@@ -10407,6 +10496,7 @@ const CatInput = class {
10407
10496
  this._id = `cat-input-${nextUniqueId$7++}`;
10408
10497
  this.hasSlottedLabel = false;
10409
10498
  this.hasSlottedHint = false;
10499
+ this.hasSlottedCounter = false;
10410
10500
  this.isPasswordShown = false;
10411
10501
  this.errorMap = undefined;
10412
10502
  this.requiredMarker = 'optional';
@@ -10448,6 +10538,7 @@ const CatInput = class {
10448
10538
  componentWillRender() {
10449
10539
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
10450
10540
  this.hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
10541
+ this.hasSlottedCounter = !!this.hostElement.querySelector('[slot="counter"]');
10451
10542
  }
10452
10543
  /**
10453
10544
  * Programmatically move focus to the input. Use this method instead of
@@ -10500,19 +10591,19 @@ const CatInput = class {
10500
10591
  }
10501
10592
  render() {
10502
10593
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
10503
- return (h("div", { key: 'ffbaf104a60dbf73cb59e07e3164fe0c421540a5', class: {
10594
+ return (h("div", { key: '3d28dff29d5ced59f609ce9fcf6c2b2a14cfdda7', class: {
10504
10595
  'input-field': true,
10505
10596
  'input-horizontal': this.horizontal
10506
- } }, h("div", { key: 'e6139d1d950c2d8c2674bb90f0acbe9333ace2eb', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (h("label", { key: 'fce898969b37f4579f780c1a62354ccb0da5a73e', htmlFor: this.id, part: "label" }, h("span", { key: '8a4d0f653bae9a75db600080ad7d0b9199c14db5', class: "label-wrapper" }, (this.hasSlottedLabel && h("slot", { key: '6073eadb00b587d1f3ba22d212e5235d21826b08', name: "label" })) || this.label, h("div", { key: 'fc4be508caec71287f275873d49adb5c16931289', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (h("span", { key: 'c1010a473d4bfadb8ada56825db91f0c4d2b7871', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (h("span", { key: '8b2184a224afa6857f207aeaf71d83e12c92ef9a', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.required'), ")")), this.maxLength && (h("div", { key: '6aee4428a06faba6ecf6a82963f0ecf3ca0d5d7b', class: "label-character-count", "aria-hidden": "true" }, this.value?.toString().length ?? 0, "/", this.maxLength))))))), h("div", { key: '9c88a62af0c4083162bea13dc1fd5ead5708efbb', class: "input-container" }, h("div", { key: '556a7b1bc45da66739d8a7afec3d4e1b64f12e77', class: "input-outer-wrapper" }, h("div", { key: '16d000652a934588fa87c71929565aa5cc15069b', class: {
10597
+ } }, h("div", { key: '41399390b76c6a2e96dc3df48eede8ea2bcc4698', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (h("label", { key: '68bb767790072eb2728d680d448e1ee80e641013', htmlFor: this.id, part: "label" }, h("span", { key: '04c217ff1f227a1fb82b9a52b284bbd67f8d89dd', class: "label-wrapper" }, (this.hasSlottedLabel && h("slot", { key: '0c462827456af3b83935e569fac4fb45459c2edc', name: "label" })) || this.label, h("div", { key: '9415db27af950dc50efac0c60bdc47aa5efc8c97', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (h("span", { key: 'fc45ea569ef7c9eec048bae75a8b5127beafcc09', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (h("span", { key: '20f36a7a3e2c042fa4f802ea3f71cb20f60188b3', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.required'), ")")), (this.maxLength || this.hasSlottedCounter) && (h("div", { key: '58338cb0be0db04c6030e9f295428079ba2c7316', class: "label-character-count", "aria-hidden": "true" }, this.hasSlottedCounter ? (h("slot", { name: "counter" })) : (`${this.value?.length ?? 0}/${this.maxLength}`)))))))), h("div", { key: '5ed2b9c0c812c65d2e7d77d02f61cb88f33567e1', class: "input-container" }, h("div", { key: '9b73f259436d1f7d75f2efcaec3959759631f579', class: "input-outer-wrapper" }, h("div", { key: '04ba158193111283c31ea6e8d3d4e34e0dafe995', class: {
10507
10598
  'input-wrapper': true,
10508
10599
  'input-round': this.round,
10509
10600
  'input-readonly': this.readonly,
10510
10601
  'input-disabled': this.disabled,
10511
10602
  'input-invalid': this.invalid
10512
- }, onClick: () => this.input.focus() }, this.textPrefix && (h("span", { key: 'de3b5da6a0a09c1f66caeb2fb3c9772a2426778a', class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && (h("cat-icon", { key: 'f950a57fa6060b9f82629d26b91dcb449b86cd2a', icon: this.icon, class: "icon-prefix", size: "l", onClick: () => this.doFocus() })), h("div", { key: 'b98cd1a805712c454262bfa8fae92f1e92b33f09', class: "input-inner-wrapper" }, h("input", { key: '9bd8bc8f345c80ced98a06728d9d09bc462e0823', ...this.nativeAttributes, part: "input", ref: el => (this.input = el), id: this.id, class: {
10603
+ }, onClick: () => this.input.focus() }, this.textPrefix && (h("span", { key: '6e834d91bca7660e24f7f917034db92a530d3901', class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && (h("cat-icon", { key: '606625d78126b10f1efbdeec78d2339d9a66cf04', icon: this.icon, class: "icon-prefix", size: "l", onClick: () => this.doFocus() })), h("div", { key: '28776786dd55f04d60c985ed7891d85c0e4c1f7b', class: "input-inner-wrapper" }, h("input", { key: '7ee17b1603ed56cd4b98561c9a7f5426edfcb9e8', ...this.nativeAttributes, part: "input", ref: el => (this.input = el), id: this.id, class: {
10513
10604
  'has-clearable': this.clearable && !this.disabled && !this.readonly && !!this.value,
10514
10605
  'has-toggle-password': this.togglePassword && !this.disabled && !this.readonly && !!this.value
10515
- }, 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 && (h("cat-button", { key: '255d4760d151bfb36f0217295ee378b5cec26647', class: "clearable", icon: "$cat:input-close", "icon-only": "true", size: "s", variant: "text", "a11y-label": catI18nRegistry.t('input.clear'), onClick: this.clear.bind(this), "data-dropdown-no-close": true })), this.togglePassword && !this.disabled && !this.readonly && this.value && (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": catI18nRegistry.t(this.isPasswordShown ? 'input.hidePassword' : 'input.showPassword'), onClick: this.doTogglePassword.bind(this) }))), this.loading && h("cat-spinner", { key: '22218dd7cd48b2599d2125ec080467c925b04a4d', size: "m", class: "icon-loading" }), !this.invalid && this.icon && this.iconRight && (h("cat-icon", { key: 'c9e5f18bfc54321ad9b18df56a199d0096739621', icon: this.icon, class: "icon-suffix", size: "l", onClick: () => this.doFocus() })), this.invalid && (h("cat-icon", { key: '307c0d5f2a1dff6efb7d6bf05a035c487f947994', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" })), this.textSuffix && (h("span", { key: '3216d4e278951898d9a96ad48b2df7c17d54c6a3', class: "text-suffix", part: "suffix" }, this.textSuffix))), h("slot", { key: 'd996aab9325a2eb77401490c3fa2a9e8eaf0ffc6', name: "addon" })), this.hasHint && (h(CatFormHint, { key: '84980cbf543e9405c70d481bce339cd9c743da43', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap })))));
10606
+ }, 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 && (h("cat-button", { key: '5195866111feaf77f8ae6b9272443c7f2e6f6c9b', class: "clearable", icon: "$cat:input-close", "icon-only": "true", size: "s", variant: "text", "a11y-label": catI18nRegistry.t('input.clear'), onClick: this.clear.bind(this), "data-dropdown-no-close": true })), this.togglePassword && !this.disabled && !this.readonly && this.value && (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": catI18nRegistry.t(this.isPasswordShown ? 'input.hidePassword' : 'input.showPassword'), onClick: this.doTogglePassword.bind(this) }))), this.loading && h("cat-spinner", { key: '19e83c45128e1110c4404fb266b97d9a0b23ea75', size: "m", class: "icon-loading" }), !this.invalid && this.icon && this.iconRight && (h("cat-icon", { key: '2363be86adba00d3748a2b4e72d968027e3cbc03', icon: this.icon, class: "icon-suffix", size: "l", onClick: () => this.doFocus() })), this.invalid && (h("cat-icon", { key: '158ae6c58f520b87023e534239550cd963c6c3f2', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" })), this.textSuffix && (h("span", { key: '8d0148452fe5b0184ed04fbaa7e84d805ef8648f', class: "text-suffix", part: "suffix" }, this.textSuffix))), h("slot", { key: 'cc46bb14d556c4144c28b8901e0aac7ff2c6908e', name: "addon" })), this.hasHint && (h(CatFormHint, { key: '0de0feb24f62246485c054bb83237d5610c89a21', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap })))));
10516
10607
  }
10517
10608
  get hasHint() {
10518
10609
  return !!this.hint || !!this.hasSlottedHint || this.invalid;
@@ -13441,9 +13532,11 @@ const CatTextarea = class {
13441
13532
  this._id = `cat-textarea-${nextUniqueId$2++}`;
13442
13533
  this.hasSlottedLabel = false;
13443
13534
  this.hasSlottedHint = false;
13535
+ this.hasSlottedCounter = false;
13444
13536
  this.errorMap = undefined;
13445
13537
  this.requiredMarker = 'optional';
13446
13538
  this.horizontal = false;
13539
+ this.autoComplete = undefined;
13447
13540
  this.disabled = false;
13448
13541
  this.hint = undefined;
13449
13542
  this.identifier = undefined;
@@ -13470,6 +13563,7 @@ const CatTextarea = class {
13470
13563
  componentWillRender() {
13471
13564
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
13472
13565
  this.hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
13566
+ this.hasSlottedCounter = !!this.hostElement.querySelector('[slot="counter"]');
13473
13567
  }
13474
13568
  componentDidLoad() {
13475
13569
  n(this.textarea);
@@ -13513,15 +13607,15 @@ const CatTextarea = class {
13513
13607
  }
13514
13608
  render() {
13515
13609
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
13516
- return (h(Host, { key: '7baa83d9d2722e629503623daa7d64f669d9d14b' }, h("div", { key: '7e23d71bea6eb4b3c1f512ce6e6052c4d0c93675', class: {
13610
+ return (h(Host, { key: 'c4cab207b93c4c13de6cce9f1558b2d4fce925ef' }, h("div", { key: '179e2a2dfe8740447dc6ff9824e492ee02e4d47a', class: {
13517
13611
  'textarea-field': true,
13518
13612
  'textarea-horizontal': this.horizontal
13519
- } }, h("div", { key: '51da73044afe3fb0100c921556f4bc60f4823597', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (h("label", { key: '21efe02e678b15577efbd4e6889ed278e519f6e1', htmlFor: this.id, part: "label" }, h("span", { key: '35e58dc082d073296563ec6473734ec7bb995b5e', class: "label-wrapper" }, (this.hasSlottedLabel && h("slot", { key: 'f32da2b24d1d50b06a7d55d4d15185441feb285a', name: "label" })) || this.label, h("div", { key: 'ed4abb4e4b492130a990fca89699fea9838c758c', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (h("span", { key: '97dfc883e7a8af4d2090bb4b40208e0886585da6', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (h("span", { key: '9c74951359ccab83ec46bbd868bccefaf1356f6f', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.required'), ")")), this.maxLength && (h("div", { key: '702c2c4a8238430927882a11490cd5be399bd3f5', class: "label-character-count", "aria-hidden": "true" }, this.value?.length ?? 0, "/", this.maxLength))))))), h("div", { key: '3f2aa62a32dd8b775b9826fe8c92129219135dcb', class: "textarea-container" }, h("div", { key: '270d8f0b27b99f7388e17edc88affe7daab15438', class: {
13613
+ } }, h("div", { key: '5ecc1e393465659830aba909126564e860143648', class: { 'label-container': true, hidden: this.labelHidden } }, (this.hasSlottedLabel || this.label) && (h("label", { key: '156179fd03e76824cf7ddf55d4570f717a5ec96f', htmlFor: this.id, part: "label" }, h("span", { key: '466b8ee054f2fa75c40b6d93dcaf6e308f499577', class: "label-wrapper" }, (this.hasSlottedLabel && h("slot", { key: 'ca380dd71b02626140596777c05baa1d5f2454f1', name: "label" })) || this.label, h("div", { key: '72a97643fbbfc3335ca46aed185228703ba15f1c', class: "label-metadata" }, !this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (h("span", { key: '2daf2d71efdadc2c840838e9f3b55aff31860c57', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.optional'), ")")), this.required && this.requiredMarker?.startsWith('required') && (h("span", { key: '3d26ff6a20935bb3895df9a35ee3ed52bae4892d', class: "label-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.required'), ")")), (this.maxLength || this.hasSlottedCounter) && (h("div", { key: '9c2940f48e9ee33b48f0fdc800fb6c9b03e74cd3', class: "label-character-count", "aria-hidden": "true" }, this.hasSlottedCounter ? (h("slot", { name: "counter" })) : (`${this.value?.length ?? 0}/${this.maxLength}`)))))))), h("div", { key: 'fb1fc6a8626ae38042ee7d58e309cb8552177a5a', class: "textarea-container" }, h("div", { key: 'c2bc69007aa78f3f7473d7d00d5edd096e034d82', class: {
13520
13614
  'textarea-wrapper': true,
13521
13615
  'textarea-readonly': this.readonly,
13522
13616
  'textarea-disabled': this.disabled,
13523
13617
  'textarea-invalid': this.invalid
13524
- } }, 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 && (h("cat-icon", { key: '9ff1a0a8b7bf6ae5deb8b489f4426053d5ff54b9', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l", onClick: () => this.textarea.focus() }))), this.hasHint && (h(CatFormHint, { key: 'badc9780d07df9f6645c7f4bbdcfe97610db6741', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap }))))));
13618
+ } }, 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 && (h("cat-icon", { key: '19da7431db208bd34032cd22d4112b8c9b2c786f', icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l", onClick: () => this.textarea.focus() }))), this.hasHint && (h(CatFormHint, { key: '3f4bf8b4ac56e28ba482ef5e3883a17c3336f2b5', id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap }))))));
13525
13619
  }
13526
13620
  get hasHint() {
13527
13621
  return !!this.hint || !!this.hasSlottedHint || this.invalid;
@@ -13632,7 +13726,7 @@ const CatTime = class {
13632
13726
  this.valueChangedBySelection = false;
13633
13727
  this.requiredMarker = 'optional';
13634
13728
  this.horizontal = false;
13635
- this.autoComplete = undefined;
13729
+ this.autoComplete = 'off';
13636
13730
  this.clearable = false;
13637
13731
  this.disabled = false;
13638
13732
  this.hint = undefined;
@@ -13758,14 +13852,14 @@ const CatTime = class {
13758
13852
  }
13759
13853
  render() {
13760
13854
  this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;
13761
- return (h(Host, { key: '9f7564ec41354b98ec0779dde23198a18689f1a3' }, 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) }, h("span", { key: '016bab3b23282fa4a5aeb764e4b80b337d2f9cca', slot: "label" }, this.hasSlottedLabel && h("slot", { key: '233b40757fe0c822716b87c23538b5b02371d9d2', name: "label" }), !this.hasSlottedLabel && this.label, h("span", { key: '6ae7d40f0fbf4cf729e29ad124df6f3cdd8b22f8', class: "label-aria" }, " (HH:mm)")), h("div", { key: '7aaab9d8ee9e06a8a68a9f94e664ba12422a18c5', slot: "addon", class: "cat-time-addon" }, this.locale.timeFormat === '12' && (h("cat-button", { key: '9130d436847a0fb250b28d5630e7c3a403ec494a', class: "cat-time-format", disabled: this.disabled || this.readonly, onCatClick: () => this.toggleAm() }, this.isAm ? 'AM' : 'PM')), h("cat-dropdown", { key: '10948ba2be73ffcde722fb22c5a4b9f3891b329d', slot: "addon", placement: this.placement }, 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 }), h("nav", { key: '27a2a17080a09e8148b5cae0af36d03735b8afcf', slot: "content", class: "cat-nav" }, h("ul", { key: '8181974cae0ed2c3cc99c43d51f3ccbc5e188592' }, this.timeArray().map(time => {
13855
+ return (h(Host, { key: '55ddaea80f34a762b7f3b97145f3fc23678764df' }, 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) }, h("span", { key: 'fff1bf4b55421e1d3d0a59c6526e2a1489531c73', slot: "label" }, this.hasSlottedLabel && h("slot", { key: '3bf7db213bf73ed33f47b78df88445654feef6f1', name: "label" }), !this.hasSlottedLabel && this.label, h("span", { key: 'cd3bc1b7be142e85106f03ab84f664279f129c02', class: "label-aria" }, " (HH:mm)")), h("div", { key: 'c56add3522077567621147d80a327c7acfa93110', slot: "addon", class: "cat-time-addon" }, this.locale.timeFormat === '12' && (h("cat-button", { key: 'e895941581bd1d6a67eb3f384d6cdf4cd6663ca2', class: "cat-time-format", disabled: this.disabled || this.readonly, onCatClick: () => this.toggleAm() }, this.isAm ? 'AM' : 'PM')), h("cat-dropdown", { key: 'b44d49f1d06c3a78342f60b873ad57d613fe38c5', slot: "addon", placement: this.placement }, 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 }), h("nav", { key: 'fd16e5301bdde5fa3f3ac929380d9f8ca7cef75b', slot: "content", class: "cat-nav" }, h("ul", { key: '9107c10a9533ef4cef0c0718cba17e097a7d54bd' }, this.timeArray().map(time => {
13762
13856
  const isoTime = formatIso(time);
13763
13857
  const disabled = isBefore(time, this.min ?? null) || isAfter(time, this.max ?? null);
13764
13858
  return (h("li", null, h("cat-button", { class: {
13765
13859
  'cat-nav-item': true,
13766
13860
  'time-disabled': disabled
13767
13861
  }, 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))));
13768
- }))))), this.hasSlottedHint && (h("span", { key: 'cd316e5045ad3298aac0e4056c865f7bd6b1dcf3', slot: "hint" }, h("slot", { key: '7fa90c7b83032013bfc9d1626bc8b53072e9aa85', name: "hint" }))))));
13862
+ }))))), this.hasSlottedHint && (h("span", { key: '55b0ac7a0d4aa7f743d23a3f0f8461b4f1e44781', slot: "hint" }, h("slot", { key: '8f05bb69ab686061bebad8cc6a1364e0bea5267a', name: "hint" }))))));
13769
13863
  }
13770
13864
  timeArray() {
13771
13865
  const result = [];
@@ -13925,7 +14019,7 @@ CatToggle.style = CatToggleStyle0;
13925
14019
 
13926
14020
  const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
13927
14021
 
13928
- 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}";
14022
+ 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}";
13929
14023
  const CatTooltipStyle0 = catTooltipCss;
13930
14024
 
13931
14025
  let nextUniqueId = 0;