@haiilo/catalyst 1.3.0 → 2.0.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 (167) 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.cdn.js +7 -3
  5. package/dist/catalyst/index.esm.js +9 -1
  6. package/dist/catalyst/index.esm.js.map +1 -1
  7. package/dist/catalyst/p-167f01e8.entry.js +2 -0
  8. package/dist/catalyst/p-167f01e8.entry.js.map +1 -0
  9. package/dist/catalyst/p-53a1db22.js +3 -0
  10. package/dist/catalyst/p-53a1db22.js.map +1 -0
  11. package/dist/catalyst/p-5865f232.js +2 -0
  12. package/dist/catalyst/p-5865f232.js.map +1 -0
  13. package/dist/catalyst/p-5bfc70e3.entry.js +2 -0
  14. package/dist/catalyst/{p-270fd91d.entry.js.map → p-5bfc70e3.entry.js.map} +1 -1
  15. package/dist/catalyst/scss/_variables.scss +1 -1
  16. package/dist/catalyst/scss/core/_form.scss +8 -0
  17. package/dist/catalyst/scss/core/_nav.scss +3 -3
  18. package/dist/catalyst/scss/core/_notification.scss +48 -0
  19. package/dist/catalyst/scss/index.scss +2 -1
  20. package/dist/catalyst/scss/utils/_typography.scss +4 -0
  21. package/dist/cjs/cat-alert_22.cjs.entry.js +358 -301
  22. package/dist/cjs/cat-alert_22.cjs.entry.js.map +1 -1
  23. package/dist/cjs/cat-icon-registry-2a54df3d.js +417 -0
  24. package/dist/cjs/cat-icon-registry-2a54df3d.js.map +1 -0
  25. package/dist/cjs/cat-modal.cjs.entry.js +2 -2
  26. package/dist/cjs/cat-modal.cjs.entry.js.map +1 -1
  27. package/dist/cjs/catalyst.cjs.js +2 -2
  28. package/dist/cjs/{index-b2134f1b.js → index-e540e911.js} +1 -4
  29. package/dist/cjs/index-e540e911.js.map +1 -0
  30. package/dist/cjs/index.cjs.js +528 -4
  31. package/dist/cjs/index.cjs.js.map +1 -1
  32. package/dist/cjs/loader.cjs.js +2 -2
  33. package/dist/collection/collection-manifest.json +2 -2
  34. package/dist/collection/components/cat-button/cat-button.css +21 -63
  35. package/dist/collection/components/cat-button/cat-button.js +21 -4
  36. package/dist/collection/components/cat-button/cat-button.js.map +1 -1
  37. package/dist/collection/components/cat-card/cat-card.css +5 -4
  38. package/dist/collection/components/cat-checkbox/cat-checkbox.css +1 -4
  39. package/dist/collection/components/cat-checkbox/cat-checkbox.js +1 -1
  40. package/dist/collection/components/cat-checkbox/cat-checkbox.js.map +1 -1
  41. package/dist/collection/components/{cat-menu/cat-menu.css → cat-dropdown/cat-dropdown.css} +23 -1
  42. package/dist/collection/components/{cat-menu/cat-menu.js → cat-dropdown/cat-dropdown.js} +122 -85
  43. package/dist/collection/components/cat-dropdown/cat-dropdown.js.map +1 -0
  44. package/dist/collection/components/cat-i18n/cat-i18n-registry.js +13 -38
  45. package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
  46. package/dist/collection/components/cat-icon/cat-icon-registry.js +1 -0
  47. package/dist/collection/components/cat-icon/cat-icon-registry.js.map +1 -1
  48. package/dist/collection/components/cat-input/cat-input.css +1 -4
  49. package/dist/collection/components/cat-input/cat-input.js +4 -5
  50. package/dist/collection/components/cat-input/cat-input.js.map +1 -1
  51. package/dist/collection/components/cat-notification/cat-notification.js +61 -89
  52. package/dist/collection/components/cat-notification/cat-notification.js.map +1 -1
  53. package/dist/collection/components/cat-pagination/cat-pagination.css +106 -0
  54. package/dist/collection/components/cat-pagination/cat-pagination.js +302 -0
  55. package/dist/collection/components/cat-pagination/cat-pagination.js.map +1 -0
  56. package/dist/collection/components/cat-radio/cat-radio.css +1 -4
  57. package/dist/collection/components/cat-radio/cat-radio.js +1 -1
  58. package/dist/collection/components/cat-radio/cat-radio.js.map +1 -1
  59. package/dist/collection/components/cat-radio-group/cat-radio-group.js +3 -11
  60. package/dist/collection/components/cat-radio-group/cat-radio-group.js.map +1 -1
  61. package/dist/collection/components/cat-select/cat-select.css +1 -4
  62. package/dist/collection/components/cat-select/cat-select.js +8 -9
  63. package/dist/collection/components/cat-select/cat-select.js.map +1 -1
  64. package/dist/collection/components/cat-select-demo/cat-select-demo.js +4 -1
  65. package/dist/collection/components/cat-select-demo/cat-select-demo.js.map +1 -1
  66. package/dist/collection/components/cat-tabs/cat-tabs.css +2 -2
  67. package/dist/collection/components/cat-tabs/cat-tabs.js +2 -2
  68. package/dist/collection/components/cat-tabs/cat-tabs.js.map +1 -1
  69. package/dist/collection/components/cat-textarea/cat-textarea.css +1 -4
  70. package/dist/collection/components/cat-textarea/cat-textarea.js +1 -1
  71. package/dist/collection/components/cat-textarea/cat-textarea.js.map +1 -1
  72. package/dist/collection/components/cat-toggle/cat-toggle.css +1 -4
  73. package/dist/collection/components/cat-toggle/cat-toggle.js +1 -1
  74. package/dist/collection/components/cat-toggle/cat-toggle.js.map +1 -1
  75. package/dist/collection/index.cdn.js +7 -3
  76. package/dist/collection/index.js +3 -3
  77. package/dist/collection/index.js.map +1 -1
  78. package/dist/collection/scss/_variables.scss +1 -1
  79. package/dist/collection/scss/core/_form.scss +8 -0
  80. package/dist/collection/scss/core/_nav.scss +3 -3
  81. package/dist/collection/scss/core/_notification.scss +48 -0
  82. package/dist/collection/scss/index.scss +2 -1
  83. package/dist/collection/scss/utils/_typography.scss +4 -0
  84. package/dist/components/cat-button2.js +6 -5
  85. package/dist/components/cat-button2.js.map +1 -1
  86. package/dist/components/cat-card.js +1 -1
  87. package/dist/components/cat-card.js.map +1 -1
  88. package/dist/components/cat-checkbox2.js +2 -2
  89. package/dist/components/cat-checkbox2.js.map +1 -1
  90. package/dist/components/{cat-menu.d.ts → cat-dropdown.d.ts} +4 -4
  91. package/dist/components/cat-dropdown.js +8 -0
  92. package/dist/components/cat-dropdown.js.map +1 -0
  93. package/dist/components/cat-dropdown2.js +195 -0
  94. package/dist/components/cat-dropdown2.js.map +1 -0
  95. package/dist/components/cat-i18n-registry.js +14 -39
  96. package/dist/components/cat-i18n-registry.js.map +1 -1
  97. package/dist/components/cat-icon2.js +2 -1
  98. package/dist/components/cat-icon2.js.map +1 -1
  99. package/dist/components/cat-input.js +5 -6
  100. package/dist/components/cat-input.js.map +1 -1
  101. package/dist/components/{cat-toast-demo.d.ts → cat-pagination.d.ts} +4 -4
  102. package/dist/components/cat-pagination.js +150 -0
  103. package/dist/components/cat-pagination.js.map +1 -0
  104. package/dist/components/cat-radio-group.js +3 -11
  105. package/dist/components/cat-radio-group.js.map +1 -1
  106. package/dist/components/cat-radio.js +2 -2
  107. package/dist/components/cat-radio.js.map +1 -1
  108. package/dist/components/cat-select-demo.js +13 -7
  109. package/dist/components/cat-select-demo.js.map +1 -1
  110. package/dist/components/cat-select2.js +7 -8
  111. package/dist/components/cat-select2.js.map +1 -1
  112. package/dist/components/cat-tabs.js +3 -3
  113. package/dist/components/cat-tabs.js.map +1 -1
  114. package/dist/components/cat-textarea.js +2 -2
  115. package/dist/components/cat-textarea.js.map +1 -1
  116. package/dist/components/cat-toggle.js +2 -2
  117. package/dist/components/cat-toggle.js.map +1 -1
  118. package/dist/components/index.d.ts +2 -2
  119. package/dist/components/index.js +531 -4
  120. package/dist/components/index.js.map +1 -1
  121. package/dist/esm/cat-alert_22.entry.js +355 -298
  122. package/dist/esm/cat-alert_22.entry.js.map +1 -1
  123. package/dist/esm/cat-icon-registry-d537b18b.js +409 -0
  124. package/dist/esm/cat-icon-registry-d537b18b.js.map +1 -0
  125. package/dist/esm/cat-modal.entry.js +2 -2
  126. package/dist/esm/cat-modal.entry.js.map +1 -1
  127. package/dist/esm/catalyst.js +2 -2
  128. package/dist/esm/{index-033048ed.js → index-c2a28ebb.js} +2 -4
  129. package/dist/esm/index-c2a28ebb.js.map +1 -0
  130. package/dist/esm/index.js +527 -1
  131. package/dist/esm/index.js.map +1 -1
  132. package/dist/esm/loader.js +2 -2
  133. package/dist/types/components/cat-button/cat-button.d.ts +4 -0
  134. package/dist/types/components/{cat-menu/cat-menu.d.ts → cat-dropdown/cat-dropdown.d.ts} +22 -11
  135. package/dist/types/components/cat-i18n/cat-i18n-registry.d.ts +4 -6
  136. package/dist/types/components/cat-icon/cat-icon-registry.d.ts +1 -0
  137. package/dist/types/components/cat-input/cat-input.d.ts +0 -1
  138. package/dist/types/components/cat-notification/cat-notification.d.ts +21 -48
  139. package/dist/types/components/cat-pagination/cat-pagination.d.ts +56 -0
  140. package/dist/types/components/cat-select/cat-select.d.ts +0 -1
  141. package/dist/types/components.d.ts +149 -53
  142. package/dist/types/index.d.ts +4 -4
  143. package/package.json +3 -3
  144. package/dist/catalyst/p-10b0d7a2.js +0 -10
  145. package/dist/catalyst/p-10b0d7a2.js.map +0 -1
  146. package/dist/catalyst/p-270fd91d.entry.js +0 -2
  147. package/dist/catalyst/p-3ad731e4.entry.js +0 -2
  148. package/dist/catalyst/p-3ad731e4.entry.js.map +0 -1
  149. package/dist/catalyst/p-692e49d6.js +0 -3
  150. package/dist/catalyst/p-692e49d6.js.map +0 -1
  151. package/dist/catalyst/scss/core/_toast.scss +0 -87
  152. package/dist/cjs/cat-notification-bcb9fb86.js +0 -990
  153. package/dist/cjs/cat-notification-bcb9fb86.js.map +0 -1
  154. package/dist/cjs/index-b2134f1b.js.map +0 -1
  155. package/dist/collection/components/cat-menu/cat-menu.js.map +0 -1
  156. package/dist/collection/components/cat-toast-demo/cat-toast-demo.css +0 -3
  157. package/dist/collection/components/cat-toast-demo/cat-toast-demo.js +0 -62
  158. package/dist/collection/components/cat-toast-demo/cat-toast-demo.js.map +0 -1
  159. package/dist/collection/scss/core/_toast.scss +0 -87
  160. package/dist/components/cat-menu.js +0 -174
  161. package/dist/components/cat-menu.js.map +0 -1
  162. package/dist/components/cat-toast-demo.js +0 -647
  163. package/dist/components/cat-toast-demo.js.map +0 -1
  164. package/dist/esm/cat-notification-8bcf6fa2.js +0 -985
  165. package/dist/esm/cat-notification-8bcf6fa2.js.map +0 -1
  166. package/dist/esm/index-033048ed.js.map +0 -1
  167. package/dist/types/components/cat-toast-demo/cat-toast-demo.d.ts +0 -9
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-033048ed.js';
2
- import { l as loglevel, a as CatIconRegistry, C as CatI18nRegistry, N as NotificationsService } from './cat-notification-8bcf6fa2.js';
3
- import { t as tabbable, f as firstTabbable, c as createFocusTrap } from './first-tabbable-4a00de61.js';
1
+ import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-c2a28ebb.js';
2
+ import { l as loglevel, e as CatIconRegistry, b as catI18nRegistry } from './cat-icon-registry-d537b18b.js';
3
+ import { c as createFocusTrap, t as tabbable, f as firstTabbable } from './first-tabbable-4a00de61.js';
4
4
 
5
5
  function setAttributeDefault(host, attr, value) {
6
6
  if (!host.hostElement.hasAttribute(attr) && value != null) {
@@ -289,7 +289,7 @@ function createEmptyStyleRule(query) {
289
289
  }
290
290
  }
291
291
 
292
- 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}.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 0.13s linear, border-color 0.13s linear, background-color 0.13s linear, box-shadow 0.13s linear}.cat-button:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.cat-button-content{word-wrap:break-word;word-break:break-word}.cat-button-ellipsed .cat-button-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.cat-button-disabled{cursor:not-allowed;opacity:var(--cat-opacity-disabled, 0.65)}.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-filled{background-color:rgb(var(--bg));color:rgb(var(--fill));font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}.cat-button-filled.cat-button-disabled{--bg:235, 236, 240;--fill:var(--cat-font-color-muted, 105, 118, 135)}.cat-button-outlined{background-color:white;box-shadow:inset 0 0 0 1px rgba(var(--base), 0.2);color:rgb(var(--text))}.cat-button-outlined.cat-button-disabled{--base:var(--cat-font-color-muted, 105, 118, 135);--text:var(--cat-font-color-muted, 105, 118, 135)}.cat-button-outlined:hover:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.05)}.cat-button-outlined.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.cat-button-outlined:active:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.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, 105, 118, 135)}.cat-button-text:hover:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-button-decoration-hover, none);background-color:rgba(var(--base), 0.05)}.cat-button-text.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-button-decoration-hover, none);background-color:rgba(var(--base), 0.1)}.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-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.25rem 0.25rem;font-size:0.875rem;line-height:1rem}.cat-button-xs .cat-button-prefix{margin-right:0.25rem}.cat-button-xs .cat-button-suffix{margin-left:0.25rem}.cat-button-xs.cat-button-icon{width:1.5rem;padding-left:0;padding-right:0}:host-context(nav) .cat-button-xs{padding-left:1.25rem;padding-right:1.25rem}:host(.cat-button-pull[size=xs]){margin:-0.25rem -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.25rem;margin-bottom:-0.25rem}:host(.cat-button-pull-t[size=xs]){margin-top:-0.25rem}:host(.cat-button-pull-l[size=xs]){margin-left:-0.25rem}:host(.cat-button-pull-b[size=xs]){margin-bottom:-0.25rem}: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}.cat-button-s .cat-button-prefix{margin-right:0.25rem}.cat-button-s .cat-button-suffix{margin-left:0.25rem}.cat-button-s cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-s.cat-button-icon{width:2rem;padding-left:0;padding-right:0}:host-context(nav) .cat-button-s{padding-left:1.25rem;padding-right:1.25rem}: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}.cat-button-m .cat-button-prefix{margin-right:0.25rem}.cat-button-m .cat-button-suffix{margin-left:0.25rem}.cat-button-m cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-m.cat-button-icon{width:2.5rem;padding-left:0;padding-right:0}:host-context(nav) .cat-button-m{padding-left:1.25rem;padding-right:1.25rem}: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}.cat-button-l .cat-button-prefix{margin-right:0.25rem}.cat-button-l .cat-button-suffix{margin-left:0.25rem}.cat-button-l cat-icon{margin-top:-0.125rem;margin-bottom:-0.125rem}.cat-button-l.cat-button-icon{width:3rem;padding-left:0;padding-right:0}:host-context(nav) .cat-button-l{padding-left:1.25rem;padding-right:1.25rem}: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}.cat-button-xl .cat-button-prefix{margin-right:0.25rem}.cat-button-xl .cat-button-suffix{margin-left:0.25rem}.cat-button-xl.cat-button-icon{width:3.5rem;padding-left:0;padding-right:0}:host-context(nav) .cat-button-xl{padding-left:1.25rem;padding-right:1.25rem}: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-context(cat-tabs) .cat-button{background-color:transparent !important}:host-context(nav){width:100%}:host-context(nav) .cat-button{box-shadow:none;border-radius:0;justify-content:left}:host-context(nav) .cat-button:focus-visible{outline-offset:-2px}:host(.cat-text-left) .cat-button{justify-content:left}:host(.cat-text-right) .cat-button{justify-content:right}";
292
+ 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}.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 0.13s linear, border-color 0.13s linear, background-color 0.13s linear, box-shadow 0.13s linear}.cat-button:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.cat-button-content{word-wrap:break-word;word-break:break-word}.cat-button-ellipsed .cat-button-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.cat-button-disabled{cursor:not-allowed;opacity:var(--cat-opacity-disabled, 0.65)}.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-filled{background-color:rgb(var(--bg));color:rgb(var(--fill));font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}.cat-button-filled.cat-button-disabled{--bg:235, 236, 240;--fill:var(--cat-font-color-muted, 105, 118, 135)}.cat-button-outlined{background-color:white;box-shadow:inset 0 0 0 1px rgba(var(--base), 0.2);color:rgb(var(--text))}.cat-button-outlined.cat-button-disabled{--base:var(--cat-font-color-muted, 105, 118, 135);--text:var(--cat-font-color-muted, 105, 118, 135)}.cat-button-outlined:hover:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.05)}.cat-button-outlined.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.cat-button-outlined:active:not(.cat-button-disabled):not(.cat-button-loading){background-color:rgba(var(--base), 0.1)}.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, 105, 118, 135)}.cat-button-text:hover:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-button-decoration-hover, none);background-color:rgba(var(--base), 0.05)}.cat-button-text.cat-button-active:not(.cat-button-disabled):not(.cat-button-loading){text-decoration:var(--cat-link-button-decoration-hover, none);background-color:rgba(var(--base), 0.1)}.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-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.25rem 0.25rem;font-size:0.875rem;line-height:1rem;gap:0.25rem}.cat-button-xs.cat-button-icon{width:1.5rem;padding-left:0;padding-right:0}:host(.cat-button-pull[size=xs]){margin:-0.25rem -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.25rem;margin-bottom:-0.25rem}:host(.cat-button-pull-t[size=xs]){margin-top:-0.25rem}:host(.cat-button-pull-l[size=xs]){margin-left:-0.25rem}:host(.cat-button-pull-b[size=xs]){margin-bottom:-0.25rem}: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;padding-left:0;padding-right: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;padding-left:0;padding-right: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;padding-left:0;padding-right: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;padding-left:0;padding-right: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-active:not(:hover)){--cat-primary-text:transparent}:host(.cat-text-left) .cat-button{justify-content:left}:host(.cat-text-right) .cat-button{justify-content:right}:host(.cat-nav-item){width:100%}:host(.cat-nav-item) .cat-button{box-shadow:none;border-radius:0;justify-content:left;padding-left:1.25rem;padding-right:1.25rem;gap:0.5rem}:host(.cat-nav-item) .cat-button:focus-visible{outline-offset:-2px}";
293
293
 
294
294
  const CatButton = class {
295
295
  constructor(hostRef) {
@@ -391,7 +391,7 @@ const CatButton = class {
391
391
  render() {
392
392
  var _a;
393
393
  if (this.url) {
394
- return (h("a", { ref: el => (this.button = el), href: this.disabled ? undefined : this.url, target: this.urlTarget, "aria-disabled": this.disabled ? 'true' : null, "aria-label": this.a11yLabel, id: this.buttonId, part: "button", class: {
394
+ return (h("a", { ref: el => (this.button = el), href: this.disabled ? undefined : this.url, target: this.urlTarget, "aria-disabled": this.disabled ? 'true' : null, "aria-label": this.a11yLabel, "aria-current": this.a11yCurrent, id: this.buttonId, part: "button", class: {
395
395
  'cat-button': true,
396
396
  'cat-button-icon': this.isIconButton,
397
397
  'cat-button-round': this.round,
@@ -404,7 +404,7 @@ const CatButton = class {
404
404
  }, onClick: this.onClick.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }, this.content));
405
405
  }
406
406
  else {
407
- return (h("button", { ref: el => (this.button = el), type: this.submit ? 'submit' : 'button', name: this.name, value: this.value, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null, "aria-label": this.a11yLabel, id: this.buttonId, part: "button", class: {
407
+ return (h("button", { ref: el => (this.button = el), type: this.submit ? 'submit' : 'button', name: this.name, value: this.value, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null, "aria-label": this.a11yLabel, "aria-current": this.a11yCurrent, id: this.buttonId, part: "button", class: {
408
408
  'cat-button': true,
409
409
  'cat-button-active': this.active,
410
410
  'cat-button-icon': this.isIconButton,
@@ -445,9 +445,9 @@ const CatButton = class {
445
445
  }
446
446
  get content() {
447
447
  return [
448
- this.hasPrefixIcon ? (h("cat-icon", { icon: this.icon, size: this.iconSize, class: "cat-button-prefix", part: "prefix" })) : null,
448
+ this.hasPrefixIcon ? h("cat-icon", { icon: this.icon, size: this.iconSize, part: "prefix" }) : null,
449
449
  this.isIconButton ? (h("cat-icon", { icon: this.icon, size: this.iconSize })) : (h("span", { class: "cat-button-content", part: "content" }, h("slot", null))),
450
- this.hasSuffixIcon ? (h("cat-icon", { icon: this.icon, size: this.iconSize, class: "cat-button-suffix", part: "suffix" })) : null,
450
+ this.hasSuffixIcon ? h("cat-icon", { icon: this.icon, size: this.iconSize, part: "suffix" }) : null,
451
451
  this.loading ? h("cat-spinner", { size: this.spinnerSize }) : null
452
452
  ];
453
453
  }
@@ -466,7 +466,7 @@ const CatButton = class {
466
466
  };
467
467
  CatButton.style = catButtonCss;
468
468
 
469
- const catCardCss = ":host{display:block;margin-bottom:1rem;border-radius:var(--cat-border-radius-l, 0.5rem);background-color:white;padding:1.25rem}:host([hidden]){display:none}::slotted(nav){margin:-0.75rem -1.25rem !important}::slotted(:last-child){margin-bottom:0 !important}::slotted(.cat-card-pull){margin:-1.25rem !important;width:calc(100% + 2.5rem) !important;height:calc(100% + 2.5rem) !important}::slotted(.cat-card-pull-h){margin-left:-1.25rem !important;margin-right:-1.25rem !important;width:calc(100% + 2.5rem) !important}::slotted(.cat-card-pull-v){margin-top:-1.25rem !important;margin-bottom:-1.25rem !important;height:calc(100% + 2.5rem) !important}::slotted(.cat-card-pull-t){margin-top:-1.25rem !important}::slotted(.cat-card-pull-l){margin-left:-1.25rem !important}::slotted(.cat-card-pull-r){margin-right:-1.25rem !important}::slotted(.cat-card-pull-b){margin-bottom:-1.25rem !important}";
469
+ const catCardCss = ":host{display:block;margin-bottom:1rem;border-radius:var(--cat-border-radius-l, 0.5rem);background-color:white;padding:1.25rem}:host([hidden]){display:none}::slotted(:last-child){margin-bottom:0 !important}::slotted(nav),::slotted(nav:last-child){margin:-0.75rem -1.25rem !important}::slotted(.cat-card-pull){margin:-1.25rem !important;width:calc(100% + 2.5rem) !important;height:calc(100% + 2.5rem) !important}::slotted(.cat-card-pull-h){margin-left:-1.25rem !important;margin-right:-1.25rem !important;width:calc(100% + 2.5rem) !important}::slotted(.cat-card-pull-v){margin-top:-1.25rem !important;margin-bottom:-1.25rem !important;height:calc(100% + 2.5rem) !important}::slotted(.cat-card-pull-t){margin-top:-1.25rem !important}::slotted(.cat-card-pull-l){margin-left:-1.25rem !important}::slotted(.cat-card-pull-r){margin-right:-1.25rem !important}::slotted(.cat-card-pull-b){margin-bottom:-1.25rem !important}";
470
470
 
471
471
  const CatCard = class {
472
472
  constructor(hostRef) {
@@ -493,7 +493,7 @@ const CatFormHint = props => {
493
493
  ]));
494
494
  };
495
495
 
496
- const catCheckboxCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host-context(.cat-error) .hint-section{color:rgb(var(--cat-danger-text, 217, 52, 13))}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;position:relative}.label-left{flex-direction:row-reverse}.label-left input{right:1px;left:unset}input{position:absolute;width:1.25rem;height:1.25rem;margin:0;opacity:0;cursor:inherit;left:1px;top:0.5px}.box{flex:0 0 auto;display:flex;position:relative;height:1.25rem;width:1.25rem;background-color:white;border:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));border-radius:var(--cat-border-radius-s, 0.125rem);transition:background-color 0.13s ease, border-color 0.13s ease;pointer-events:none}.box svg{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:16px;stroke-dashoffset:16px;transition:all 0.13s ease;width:50%;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.99)}:checked+.box{background-color:rgb(var(--cat-primary-bg, 0, 129, 148));border-color:rgb(var(--cat-primary-bg, 0, 129, 148));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:checked+.box .check{stroke-dashoffset:0}:indeterminate+.box{background-color:rgb(var(--cat-primary-bg, 0, 129, 148));border-color:rgb(var(--cat-primary-bg, 0, 129, 148));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:indeterminate+.box .dash{stroke-dashoffset:0}:focus-visible+.box{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.is-disabled .box{background-color:#f2f4f7;border-color:rgb(var(--cat-border-color-dark, 215, 219, 224));stroke:rgb(var(--cat-font-color-muted, 105, 118, 135))}:host(.cat-error) .box{border:1px solid rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) :checked+.box,:host(.cat-error) :indeterminate+.box{background-color:rgb(var(--cat-danger-bg, 217, 52, 13));border-color:rgb(var(--cat-danger-bg, 217, 52, 13));stroke:rgb(var(--cat-danger-fill, 255, 255, 255))}.label{flex:1 1 auto;min-width:0}.is-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}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
496
+ const catCheckboxCss = ".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:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;position:relative}.label-left{flex-direction:row-reverse}.label-left input{right:1px;left:unset}input{position:absolute;width:1.25rem;height:1.25rem;margin:0;opacity:0;cursor:inherit;left:1px;top:0.5px}.box{flex:0 0 auto;display:flex;position:relative;height:1.25rem;width:1.25rem;background-color:white;border:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));border-radius:var(--cat-border-radius-s, 0.125rem);transition:background-color 0.13s ease, border-color 0.13s ease;pointer-events:none}.box svg{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:16px;stroke-dashoffset:16px;transition:all 0.13s ease;width:50%;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.99)}:checked+.box{background-color:rgb(var(--cat-primary-bg, 0, 129, 148));border-color:rgb(var(--cat-primary-bg, 0, 129, 148));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:checked+.box .check{stroke-dashoffset:0}:indeterminate+.box{background-color:rgb(var(--cat-primary-bg, 0, 129, 148));border-color:rgb(var(--cat-primary-bg, 0, 129, 148));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:indeterminate+.box .dash{stroke-dashoffset:0}:focus-visible+.box{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.is-disabled .box{background-color:#f2f4f7;border-color:rgb(var(--cat-border-color-dark, 215, 219, 224));stroke:rgb(var(--cat-font-color-muted, 105, 118, 135))}:host(.cat-error) .box{border:1px solid rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) :checked+.box,:host(.cat-error) :indeterminate+.box{background-color:rgb(var(--cat-danger-bg, 217, 52, 13));border-color:rgb(var(--cat-danger-bg, 217, 52, 13));stroke:rgb(var(--cat-danger-fill, 255, 255, 255))}.label{flex:1 1 auto;min-width:0}.is-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}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
497
497
 
498
498
  let nextUniqueId$8 = 0;
499
499
  const CatCheckbox = class {
@@ -541,7 +541,7 @@ const CatCheckbox = class {
541
541
  componentWillRender() {
542
542
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
543
543
  if (!this.label && !this.hasSlottedLabel) {
544
- loglevel.error('[A11y] Missing ARIA label on checkbox', this);
544
+ loglevel.warn('[A11y] Missing ARIA label on checkbox', this);
545
545
  }
546
546
  }
547
547
  /**
@@ -577,131 +577,6 @@ const CatCheckbox = class {
577
577
  };
578
578
  CatCheckbox.style = catCheckboxCss;
579
579
 
580
- const catIconCss = ":host{display:inline-flex;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}span{display:inline-flex}svg{fill:currentColor;stroke:none;transform-origin:center center;height:1em;width:calc(var(--cat-icon-ratio, 1) * 1em)}.icon-xs svg{font-size:0.75rem}.icon-s svg{font-size:1rem}.icon-m svg{font-size:1.25rem}.icon-l svg{font-size:1.5rem}.icon-xl svg{font-size:1.75rem}";
581
-
582
- const CatIcon = class {
583
- constructor(hostRef) {
584
- registerInstance(this, hostRef);
585
- this.iconRegistry = CatIconRegistry.getInstance();
586
- /**
587
- * The name of the icon.
588
- */
589
- this.icon = '';
590
- /**
591
- * The size of the icon.
592
- */
593
- this.size = 'm';
594
- }
595
- render() {
596
- return (h("span", { innerHTML: this.iconRegistry.getIcon(this.icon), "aria-label": this.a11yLabel, "aria-hidden": this.a11yLabel ? null : 'true', part: "icon", class: {
597
- icon: true,
598
- [`icon-${this.size}`]: this.size !== 'inline'
599
- } }));
600
- }
601
- };
602
- CatIcon.style = catIconCss;
603
-
604
- const catInputCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host-context(.cat-error) .hint-section{color:rgb(var(--cat-danger-text, 217, 52, 13))}:host{display:flex;flex-direction:column;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);margin-bottom:1rem}:host([hidden]){display:none}.input-wrapper{display:flex;align-items:stretch;gap:0.75rem;padding:0 0.75rem;height:2.5rem;overflow:hidden;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);box-shadow:0 0 0 1px rgb(var(--cat-border-color-dark, 215, 219, 224));transition:box-shadow 0.13s linear}.input-wrapper.input-round{border-radius:10rem}.input-wrapper.input-disabled{background:#f2f4f7;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.input-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-border-color-dark, 215, 219, 224))}.input-wrapper:not(.input-disabled):focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}:host(.cat-error) .input-wrapper{box-shadow:0 0 0 1px rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) .input-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-danger-bg, 217, 52, 13))}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}.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, 105, 118, 135))}.text-prefix,.text-suffix{display:inline-flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.text-prefix{border-right:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));padding-right:0.75rem}.text-suffix{border-left:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));padding-left:0.75rem}.icon-prefix,.icon-suffix{align-self:center}.input-inner-wrapper{display:flex;align-items:center;position:relative;flex:1 1 auto}input{font:inherit;margin:0;padding:0;width:100%;min-width:0;border:none;outline:none;background:none}.input-disabled input{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}input.has-clearable{padding-right:1.5rem}input::placeholder{color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.clearable{position:absolute;top:calc(50% - 1rem);right:-0.5rem}";
605
-
606
- let nextUniqueId$7 = 0;
607
- const CatInput = class {
608
- constructor(hostRef) {
609
- registerInstance(this, hostRef);
610
- this.catChange = createEvent(this, "catChange", 7);
611
- this.catFocus = createEvent(this, "catFocus", 7);
612
- this.catBlur = createEvent(this, "catBlur", 7);
613
- this.i18n = CatI18nRegistry.getInstance();
614
- this.id = `cat-input-${nextUniqueId$7++}`;
615
- this.hasSlottedLabel = false;
616
- /**
617
- * Whether the input should show a clear button.
618
- */
619
- this.clearable = false;
620
- /**
621
- * Whether the input is disabled.
622
- */
623
- this.disabled = false;
624
- /**
625
- * Display the icon on the right.
626
- */
627
- this.iconRight = false;
628
- /**
629
- * The label for the input.
630
- */
631
- this.label = '';
632
- /**
633
- * Visually hide the label, but still show it to assistive technologies like screen readers.
634
- */
635
- this.labelHidden = false;
636
- /**
637
- * The name of the form control. Submitted with the form as part of a name/value pair.
638
- */
639
- this.name = '';
640
- /**
641
- * The value is not editable.
642
- */
643
- this.readonly = false;
644
- /**
645
- * A value is required or must be check for the form to be submittable.
646
- */
647
- this.required = false;
648
- /**
649
- * Use round input edges.
650
- */
651
- this.round = false;
652
- /**
653
- * Type of form control.
654
- */
655
- this.type = 'text';
656
- }
657
- componentWillRender() {
658
- this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
659
- if (!this.label && !this.hasSlottedLabel) {
660
- loglevel.error('[A11y] Missing ARIA label on input', this);
661
- }
662
- }
663
- /**
664
- * Sets focus on the input. Use this method instead of `input.focus()`.
665
- *
666
- * @param options An optional object providing options to control aspects of
667
- * the focusing process.
668
- */
669
- async setFocus(options) {
670
- this.input.focus(options);
671
- }
672
- /**
673
- * Clear the input.
674
- */
675
- async clear() {
676
- this.value = '';
677
- }
678
- render() {
679
- return (h(Host, null, (this.hasSlottedLabel || this.label) && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(", this.i18n.t('input.optional'), ")"))))), h("div", { class: {
680
- 'input-wrapper': true,
681
- 'input-round': this.round,
682
- 'input-disabled': this.disabled
683
- }, 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", { ref: el => (this.input = el), id: this.id, class: {
684
- 'has-clearable': this.clearable && !this.disabled
685
- }, 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) }), this.clearable && !this.disabled && this.value && (h("cat-button", { class: "clearable", icon: "cross-circle-outlined", "icon-only": "true", size: "s", variant: "text", "a11y-label": this.i18n.t('input.clear'), onClick: this.clear.bind(this) }))), this.icon && this.iconRight && h("cat-icon", { icon: this.icon, class: "icon-suffix", size: "l" }), this.textSuffix && (h("span", { class: "text-suffix", part: "suffix" }, this.textSuffix))), this.hintSection));
686
- }
687
- get hintSection() {
688
- const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
689
- return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
690
- }
691
- onInput(event) {
692
- this.value = this.input.value;
693
- this.catChange.emit(event);
694
- }
695
- onFocus(event) {
696
- this.catFocus.emit(event);
697
- }
698
- onBlur(event) {
699
- this.catBlur.emit(event);
700
- }
701
- get hostElement() { return getElement(this); }
702
- };
703
- CatInput.style = catInputCss;
704
-
705
580
  function getSide(placement) {
706
581
  return placement.split('-')[0];
707
582
  }
@@ -1818,46 +1693,107 @@ const computePosition = (reference, floating, options) => computePosition$1(refe
1818
1693
  ...options
1819
1694
  });
1820
1695
 
1821
- const catMenuCss = ":host{display:contents}:host([hidden]){display:none}::slotted(nav){padding-top:0.5rem;padding-bottom:0.5rem;min-width:8rem;max-width:16rem}.content{position:absolute;background:white;display:none;overflow:auto;-webkit-overflow-scrolling:touch;min-height:2rem;max-height:calc(100vh - 48px);box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2);border-radius:var(--cat-border-radius-m, 0.25rem);z-index:100}";
1696
+ /**
1697
+ * Auto-generated file. Do not edit directly.
1698
+ */
1699
+ const timeTransitionS = 125;
1822
1700
 
1823
- let nextUniqueId$6 = 0;
1824
- const CatMenu = class {
1701
+ const catDropdownCss = ":host{display:contents}:host([hidden]){display:none}::slotted(nav){padding-top:0.5rem;padding-bottom:0.5rem;min-width:8rem;max-width:16rem}.content{position:absolute;background:white;display:none;-webkit-overflow-scrolling:touch;min-height:2rem;max-height:calc(100vh - 48px);box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2);border-radius:var(--cat-border-radius-m, 0.25rem);z-index:100;opacity:0;transition:transform 0.13s cubic-bezier(0.3, 0, 0.8, 0.15), opacity 0.13s cubic-bezier(0.3, 0, 0.8, 0.15)}.content[data-placement^=top]{transform:translateY(1rem)}.content[data-placement^=left]{transform:translateX(1rem)}.content[data-placement^=right]{transform:translateX(-1rem)}.content[data-placement^=bottom]{transform:translateY(-1rem)}.content.show{opacity:1;transform:translateX(0);transform:translateY(0);transition:transform 0.5s cubic-bezier(0.05, 0.7, 0.1, 1), opacity 0.5s cubic-bezier(0.05, 0.7, 0.1, 1)}.content.overflow-auto{overflow:auto}";
1702
+
1703
+ let nextUniqueId$7 = 0;
1704
+ const CatDropdown = class {
1825
1705
  constructor(hostRef) {
1826
1706
  registerInstance(this, hostRef);
1827
1707
  this.catOpen = createEvent(this, "catOpen", 7);
1828
1708
  this.catClose = createEvent(this, "catClose", 7);
1829
- this.id = nextUniqueId$6++;
1709
+ this.id = nextUniqueId$7++;
1710
+ this.isOpen = false;
1830
1711
  /**
1831
- * The placement of the menu.
1712
+ * The placement of the dropdown.
1832
1713
  */
1833
1714
  this.placement = 'bottom-start';
1834
1715
  /**
1835
- * Do not close the menu on outside clicks.
1716
+ * Do not close the dropdown on outside clicks.
1836
1717
  */
1837
1718
  this.noAutoClose = false;
1719
+ /**
1720
+ * Allow overflow when dropdown is open.
1721
+ */
1722
+ this.overflow = false;
1838
1723
  }
1839
1724
  clickHandler(event) {
1725
+ // we need to delay the initialization of the trigger until first,
1726
+ // interaction because the element might still be hidden (and thus not
1727
+ // tabbable) if contained in another Stencil web component
1840
1728
  if (!this.trigger) {
1841
1729
  this.initTrigger();
1842
- this.show();
1730
+ this.toggle();
1843
1731
  }
1844
- // hide menu on button click
1845
- if (!this.noAutoClose && this.content && event.composedPath().includes(this.content)) {
1732
+ // hide dropdown on button click
1733
+ if (!this.noAutoClose && event.composedPath().includes(this.content)) {
1846
1734
  this.close();
1847
1735
  }
1848
1736
  }
1849
1737
  /**
1850
- * Closes the menu.
1738
+ * Toggles the dropdown.
1739
+ */
1740
+ async toggle() {
1741
+ this.isOpen ? this.close() : this.open();
1742
+ }
1743
+ /**
1744
+ * Opens the dropdown.
1745
+ */
1746
+ async open() {
1747
+ if (this.isOpen === null) {
1748
+ return; // busy
1749
+ }
1750
+ this.isOpen = null;
1751
+ this.content.style.display = 'block';
1752
+ // give CSS transition time to apply
1753
+ setTimeout(() => {
1754
+ var _a;
1755
+ this.isOpen = true;
1756
+ this.content.classList.add('show');
1757
+ (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'true');
1758
+ this.catOpen.emit();
1759
+ this.trap = this.trap
1760
+ ? this.trap.updateContainerElements(this.content)
1761
+ : createFocusTrap(this.content, {
1762
+ tabbableOptions: {
1763
+ getShadowRoot: true
1764
+ },
1765
+ allowOutsideClick: true,
1766
+ clickOutsideDeactivates: event => !this.noAutoClose &&
1767
+ !event.composedPath().includes(this.content) &&
1768
+ (!this.trigger || !event.composedPath().includes(this.trigger)),
1769
+ onPostDeactivate: () => this.close()
1770
+ });
1771
+ this.trap.activate();
1772
+ });
1773
+ }
1774
+ /**
1775
+ * Closes the dropdown.
1851
1776
  */
1852
1777
  async close() {
1853
- var _a;
1854
- (_a = this.trap) === null || _a === void 0 ? void 0 : _a.deactivate();
1855
- this.hide();
1778
+ if (this.isOpen === null) {
1779
+ return; // busy
1780
+ }
1781
+ this.isOpen = null;
1782
+ this.content.classList.remove('show');
1783
+ // give CSS transition time to apply
1784
+ setTimeout(() => {
1785
+ var _a, _b;
1786
+ this.isOpen = false;
1787
+ this.content.classList.remove('show');
1788
+ this.content.style.display = '';
1789
+ (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'false');
1790
+ (_b = this.trap) === null || _b === void 0 ? void 0 : _b.deactivate();
1791
+ this.catClose.emit();
1792
+ }, timeTransitionS);
1856
1793
  }
1857
1794
  componentDidLoad() {
1858
- this.initTrigger();
1859
1795
  this.keyListener = event => {
1860
- if (this.content && ['ArrowDown', 'ArrowUp'].includes(event.key)) {
1796
+ if (this.isOpen && ['ArrowDown', 'ArrowUp'].includes(event.key)) {
1861
1797
  const targetElements = tabbable(this.content, { includeContainer: false, getShadowRoot: true });
1862
1798
  const activeElement = firstTabbable(document.activeElement);
1863
1799
  const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;
@@ -1875,93 +1811,277 @@ const CatMenu = class {
1875
1811
  }
1876
1812
  }
1877
1813
  render() {
1878
- return (h(Host, null, h("slot", { name: "trigger", ref: el => (this.triggerSlot = el) }), h("div", { class: "content", ref: el => (this.content = el) }, h("slot", { name: "content" }))));
1814
+ return (h(Host, null, h("slot", { name: "trigger", ref: el => (this.triggerSlot = el) }), h("div", { id: this.contentId, class: { content: true, 'overflow-auto': !this.overflow }, ref: el => (this.content = el) }, h("slot", { name: "content" }))));
1879
1815
  }
1880
1816
  get contentId() {
1881
- return `cat-menu-${this.id}`;
1817
+ return `cat-dropdown-${this.id}`;
1882
1818
  }
1883
1819
  initTrigger() {
1884
- var _a, _b, _c, _d, _e;
1885
1820
  this.trigger = this.findTrigger();
1886
- (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-haspopup', 'true');
1887
- (_b = this.trigger) === null || _b === void 0 ? void 0 : _b.setAttribute('aria-expanded', 'false');
1888
- (_c = this.trigger) === null || _c === void 0 ? void 0 : _c.setAttribute('aria-controls', this.contentId);
1889
- (_d = this.content) === null || _d === void 0 ? void 0 : _d.setAttribute('id', this.contentId);
1890
- if (this.trigger && this.content) {
1891
- (_e = this.trigger) === null || _e === void 0 ? void 0 : _e.addEventListener('click', () => {
1892
- var _a;
1893
- ((_a = this.trap) === null || _a === void 0 ? void 0 : _a.active) ? this.close() : this.show();
1894
- });
1895
- autoUpdate(this.trigger, this.content, () => this.update());
1896
- }
1897
- }
1898
- show() {
1899
- var _a;
1900
- if (this.content) {
1901
- this.content.style.display = 'block';
1902
- (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'true');
1903
- this.catOpen.emit();
1904
- this.trap = this.trap
1905
- ? this.trap.updateContainerElements(this.content)
1906
- : createFocusTrap(this.content, {
1907
- tabbableOptions: {
1908
- getShadowRoot: true
1909
- },
1910
- allowOutsideClick: true,
1911
- clickOutsideDeactivates: event => !this.noAutoClose &&
1912
- (!this.content || !event.composedPath().includes(this.content)) &&
1913
- (!this.trigger || !event.composedPath().includes(this.trigger)),
1914
- onPostDeactivate: () => this.close()
1915
- });
1916
- this.trap.activate();
1917
- }
1918
- }
1919
- hide() {
1920
- var _a;
1921
- if (this.content) {
1922
- this.content.style.display = '';
1923
- (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'false');
1924
- this.catClose.emit();
1925
- }
1926
- }
1927
- update() {
1928
- if (this.trigger && this.content) {
1929
- computePosition(this.trigger, this.content, {
1930
- placement: this.placement,
1931
- middleware: [offset(CatMenu.OFFSET), flip()]
1932
- }).then(({ x, y }) => {
1933
- if (this.content) {
1934
- Object.assign(this.content.style, {
1935
- left: `${x}px`,
1936
- top: `${y}px`
1937
- });
1938
- }
1939
- });
1940
- }
1821
+ this.trigger.setAttribute('aria-haspopup', 'true');
1822
+ this.trigger.setAttribute('aria-expanded', 'false');
1823
+ this.trigger.setAttribute('aria-controls', this.contentId);
1824
+ this.trigger.addEventListener('click', () => this.toggle());
1825
+ autoUpdate(this.trigger, this.content, () => this.update());
1941
1826
  }
1942
1827
  findTrigger() {
1943
- var _a, _b;
1828
+ var _a, _b, _c;
1944
1829
  let trigger;
1945
- const elems = ((_a = this.triggerSlot) === null || _a === void 0 ? void 0 : _a.assignedElements()) || [];
1830
+ const elems = ((_b = (_a = this.triggerSlot) === null || _a === void 0 ? void 0 : _a.assignedElements) === null || _b === void 0 ? void 0 : _b.call(_a)) || [];
1946
1831
  while (!trigger && elems.length) {
1947
1832
  const elem = elems.shift();
1948
1833
  trigger = (elem === null || elem === void 0 ? void 0 : elem.hasAttribute('data-trigger'))
1949
1834
  ? elem
1950
- : (_b = elem === null || elem === void 0 ? void 0 : elem.querySelector('[data-trigger]')) !== null && _b !== void 0 ? _b : undefined;
1835
+ : (_c = elem === null || elem === void 0 ? void 0 : elem.querySelector('[data-trigger]')) !== null && _c !== void 0 ? _c : undefined;
1951
1836
  }
1952
1837
  if (!trigger) {
1953
1838
  trigger = firstTabbable(this.triggerSlot);
1954
1839
  }
1955
1840
  if (!trigger) {
1956
- loglevel.error('Cannot find tabbable element. Use [data-trigger] to set the trigger.');
1841
+ throw new Error('Cannot find tabbable element. Use [data-trigger] to set the trigger.');
1957
1842
  }
1958
1843
  return trigger;
1959
1844
  }
1845
+ update() {
1846
+ if (this.trigger) {
1847
+ computePosition(this.trigger, this.content, {
1848
+ placement: this.placement,
1849
+ middleware: [offset(CatDropdown.OFFSET), flip()]
1850
+ }).then(({ x, y, placement }) => {
1851
+ this.content.dataset.placement = placement;
1852
+ Object.assign(this.content.style, {
1853
+ left: `${x}px`,
1854
+ top: `${y}px`
1855
+ });
1856
+ });
1857
+ }
1858
+ }
1859
+ };
1860
+ CatDropdown.OFFSET = 4;
1861
+ CatDropdown.style = catDropdownCss;
1862
+
1863
+ const catIconCss = ":host{display:inline-flex;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}span{display:inline-flex}svg{fill:currentColor;stroke:none;transform-origin:center center;height:1em;width:calc(var(--cat-icon-ratio, 1) * 1em)}.icon-xs svg{font-size:0.75rem}.icon-s svg{font-size:1rem}.icon-m svg{font-size:1.25rem}.icon-l svg{font-size:1.5rem}.icon-xl svg{font-size:1.75rem}";
1864
+
1865
+ const CatIcon = class {
1866
+ constructor(hostRef) {
1867
+ registerInstance(this, hostRef);
1868
+ this.iconRegistry = CatIconRegistry.getInstance();
1869
+ /**
1870
+ * The name of the icon.
1871
+ */
1872
+ this.icon = '';
1873
+ /**
1874
+ * The size of the icon.
1875
+ */
1876
+ this.size = 'm';
1877
+ }
1878
+ render() {
1879
+ return (h("span", { innerHTML: this.iconRegistry.getIcon(this.icon), "aria-label": this.a11yLabel, "aria-hidden": this.a11yLabel ? null : 'true', part: "icon", class: {
1880
+ icon: true,
1881
+ [`icon-${this.size}`]: this.size !== 'inline'
1882
+ } }));
1883
+ }
1960
1884
  };
1961
- CatMenu.OFFSET = 4;
1962
- CatMenu.style = catMenuCss;
1885
+ CatIcon.style = catIconCss;
1963
1886
 
1964
- const catRadioCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host-context(.cat-error) .hint-section{color:rgb(var(--cat-danger-text, 217, 52, 13))}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);cursor:pointer}.label-left{flex-direction:row-reverse}.radio{display:flex;position:relative;align-self:flex-start}.circle{position:absolute;width:0.75rem;height:0.75rem;background-color:rgb(var(--cat-primary-bg, 0, 129, 148));border-radius:10rem;top:calc(50% - 0.375rem);left:calc(50% - 0.375rem);visibility:hidden;pointer-events:none}input{margin:0;width:1.25rem;height:1.25rem;appearance:none;background-color:white;border:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));border-radius:10rem;cursor:inherit}input:checked{border-color:rgb(var(--cat-primary-bg, 0, 129, 148))}input:checked+.circle{visibility:visible}input:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}:host(.cat-error) input{border-color:rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) .circle{background-color:rgb(var(--cat-danger-bg, 217, 52, 13))}.label{flex:1 1 auto}.is-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}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.is-disabled input{background-color:#f2f4f7}.is-disabled input:checked{border-color:rgb(var(--cat-border-color-dark, 215, 219, 224))}.is-disabled .circle{background-color:rgb(var(--cat-border-color-dark, 215, 219, 224))}";
1887
+ const catInputCss = ".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:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host{display:flex;flex-direction:column;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);margin-bottom:1rem}:host([hidden]){display:none}.input-wrapper{display:flex;align-items:stretch;gap:0.75rem;padding:0 0.75rem;height:2.5rem;overflow:hidden;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);box-shadow:0 0 0 1px rgb(var(--cat-border-color-dark, 215, 219, 224));transition:box-shadow 0.13s linear}.input-wrapper.input-round{border-radius:10rem}.input-wrapper.input-disabled{background:#f2f4f7;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.input-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-border-color-dark, 215, 219, 224))}.input-wrapper:not(.input-disabled):focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}:host(.cat-error) .input-wrapper{box-shadow:0 0 0 1px rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) .input-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-danger-bg, 217, 52, 13))}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}.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, 105, 118, 135))}.text-prefix,.text-suffix{display:inline-flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.text-prefix{border-right:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));padding-right:0.75rem}.text-suffix{border-left:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));padding-left:0.75rem}.icon-prefix,.icon-suffix{align-self:center}.input-inner-wrapper{display:flex;align-items:center;position:relative;flex:1 1 auto}input{font:inherit;margin:0;padding:0;width:100%;min-width:0;border:none;outline:none;background:none}.input-disabled input{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}input.has-clearable{padding-right:1.5rem}input::placeholder{color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.clearable{position:absolute;top:calc(50% - 1rem);right:-0.5rem}";
1888
+
1889
+ let nextUniqueId$6 = 0;
1890
+ const CatInput = class {
1891
+ constructor(hostRef) {
1892
+ registerInstance(this, hostRef);
1893
+ this.catChange = createEvent(this, "catChange", 7);
1894
+ this.catFocus = createEvent(this, "catFocus", 7);
1895
+ this.catBlur = createEvent(this, "catBlur", 7);
1896
+ this.id = `cat-input-${nextUniqueId$6++}`;
1897
+ this.hasSlottedLabel = false;
1898
+ /**
1899
+ * Whether the input should show a clear button.
1900
+ */
1901
+ this.clearable = false;
1902
+ /**
1903
+ * Whether the input is disabled.
1904
+ */
1905
+ this.disabled = false;
1906
+ /**
1907
+ * Display the icon on the right.
1908
+ */
1909
+ this.iconRight = false;
1910
+ /**
1911
+ * The label for the input.
1912
+ */
1913
+ this.label = '';
1914
+ /**
1915
+ * Visually hide the label, but still show it to assistive technologies like screen readers.
1916
+ */
1917
+ this.labelHidden = false;
1918
+ /**
1919
+ * The name of the form control. Submitted with the form as part of a name/value pair.
1920
+ */
1921
+ this.name = '';
1922
+ /**
1923
+ * The value is not editable.
1924
+ */
1925
+ this.readonly = false;
1926
+ /**
1927
+ * A value is required or must be check for the form to be submittable.
1928
+ */
1929
+ this.required = false;
1930
+ /**
1931
+ * Use round input edges.
1932
+ */
1933
+ this.round = false;
1934
+ /**
1935
+ * Type of form control.
1936
+ */
1937
+ this.type = 'text';
1938
+ }
1939
+ componentWillRender() {
1940
+ this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
1941
+ if (!this.label && !this.hasSlottedLabel) {
1942
+ loglevel.warn('[A11y] Missing ARIA label on input', this);
1943
+ }
1944
+ }
1945
+ /**
1946
+ * Sets focus on the input. Use this method instead of `input.focus()`.
1947
+ *
1948
+ * @param options An optional object providing options to control aspects of
1949
+ * the focusing process.
1950
+ */
1951
+ async setFocus(options) {
1952
+ this.input.focus(options);
1953
+ }
1954
+ /**
1955
+ * Clear the input.
1956
+ */
1957
+ async clear() {
1958
+ this.value = '';
1959
+ }
1960
+ render() {
1961
+ return (h(Host, null, (this.hasSlottedLabel || this.label) && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.optional'), ")"))))), h("div", { class: {
1962
+ 'input-wrapper': true,
1963
+ 'input-round': this.round,
1964
+ 'input-disabled': this.disabled
1965
+ }, 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", { ref: el => (this.input = el), id: this.id, class: {
1966
+ 'has-clearable': this.clearable && !this.disabled
1967
+ }, 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) }), this.clearable && !this.disabled && this.value && (h("cat-button", { class: "clearable", icon: "cross-circle-outlined", "icon-only": "true", size: "s", variant: "text", "a11y-label": catI18nRegistry.t('input.clear'), onClick: this.clear.bind(this) }))), this.icon && this.iconRight && h("cat-icon", { icon: this.icon, class: "icon-suffix", size: "l" }), this.textSuffix && (h("span", { class: "text-suffix", part: "suffix" }, this.textSuffix))), this.hintSection));
1968
+ }
1969
+ get hintSection() {
1970
+ const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
1971
+ return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
1972
+ }
1973
+ onInput(event) {
1974
+ this.value = this.input.value;
1975
+ this.catChange.emit(event);
1976
+ }
1977
+ onFocus(event) {
1978
+ this.catFocus.emit(event);
1979
+ }
1980
+ onBlur(event) {
1981
+ this.catBlur.emit(event);
1982
+ }
1983
+ get hostElement() { return getElement(this); }
1984
+ };
1985
+ CatInput.style = catInputCss;
1986
+
1987
+ const catPaginationCss = ":host{display:inline-block}:host([hidden]){display:none}ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}li{display:inline-flex;justify-content:center}li.dots{-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([variant=outlined]) ol{gap:0.75rem}.cat-pagination-xs li.dots,.cat-pagination-xs li.text{height:1.5rem;line-height:1.5rem;font-size:0.875rem}.cat-pagination-xs li.dots{width:1.5rem}:host([variant=outlined]) .cat-pagination-xs{gap:0.375rem}.cat-pagination-s li.dots,.cat-pagination-s li.text{height:2rem;line-height:2rem;font-size:0.9375rem}.cat-pagination-s li.dots{width:2rem}:host([variant=outlined]) .cat-pagination-s{gap:0.5rem}.cat-pagination-m li.dots,.cat-pagination-m li.text{height:2.5rem;line-height:2.5rem;font-size:0.9375rem}.cat-pagination-m li.dots{width:2.5rem}:host([variant=outlined]) .cat-pagination-m{gap:0.625rem}.cat-pagination-l li.dots,.cat-pagination-l li.text{height:3rem;line-height:3rem;font-size:0.9375rem}.cat-pagination-l li.dots{width:3rem}:host([variant=outlined]) .cat-pagination-l{gap:0.75rem}.cat-pagination-xl li.dots,.cat-pagination-xl li.text{height:3.5rem;line-height:3.5rem;font-size:1.125rem}.cat-pagination-xl li.dots{width:3.5rem}:host([variant=outlined]) .cat-pagination-xl{gap:0.875rem}";
1988
+
1989
+ const CatPagination = class {
1990
+ constructor(hostRef) {
1991
+ registerInstance(this, hostRef);
1992
+ /**
1993
+ * The current page.
1994
+ */
1995
+ this.page = 1;
1996
+ /**
1997
+ * The total number of pages.
1998
+ */
1999
+ this.pageCount = 1;
2000
+ /**
2001
+ * The number of pages to be shown around the current page.
2002
+ */
2003
+ this.activePadding = 1;
2004
+ /**
2005
+ * The number of pages to be shown at the edges.
2006
+ */
2007
+ this.sidePadding = 1;
2008
+ /**
2009
+ * The size of the buttons.
2010
+ */
2011
+ this.size = 'm';
2012
+ /**
2013
+ * The rendering style of the buttons.
2014
+ */
2015
+ this.variant = 'text';
2016
+ /**
2017
+ * Use round button edges.
2018
+ */
2019
+ this.round = false;
2020
+ /**
2021
+ * Use compact pagination mode.
2022
+ */
2023
+ this.compact = false;
2024
+ /**
2025
+ * The icon of the "previous" button.
2026
+ */
2027
+ this.iconPrev = 'chevron-left-outlined';
2028
+ /**
2029
+ * The icon of the "next" button.
2030
+ */
2031
+ this.iconNext = 'chevron-right-outlined';
2032
+ }
2033
+ render() {
2034
+ return (h("nav", { role: "navigation" }, h("ol", { class: {
2035
+ [`cat-pagination-${this.size}`]: Boolean(this.size)
2036
+ } }, h("li", null, h("cat-button", { variant: this.variant, size: this.size, round: this.round, disabled: this.isFirst, a11yLabel: catI18nRegistry.t('pagination.prev'), icon: this.iconPrev, iconOnly: true, onClick: () => (this.page = this.page - 1) })), this.content, h("li", null, h("cat-button", { variant: this.variant, size: this.size, round: this.round, disabled: this.isLast, a11yLabel: catI18nRegistry.t('pagination.next'), icon: this.iconNext, iconOnly: true, onClick: () => (this.page = this.page + 1) })))));
2037
+ }
2038
+ get isFirst() {
2039
+ return this.page === 0;
2040
+ }
2041
+ get isLast() {
2042
+ return this.page === this.pageCount - 1;
2043
+ }
2044
+ get pages() {
2045
+ if (!this.sidePadding && !this.activePadding) {
2046
+ return [this.page];
2047
+ }
2048
+ const result = new Set();
2049
+ const minPage = this.page <= this.sidePadding + this.activePadding + 1;
2050
+ const minActivepage = minPage ? this.sidePadding + 2 * this.activePadding + 2 : this.sidePadding;
2051
+ const maxPage = this.page >= this.pageCount - this.sidePadding - this.activePadding - 2;
2052
+ const maxActivepage = maxPage
2053
+ ? this.pageCount - this.sidePadding - 2 * this.activePadding - 2
2054
+ : this.pageCount - this.sidePadding;
2055
+ this.addSeq(result, 0, minActivepage);
2056
+ if (!minPage && !maxPage) {
2057
+ this.addSeq(result, this.page - this.activePadding, this.page + this.activePadding + 1);
2058
+ }
2059
+ this.addSeq(result, maxActivepage, this.pageCount);
2060
+ return [...result];
2061
+ }
2062
+ addSeq(set, start, end) {
2063
+ const _start = this.clamp(start, 0, this.pageCount);
2064
+ const _end = this.clamp(end, 0, this.pageCount);
2065
+ Array(_end - _start)
2066
+ .fill(0)
2067
+ .forEach((_, i) => set.add(_start + i));
2068
+ }
2069
+ clamp(num, min, max) {
2070
+ return Math.min(Math.max(num, min), max);
2071
+ }
2072
+ get content() {
2073
+ if (this.compact) {
2074
+ return (h("li", { class: "text" }, this.page + 1, "/", this.pageCount));
2075
+ }
2076
+ return this.pages.map((page, i) => [
2077
+ i > 0 && this.pages[i - 1] !== page - 1 ? h("li", { class: "dots" }, "\u2026") : null,
2078
+ h("li", null, h("cat-button", { variant: this.variant, size: this.size, round: this.round, color: this.page === page ? 'primary' : undefined, active: this.page === page, a11yLabel: catI18nRegistry.t('pagination.page', { page: page + 1 }), a11yCurrent: this.page === page || undefined, onClick: () => (this.page = page) }, page + 1))
2079
+ ]);
2080
+ }
2081
+ };
2082
+ CatPagination.style = catPaginationCss;
2083
+
2084
+ const catRadioCss = ".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:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);cursor:pointer}.label-left{flex-direction:row-reverse}.radio{display:flex;position:relative;align-self:flex-start}.circle{position:absolute;width:0.75rem;height:0.75rem;background-color:rgb(var(--cat-primary-bg, 0, 129, 148));border-radius:10rem;top:calc(50% - 0.375rem);left:calc(50% - 0.375rem);visibility:hidden;pointer-events:none}input{margin:0;width:1.25rem;height:1.25rem;appearance:none;background-color:white;border:1px solid rgb(var(--cat-border-color-dark, 215, 219, 224));border-radius:10rem;cursor:inherit}input:checked{border-color:rgb(var(--cat-primary-bg, 0, 129, 148))}input:checked+.circle{visibility:visible}input:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}:host(.cat-error) input{border-color:rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) .circle{background-color:rgb(var(--cat-danger-bg, 217, 52, 13))}.label{flex:1 1 auto}.is-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}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.is-disabled input{background-color:#f2f4f7}.is-disabled input:checked{border-color:rgb(var(--cat-border-color-dark, 215, 219, 224))}.is-disabled .circle{background-color:rgb(var(--cat-border-color-dark, 215, 219, 224))}";
1965
2085
 
1966
2086
  let nextUniqueId$5 = 0;
1967
2087
  const CatRadio = class {
@@ -2000,7 +2120,7 @@ const CatRadio = class {
2000
2120
  componentWillRender() {
2001
2121
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
2002
2122
  if (!this.label && !this.hasSlottedLabel) {
2003
- loglevel.error('[A11y] Missing ARIA label on radio', this);
2123
+ loglevel.warn('[A11y] Missing ARIA label on radio', this);
2004
2124
  }
2005
2125
  }
2006
2126
  /**
@@ -2051,22 +2171,14 @@ const CatRadioGroup = class {
2051
2171
  this.labelLeft = false;
2052
2172
  }
2053
2173
  onNameChanged(newName) {
2054
- this.catRadioGroup.forEach(catRadio => {
2055
- catRadio.name = newName;
2056
- });
2174
+ this.catRadioGroup.forEach(catRadio => (catRadio.name = newName));
2057
2175
  }
2058
2176
  onValueChanged(newValue) {
2059
- this.catRadioGroup.forEach(catRadio => {
2060
- catRadio.checked = catRadio.value === newValue;
2061
- });
2177
+ this.catRadioGroup.forEach(catRadio => (catRadio.checked = catRadio.value === newValue));
2062
2178
  this.updateTabIndex();
2063
2179
  }
2064
2180
  onDisabledChanged(disabled) {
2065
- this.catRadioGroup.forEach(catRadio => {
2066
- if (disabled) {
2067
- catRadio.disabled = disabled;
2068
- }
2069
- });
2181
+ this.catRadioGroup.forEach(catRadio => (catRadio.disabled = disabled));
2070
2182
  }
2071
2183
  onLabelLeftChanged(labelLeft) {
2072
2184
  this.catRadioGroup.forEach(catRadio => {
@@ -3973,7 +4085,7 @@ var autosizeInput = function (element, options) {
3973
4085
  }
3974
4086
  };
3975
4087
 
3976
- const catSelectCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host-context(.cat-error) .hint-section{color:rgb(var(--cat-danger-text, 217, 52, 13))}: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}.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, 105, 118, 135))}.select-wrapper{display:flex;align-items:flex-start;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);box-shadow:0 0 0 1px rgb(var(--cat-border-color-dark, 215, 219, 224));transition:box-shadow 0.13s linear;padding:0.25rem}.select-wrapper:not(.select-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-border-color-dark, 215, 219, 224))}.select-wrapper:not(.select-disabled):focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}: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, 105, 118, 135));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{padding-left:0.25rem}.select-wrapper-inner cat-avatar{--cat-avatar-size:1.25rem}.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 0.13s linear}.select-btn::part(button){outline:none}cat-spinner{padding:0.375rem}.select-btn-open{transform:rotate(180deg)}.select-dropdown{position:absolute;right:0;background:white;display:none;overflow:auto;box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2);border-radius:var(--cat-border-radius-m, 0.25rem);z-index:100}.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;--cat-avatar-size:1.25rem}.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, 105, 118, 135))}";
4088
+ 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:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}: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}.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, 105, 118, 135))}.select-wrapper{display:flex;align-items:flex-start;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);box-shadow:0 0 0 1px rgb(var(--cat-border-color-dark, 215, 219, 224));transition:box-shadow 0.13s linear;padding:0.25rem}.select-wrapper:not(.select-disabled):hover{box-shadow:0 0 0 2px rgb(var(--cat-border-color-dark, 215, 219, 224))}.select-wrapper:not(.select-disabled):focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}: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, 105, 118, 135));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{padding-left:0.25rem}.select-wrapper-inner cat-avatar{--cat-avatar-size:1.25rem}.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 0.13s linear}.select-btn::part(button){outline:none}cat-spinner{padding:0.375rem}.select-btn-open{transform:rotate(180deg)}.select-dropdown{position:absolute;right:0;background:white;display:none;overflow:auto;box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2);border-radius:var(--cat-border-radius-m, 0.25rem);z-index:100}.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;--cat-avatar-size:1.25rem}.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, 105, 118, 135))}";
3977
4089
 
3978
4090
  const INIT_STATE = {
3979
4091
  term: '',
@@ -3993,7 +4105,6 @@ const CatSelect = class {
3993
4105
  this.catClose = createEvent(this, "catClose", 7);
3994
4106
  this.catChange = createEvent(this, "catChange", 7);
3995
4107
  this.catBlur = createEvent(this, "catBlur", 7);
3996
- this.i18n = CatI18nRegistry.getInstance();
3997
4108
  this.id = `cat-input-${nextUniqueId$4++}`;
3998
4109
  this.term$ = new Subject();
3999
4110
  this.more$ = new Subject();
@@ -4092,7 +4203,7 @@ const CatSelect = class {
4092
4203
  componentWillRender() {
4093
4204
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
4094
4205
  if (!this.label && !this.hasSlottedLabel) {
4095
- loglevel.error('[A11y] Missing ARIA label on select', this);
4206
+ loglevel.warn('[A11y] Missing ARIA label on select', this);
4096
4207
  }
4097
4208
  }
4098
4209
  onBlur(event) {
@@ -4225,17 +4336,17 @@ const CatSelect = class {
4225
4336
  });
4226
4337
  }
4227
4338
  render() {
4228
- return (h(Host, null, (this.hasSlottedLabel || this.label) && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(", this.i18n.t('input.optional'), ")"))))), h("div", { class: { 'select-wrapper': true, 'select-disabled': this.disabled }, ref: el => (this.trigger = el), id: this.id, role: "combobox", "aria-expanded": this.state.isOpen || this.isPillboxActive(), "aria-controls": this.isPillboxActive() ? `select-pillbox-${this.id}` : `select-listbox-${this.id}`, "aria-required": this.required, "aria-activedescendant": this.activeDescendant, onClick: e => this.onClick(e) }, h("div", { class: "select-wrapper-inner" }, this.multiple && this.state.selection.length ? (h("div", { id: `select-pillbox-${this.id}`, role: "listbox", "aria-orientation": "horizontal", class: "select-pills" }, this.state.selection.map((item, i) => (h("span", { class: {
4339
+ return (h(Host, null, (this.hasSlottedLabel || this.label) && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(", catI18nRegistry.t('input.optional'), ")"))))), h("div", { class: { 'select-wrapper': true, 'select-disabled': this.disabled }, ref: el => (this.trigger = el), id: this.id, role: "combobox", "aria-expanded": this.state.isOpen || this.isPillboxActive(), "aria-controls": this.isPillboxActive() ? `select-pillbox-${this.id}` : `select-listbox-${this.id}`, "aria-required": this.required, "aria-activedescendant": this.activeDescendant, onClick: e => this.onClick(e) }, h("div", { class: "select-wrapper-inner" }, this.multiple && this.state.selection.length ? (h("div", { id: `select-pillbox-${this.id}`, role: "listbox", "aria-orientation": "horizontal", class: "select-pills" }, this.state.selection.map((item, i) => (h("span", { class: {
4229
4340
  pill: true,
4230
4341
  'select-no-open': true,
4231
4342
  'select-option-active': this.state.activeSelectionIndex === i
4232
- }, 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, initials: '' })) : null, h("span", null, item.render.label), !this.disabled && (h("cat-button", { size: "xs", variant: "text", icon: "16-cross", iconOnly: true, a11yLabel: this.i18n.t('select.deselect'), onClick: () => this.deselect(item.item.id), tabIndex: -1 }))))))) : 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, initials: '' })) : null, h("input", { class: "select-input", ref: el => (this.input = el), "aria-controls": this.isPillboxActive() ? `select-pillbox-${this.id}` : `select-listbox-${this.id}`, "aria-activedescendant": this.activeDescendant, onInput: () => this.onInput(), value: !this.multiple ? this.state.term : undefined, placeholder: this.placeholder, disabled: this.disabled || this.state.isResolving })), this.state.isResolving && h("cat-spinner", null), (this.state.selection.length || this.state.term.length) &&
4343
+ }, 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, initials: '' })) : null, h("span", null, item.render.label), !this.disabled && (h("cat-button", { size: "xs", variant: "text", icon: "16-cross", iconOnly: true, a11yLabel: catI18nRegistry.t('select.deselect'), onClick: () => this.deselect(item.item.id), tabIndex: -1 }))))))) : 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, initials: '' })) : null, h("input", { class: "select-input", ref: el => (this.input = el), "aria-controls": this.isPillboxActive() ? `select-pillbox-${this.id}` : `select-listbox-${this.id}`, "aria-activedescendant": this.activeDescendant, onInput: () => this.onInput(), value: !this.multiple ? this.state.term : undefined, placeholder: this.placeholder, disabled: this.disabled || this.state.isResolving })), this.state.isResolving && h("cat-spinner", null), (this.state.selection.length || this.state.term.length) &&
4233
4344
  !this.disabled &&
4234
4345
  !this.state.isResolving &&
4235
- this.clearable ? (h("cat-button", { id: `select-clear-btn-${this.id}`, iconOnly: true, icon: "cross-circle-outlined", variant: "text", size: "s", a11yLabel: this.i18n.t('input.clear'), onClick: () => this.clear() })) : null, !this.state.isResolving && (h("cat-button", { iconOnly: true, icon: "chevron-down-outlined", class: { 'select-btn': true, 'select-btn-open': this.state.isOpen }, variant: "text", size: "s", a11yLabel: this.state.isOpen ? this.i18n.t('select.close') : this.i18n.t('select.open'), "aria-controls": `select-listbox-${this.id}`, "aria-expanded": this.state.isOpen, tabIndex: -1, disabled: this.disabled || this.state.isResolving }))), this.hintSection, 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
4346
+ this.clearable ? (h("cat-button", { id: `select-clear-btn-${this.id}`, iconOnly: true, icon: "cross-circle-outlined", variant: "text", size: "s", a11yLabel: catI18nRegistry.t('input.clear'), onClick: () => this.clear() })) : null, !this.state.isResolving && (h("cat-button", { iconOnly: true, icon: "chevron-down-outlined", 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 }))), this.hintSection, 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
4236
4347
  ? 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 }))))
4237
4348
  : !this.state.options.length &&
4238
- !this.tags && h("li", { class: "select-option-empty" }, this.i18n.t('select.empty'))))))));
4349
+ !this.tags && h("li", { class: "select-option-empty" }, catI18nRegistry.t('select.empty'))))))));
4239
4350
  }
4240
4351
  get optionsList() {
4241
4352
  return this.state.options.map((item, i) => {
@@ -4660,7 +4771,7 @@ const CatSelectTest = class {
4660
4771
  (_f = this.singleSelectTagging) === null || _f === void 0 ? void 0 : _f.connect(this.countryConnector);
4661
4772
  }
4662
4773
  render() {
4663
- return (h(Host, { style: { display: 'flex', flexDirection: 'column' } }, h("cat-select", { label: "Multiple Select", hint: "This is a hint!", ref: el => (this.multipleSelect = el), value: ['1'], placeholder: "Hello World", onCatChange: () => { var _a; return console.log((_a = this.multipleSelect) === null || _a === void 0 ? void 0 : _a.value); }, onCatBlur: e => console.log('Multiple blur', e), multiple: true, clearable: true }, h("span", { slot: "hint" }, "Searching for \"no\" -", '>', " no options are returned!")), h("cat-select", { label: "Multiple with img", ref: el => (this.multipleSelectAvatar = el), value: ['1'], placeholder: "Hello World", multiple: true, clearable: true }), h("cat-select", { label: "Multiple with tagging support", hint: "This is a hint!", ref: el => (this.multipleSelectTagging = el), value: { ids: ['1'], tags: ['Test', 'Albania', 'Algeria'] }, placeholder: "Select country", onCatChange: () => { var _a; return console.log((_a = this.multipleSelectTagging) === null || _a === void 0 ? void 0 : _a.value); }, multiple: true, tags: true, clearable: true }), h("cat-select", { label: "Single Select", hint: "This is a hint!", ref: el => (this.singleSelect = el), placeholder: "Search for a country or capital", onCatBlur: e => console.log('Single blur', e), clearable: true }), h("cat-select", { label: "Single with img", ref: el => (this.singleSelectAvatar = el), value: '1', onCatChange: () => { var _a; return console.log((_a = this.singleSelectAvatar) === null || _a === void 0 ? void 0 : _a.value); }, placeholder: "Search for a country or capital", clearable: true }), h("cat-select", { label: "Single with tagging support", ref: el => (this.singleSelectTagging = el), value: { id: '', tag: 'Albania' }, placeholder: "Search for a country or capital", onCatChange: () => { var _a; return console.log('Single', (_a = this.singleSelectTagging) === null || _a === void 0 ? void 0 : _a.value); }, tagHint: "new country", tags: true, clearable: true })));
4774
+ return (h(Host, { style: { display: 'flex', flexDirection: 'column' } }, h("cat-select", { label: "Multiple Select", hint: "This is a hint!", ref: el => (this.multipleSelect = el), value: ['1'], placeholder: "Hello World", onCatChange: () => { var _a; return console.log((_a = this.multipleSelect) === null || _a === void 0 ? void 0 : _a.value); }, onCatBlur: e => console.log('Multiple blur', e), multiple: true, clearable: true }, h("span", { slot: "hint" }, "Searching for \"no\" -", '>', " no options are returned!")), h("cat-select", { label: "Multiple with img", ref: el => (this.multipleSelectAvatar = el), value: ['1'], placeholder: "Hello World", multiple: true, clearable: true }), h("cat-select", { label: "Multiple with tagging support", hint: "This is a hint!", ref: el => (this.multipleSelectTagging = el), value: { ids: ['1'], tags: ['Test', 'Albania', 'Algeria'] }, placeholder: "Select country", onCatChange: () => { var _a; return console.log((_a = this.multipleSelectTagging) === null || _a === void 0 ? void 0 : _a.value); }, multiple: true, tags: true, clearable: true }), h("cat-select", { label: "Single Select", hint: "This is a hint!", ref: el => (this.singleSelect = el), placeholder: "Search for a country or capital", onCatBlur: e => console.log('Single blur', e), clearable: true }), h("cat-select", { label: "Single with img", ref: el => (this.singleSelectAvatar = el), value: '1', onCatChange: () => { var _a; return console.log((_a = this.singleSelectAvatar) === null || _a === void 0 ? void 0 : _a.value); }, placeholder: "Search for a country or capital", clearable: true }), h("cat-dropdown", { overflow: true, noAutoClose: true }, h("cat-button", { slot: "trigger", style: { width: '50%' } }, "Open select"), h("div", { slot: "content", style: { width: '400px' } }, h("cat-select", { label: "Single with tagging support", ref: el => (this.singleSelectTagging = el), value: { id: '', tag: 'Albania' }, placeholder: "Search for a country or capital", onCatChange: () => { var _a; return console.log('Single', (_a = this.singleSelectTagging) === null || _a === void 0 ? void 0 : _a.value); }, tagHint: "new country", tags: true, clearable: true, style: { width: '90%' } })))));
4664
4775
  }
4665
4776
  get countryConnector() {
4666
4777
  return {
@@ -6016,7 +6127,7 @@ const CatTab = class {
6016
6127
  };
6017
6128
  CatTab.style = catTabCss;
6018
6129
 
6019
- const catTabsCss = ":host{display:flex;flex-direction:row;box-shadow:inset 0 -1px 0 0 rgb(var(--cat-border-color-dark, 215, 219, 224))}:host([hidden]){display:none}:host([tabs-align=center]){justify-content:center}:host([tabs-align=right]){justify-content:end}:host([tabs-align=justify]) cat-button{flex:1 0 auto}.tab{padding:0.5rem 0}.tab.tab-active{box-shadow:inset 0 -3px 0 0 rgb(var(--cat-primary-bg, 0, 129, 148))}";
6130
+ const catTabsCss = ":host{display:flex;flex-direction:row;box-shadow:inset 0 -1px 0 0 rgb(var(--cat-border-color-dark, 215, 219, 224))}:host([hidden]){display:none}:host([tabs-align=center]){justify-content:center}:host([tabs-align=right]){justify-content:end}:host([tabs-align=justify]) cat-button{flex:1 0 auto}.cat-tab{padding:0.5rem 0}.cat-tab.cat-tab-active{box-shadow:inset 0 -3px 0 0 rgb(var(--cat-primary-bg, 0, 129, 148))}";
6020
6131
 
6021
6132
  const CatTabs = class {
6022
6133
  constructor(hostRef) {
@@ -6070,8 +6181,8 @@ const CatTabs = class {
6070
6181
  render() {
6071
6182
  return (h(Host, null, this.tabs.map((tab) => {
6072
6183
  return (h("cat-button", { ref: el => el && this.updateButtonsRef(el), buttonId: tab.id, role: "tab", part: "tab", class: {
6073
- tab: true,
6074
- 'tab-active': Boolean(this.activeTabId && tab.id === this.activeTabId)
6184
+ 'cat-tab': true,
6185
+ 'cat-tab-active': Boolean(this.activeTabId && tab.id === this.activeTabId)
6075
6186
  }, 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) }, tab.label));
6076
6187
  })));
6077
6188
  }
@@ -6096,7 +6207,7 @@ CatTabs.style = catTabsCss;
6096
6207
 
6097
6208
  var e,t,n="function"==typeof Map?new Map:(e=[],t=[],{has:function(t){return e.indexOf(t)>-1},get:function(n){return t[e.indexOf(n)]},set:function(n,o){-1===e.indexOf(n)&&(e.push(n),t.push(o));},delete:function(n){var o=e.indexOf(n);o>-1&&(e.splice(o,1),t.splice(o,1));}}),o=function(e){return new Event(e,{bubbles:!0})};try{new Event("test");}catch(e){o=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t};}function r(e){var t=n.get(e);t&&t.destroy();}function i(e){var t=n.get(e);t&&t.update();}var l=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?((l=function(e){return e}).destroy=function(e){return e},l.update=function(e){return e}):((l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!n.has(e)){var t,r=null,i=null,l=null,d=function(){e.clientWidth!==i&&c();},a=function(t){window.removeEventListener("resize",d,!1),e.removeEventListener("input",c,!1),e.removeEventListener("keyup",c,!1),e.removeEventListener("autosize:destroy",a,!1),e.removeEventListener("autosize:update",c,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n];}),n.delete(e);}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",a,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",c,!1),window.addEventListener("resize",d,!1),e.addEventListener("input",c,!1),e.addEventListener("autosize:update",c,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",n.set(e,{destroy:a,update:c}),"vertical"===(t=window.getComputedStyle(e,null)).resize?e.style.resize="none":"both"===t.resize&&(e.style.resize="horizontal"),r="content-box"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(r)&&(r=0),c();}function u(t){var n=e.style.width;e.style.width="0px",e.style.width=n,e.style.overflowY=t;}function s(){if(0!==e.scrollHeight){var t=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}(e),n=document.documentElement&&document.documentElement.scrollTop;e.style.height="",e.style.height=e.scrollHeight+r+"px",i=e.clientWidth,t.forEach(function(e){e.node.scrollTop=e.scrollTop;}),n&&(document.documentElement.scrollTop=n);}}function c(){s();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),r="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(r<t?"hidden"===n.overflowY&&(u("scroll"),s(),r="content-box"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight):"hidden"!==n.overflowY&&(u("hidden"),s(),r="content-box"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight),l!==r){l=r;var i=o("autosize:resized");try{e.dispatchEvent(i);}catch(e){}}}}(e)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],r),e},l.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],i),e});var d=l;
6098
6209
 
6099
- const catTextareaCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host-context(.cat-error) .hint-section{color:rgb(var(--cat-danger-text, 217, 52, 13))}:host{display:flex;flex-direction:column;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);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}.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, 105, 118, 135))}textarea{margin:0;padding:0.625rem 0.75rem;min-height:2.5rem;font:inherit;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);border:none;box-shadow:0 0 0 1px rgb(var(--cat-border-color-dark, 215, 219, 224));transition:box-shadow 0.13s linear}textarea:disabled{background:#f2f4f7;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135));resize:none}textarea:hover:not(:disabled){box-shadow:0 0 0 2px rgb(var(--cat-border-color-dark, 215, 219, 224))}textarea:focus{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}textarea::placeholder{color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
6210
+ const catTextareaCss = ".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:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host{display:flex;flex-direction:column;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);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}.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, 105, 118, 135))}textarea{margin:0;padding:0.625rem 0.75rem;min-height:2.5rem;font:inherit;background:white;border-radius:var(--cat-border-radius-m, 0.25rem);border:none;box-shadow:0 0 0 1px rgb(var(--cat-border-color-dark, 215, 219, 224));transition:box-shadow 0.13s linear}textarea:disabled{background:#f2f4f7;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135));resize:none}textarea:hover:not(:disabled){box-shadow:0 0 0 2px rgb(var(--cat-border-color-dark, 215, 219, 224))}textarea:focus{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}textarea::placeholder{color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
6100
6211
 
6101
6212
  let nextUniqueId$2 = 0;
6102
6213
  const CatTextarea = class {
@@ -6139,7 +6250,7 @@ const CatTextarea = class {
6139
6250
  componentWillRender() {
6140
6251
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
6141
6252
  if (!this.label && !this.hasSlottedLabel) {
6142
- loglevel.error('[A11y] Missing ARIA label on textarea', this);
6253
+ loglevel.warn('[A11y] Missing ARIA label on textarea', this);
6143
6254
  }
6144
6255
  }
6145
6256
  componentDidLoad() {
@@ -6175,61 +6286,7 @@ const CatTextarea = class {
6175
6286
  };
6176
6287
  CatTextarea.style = catTextareaCss;
6177
6288
 
6178
- const catToastDemoCss = ":host{display:block}";
6179
-
6180
- const CatToastDemo = class {
6181
- constructor(hostRef) {
6182
- registerInstance(this, hostRef);
6183
- }
6184
- render() {
6185
- return h("cat-button", { onClick: this.onClick.bind(this) }, "Show Notifications");
6186
- }
6187
- onClick() {
6188
- const infoOptions = {
6189
- position: 'top-left',
6190
- type: 'info'
6191
- };
6192
- const errorOptions = {
6193
- position: 'top-center',
6194
- type: 'error'
6195
- };
6196
- const errorOptions2 = {
6197
- position: 'bottom-left',
6198
- type: 'error'
6199
- };
6200
- const successOptions3 = {
6201
- position: 'bottom-right',
6202
- type: 'success'
6203
- };
6204
- const template = document.createElement('template');
6205
- template.innerHTML = `<div style="padding: 7px 30px 7px 10px">Custom HTML Node Content</div>`;
6206
- const successOptions4 = {
6207
- position: 'bottom-right',
6208
- type: 'success',
6209
- content: template.content.firstChild
6210
- };
6211
- const primaryOptions = {
6212
- position: 'bottom-right',
6213
- type: 'primary'
6214
- };
6215
- const secondaryOptions = {
6216
- position: 'bottom-right',
6217
- type: 'secondary'
6218
- };
6219
- NotificationsService.secondary('Secondary Click', 'secondary info', secondaryOptions);
6220
- NotificationsService.primary('primary Click', 'secondary info', primaryOptions);
6221
- NotificationsService.error('Default Click');
6222
- NotificationsService.error('Long default title, long default title, long default title, long default title');
6223
- NotificationsService.info('Info Click', 'Info message', infoOptions);
6224
- NotificationsService.success('', ' ', successOptions4);
6225
- NotificationsService.error('Error Title', ' ', errorOptions);
6226
- NotificationsService.error('Error 2 Title', 'Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message,Very long message, Very long message, Very long message, Very long message, Very long message, ', errorOptions2);
6227
- NotificationsService.success('Success Title - very long title without message', ' ', successOptions3);
6228
- }
6229
- };
6230
- CatToastDemo.style = catToastDemoCss;
6231
-
6232
- const catToggleCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host-context(.cat-error) .hint-section{color:rgb(var(--cat-danger-text, 217, 52, 13))}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.label-left{flex-direction:row-reverse}input{position:absolute;margin:0;width:2rem;height:1.25rem;opacity:0;cursor:inherit}.toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;position:relative;width:2rem;height:1.25rem;border-radius:10rem;background-color:rgb(var(--cat-border-color-dark, 215, 219, 224));transition:background-color 0.13s ease;pointer-events:none}:checked+.toggle{background-color:rgb(var(--cat-primary-bg, 0, 129, 148))}:focus-visible+.toggle{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.toggle::after{content:\"\";position:absolute;width:1rem;height:1rem;background:#fff;border-radius:10rem;transform:translateX(calc(2px - 0.5rem));transition:transform 0.13s linear;box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2)}:checked+.toggle::after{transform:translateX(calc(-2px + 0.5rem));background:rgb(var(--cat-primary-fill, 255, 255, 255))}.is-disabled .toggle{background-color:rgb(var(--cat-border-color-dark, 215, 219, 224))}:host(.cat-error) .toggle{background-color:rgba(var(--cat-danger-bg, 217, 52, 13), 0.2)}:host(.cat-error) :checked+.toggle{background-color:rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) :checked+.toggle::after{background:rgb(var(--cat-danger-fill, 255, 255, 255))}.label{flex:1 1 auto}.is-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}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
6289
+ const catToggleCss = ".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:1rem;font-weight:var(--cat-font-weight-body, 400);margin:0 !important}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;font-weight:var(--cat-font-weight-body, 400);-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.label-left{flex-direction:row-reverse}input{position:absolute;margin:0;width:2rem;height:1.25rem;opacity:0;cursor:inherit}.toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;position:relative;width:2rem;height:1.25rem;border-radius:10rem;background-color:rgb(var(--cat-border-color-dark, 215, 219, 224));transition:background-color 0.13s ease;pointer-events:none}:checked+.toggle{background-color:rgb(var(--cat-primary-bg, 0, 129, 148))}:focus-visible+.toggle{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.toggle::after{content:\"\";position:absolute;width:1rem;height:1rem;background:#fff;border-radius:10rem;transform:translateX(calc(2px - 0.5rem));transition:transform 0.13s linear;box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2)}:checked+.toggle::after{transform:translateX(calc(-2px + 0.5rem));background:rgb(var(--cat-primary-fill, 255, 255, 255))}.is-disabled .toggle{background-color:rgb(var(--cat-border-color-dark, 215, 219, 224))}:host(.cat-error) .toggle{background-color:rgba(var(--cat-danger-bg, 217, 52, 13), 0.2)}:host(.cat-error) :checked+.toggle{background-color:rgb(var(--cat-danger-bg, 217, 52, 13))}:host(.cat-error) :checked+.toggle::after{background:rgb(var(--cat-danger-fill, 255, 255, 255))}.label{flex:1 1 auto}.is-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}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
6233
6290
 
6234
6291
  let nextUniqueId$1 = 0;
6235
6292
  const CatToggle = class {
@@ -6268,7 +6325,7 @@ const CatToggle = class {
6268
6325
  componentWillRender() {
6269
6326
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
6270
6327
  if (!this.label && !this.hasSlottedLabel) {
6271
- loglevel.error('[A11y] Missing ARIA label on toggle', this);
6328
+ loglevel.warn('[A11y] Missing ARIA label on toggle', this);
6272
6329
  }
6273
6330
  }
6274
6331
  /**
@@ -6444,6 +6501,6 @@ const CatTooltip = class {
6444
6501
  CatTooltip.OFFSET = 4;
6445
6502
  CatTooltip.style = catTooltipCss;
6446
6503
 
6447
- export { CatAlert as cat_alert, CatAvatar as cat_avatar, CatBadge as cat_badge, CatButton as cat_button, CatCard as cat_card, CatCheckbox as cat_checkbox, CatIcon as cat_icon, CatInput as cat_input, CatMenu as cat_menu, CatRadio as cat_radio, CatRadioGroup as cat_radio_group, CatScrollable as cat_scrollable, CatSelect as cat_select, CatSelectTest as cat_select_demo, CatSkeleton as cat_skeleton, CatSpinner as cat_spinner, CatTab as cat_tab, CatTabs as cat_tabs, CatTextarea as cat_textarea, CatToastDemo as cat_toast_demo, CatToggle as cat_toggle, CatTooltip as cat_tooltip };
6504
+ export { CatAlert as cat_alert, CatAvatar as cat_avatar, CatBadge as cat_badge, CatButton as cat_button, CatCard as cat_card, CatCheckbox as cat_checkbox, CatDropdown as cat_dropdown, CatIcon as cat_icon, CatInput as cat_input, CatPagination as cat_pagination, CatRadio as cat_radio, CatRadioGroup as cat_radio_group, CatScrollable as cat_scrollable, CatSelect as cat_select, CatSelectTest as cat_select_demo, CatSkeleton as cat_skeleton, CatSpinner as cat_spinner, CatTab as cat_tab, CatTabs as cat_tabs, CatTextarea as cat_textarea, CatToggle as cat_toggle, CatTooltip as cat_tooltip };
6448
6505
 
6449
6506
  //# sourceMappingURL=cat-alert_22.entry.js.map