@haiilo/catalyst 6.4.7 → 6.5.1

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 (135) hide show
  1. package/dist/catalyst/catalyst.css +1 -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/index.esm.js.map +1 -1
  6. package/dist/catalyst/p-19fad7af.js +2 -0
  7. package/dist/catalyst/p-19fad7af.js.map +1 -0
  8. package/dist/catalyst/p-376b504c.js +3 -0
  9. package/dist/catalyst/p-376b504c.js.map +1 -0
  10. package/dist/catalyst/p-877627af.entry.js +10 -0
  11. package/dist/catalyst/p-877627af.entry.js.map +1 -0
  12. package/dist/cjs/cat-alert_26.cjs.entry.js +173 -86
  13. package/dist/cjs/cat-alert_26.cjs.entry.js.map +1 -1
  14. package/dist/cjs/catalyst.cjs.js +3 -3
  15. package/dist/cjs/catalyst.cjs.js.map +1 -1
  16. package/dist/cjs/{index-6ec4ef6d.js → index-329a3380.js} +111 -29
  17. package/dist/cjs/index-329a3380.js.map +1 -0
  18. package/dist/cjs/index.cjs.js +1 -1
  19. package/dist/cjs/index.cjs.js.map +1 -1
  20. package/dist/cjs/loader.cjs.js +2 -2
  21. package/dist/cjs/{of-eda6baf8.js → of-8545b523.js} +2 -2
  22. package/dist/cjs/of-8545b523.js.map +1 -0
  23. package/dist/collection/collection-manifest.json +2 -2
  24. package/dist/collection/components/cat-alert/cat-alert.css +10 -20
  25. package/dist/collection/components/cat-avatar/cat-avatar.css +2 -2
  26. package/dist/collection/components/cat-badge/cat-badge.css +6 -11
  27. package/dist/collection/components/cat-checkbox/cat-checkbox.js +4 -1
  28. package/dist/collection/components/cat-checkbox/cat-checkbox.js.map +1 -1
  29. package/dist/collection/components/cat-datepicker/cat-datepicker.config.js +1 -0
  30. package/dist/collection/components/cat-datepicker/cat-datepicker.config.js.map +1 -1
  31. package/dist/collection/components/cat-dropdown/cat-dropdown.js +2 -4
  32. package/dist/collection/components/cat-dropdown/cat-dropdown.js.map +1 -1
  33. package/dist/collection/components/cat-form-hint/cat-form-hint.js +1 -1
  34. package/dist/collection/components/cat-form-hint/cat-form-hint.js.map +1 -1
  35. package/dist/collection/components/cat-form-hint/cat-form-hint.spec.js +1 -1
  36. package/dist/collection/components/cat-form-hint/cat-form-hint.spec.js.map +1 -1
  37. package/dist/collection/components/cat-i18n/cat-i18n-registry.js +1 -1
  38. package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
  39. package/dist/collection/components/cat-input/cat-input.js +20 -4
  40. package/dist/collection/components/cat-input/cat-input.js.map +1 -1
  41. package/dist/collection/components/cat-notification/cat-notification.js +1 -2
  42. package/dist/collection/components/cat-notification/cat-notification.js.map +1 -1
  43. package/dist/collection/components/cat-radio/cat-radio.js +4 -1
  44. package/dist/collection/components/cat-radio/cat-radio.js.map +1 -1
  45. package/dist/collection/components/cat-radio-group/cat-radio-group.js +19 -11
  46. package/dist/collection/components/cat-radio-group/cat-radio-group.js.map +1 -1
  47. package/dist/collection/components/cat-scrollable/cat-scrollable.js +1 -3
  48. package/dist/collection/components/cat-scrollable/cat-scrollable.js.map +1 -1
  49. package/dist/collection/components/cat-select/cat-select.css +3 -0
  50. package/dist/collection/components/cat-select/cat-select.js +13 -8
  51. package/dist/collection/components/cat-select/cat-select.js.map +1 -1
  52. package/dist/collection/components/cat-tabs/cat-tabs.js +113 -28
  53. package/dist/collection/components/cat-tabs/cat-tabs.js.map +1 -1
  54. package/dist/collection/components/cat-textarea/cat-textarea.js +5 -2
  55. package/dist/collection/components/cat-textarea/cat-textarea.js.map +1 -1
  56. package/dist/collection/components/cat-toggle/cat-toggle.js +4 -1
  57. package/dist/collection/components/cat-toggle/cat-toggle.js.map +1 -1
  58. package/dist/collection/components/cat-tooltip/cat-tooltip.js +2 -4
  59. package/dist/collection/components/cat-tooltip/cat-tooltip.js.map +1 -1
  60. package/dist/components/cat-alert.js +1 -1
  61. package/dist/components/cat-alert.js.map +1 -1
  62. package/dist/components/cat-avatar2.js +3 -1
  63. package/dist/components/cat-avatar2.js.map +1 -1
  64. package/dist/components/cat-badge.js +1 -1
  65. package/dist/components/cat-badge.js.map +1 -1
  66. package/dist/components/cat-button2.js +3 -1
  67. package/dist/components/cat-button2.js.map +1 -1
  68. package/dist/components/cat-checkbox2.js +4 -1
  69. package/dist/components/cat-checkbox2.js.map +1 -1
  70. package/dist/components/cat-datepicker-inline.js +4 -0
  71. package/dist/components/cat-datepicker-inline.js.map +1 -1
  72. package/dist/components/cat-datepicker.js +6 -0
  73. package/dist/components/cat-datepicker.js.map +1 -1
  74. package/dist/components/cat-datepicker.locale.js +1 -0
  75. package/dist/components/cat-datepicker.locale.js.map +1 -1
  76. package/dist/components/cat-dropdown2.js +44 -25
  77. package/dist/components/cat-dropdown2.js.map +1 -1
  78. package/dist/components/cat-form-group.js +3 -0
  79. package/dist/components/cat-form-group.js.map +1 -1
  80. package/dist/components/cat-form-hint.js +1 -1
  81. package/dist/components/cat-form-hint.js.map +1 -1
  82. package/dist/components/cat-i18n-registry.js +1 -1
  83. package/dist/components/cat-i18n-registry.js.map +1 -1
  84. package/dist/components/cat-input2.js +22 -4
  85. package/dist/components/cat-input2.js.map +1 -1
  86. package/dist/components/cat-radio-group.js +25 -12
  87. package/dist/components/cat-radio-group.js.map +1 -1
  88. package/dist/components/cat-radio.js +4 -1
  89. package/dist/components/cat-radio.js.map +1 -1
  90. package/dist/components/cat-select2.js +18 -6
  91. package/dist/components/cat-select2.js.map +1 -1
  92. package/dist/components/cat-tabs.js +43 -27
  93. package/dist/components/cat-tabs.js.map +1 -1
  94. package/dist/components/cat-textarea.js +7 -2
  95. package/dist/components/cat-textarea.js.map +1 -1
  96. package/dist/components/cat-toggle.js +4 -1
  97. package/dist/components/cat-toggle.js.map +1 -1
  98. package/dist/components/floating-ui.dom.esm.js +16 -5
  99. package/dist/components/floating-ui.dom.esm.js.map +1 -1
  100. package/dist/components/index.d.ts +6 -0
  101. package/dist/components/index.js +1 -1
  102. package/dist/components/index.js.map +1 -1
  103. package/dist/esm/cat-alert_26.entry.js +173 -86
  104. package/dist/esm/cat-alert_26.entry.js.map +1 -1
  105. package/dist/esm/catalyst.js +4 -4
  106. package/dist/esm/catalyst.js.map +1 -1
  107. package/dist/esm/{index-b424aa97.js → index-6af09649.js} +111 -29
  108. package/dist/esm/index-6af09649.js.map +1 -0
  109. package/dist/esm/index.js +2 -2
  110. package/dist/esm/index.js.map +1 -1
  111. package/dist/esm/loader.js +3 -3
  112. package/dist/esm/{of-246f9b35.js → of-a965d8fb.js} +2 -2
  113. package/dist/esm/of-a965d8fb.js.map +1 -0
  114. package/dist/types/components/cat-checkbox/cat-checkbox.d.ts +1 -0
  115. package/dist/types/components/cat-i18n/cat-i18n-registry.d.ts +1 -0
  116. package/dist/types/components/cat-input/cat-input.d.ts +2 -0
  117. package/dist/types/components/cat-radio/cat-radio.d.ts +1 -0
  118. package/dist/types/components/cat-radio-group/cat-radio-group.d.ts +3 -0
  119. package/dist/types/components/cat-select/cat-select.d.ts +1 -0
  120. package/dist/types/components/cat-tabs/cat-tabs.d.ts +23 -4
  121. package/dist/types/components/cat-textarea/cat-textarea.d.ts +1 -0
  122. package/dist/types/components/cat-toggle/cat-toggle.d.ts +1 -0
  123. package/dist/types/components.d.ts +18 -0
  124. package/dist/types/stencil-public-runtime.d.ts +5 -3
  125. package/package.json +18 -18
  126. package/dist/catalyst/p-77eee134.entry.js +0 -10
  127. package/dist/catalyst/p-77eee134.entry.js.map +0 -1
  128. package/dist/catalyst/p-8929f28a.js +0 -2
  129. package/dist/catalyst/p-8929f28a.js.map +0 -1
  130. package/dist/catalyst/p-f0bcebed.js +0 -3
  131. package/dist/catalyst/p-f0bcebed.js.map +0 -1
  132. package/dist/cjs/index-6ec4ef6d.js.map +0 -1
  133. package/dist/cjs/of-eda6baf8.js.map +0 -1
  134. package/dist/esm/index-b424aa97.js.map +0 -1
  135. package/dist/esm/of-246f9b35.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-b424aa97.js';
2
- import { f as createErrorClass, O as Observable, g as errorContext, E as EMPTY_SUBSCRIPTION, S as Subscription, h as arrRemove, i as operate, j as createOperatorSubscriber, k as innerFrom, l as executeSchedule, m as isFunction, n as identity, p as from, q as popScheduler, r as isArrayLike, s as isScheduler, t as popNumber, u as noop, v as loglevel, b as catI18nRegistry, c as createCommonjsModule, a as commonjsGlobal, e as catIconRegistry, o as of } from './of-246f9b35.js';
1
+ import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-6af09649.js';
2
+ import { f as createErrorClass, O as Observable, g as errorContext, E as EMPTY_SUBSCRIPTION, S as Subscription, h as arrRemove, i as operate, j as createOperatorSubscriber, k as innerFrom, l as executeSchedule, m as isFunction, n as identity, p as from, q as popScheduler, r as isArrayLike, s as isScheduler, t as popNumber, u as noop, v as loglevel, b as catI18nRegistry, c as createCommonjsModule, a as commonjsGlobal, e as catIconRegistry, o as of } from './of-a965d8fb.js';
3
3
 
4
4
  const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {
5
5
  _super(this);
@@ -786,7 +786,7 @@ function setAttributeDefault(host, attr, value) {
786
786
  }
787
787
  }
788
788
 
789
- const catAlertCss = ":host{display:flex;gap:0.5rem;padding:1.25rem;border-radius:var(--cat-border-radius-l, 0.5rem);margin-bottom:1rem}:host([hidden]){display:none}:host(:focus-visible){outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.content{align-self:center}::slotted(:last-child){margin-bottom:0 !important}:host([color=primary]){background-color:rgba(var(--cat-primary-bg, 0, 129, 148), 0.1)}:host([color=primary]) cat-icon{color:rgb(var(--cat-primary-text, 0, 129, 148))}:host([color=secondary]){background-color:rgba(var(--cat-secondary-bg, 105, 118, 135), 0.1)}:host([color=secondary]) cat-icon{color:#697687}:host([color=success]){background-color:rgba(var(--cat-success-bg, 0, 132, 88), 0.1)}:host([color=success]) cat-icon{color:#008458}:host([color=warning]){background-color:rgba(var(--cat-warning-bg, 255, 206, 128), 0.1)}:host([color=warning]) cat-icon{color:#ebb663}:host([color=danger]){background-color:rgba(var(--cat-danger-bg, 217, 52, 13), 0.1)}:host([color=danger]) cat-icon{color:#d9340d}";
789
+ const catAlertCss = ":host{display:flex;gap:0.5rem;padding:1.25rem;border-radius:var(--cat-border-radius-l, 0.5rem);margin-bottom:1rem}:host([hidden]){display:none}:host(:focus-visible){outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.content{align-self:center}::slotted(:last-child){margin-bottom:0 !important}:host([color=primary]){background-color:rgb(var(--cat-primary-bg, 0, 129, 148));color:rgb(var(--cat-primary-fill, 255, 255, 255))}:host([color=secondary]){background-color:rgb(var(--cat-secondary-bg, 105, 118, 135));color:rgb(var(--cat-secondary-fill, 255, 255, 255))}:host([color=success]){background-color:rgb(var(--cat-success-bg, 0, 132, 88));color:rgb(var(--cat-success-fill, 255, 255, 255))}:host([color=warning]){background-color:rgb(var(--cat-warning-bg, 255, 206, 128));color:rgb(var(--cat-warning-fill, 0, 0, 0))}:host([color=danger]){background-color:rgb(var(--cat-danger-bg, 217, 52, 13));color:rgb(var(--cat-danger-fill, 255, 255, 255))}";
790
790
 
791
791
  const CatAlert = class {
792
792
  constructor(hostRef) {
@@ -835,7 +835,7 @@ const loadImg = (src) => {
835
835
  });
836
836
  };
837
837
 
838
- const catAvatarCss = ":host{display:contents}:host([hidden]){display:none}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--cat-border-radius-m, 0.25rem);text-decoration:inherit;color:var(--cat-avatar-fill, white);background-color:var(--cat-avatar-bg, #697687);background-size:cover;background-position:center;white-space:nowrap;overflow:hidden;vertical-align:middle;font-weight:600;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.avatar:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.avatar-round{border-radius:50%}.avatar-xs{width:var(--cat-avatar-size, 1.5rem);height:var(--cat-avatar-size, 1.5rem);line-height:var(--cat-avatar-size, 1.5rem);font-size:var(--cat-avatar-font-size, 0.75rem)}.avatar-s{width:var(--cat-avatar-size, 2rem);height:var(--cat-avatar-size, 2rem);line-height:var(--cat-avatar-size, 2rem);font-size:var(--cat-avatar-font-size, 0.875rem)}.avatar-m{width:var(--cat-avatar-size, 2.5rem);height:var(--cat-avatar-size, 2.5rem);line-height:var(--cat-avatar-size, 2.5rem);font-size:var(--cat-avatar-font-size, 0.9375rem)}.avatar-l{width:var(--cat-avatar-size, 3rem);height:var(--cat-avatar-size, 3rem);line-height:var(--cat-avatar-size, 3rem);font-size:var(--cat-avatar-font-size, 1.125rem)}.avatar-xl{width:var(--cat-avatar-size, 3.5rem);height:var(--cat-avatar-size, 3.5rem);line-height:var(--cat-avatar-size, 3.5rem);font-size:var(--cat-avatar-font-size, 1.25rem)}";
838
+ const catAvatarCss = ":host{display:contents}:host([hidden]){display:none}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--cat-border-radius-m, 0.25rem);text-decoration:inherit;color:var(--cat-avatar-fill, #515c6c);background-color:var(--cat-avatar-bg, #f2f4f7);background-size:cover;background-position:center;white-space:nowrap;overflow:hidden;vertical-align:middle;font-weight:600;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.avatar:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.avatar-round{border-radius:50%}.avatar-xs{width:var(--cat-avatar-size, 1.5rem);height:var(--cat-avatar-size, 1.5rem);line-height:var(--cat-avatar-size, 1.5rem);font-size:var(--cat-avatar-font-size, 0.75rem)}.avatar-s{width:var(--cat-avatar-size, 2rem);height:var(--cat-avatar-size, 2rem);line-height:var(--cat-avatar-size, 2rem);font-size:var(--cat-avatar-font-size, 0.875rem)}.avatar-m{width:var(--cat-avatar-size, 2.5rem);height:var(--cat-avatar-size, 2.5rem);line-height:var(--cat-avatar-size, 2.5rem);font-size:var(--cat-avatar-font-size, 0.9375rem)}.avatar-l{width:var(--cat-avatar-size, 3rem);height:var(--cat-avatar-size, 3rem);line-height:var(--cat-avatar-size, 3rem);font-size:var(--cat-avatar-font-size, 1.125rem)}.avatar-xl{width:var(--cat-avatar-size, 3.5rem);height:var(--cat-avatar-size, 3.5rem);line-height:var(--cat-avatar-size, 3.5rem);font-size:var(--cat-avatar-font-size, 1.25rem)}";
839
839
 
840
840
  const CatAvatar = class {
841
841
  constructor(hostRef) {
@@ -902,7 +902,7 @@ const CatAvatar = class {
902
902
  };
903
903
  CatAvatar.style = catAvatarCss;
904
904
 
905
- const catBadgeCss = ":host([hidden]){display:none}:host{display:inline-flex;max-width:100%;vertical-align:baseline;align-items:center;justify-content:center;border-radius:var(--cat-border-radius-m, 0.25rem);text-decoration:none;line-height:1.5}:host slot{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}:host([round]){border-radius:10rem}:host([variant=filled]){background-color:rgba(var(--bg), 0.1);color:rgb(var(--text));font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}:host([variant=outlined]){background-color:white;box-shadow:inset 0 0 0 1px rgba(var(--border), 0.2);color:rgb(var(--text))}:host([color=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);--border:var(--cat-primary-text, 0, 129, 148)}:host([color=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);--border:var(--cat-secondary-bg, 105, 118, 135)}:host([color=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);--border:var(--cat-success-text, 0, 132, 88)}:host([color=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);--border:var(--cat-warning-text, 159, 97, 0)}:host([color=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);--border:var(--cat-danger-text, 217, 52, 13)}:host([size=xs]){height:1rem;min-width:1rem;font-size:0.75rem;padding:0 0.25rem}:host([size=s]){height:1.5rem;min-width:1.5rem;font-size:0.75rem;padding:0 0.5rem}:host([size=m]){height:2rem;min-width:2rem;font-size:0.875rem;padding:0 0.75rem}:host([size=l]){height:2.5rem;min-width:2.5rem;font-size:0.9375rem;padding:0 1rem}:host([size=xl]){height:3rem;min-width:3rem;font-size:1.125rem;padding:0 1rem}:host([pulse][variant=filled]){animation:1.5s ease 0s infinite normal none running pulse}:host([pulse][variant=outlined]){animation:1.5s ease 0s infinite normal none running pulse-outlined}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(var(--bg))}70%{box-shadow:transparent 0 0 0 0.5rem}100%{box-shadow:transparent 0 0 0 0}}@keyframes pulse-outlined{0%{box-shadow:0 0 0 0 rgb(var(--bg)), inset 0 0 0 1px rgba(var(--border), 0.2)}70%{box-shadow:transparent 0 0 0 0.5rem, inset 0 0 0 1px rgba(var(--border), 0.2)}100%{box-shadow:transparent 0 0 0 0, inset 0 0 0 1px rgba(var(--border), 0.2)}}";
905
+ const catBadgeCss = ":host([hidden]){display:none}:host{display:inline-flex;max-width:100%;vertical-align:baseline;align-items:center;justify-content:center;border-radius:var(--cat-border-radius-m, 0.25rem);text-decoration:none;line-height:1.5}:host slot{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}:host([round]){border-radius:10rem}:host([variant=filled]){background-color:rgb(var(--bg));color:rgb(var(--fill));font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}:host([variant=outlined]){background-color:white;color:rgb(var(--text));box-shadow:inset 0 0 0 1px rgba(var(--text), 0.2)}:host([color=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)}:host([color=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)}:host([color=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)}:host([color=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)}:host([color=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)}:host([size=xs]){height:1rem;min-width:1rem;font-size:0.75rem;padding:0 0.25rem}:host([size=s]){height:1.5rem;min-width:1.5rem;font-size:0.75rem;padding:0 0.5rem}:host([size=m]){height:2rem;min-width:2rem;font-size:0.875rem;padding:0 0.75rem}:host([size=l]){height:2.5rem;min-width:2.5rem;font-size:0.9375rem;padding:0 1rem}:host([size=xl]){height:3rem;min-width:3rem;font-size:1.125rem;padding:0 1rem}:host([pulse][variant=filled]){animation:1.5s ease 0s infinite normal none running pulse}:host([pulse][variant=outlined]){animation:1.5s ease 0s infinite normal none running pulse-outlined}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(var(--bg))}70%{box-shadow:transparent 0 0 0 0.5rem}100%{box-shadow:transparent 0 0 0 0}}@keyframes pulse-outlined{0%{box-shadow:0 0 0 0 rgb(var(--bg)), inset 0 0 0 1px rgba(var(--text), 0.2)}70%{box-shadow:transparent 0 0 0 0.5rem, inset 0 0 0 1px rgba(var(--text), 0.2)}100%{box-shadow:transparent 0 0 0 0, inset 0 0 0 1px rgba(var(--text), 0.2)}}";
906
906
 
907
907
  const CatBadge = class {
908
908
  constructor(hostRef) {
@@ -1244,7 +1244,7 @@ CatCard.style = catCardCss;
1244
1244
  const CatFormHint = props => {
1245
1245
  const { id, hint, slottedHint, errorMap } = props;
1246
1246
  const errors = Object.entries(errorMap || {});
1247
- return (h("div", { id: id + '-hint', class: "hint-section" }, errors.length
1247
+ return (h("div", { "aria-live": "polite", id: id + '-hint', class: "hint-section" }, errors.length
1248
1248
  ? errors.map(([key, params]) => (h("p", { class: (props.class ?? '') + ' input-hint cat-text-danger' }, catI18nRegistry.t(`error.${key}`, params))))
1249
1249
  : [
1250
1250
  hint &&
@@ -1310,7 +1310,10 @@ const CatCheckbox = class {
1310
1310
  this.input.blur();
1311
1311
  }
1312
1312
  render() {
1313
- return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, indeterminate: this.indeterminate, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "box", "aria-hidden": "true", part: "checkbox" }, h("svg", { class: "check", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 6 4.5 9 10.5 1" })), h("svg", { class: "dash", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 5 10.5 5" }))), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), (this.hint || this.hasSlottedHint) && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "box-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
1313
+ return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, indeterminate: this.indeterminate, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-describedby": this.hasHint ? this.id + '-hint' : undefined }), h("span", { class: "box", "aria-hidden": "true", part: "checkbox" }, h("svg", { class: "check", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 6 4.5 9 10.5 1" })), h("svg", { class: "dash", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 5 10.5 5" }))), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hasHint && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "box-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
1314
+ }
1315
+ get hasHint() {
1316
+ return !!this.hint || !!this.hasSlottedHint;
1314
1317
  }
1315
1318
  onInput() {
1316
1319
  this.checked = this.input.checked;
@@ -4000,6 +4003,7 @@ function getConfig(options, more = {}) {
4000
4003
  ...more,
4001
4004
  locale: options.locale,
4002
4005
  plugins,
4006
+ allowInput: true,
4003
4007
  altInput: true,
4004
4008
  prevArrow: '←',
4005
4009
  nextArrow: '→',
@@ -4677,7 +4681,7 @@ const flip = function (options) {
4677
4681
  name: 'flip',
4678
4682
  options,
4679
4683
  async fn(state) {
4680
- var _middlewareData$flip;
4684
+ var _middlewareData$arrow, _middlewareData$flip;
4681
4685
  const {
4682
4686
  placement,
4683
4687
  middlewareData,
@@ -4695,6 +4699,14 @@ const flip = function (options) {
4695
4699
  flipAlignment = true,
4696
4700
  ...detectOverflowOptions
4697
4701
  } = evaluate(options, state);
4702
+
4703
+ // If a reset by the arrow was caused due to an alignment offset being
4704
+ // added, we should skip any logic now since `flip()` has already done its
4705
+ // work.
4706
+ // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643
4707
+ if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
4708
+ return {};
4709
+ }
4698
4710
  const side = getSide(placement);
4699
4711
  const isBasePlacement = getSide(initialPlacement) === initialPlacement;
4700
4712
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
@@ -5108,18 +5120,21 @@ function getNearestOverflowAncestor(node) {
5108
5120
  }
5109
5121
  return getNearestOverflowAncestor(parentNode);
5110
5122
  }
5111
- function getOverflowAncestors(node, list) {
5123
+ function getOverflowAncestors(node, list, traverseIframes) {
5112
5124
  var _node$ownerDocument2;
5113
5125
  if (list === void 0) {
5114
5126
  list = [];
5115
5127
  }
5128
+ if (traverseIframes === void 0) {
5129
+ traverseIframes = true;
5130
+ }
5116
5131
  const scrollableAncestor = getNearestOverflowAncestor(node);
5117
5132
  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
5118
5133
  const win = getWindow(scrollableAncestor);
5119
5134
  if (isBody) {
5120
- return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);
5135
+ return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);
5121
5136
  }
5122
- return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));
5137
+ return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
5123
5138
  }
5124
5139
 
5125
5140
  function getCssDimensions(element) {
@@ -5390,7 +5405,7 @@ function getClippingElementAncestors(element, cache) {
5390
5405
  if (cachedResult) {
5391
5406
  return cachedResult;
5392
5407
  }
5393
- let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');
5408
+ let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
5394
5409
  let currentContainingBlockComputedStyle = null;
5395
5410
  const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
5396
5411
  let currentNode = elementIsFixed ? getParentNode(element) : element;
@@ -6290,30 +6305,30 @@ var isFocusable = function isFocusable(node, options) {
6290
6305
  };
6291
6306
 
6292
6307
  /*!
6293
- * focus-trap 7.5.2
6308
+ * focus-trap 7.5.4
6294
6309
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
6295
6310
  */
6296
6311
 
6297
- function ownKeys(object, enumerableOnly) {
6298
- var keys = Object.keys(object);
6312
+ function ownKeys(e, r) {
6313
+ var t = Object.keys(e);
6299
6314
  if (Object.getOwnPropertySymbols) {
6300
- var symbols = Object.getOwnPropertySymbols(object);
6301
- enumerableOnly && (symbols = symbols.filter(function (sym) {
6302
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
6303
- })), keys.push.apply(keys, symbols);
6304
- }
6305
- return keys;
6306
- }
6307
- function _objectSpread2(target) {
6308
- for (var i = 1; i < arguments.length; i++) {
6309
- var source = null != arguments[i] ? arguments[i] : {};
6310
- i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
6311
- _defineProperty(target, key, source[key]);
6312
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
6313
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
6315
+ var o = Object.getOwnPropertySymbols(e);
6316
+ r && (o = o.filter(function (r) {
6317
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
6318
+ })), t.push.apply(t, o);
6319
+ }
6320
+ return t;
6321
+ }
6322
+ function _objectSpread2(e) {
6323
+ for (var r = 1; r < arguments.length; r++) {
6324
+ var t = null != arguments[r] ? arguments[r] : {};
6325
+ r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
6326
+ _defineProperty(e, r, t[r]);
6327
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
6328
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
6314
6329
  });
6315
6330
  }
6316
- return target;
6331
+ return e;
6317
6332
  }
6318
6333
  function _defineProperty(obj, key, value) {
6319
6334
  key = _toPropertyKey(key);
@@ -6690,11 +6705,30 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
6690
6705
  throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.");
6691
6706
  }
6692
6707
  };
6708
+
6709
+ /**
6710
+ * Gets the current activeElement. If it's a web-component and has open shadow-root
6711
+ * it will recursively search inside shadow roots for the "true" activeElement.
6712
+ *
6713
+ * @param {Document | ShadowRoot} el
6714
+ *
6715
+ * @returns {HTMLElement} The element that currently has the focus
6716
+ **/
6717
+ var getActiveElement = function getActiveElement(el) {
6718
+ var activeElement = el.activeElement;
6719
+ if (!activeElement) {
6720
+ return;
6721
+ }
6722
+ if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {
6723
+ return getActiveElement(activeElement.shadowRoot);
6724
+ }
6725
+ return activeElement;
6726
+ };
6693
6727
  var tryFocus = function tryFocus(node) {
6694
6728
  if (node === false) {
6695
6729
  return;
6696
6730
  }
6697
- if (node === doc.activeElement) {
6731
+ if (node === getActiveElement(document)) {
6698
6732
  return;
6699
6733
  }
6700
6734
  if (!node || !node.focus) {
@@ -7108,14 +7142,14 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7108
7142
  state.active = true;
7109
7143
  state.paused = false;
7110
7144
  state.nodeFocusedBeforeActivation = doc.activeElement;
7111
- onActivate === null || onActivate === void 0 ? void 0 : onActivate();
7145
+ onActivate === null || onActivate === void 0 || onActivate();
7112
7146
  var finishActivation = function finishActivation() {
7113
7147
  if (checkCanFocusTrap) {
7114
7148
  updateTabbableNodes();
7115
7149
  }
7116
7150
  addListeners();
7117
7151
  updateObservedNodes();
7118
- onPostActivate === null || onPostActivate === void 0 ? void 0 : onPostActivate();
7152
+ onPostActivate === null || onPostActivate === void 0 || onPostActivate();
7119
7153
  };
7120
7154
  if (checkCanFocusTrap) {
7121
7155
  checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);
@@ -7144,13 +7178,13 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7144
7178
  var onPostDeactivate = getOption(options, 'onPostDeactivate');
7145
7179
  var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');
7146
7180
  var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');
7147
- onDeactivate === null || onDeactivate === void 0 ? void 0 : onDeactivate();
7181
+ onDeactivate === null || onDeactivate === void 0 || onDeactivate();
7148
7182
  var finishDeactivation = function finishDeactivation() {
7149
7183
  delay(function () {
7150
7184
  if (returnFocus) {
7151
7185
  tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
7152
7186
  }
7153
- onPostDeactivate === null || onPostDeactivate === void 0 ? void 0 : onPostDeactivate();
7187
+ onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();
7154
7188
  });
7155
7189
  };
7156
7190
  if (returnFocus && checkCanReturnFocus) {
@@ -7167,10 +7201,10 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7167
7201
  var onPause = getOption(pauseOptions, 'onPause');
7168
7202
  var onPostPause = getOption(pauseOptions, 'onPostPause');
7169
7203
  state.paused = true;
7170
- onPause === null || onPause === void 0 ? void 0 : onPause();
7204
+ onPause === null || onPause === void 0 || onPause();
7171
7205
  removeListeners();
7172
7206
  updateObservedNodes();
7173
- onPostPause === null || onPostPause === void 0 ? void 0 : onPostPause();
7207
+ onPostPause === null || onPostPause === void 0 || onPostPause();
7174
7208
  return this;
7175
7209
  },
7176
7210
  unpause: function unpause(unpauseOptions) {
@@ -7180,11 +7214,11 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
7180
7214
  var onUnpause = getOption(unpauseOptions, 'onUnpause');
7181
7215
  var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');
7182
7216
  state.paused = false;
7183
- onUnpause === null || onUnpause === void 0 ? void 0 : onUnpause();
7217
+ onUnpause === null || onUnpause === void 0 || onUnpause();
7184
7218
  updateTabbableNodes();
7185
7219
  addListeners();
7186
7220
  updateObservedNodes();
7187
- onPostUnpause === null || onPostUnpause === void 0 ? void 0 : onPostUnpause();
7221
+ onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();
7188
7222
  return this;
7189
7223
  },
7190
7224
  updateContainerElements: function updateContainerElements(containerElements) {
@@ -7514,7 +7548,11 @@ const CatInput = class {
7514
7548
  * the focusing process.
7515
7549
  */
7516
7550
  async doFocus(options) {
7517
- this.input.focus(options);
7551
+ // hack to make datepicker inputs focusable. The datepicker hides the input
7552
+ // element and dynamically creates a sibling. We need to find the new input
7553
+ // element and focus it instead.
7554
+ const input = this.input.type === 'hidden' ? this.findSiblingInput(this.input.nextSibling) : this.input;
7555
+ input?.focus(options);
7518
7556
  }
7519
7557
  /**
7520
7558
  * Programmatically remove focus from the input. Use this method instead of
@@ -7553,12 +7591,15 @@ const CatInput = class {
7553
7591
  'input-readonly': this.readonly,
7554
7592
  'input-disabled': this.disabled,
7555
7593
  'input-invalid': this.invalid
7556
- }, onClick: () => this.input.focus() }, this.textPrefix && (h("span", { class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && h("cat-icon", { icon: this.icon, class: "icon-prefix", size: "l" }), h("div", { class: "input-inner-wrapper" }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.id, class: {
7594
+ }, onClick: () => this.input.focus() }, this.textPrefix && (h("span", { class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && (h("cat-icon", { icon: this.icon, class: "icon-prefix", size: "l", onClick: () => this.doFocus() })), h("div", { class: "input-inner-wrapper" }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.id, class: {
7557
7595
  'has-clearable': this.clearable && !this.disabled && !this.readonly
7558
- }, 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.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.hint?.length ? this.id + '-hint' : undefined }), this.clearable && !this.disabled && !this.readonly && this.value && (h("cat-button", { 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.invalid && this.icon && this.iconRight && (h("cat-icon", { icon: this.icon, class: "icon-suffix", size: "l" })), this.invalid && h("cat-icon", { icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" }), this.textSuffix && (h("span", { class: "text-suffix", part: "suffix" }, this.textSuffix))), (this.hint || this.hasSlottedHint || !!Object.keys(this.errorMap || {}).length) && (h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap })))));
7596
+ }, 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.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", { 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.invalid && this.icon && this.iconRight && (h("cat-icon", { icon: this.icon, class: "icon-suffix", size: "l", onClick: () => this.doFocus() })), this.invalid && h("cat-icon", { icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" }), this.textSuffix && (h("span", { class: "text-suffix", part: "suffix" }, this.textSuffix))), this.hasHint && (h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap })))));
7597
+ }
7598
+ get hasHint() {
7599
+ return !!this.hint || !!this.hasSlottedHint || this.invalid;
7559
7600
  }
7560
7601
  get invalid() {
7561
- return !!this.errorMap;
7602
+ return !!Object.keys(this.errorMap || {}).length;
7562
7603
  }
7563
7604
  onInput() {
7564
7605
  this.value = this.input.value;
@@ -7592,6 +7633,15 @@ const CatInput = class {
7592
7633
  this.showErrors();
7593
7634
  }
7594
7635
  }
7636
+ findSiblingInput(node) {
7637
+ if (node instanceof HTMLInputElement) {
7638
+ return node;
7639
+ }
7640
+ else if (node?.nextSibling) {
7641
+ return this.findSiblingInput(node.nextSibling);
7642
+ }
7643
+ return undefined;
7644
+ }
7595
7645
  get hostElement() { return getElement(this); }
7596
7646
  static get watchers() { return {
7597
7647
  "errors": ["onErrorsChanged"]
@@ -7723,7 +7773,10 @@ const CatRadio = class {
7723
7773
  this.input.blur();
7724
7774
  }
7725
7775
  render() {
7726
- return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }, role: "radio", "aria-checked": this.checked ? 'true' : 'false' }, h("span", { class: "radio" }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.identifier || this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "circle" })), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), (this.hint || this.hasSlottedHint) && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "circle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
7776
+ return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }, role: "radio", "aria-checked": this.checked ? 'true' : 'false' }, h("span", { class: "radio" }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.identifier || this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-describedby": this.hasHint ? this.id + '-hint' : undefined }), h("span", { class: "circle" })), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hasHint && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "circle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
7777
+ }
7778
+ get hasHint() {
7779
+ return !!this.hint || !!this.hasSlottedHint;
7727
7780
  }
7728
7781
  onInput() {
7729
7782
  this.checked = true;
@@ -7762,21 +7815,22 @@ const CatRadioGroup = class {
7762
7815
  this.updateTabIndex();
7763
7816
  }
7764
7817
  onDisabledChanged(disabled) {
7765
- this.catRadioGroup.forEach(catRadio => (catRadio.disabled = disabled));
7818
+ this.catRadioGroup.forEach(catRadio => (catRadio.disabled = catRadio.disabled || disabled));
7766
7819
  }
7767
7820
  onLabelLeftChanged(labelLeft) {
7768
- this.catRadioGroup.forEach(catRadio => {
7769
- if (labelLeft) {
7770
- catRadio.labelLeft = labelLeft;
7771
- }
7772
- });
7821
+ this.catRadioGroup.forEach(catRadio => (catRadio.labelLeft = catRadio.labelLeft || labelLeft));
7773
7822
  }
7774
7823
  componentDidLoad() {
7775
- this.catRadioGroup = Array.from(this.hostElement.querySelectorAll(`cat-radio`));
7776
- this.onNameChanged(this.name);
7777
- this.onValueChanged(this.value);
7778
- this.onDisabledChanged(this.disabled);
7779
- this.onLabelLeftChanged(this.labelLeft);
7824
+ this.init();
7825
+ this.mutationObserver = new MutationObserver(mutations => mutations.some(value => value.target.nodeName === 'CAT-RADIO') && this.init());
7826
+ this.mutationObserver?.observe(this.hostElement, {
7827
+ childList: true,
7828
+ attributes: true,
7829
+ subtree: true
7830
+ });
7831
+ }
7832
+ disconnectedCallback() {
7833
+ this.mutationObserver?.disconnect();
7780
7834
  }
7781
7835
  onKeydown(event) {
7782
7836
  if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key) && this.catRadioGroup.length) {
@@ -7811,6 +7865,13 @@ const CatRadioGroup = class {
7811
7865
  render() {
7812
7866
  return (h("div", { role: "radiogroup", "aria-label": this.a11yLabel }, h("slot", null)));
7813
7867
  }
7868
+ init() {
7869
+ this.catRadioGroup = Array.from(this.hostElement.querySelectorAll(`cat-radio`));
7870
+ this.onNameChanged(this.name);
7871
+ this.onValueChanged(this.value);
7872
+ this.onDisabledChanged(this.disabled);
7873
+ this.onLabelLeftChanged(this.labelLeft);
7874
+ }
7814
7875
  updateTabIndex() {
7815
7876
  if (this.catRadioGroup.length) {
7816
7877
  this.catRadioGroup.forEach(value => value.shadowRoot?.querySelector('input')?.setAttribute('tabindex', '-1'));
@@ -8018,7 +8079,7 @@ var autosizeInput = function (element, options) {
8018
8079
  }
8019
8080
  };
8020
8081
 
8021
- const catSelectCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column;color:rgb(var(--cat-hint-color, inherit))}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1.125rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}.cat-bg-primary{background-color:rgb(var(--cat-primary-bg, 0, 129, 148)) !important;color:rgb(var(--cat-primary-fill, 255, 255, 255)) !important}.cat-bg-primary-hover{transition:background-color 125ms, color 125ms}.cat-bg-primary-hover:hover{background-color:rgb(var(--cat-primary-bg-hover, 1, 115, 132)) !important;color:rgb(var(--cat-primary-fill-hover, 255, 255, 255)) !important}.cat-text-primary,.cat-link-primary{color:rgb(var(--cat-primary-text, 0, 129, 148)) !important}.cat-link-primary,.cat-text-primary-hover{transition:color 125ms}.cat-link-primary:hover,.cat-text-primary-hover:hover{color:rgb(var(--cat-primary-text-hover, 1, 115, 132)) !important}.cat-link-primary:active,.cat-text-primary-hover:active{color:rgb(var(--cat-primary-text-active, 2, 99, 113)) !important}.cat-bg-primaryInverted{background-color:#93b4f2 !important;color:black !important}.cat-bg-primaryInverted-hover{transition:background-color 125ms, color 125ms}.cat-bg-primaryInverted-hover:hover{background-color:#93b4f2 !important;color:black !important}.cat-text-primaryInverted,.cat-link-primaryInverted{color:#93b4f2 !important}.cat-link-primaryInverted,.cat-text-primaryInverted-hover{transition:color 125ms}.cat-link-primaryInverted:hover,.cat-text-primaryInverted-hover:hover{color:#93b4f2 !important}.cat-link-primaryInverted:active,.cat-text-primaryInverted-hover:active{color:#93b4f2 !important}.cat-bg-secondary{background-color:rgb(var(--cat-secondary-bg, 105, 118, 135)) !important;color:rgb(var(--cat-secondary-fill, 255, 255, 255)) !important}.cat-bg-secondary-hover{transition:background-color 125ms, color 125ms}.cat-bg-secondary-hover:hover{background-color:rgb(var(--cat-secondary-bg-hover, 105, 118, 135)) !important;color:rgb(var(--cat-secondary-fill-hover, 255, 255, 255)) !important}.cat-text-secondary,.cat-link-secondary{color:rgb(var(--cat-secondary-text, 0, 0, 0)) !important}.cat-link-secondary,.cat-text-secondary-hover{transition:color 125ms}.cat-link-secondary:hover,.cat-text-secondary-hover:hover{color:rgb(var(--cat-secondary-text-hover, 0, 0, 0)) !important}.cat-link-secondary:active,.cat-text-secondary-hover:active{color:rgb(var(--cat-secondary-text-active, 0, 0, 0)) !important}.cat-bg-secondaryInverted{background-color:#697687 !important;color:black !important}.cat-bg-secondaryInverted-hover{transition:background-color 125ms, color 125ms}.cat-bg-secondaryInverted-hover:hover{background-color:#697687 !important;color:black !important}.cat-text-secondaryInverted,.cat-link-secondaryInverted{color:white !important}.cat-link-secondaryInverted,.cat-text-secondaryInverted-hover{transition:color 125ms}.cat-link-secondaryInverted:hover,.cat-text-secondaryInverted-hover:hover{color:white !important}.cat-link-secondaryInverted:active,.cat-text-secondaryInverted-hover:active{color:white !important}.cat-bg-success{background-color:rgb(var(--cat-success-bg, 0, 132, 88)) !important;color:rgb(var(--cat-success-fill, 255, 255, 255)) !important}.cat-bg-success-hover{transition:background-color 125ms, color 125ms}.cat-bg-success-hover:hover{background-color:rgb(var(--cat-success-bg-hover, 0, 117, 78)) !important;color:rgb(var(--cat-success-fill-hover, 255, 255, 255)) !important}.cat-text-success,.cat-link-success{color:rgb(var(--cat-success-text, 0, 132, 88)) !important}.cat-link-success,.cat-text-success-hover{transition:color 125ms}.cat-link-success:hover,.cat-text-success-hover:hover{color:rgb(var(--cat-success-text-hover, 0, 117, 78)) !important}.cat-link-success:active,.cat-text-success-hover:active{color:rgb(var(--cat-success-text-active, 0, 105, 70)) !important}.cat-bg-warning{background-color:rgb(var(--cat-warning-bg, 255, 206, 128)) !important;color:rgb(var(--cat-warning-fill, 0, 0, 0)) !important}.cat-bg-warning-hover{transition:background-color 125ms, color 125ms}.cat-bg-warning-hover:hover{background-color:rgb(var(--cat-warning-bg-hover, 255, 214, 148)) !important;color:rgb(var(--cat-warning-fill-hover, 0, 0, 0)) !important}.cat-text-warning,.cat-link-warning{color:rgb(var(--cat-warning-text, 159, 97, 0)) !important}.cat-link-warning,.cat-text-warning-hover{transition:color 125ms}.cat-link-warning:hover,.cat-text-warning-hover:hover{color:rgb(var(--cat-warning-text-hover, 159, 97, 0)) !important}.cat-link-warning:active,.cat-text-warning-hover:active{color:rgb(var(--cat-warning-text-active, 159, 97, 0)) !important}.cat-bg-danger{background-color:rgb(var(--cat-danger-bg, 217, 52, 13)) !important;color:rgb(var(--cat-danger-fill, 255, 255, 255)) !important}.cat-bg-danger-hover{transition:background-color 125ms, color 125ms}.cat-bg-danger-hover:hover{background-color:rgb(var(--cat-danger-bg-hover, 194, 46, 11)) !important;color:rgb(var(--cat-danger-fill-hover, 255, 255, 255)) !important}.cat-text-danger,.cat-link-danger{color:rgb(var(--cat-danger-text, 217, 52, 13)) !important}.cat-link-danger,.cat-text-danger-hover{transition:color 125ms}.cat-link-danger:hover,.cat-text-danger-hover:hover{color:rgb(var(--cat-danger-text-hover, 194, 46, 11)) !important}.cat-link-danger:active,.cat-text-danger-hover:active{color:rgb(var(--cat-danger-text-active, 174, 42, 10)) !important}.cat-active{color:rgb(var(--cat-primary-text, 0, 129, 148)) !important}.cat-muted{color:rgb(var(--cat-font-color-muted, 81, 92, 108)) !important}.cat-text-reset{color:inherit !important}.cat-link-reset{color:inherit !important;text-decoration:inherit !important}.label{overflow:hidden;word-wrap:break-word;word-break:break-word}.input-field:not(.input-horizontal) .label-container.hidden,.textarea-field:not(.textarea-horizontal) .label-container.hidden,.select-field:not(.select-horizontal) .label-container.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}.label-container{flex-basis:var(--label-size, 33.33%)}.label-container .label-wrapper{display:flex;gap:0.25rem}.label-metadata{display:flex;flex-shrink:0;flex-grow:1;justify-content:space-between;gap:0.25rem}.label-optional{display:flex;align-items:center;max-height:1.25rem;font-size:0.75rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);color:rgb(var(--cat-font-color-muted, 81, 92, 108))}.label-character-count{display:flex;align-items:center;margin-left:auto;max-height:1.25rem;font-size:0.75rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);color:rgb(var(--cat-font-color-muted, 81, 92, 108))}.input-horizontal .label-container.hidden label,.textarea-horizontal .label-container.hidden label,.select-horizontal .label-container.hidden label{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}.input-horizontal .label-wrapper,.textarea-horizontal .label-wrapper,.select-horizontal .label-wrapper{flex-direction:column}.input-horizontal label,.textarea-horizontal label,.select-horizontal label{min-height:2.5rem;display:inline-flex;align-items:center}.input-horizontal .label-metadata,.textarea-horizontal .label-metadata,.select-horizontal .label-metadata{justify-content:flex-start}.input-horizontal .label-metadata .label-character-count,.textarea-horizontal .label-metadata .label-character-count,.select-horizontal .label-metadata .label-character-count{margin-left:0}:host{display:flex;flex-direction:column;gap:0.5rem;line-height:1.25rem;position:relative;margin-bottom:1rem}:host([hidden]){display:none}label{align-self:flex-start}label.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}.select-field,.select-container{display:flex;flex-direction:column;gap:0.5rem;flex:1 1 auto}.select-field.select-horizontal{flex-direction:row;gap:1rem}.input-optional{margin-left:0.25rem;font-size:0.75rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);color:rgb(var(--cat-font-color-muted, 81, 92, 108))}.select-wrapper{display:flex;align-items:flex-start;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);box-shadow:inset 0 0 0 1px rgb(var(--border-color));transition:box-shadow 125ms linear;padding:0.25rem;--border-color:var(--cat-border-color-dark, 215, 219, 224);}.select-wrapper:not(.select-disabled):hover{box-shadow:inset 0 0 0 1px rgb(var(--border-color)), 0 0 0 1px rgb(var(--border-color))}.select-wrapper:focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:-1px}.select-wrapper.select-invalid{--border-color:var(--cat-danger-bg, 217, 52, 13), 0.2}.select-wrapper:has(input:-webkit-autofill),.select-wrapper:has(input:-webkit-autofill):hover,.select-wrapper:has(input:-webkit-autofill):focus{background-color:#e8f0fe}:host(.cat-error) .select-wrapper{box-shadow:0 0 0 1px rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) .select-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-danger-bg, 217, 52, 13))}.select-disabled{background:#f2f4f7;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 81, 92, 108));pointer-events:none}.select-wrapper-inner{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:0.25rem;min-width:0}.select-wrapper-inner>cat-avatar{display:inline-block;padding-left:0.5rem}.select-wrapper-inner>cat-avatar+.select-input{padding-left:0.25rem}.select-wrapper-inner cat-avatar{--cat-avatar-size:1.25rem;--cat-avatar-font-size:0.5rem}.select-input{font:inherit;background:none;border:none;outline:none;padding:0.375rem 0.5rem;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.select-disabled .select-input{cursor:inherit}.select-pills{display:contents}.pill{display:inline-flex;align-items:center;gap:0.5rem;padding:0.25rem 0.5rem;background:#f2f4f7;border-radius:var(--cat-border-radius-s, 0.125rem);white-space:nowrap;min-width:0}.pill>span{overflow:hidden;text-overflow:ellipsis;flex:1 1 0%}.pill>cat-button{margin-right:-0.25rem;margin-left:-0.25rem}.select-btn{transition:transform 125ms linear}.select-btn::part(button){outline:none}cat-spinner{padding:0.375rem}.icon-suffix{padding:0.25rem}.select-btn-open{transform:rotate(180deg)}.select-dropdown{position:fixed;right:0;background:white;display:none;overflow:auto;box-shadow:0 4px 6px -2px rgba(27, 31, 38, 0.03), 0 12px 16px -4px rgba(27, 31, 38, 0.08);border-radius:var(--cat-border-radius-m, 0.25rem);border:1px solid rgb(var(--cat-border-color, 235, 236, 240));z-index:calc(var(--cat-z-index, 1000) + 100);width:max-content;top:0;left:0}.select-options-wrapper{max-height:16rem;width:100%}.select-empty{margin:1rem 0;padding:0 1.25rem}.select-options{list-style-type:none;margin:0;padding:0.5rem 0}.select-options cat-checkbox,.select-options .select-option-single{margin:0;padding:0.5rem 1rem}.select-option-inner{display:flex;gap:0.5rem}.select-option-inner cat-avatar{--cat-avatar-size:1.25rem;--cat-avatar-font-size:0.5rem}.select-option-text{flex:1 1 0%;min-width:0}.select-option-single{cursor:pointer}.select-input-transparent-caret{caret-color:transparent}.select-option-empty,.select-option-loading{padding:0.5rem 1rem}.select-option:hover{background-color:rgba(var(--cat-secondary-bg, 105, 118, 135), 0.05)}.select-option-active{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:-2px}.select-option-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word;word-break:break-word}.select-option-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:rgb(var(--cat-font-color-muted, 81, 92, 108))}";
8082
+ const catSelectCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column;color:rgb(var(--cat-hint-color, inherit))}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1.125rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}.cat-bg-primary{background-color:rgb(var(--cat-primary-bg, 0, 129, 148)) !important;color:rgb(var(--cat-primary-fill, 255, 255, 255)) !important}.cat-bg-primary-hover{transition:background-color 125ms, color 125ms}.cat-bg-primary-hover:hover{background-color:rgb(var(--cat-primary-bg-hover, 1, 115, 132)) !important;color:rgb(var(--cat-primary-fill-hover, 255, 255, 255)) !important}.cat-text-primary,.cat-link-primary{color:rgb(var(--cat-primary-text, 0, 129, 148)) !important}.cat-link-primary,.cat-text-primary-hover{transition:color 125ms}.cat-link-primary:hover,.cat-text-primary-hover:hover{color:rgb(var(--cat-primary-text-hover, 1, 115, 132)) !important}.cat-link-primary:active,.cat-text-primary-hover:active{color:rgb(var(--cat-primary-text-active, 2, 99, 113)) !important}.cat-bg-primaryInverted{background-color:#93b4f2 !important;color:black !important}.cat-bg-primaryInverted-hover{transition:background-color 125ms, color 125ms}.cat-bg-primaryInverted-hover:hover{background-color:#93b4f2 !important;color:black !important}.cat-text-primaryInverted,.cat-link-primaryInverted{color:#93b4f2 !important}.cat-link-primaryInverted,.cat-text-primaryInverted-hover{transition:color 125ms}.cat-link-primaryInverted:hover,.cat-text-primaryInverted-hover:hover{color:#93b4f2 !important}.cat-link-primaryInverted:active,.cat-text-primaryInverted-hover:active{color:#93b4f2 !important}.cat-bg-secondary{background-color:rgb(var(--cat-secondary-bg, 105, 118, 135)) !important;color:rgb(var(--cat-secondary-fill, 255, 255, 255)) !important}.cat-bg-secondary-hover{transition:background-color 125ms, color 125ms}.cat-bg-secondary-hover:hover{background-color:rgb(var(--cat-secondary-bg-hover, 105, 118, 135)) !important;color:rgb(var(--cat-secondary-fill-hover, 255, 255, 255)) !important}.cat-text-secondary,.cat-link-secondary{color:rgb(var(--cat-secondary-text, 0, 0, 0)) !important}.cat-link-secondary,.cat-text-secondary-hover{transition:color 125ms}.cat-link-secondary:hover,.cat-text-secondary-hover:hover{color:rgb(var(--cat-secondary-text-hover, 0, 0, 0)) !important}.cat-link-secondary:active,.cat-text-secondary-hover:active{color:rgb(var(--cat-secondary-text-active, 0, 0, 0)) !important}.cat-bg-secondaryInverted{background-color:#697687 !important;color:black !important}.cat-bg-secondaryInverted-hover{transition:background-color 125ms, color 125ms}.cat-bg-secondaryInverted-hover:hover{background-color:#697687 !important;color:black !important}.cat-text-secondaryInverted,.cat-link-secondaryInverted{color:white !important}.cat-link-secondaryInverted,.cat-text-secondaryInverted-hover{transition:color 125ms}.cat-link-secondaryInverted:hover,.cat-text-secondaryInverted-hover:hover{color:white !important}.cat-link-secondaryInverted:active,.cat-text-secondaryInverted-hover:active{color:white !important}.cat-bg-success{background-color:rgb(var(--cat-success-bg, 0, 132, 88)) !important;color:rgb(var(--cat-success-fill, 255, 255, 255)) !important}.cat-bg-success-hover{transition:background-color 125ms, color 125ms}.cat-bg-success-hover:hover{background-color:rgb(var(--cat-success-bg-hover, 0, 117, 78)) !important;color:rgb(var(--cat-success-fill-hover, 255, 255, 255)) !important}.cat-text-success,.cat-link-success{color:rgb(var(--cat-success-text, 0, 132, 88)) !important}.cat-link-success,.cat-text-success-hover{transition:color 125ms}.cat-link-success:hover,.cat-text-success-hover:hover{color:rgb(var(--cat-success-text-hover, 0, 117, 78)) !important}.cat-link-success:active,.cat-text-success-hover:active{color:rgb(var(--cat-success-text-active, 0, 105, 70)) !important}.cat-bg-warning{background-color:rgb(var(--cat-warning-bg, 255, 206, 128)) !important;color:rgb(var(--cat-warning-fill, 0, 0, 0)) !important}.cat-bg-warning-hover{transition:background-color 125ms, color 125ms}.cat-bg-warning-hover:hover{background-color:rgb(var(--cat-warning-bg-hover, 255, 214, 148)) !important;color:rgb(var(--cat-warning-fill-hover, 0, 0, 0)) !important}.cat-text-warning,.cat-link-warning{color:rgb(var(--cat-warning-text, 159, 97, 0)) !important}.cat-link-warning,.cat-text-warning-hover{transition:color 125ms}.cat-link-warning:hover,.cat-text-warning-hover:hover{color:rgb(var(--cat-warning-text-hover, 159, 97, 0)) !important}.cat-link-warning:active,.cat-text-warning-hover:active{color:rgb(var(--cat-warning-text-active, 159, 97, 0)) !important}.cat-bg-danger{background-color:rgb(var(--cat-danger-bg, 217, 52, 13)) !important;color:rgb(var(--cat-danger-fill, 255, 255, 255)) !important}.cat-bg-danger-hover{transition:background-color 125ms, color 125ms}.cat-bg-danger-hover:hover{background-color:rgb(var(--cat-danger-bg-hover, 194, 46, 11)) !important;color:rgb(var(--cat-danger-fill-hover, 255, 255, 255)) !important}.cat-text-danger,.cat-link-danger{color:rgb(var(--cat-danger-text, 217, 52, 13)) !important}.cat-link-danger,.cat-text-danger-hover{transition:color 125ms}.cat-link-danger:hover,.cat-text-danger-hover:hover{color:rgb(var(--cat-danger-text-hover, 194, 46, 11)) !important}.cat-link-danger:active,.cat-text-danger-hover:active{color:rgb(var(--cat-danger-text-active, 174, 42, 10)) !important}.cat-active{color:rgb(var(--cat-primary-text, 0, 129, 148)) !important}.cat-muted{color:rgb(var(--cat-font-color-muted, 81, 92, 108)) !important}.cat-text-reset{color:inherit !important}.cat-link-reset{color:inherit !important;text-decoration:inherit !important}.label{overflow:hidden;word-wrap:break-word;word-break:break-word}.input-field:not(.input-horizontal) .label-container.hidden,.textarea-field:not(.textarea-horizontal) .label-container.hidden,.select-field:not(.select-horizontal) .label-container.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}.label-container{flex-basis:var(--label-size, 33.33%)}.label-container .label-wrapper{display:flex;gap:0.25rem}.label-metadata{display:flex;flex-shrink:0;flex-grow:1;justify-content:space-between;gap:0.25rem}.label-optional{display:flex;align-items:center;max-height:1.25rem;font-size:0.75rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);color:rgb(var(--cat-font-color-muted, 81, 92, 108))}.label-character-count{display:flex;align-items:center;margin-left:auto;max-height:1.25rem;font-size:0.75rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);color:rgb(var(--cat-font-color-muted, 81, 92, 108))}.input-horizontal .label-container.hidden label,.textarea-horizontal .label-container.hidden label,.select-horizontal .label-container.hidden label{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}.input-horizontal .label-wrapper,.textarea-horizontal .label-wrapper,.select-horizontal .label-wrapper{flex-direction:column}.input-horizontal label,.textarea-horizontal label,.select-horizontal label{min-height:2.5rem;display:inline-flex;align-items:center}.input-horizontal .label-metadata,.textarea-horizontal .label-metadata,.select-horizontal .label-metadata{justify-content:flex-start}.input-horizontal .label-metadata .label-character-count,.textarea-horizontal .label-metadata .label-character-count,.select-horizontal .label-metadata .label-character-count{margin-left:0}:host{display:flex;flex-direction:column;gap:0.5rem;line-height:1.25rem;position:relative;margin-bottom:1rem}:host([hidden]){display:none}label{align-self:flex-start}label.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}.select-field,.select-container{display:flex;flex-direction:column;gap:0.5rem;flex:1 1 auto}.select-field.select-horizontal{flex-direction:row;gap:1rem}.input-optional{margin-left:0.25rem;font-size:0.75rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);color:rgb(var(--cat-font-color-muted, 81, 92, 108))}.select-wrapper{display:flex;align-items:flex-start;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);box-shadow:inset 0 0 0 1px rgb(var(--border-color));transition:box-shadow 125ms linear;padding:0.25rem;--border-color:var(--cat-border-color-dark, 215, 219, 224);}.select-wrapper:not(.select-disabled):hover{box-shadow:inset 0 0 0 1px rgb(var(--border-color)), 0 0 0 1px rgb(var(--border-color))}.select-wrapper:focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:-1px}.select-wrapper.select-invalid{--border-color:var(--cat-danger-bg, 217, 52, 13), 0.2}.select-wrapper:has(input:-webkit-autofill),.select-wrapper:has(input:-webkit-autofill):hover,.select-wrapper:has(input:-webkit-autofill):focus{background-color:#e8f0fe}:host(.cat-error) .select-wrapper{box-shadow:0 0 0 1px rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) .select-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-danger-bg, 217, 52, 13))}.select-disabled{background:#f2f4f7;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 81, 92, 108));pointer-events:none}.select-wrapper-inner{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:0.25rem;min-width:0}.select-wrapper-inner>cat-avatar{display:inline-block;padding-left:0.5rem}.select-wrapper-inner>cat-avatar+.select-input{padding-left:0.25rem}.select-wrapper-inner cat-avatar{--cat-avatar-size:1.25rem;--cat-avatar-font-size:0.5rem}.select-input{font:inherit;background:none;border:none;outline:none;padding:0.375rem 0.5rem;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.select-input::placeholder{color:rgb(var(--cat-font-color-muted, 81, 92, 108))}.select-disabled .select-input{cursor:inherit}.select-pills{display:contents}.pill{display:inline-flex;align-items:center;gap:0.5rem;padding:0.25rem 0.5rem;background:#f2f4f7;border-radius:var(--cat-border-radius-s, 0.125rem);white-space:nowrap;min-width:0}.pill>span{overflow:hidden;text-overflow:ellipsis;flex:1 1 0%}.pill>cat-button{margin-right:-0.25rem;margin-left:-0.25rem}.select-btn{transition:transform 125ms linear}.select-btn::part(button){outline:none}cat-spinner{padding:0.375rem}.icon-suffix{padding:0.25rem}.select-btn-open{transform:rotate(180deg)}.select-dropdown{position:fixed;right:0;background:white;display:none;overflow:auto;box-shadow:0 4px 6px -2px rgba(27, 31, 38, 0.03), 0 12px 16px -4px rgba(27, 31, 38, 0.08);border-radius:var(--cat-border-radius-m, 0.25rem);border:1px solid rgb(var(--cat-border-color, 235, 236, 240));z-index:calc(var(--cat-z-index, 1000) + 100);width:max-content;top:0;left:0}.select-options-wrapper{max-height:16rem;width:100%}.select-empty{margin:1rem 0;padding:0 1.25rem}.select-options{list-style-type:none;margin:0;padding:0.5rem 0}.select-options cat-checkbox,.select-options .select-option-single{margin:0;padding:0.5rem 1rem}.select-option-inner{display:flex;gap:0.5rem}.select-option-inner cat-avatar{--cat-avatar-size:1.25rem;--cat-avatar-font-size:0.5rem}.select-option-text{flex:1 1 0%;min-width:0}.select-option-single{cursor:pointer}.select-input-transparent-caret{caret-color:transparent}.select-option-empty,.select-option-loading{padding:0.5rem 1rem}.select-option:hover{background-color:rgba(var(--cat-secondary-bg, 105, 118, 135), 0.05)}.select-option-active{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:-2px}.select-option-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word;word-break:break-word}.select-option-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:rgb(var(--cat-font-color-muted, 81, 92, 108))}";
8022
8083
 
8023
8084
  const INIT_STATE = {
8024
8085
  term: '',
@@ -8224,7 +8285,9 @@ const CatSelect = class {
8224
8285
  }
8225
8286
  }
8226
8287
  else if (event.key === 'Escape') {
8227
- this.hide();
8288
+ if (this.hide()) {
8289
+ event.stopPropagation();
8290
+ }
8228
8291
  }
8229
8292
  else if (event.key === 'Backspace' || event.key === 'Delete') {
8230
8293
  this.input?.focus();
@@ -8317,16 +8380,19 @@ const CatSelect = class {
8317
8380
  pill: true,
8318
8381
  'select-no-open': true,
8319
8382
  'select-option-active': this.state.activeSelectionIndex === i
8320
- }, role: "option", "aria-selected": "true", id: `select-${this.id}-selection-${i}` }, item.render.avatar ? (h("cat-avatar", { label: item.render.label, round: item.render.avatar.round, src: item.render.avatar.src, icon: item.render.avatar.icon, initials: item.render.avatar.initials ?? '' })) : null, h("span", null, item.render.label), !this.disabled && (h("cat-button", { size: "xs", variant: "text", icon: "$cat:select-clear", iconOnly: true, a11yLabel: catI18nRegistry.t('select.deselect'), onClick: () => this.deselect(item.item.id), tabIndex: -1, "data-dropdown-no-close": true }))))))) : this.state.selection.length && this.state.selection[0].render.avatar ? (h("cat-avatar", { label: this.state.selection[0].render.label, round: this.state.selection[0].render.avatar.round, src: this.state.selection[0].render.avatar.src, icon: this.state.selection[0].render.avatar.icon, initials: this.state.selection[0].render.avatar.initials ?? '' })) : null, h("input", { ...this.nativeAttributes, class: "select-input", ref: el => (this.input = el), "aria-controls": this.isPillboxActive() ? `select-pillbox-${this.id}` : `select-listbox-${this.id}`, "aria-activedescendant": this.activeDescendant, "aria-invalid": this.invalid ? 'true' : undefined, "aria-describedby": this.hint?.length ? this.id + '-hint' : undefined, onInput: this.onInput.bind(this), value: !this.multiple ? this.state.term : undefined, placeholder: this.placeholder, disabled: this.disabled || this.state.isResolving })), this.state.isResolving && h("cat-spinner", null), this.invalid && (h("cat-icon", { icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" })), (this.state.selection.length || this.state.term.length) &&
8383
+ }, role: "option", "aria-selected": "true", id: `select-${this.id}-selection-${i}` }, item.render.avatar ? (h("cat-avatar", { label: item.render.label, round: item.render.avatar.round, src: item.render.avatar.src, icon: item.render.avatar.icon, initials: item.render.avatar.initials ?? '' })) : null, h("span", null, item.render.label), !this.disabled && (h("cat-button", { size: "xs", variant: "text", icon: "$cat:select-clear", iconOnly: true, a11yLabel: catI18nRegistry.t('select.deselect'), onClick: () => this.deselect(item.item.id), tabIndex: -1, "data-dropdown-no-close": true }))))))) : this.state.selection.length && this.state.selection[0].render.avatar ? (h("cat-avatar", { label: this.state.selection[0].render.label, round: this.state.selection[0].render.avatar.round, src: this.state.selection[0].render.avatar.src, icon: this.state.selection[0].render.avatar.icon, initials: this.state.selection[0].render.avatar.initials ?? '' })) : null, h("input", { ...this.nativeAttributes, class: "select-input", ref: el => (this.input = el), "aria-controls": this.isPillboxActive() ? `select-pillbox-${this.id}` : `select-listbox-${this.id}`, "aria-activedescendant": this.activeDescendant, "aria-invalid": this.invalid ? 'true' : undefined, "aria-describedby": this.hasHint ? this.id + '-hint' : undefined, onInput: this.onInput.bind(this), value: !this.multiple ? this.state.term : undefined, placeholder: this.placeholder, disabled: this.disabled || this.state.isResolving })), this.state.isResolving && h("cat-spinner", null), this.invalid && (h("cat-icon", { icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l" })), (this.state.selection.length || this.state.term.length) &&
8321
8384
  !this.disabled &&
8322
8385
  !this.state.isResolving &&
8323
- this.clearable ? (h("cat-button", { id: `select-clear-btn-${this.id}`, iconOnly: true, icon: "$cat:input-close", variant: "text", size: "s", a11yLabel: catI18nRegistry.t('input.clear'), onCatClick: () => this.clear(), "data-dropdown-no-close": true })) : null, !this.state.isResolving && (h("cat-button", { iconOnly: true, icon: "$cat:select-open", class: { 'select-btn': true, 'select-btn-open': this.state.isOpen }, variant: "text", size: "s", a11yLabel: this.state.isOpen ? catI18nRegistry.t('select.close') : catI18nRegistry.t('select.open'), "aria-controls": `select-listbox-${this.id}`, "aria-expanded": this.state.isOpen, tabIndex: -1, disabled: this.disabled || this.state.isResolving, "data-dropdown-no-close": true }))), (this.hint || this.hasSlottedHint || !!Object.keys(this.errorMap || {}).length) && (h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap })))), h("div", { class: "select-dropdown", ref: el => (this.dropdown = el), style: { display: this.state.isOpen ? 'block' : undefined } }, this.state.isOpen && (h("cat-scrollable", { class: "select-options-wrapper", scrolledBuffer: 56, noOverflowX: true, noOverscroll: true, noScrolledInit: true, onScrolledBottom: () => this.more$.next() }, h("ul", { class: "select-options", role: "listbox", "aria-multiselectable": this.multiple, "aria-setsize": this.state.totalElements, id: `select-listbox-${this.id}` }, this.optionsList, this.state.isLoading
8386
+ this.clearable ? (h("cat-button", { id: `select-clear-btn-${this.id}`, iconOnly: true, icon: "$cat:input-close", variant: "text", size: "s", a11yLabel: catI18nRegistry.t('input.clear'), onCatClick: () => this.clear(), "data-dropdown-no-close": true })) : null, !this.state.isResolving && (h("cat-button", { iconOnly: true, icon: "$cat:select-open", class: { 'select-btn': true, 'select-btn-open': this.state.isOpen }, variant: "text", size: "s", a11yLabel: this.state.isOpen ? catI18nRegistry.t('select.close') : catI18nRegistry.t('select.open'), "aria-controls": `select-listbox-${this.id}`, "aria-expanded": this.state.isOpen, tabIndex: -1, disabled: this.disabled || this.state.isResolving, "data-dropdown-no-close": true }))), this.hasHint && (h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap })))), h("div", { class: "select-dropdown", ref: el => (this.dropdown = el), style: { display: this.state.isOpen ? 'block' : undefined } }, this.state.isOpen && (h("cat-scrollable", { class: "select-options-wrapper", scrolledBuffer: 56, noOverflowX: true, noOverscroll: true, noScrolledInit: true, onScrolledBottom: () => this.more$.next() }, h("ul", { class: "select-options", role: "listbox", "aria-multiselectable": this.multiple, "aria-setsize": this.state.totalElements, id: `select-listbox-${this.id}` }, this.optionsList, this.state.isLoading
8324
8387
  ? Array.from(Array(CatSelect.SKELETON_COUNT)).map(() => (h("li", { class: "select-option-loading" }, h("cat-skeleton", { variant: "body", lines: 1 }), h("cat-skeleton", { variant: "body", lines: 1 }))))
8325
8388
  : !this.state.options.length &&
8326
8389
  !this.tags && (h("li", { class: "select-option-empty" }, this.noItems ? this.noItems : catI18nRegistry.t('select.empty')))))))));
8327
8390
  }
8391
+ get hasHint() {
8392
+ return !!this.hint || !!this.hasSlottedHint || this.invalid;
8393
+ }
8328
8394
  get invalid() {
8329
- return !!this.errorMap;
8395
+ return !!Object.keys(this.errorMap || {}).length;
8330
8396
  }
8331
8397
  get optionsList() {
8332
8398
  return this.state.options.map((item, i) => {
@@ -8397,7 +8463,9 @@ const CatSelect = class {
8397
8463
  if (this.state.isOpen) {
8398
8464
  this.patchState({ isOpen: false, activeOptionIndex: -1 });
8399
8465
  this.catClose.emit();
8466
+ return true;
8400
8467
  }
8468
+ return false;
8401
8469
  }
8402
8470
  search(term) {
8403
8471
  this.patchState({ term, activeOptionIndex: -1, activeSelectionIndex: -1 });
@@ -10145,21 +10213,13 @@ const catTabsCss = ":host{display:flex;flex-direction:row;box-shadow:inset 0 -1p
10145
10213
  const CatTabs = class {
10146
10214
  constructor(hostRef) {
10147
10215
  registerInstance(this, hostRef);
10148
- this.buttons = [];
10216
+ this.catChange = createEvent(this, "catChange", 7);
10149
10217
  this.tabs = [];
10150
- this.activeTabId = undefined;
10151
10218
  this.activeTab = '';
10152
10219
  this.tabsAlign = 'left';
10153
10220
  }
10154
- onActiveTabIdChanged(newActiveTab) {
10155
- const activeTab = this.tabs.find(value => value.id === newActiveTab);
10156
- activeTab?.click();
10157
- }
10158
10221
  componentWillLoad() {
10159
10222
  this.syncTabs();
10160
- if (this.tabs.length) {
10161
- this.activeTabId = this.activeTab;
10162
- }
10163
10223
  }
10164
10224
  componentDidLoad() {
10165
10225
  this.mutationObserver = new MutationObserver(mutations => mutations.some(value => value.target.nodeName === 'CAT-TAB') && this.syncTabs());
@@ -10172,9 +10232,14 @@ const CatTabs = class {
10172
10232
  disconnectedCallback() {
10173
10233
  this.mutationObserver?.disconnect();
10174
10234
  }
10235
+ onActiveTabChange(id) {
10236
+ const index = this.tabs.findIndex(tab => tab.id === id);
10237
+ this.catChange.emit({ id, index });
10238
+ }
10175
10239
  onKeydown(event) {
10176
10240
  if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {
10177
- const targetElements = this.buttons.filter(button => !button.disabled);
10241
+ const elements = this.hostElement.shadowRoot?.querySelectorAll('cat-button[role="tab"]');
10242
+ const targetElements = Array.from(elements || []).filter(button => !button.disabled);
10178
10243
  const activeElement = this.hostElement.shadowRoot?.activeElement;
10179
10244
  const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;
10180
10245
  const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;
@@ -10183,29 +10248,45 @@ const CatTabs = class {
10183
10248
  event.preventDefault();
10184
10249
  }
10185
10250
  }
10251
+ /**
10252
+ * Activates the tab with the given id.
10253
+ *
10254
+ * @param id The tab id.
10255
+ */
10256
+ async setActive(id) {
10257
+ this.activate(this.tabs.find(tab => tab.id === id));
10258
+ }
10259
+ /**
10260
+ * Activates the tab with the given index.
10261
+ *
10262
+ * @param index The tab index.
10263
+ */
10264
+ async setActiveIndex(index) {
10265
+ this.activate(this.tabs[index]);
10266
+ }
10186
10267
  render() {
10187
10268
  return (h(Host, null, this.tabs.map((tab) => {
10188
- return (h("cat-button", { ref: el => el && this.updateButtonsRef(el), buttonId: tab.id, role: "tab", part: "tab", class: {
10269
+ return (h("cat-button", { buttonId: tab.id, role: "tab", part: "tab", class: {
10189
10270
  'cat-tab': true,
10190
- 'cat-tab-active': Boolean(this.activeTabId && tab.id === this.activeTabId)
10191
- }, active: Boolean(this.activeTabId && tab.id === this.activeTabId), color: this.activeTabId && tab.id === this.activeTabId ? 'primary' : 'secondary', variant: "text", icon: tab.icon, iconOnly: tab.iconOnly, iconRight: tab.iconRight, url: tab.url, disabled: tab.deactivated, urlTarget: tab.urlTarget, onCatClick: () => (this.activeTabId = tab.id), nativeAttributes: { ...tab.nativeAttributes }, nativeContentAttributes: { 'data-text': tab.label }, "data-dropdown-no-close": true }, tab.label));
10271
+ 'cat-tab-active': tab.id === this.activeTab
10272
+ }, active: tab.id === this.activeTab, color: tab.id === this.activeTab ? 'primary' : 'secondary', variant: "text", icon: tab.icon, iconOnly: tab.iconOnly, iconRight: tab.iconRight, url: tab.url, disabled: tab.deactivated, urlTarget: tab.urlTarget, onCatClick: () => this.activate(tab), nativeAttributes: { ...tab.nativeAttributes }, nativeContentAttributes: { 'data-text': tab.label }, "data-dropdown-no-close": true }, tab.label));
10192
10273
  })));
10193
10274
  }
10194
- updateButtonsRef(button) {
10195
- const indexOf = this.buttons.indexOf(button);
10196
- if (indexOf >= 0) {
10197
- this.buttons[indexOf] = button;
10198
- }
10199
- else {
10200
- this.buttons.push(button);
10201
- }
10202
- }
10203
10275
  syncTabs() {
10204
10276
  this.tabs = Array.from(this.hostElement.querySelectorAll('cat-tab'));
10277
+ this.activeTab = this.activeTab || this.tabs.filter(tab => this.canActivate(tab))[0]?.id;
10278
+ }
10279
+ canActivate(tab) {
10280
+ return !!tab && !tab.deactivated && !tab.url && tab.id !== this.activeTab;
10281
+ }
10282
+ activate(tab) {
10283
+ if (this.canActivate(tab)) {
10284
+ this.activeTab = tab.id;
10285
+ }
10205
10286
  }
10206
10287
  get hostElement() { return getElement(this); }
10207
10288
  static get watchers() { return {
10208
- "activeTabId": ["onActiveTabIdChanged"]
10289
+ "activeTab": ["onActiveTabChange"]
10209
10290
  }; }
10210
10291
  };
10211
10292
  CatTabs.style = catTabsCss;
@@ -10304,10 +10385,13 @@ const CatTextarea = class {
10304
10385
  'textarea-readonly': this.readonly,
10305
10386
  'textarea-disabled': this.disabled,
10306
10387
  'textarea-invalid': this.invalid
10307
- } }, h("textarea", { ...this.nativeAttributes, 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.hint?.length ? this.id + '-hint' : undefined }), this.invalid && (h("cat-icon", { icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l", onClick: () => this.textarea.focus() }))), (this.hint || this.hasSlottedHint || !!Object.keys(this.errorMap || {}).length) && (h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap }))))));
10388
+ } }, h("textarea", { ...this.nativeAttributes, 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", { icon: "$cat:input-error", class: "icon-suffix cat-text-danger", size: "l", onClick: () => this.textarea.focus() }))), this.hasHint && (h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }), errorMap: this.errorMap }))))));
10389
+ }
10390
+ get hasHint() {
10391
+ return !!this.hint || !!this.hasSlottedHint || this.invalid;
10308
10392
  }
10309
10393
  get invalid() {
10310
- return !!this.errorMap;
10394
+ return !!Object.keys(this.errorMap || {}).length;
10311
10395
  }
10312
10396
  onInput() {
10313
10397
  this.value = this.textarea.value;
@@ -10404,7 +10488,10 @@ const CatToggle = class {
10404
10488
  this.input.blur();
10405
10489
  }
10406
10490
  render() {
10407
- return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, class: "form-check-input", role: "switch", onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "toggle", part: "toggle" }), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), (this.hint || this.hasSlottedHint) && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "toggle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
10491
+ return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, class: "form-check-input", role: "switch", onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-describedby": this.hasHint ? this.id + '-hint' : undefined }), h("span", { class: "toggle", part: "toggle" }), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hasHint && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "toggle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
10492
+ }
10493
+ get hasHint() {
10494
+ return !!this.hint || !!this.hasSlottedHint;
10408
10495
  }
10409
10496
  onInput() {
10410
10497
  this.checked = this.input.checked;