@haiilo/catalyst 5.4.0 → 6.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 (169) hide show
  1. package/dist/catalyst/catalyst.css +1071 -0
  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 +6 -0
  5. package/dist/catalyst/index.esm.js +2 -2
  6. package/dist/catalyst/index.esm.js.map +1 -1
  7. package/dist/catalyst/p-ad5fca6b.entry.js +10 -0
  8. package/dist/catalyst/p-ad5fca6b.entry.js.map +1 -0
  9. package/dist/catalyst/p-d7dc291a.js +2 -0
  10. package/dist/catalyst/p-d7dc291a.js.map +1 -0
  11. package/dist/catalyst/scss/index.scss +2 -0
  12. package/dist/catalyst/scss/vendor/_flatpickr.scss +314 -0
  13. package/dist/cjs/{cat-alert_27.cjs.entry.js → cat-alert_25.cjs.entry.js} +2922 -3480
  14. package/dist/cjs/cat-alert_25.cjs.entry.js.map +1 -0
  15. package/dist/cjs/{cat-icon-registry-228164a1.js → cat-icon-registry-6161e2ee.js} +14 -2
  16. package/dist/cjs/cat-icon-registry-6161e2ee.js.map +1 -0
  17. package/dist/cjs/catalyst.cjs.js +1 -1
  18. package/dist/cjs/index.cjs.js +12 -14
  19. package/dist/cjs/index.cjs.js.map +1 -1
  20. package/dist/cjs/loader.cjs.js +1 -1
  21. package/dist/collection/collection-manifest.json +0 -2
  22. package/dist/collection/components/cat-avatar/cat-avatar.js +5 -5
  23. package/dist/collection/components/cat-avatar/cat-avatar.js.map +1 -1
  24. package/dist/collection/components/cat-button/cat-button.js +5 -7
  25. package/dist/collection/components/cat-button/cat-button.js.map +1 -1
  26. package/dist/collection/components/cat-checkbox/cat-checkbox.js +39 -42
  27. package/dist/collection/components/cat-checkbox/cat-checkbox.js.map +1 -1
  28. package/dist/collection/components/cat-datepicker/cat-datepicker.config.js +22 -0
  29. package/dist/collection/components/cat-datepicker/cat-datepicker.config.js.map +1 -0
  30. package/dist/collection/components/cat-datepicker/cat-datepicker.css +6 -369
  31. package/dist/collection/components/cat-datepicker/cat-datepicker.js +110 -314
  32. package/dist/collection/components/cat-datepicker/cat-datepicker.js.map +1 -1
  33. package/dist/collection/components/cat-datepicker/cat-datepicker.locale.js +51 -0
  34. package/dist/collection/components/cat-datepicker/cat-datepicker.locale.js.map +1 -0
  35. package/dist/collection/components/cat-dropdown/cat-dropdown.js +6 -9
  36. package/dist/collection/components/cat-dropdown/cat-dropdown.js.map +1 -1
  37. package/dist/collection/components/cat-form-group/cat-form-group.js +4 -5
  38. package/dist/collection/components/cat-form-group/cat-form-group.js.map +1 -1
  39. package/dist/collection/components/cat-form-hint/cat-form-hint.js +2 -6
  40. package/dist/collection/components/cat-form-hint/cat-form-hint.js.map +1 -1
  41. package/dist/collection/components/cat-i18n/cat-i18n-registry.js +13 -1
  42. package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
  43. package/dist/collection/components/cat-input/cat-input.css +0 -377
  44. package/dist/collection/components/cat-input/cat-input.js +14 -40
  45. package/dist/collection/components/cat-input/cat-input.js.map +1 -1
  46. package/dist/collection/components/cat-input/input-type.js.map +1 -1
  47. package/dist/collection/components/cat-notification/cat-notification.js +11 -13
  48. package/dist/collection/components/cat-notification/cat-notification.js.map +1 -1
  49. package/dist/collection/components/cat-pagination/cat-pagination.js +2 -2
  50. package/dist/collection/components/cat-pagination/cat-pagination.js.map +1 -1
  51. package/dist/collection/components/cat-radio/cat-radio.js +11 -36
  52. package/dist/collection/components/cat-radio/cat-radio.js.map +1 -1
  53. package/dist/collection/components/cat-radio-group/cat-radio-group.js +37 -11
  54. package/dist/collection/components/cat-radio-group/cat-radio-group.js.map +1 -1
  55. package/dist/collection/components/cat-scrollable/cat-scrollable.js +2 -3
  56. package/dist/collection/components/cat-scrollable/cat-scrollable.js.map +1 -1
  57. package/dist/collection/components/cat-select/cat-select.js +42 -53
  58. package/dist/collection/components/cat-select/cat-select.js.map +1 -1
  59. package/dist/collection/components/cat-select-demo/cat-select-demo.js +21 -25
  60. package/dist/collection/components/cat-select-demo/cat-select-demo.js.map +1 -1
  61. package/dist/collection/components/cat-tabs/cat-tabs.js +4 -7
  62. package/dist/collection/components/cat-tabs/cat-tabs.js.map +1 -1
  63. package/dist/collection/components/cat-textarea/cat-textarea.js +17 -21
  64. package/dist/collection/components/cat-textarea/cat-textarea.js.map +1 -1
  65. package/dist/collection/components/cat-toggle/cat-toggle.js +38 -41
  66. package/dist/collection/components/cat-toggle/cat-toggle.js.map +1 -1
  67. package/dist/collection/components/cat-tooltip/cat-tooltip.js +17 -22
  68. package/dist/collection/components/cat-tooltip/cat-tooltip.js.map +1 -1
  69. package/dist/collection/index.cdn.js +6 -0
  70. package/dist/collection/scss/index.scss +2 -0
  71. package/dist/collection/scss/vendor/_flatpickr.scss +314 -0
  72. package/dist/collection/utils/platform.js +1 -1
  73. package/dist/collection/utils/platform.js.map +1 -1
  74. package/dist/components/cat-avatar2.js +5 -5
  75. package/dist/components/cat-avatar2.js.map +1 -1
  76. package/dist/components/cat-button2.js +6 -8
  77. package/dist/components/cat-button2.js.map +1 -1
  78. package/dist/components/cat-checkbox2.js +14 -15
  79. package/dist/components/cat-checkbox2.js.map +1 -1
  80. package/dist/components/cat-datepicker.js +2725 -3028
  81. package/dist/components/cat-datepicker.js.map +1 -1
  82. package/dist/components/cat-dropdown2.js +6 -9
  83. package/dist/components/cat-dropdown2.js.map +1 -1
  84. package/dist/components/cat-form-group.js +4 -5
  85. package/dist/components/cat-form-group.js.map +1 -1
  86. package/dist/components/cat-form-hint.js +2 -6
  87. package/dist/components/cat-form-hint.js.map +1 -1
  88. package/dist/components/cat-i18n-registry.js +13 -1
  89. package/dist/components/cat-i18n-registry.js.map +1 -1
  90. package/dist/components/cat-input2.js +9 -16
  91. package/dist/components/cat-input2.js.map +1 -1
  92. package/dist/components/cat-pagination.js.map +1 -1
  93. package/dist/components/cat-radio-group.js +15 -9
  94. package/dist/components/cat-radio-group.js.map +1 -1
  95. package/dist/components/cat-radio.js +5 -12
  96. package/dist/components/cat-radio.js.map +1 -1
  97. package/dist/components/cat-scrollable2.js +2 -3
  98. package/dist/components/cat-scrollable2.js.map +1 -1
  99. package/dist/components/cat-select-demo.js +21 -25
  100. package/dist/components/cat-select-demo.js.map +1 -1
  101. package/dist/components/cat-select2.js +42 -53
  102. package/dist/components/cat-select2.js.map +1 -1
  103. package/dist/components/cat-tabs.js +4 -7
  104. package/dist/components/cat-tabs.js.map +1 -1
  105. package/dist/components/cat-textarea.js +11 -11
  106. package/dist/components/cat-textarea.js.map +1 -1
  107. package/dist/components/cat-toggle.js +14 -15
  108. package/dist/components/cat-toggle.js.map +1 -1
  109. package/dist/components/cat-tooltip.js +17 -22
  110. package/dist/components/cat-tooltip.js.map +1 -1
  111. package/dist/components/floating-ui.dom.esm.js +55 -68
  112. package/dist/components/floating-ui.dom.esm.js.map +1 -1
  113. package/dist/components/index.js +11 -13
  114. package/dist/components/index.js.map +1 -1
  115. package/dist/esm/{cat-alert_27.entry.js → cat-alert_25.entry.js} +2922 -3478
  116. package/dist/esm/cat-alert_25.entry.js.map +1 -0
  117. package/dist/esm/{cat-icon-registry-4bd597f4.js → cat-icon-registry-f15b29d9.js} +14 -2
  118. package/dist/esm/cat-icon-registry-f15b29d9.js.map +1 -0
  119. package/dist/esm/catalyst.js +1 -1
  120. package/dist/esm/index.js +13 -15
  121. package/dist/esm/index.js.map +1 -1
  122. package/dist/esm/loader.js +1 -1
  123. package/dist/types/@types/Intl.d.ts +3 -0
  124. package/dist/types/components/cat-checkbox/cat-checkbox.d.ts +11 -9
  125. package/dist/types/components/cat-datepicker/cat-datepicker.config.d.ts +1 -0
  126. package/dist/types/components/cat-datepicker/cat-datepicker.d.ts +21 -65
  127. package/dist/types/components/cat-datepicker/cat-datepicker.locale.d.ts +3 -0
  128. package/dist/types/components/cat-i18n/cat-i18n-registry.d.ts +3 -0
  129. package/dist/types/components/cat-input/cat-input.d.ts +2 -6
  130. package/dist/types/components/cat-input/input-type.d.ts +1 -1
  131. package/dist/types/components/cat-pagination/cat-pagination.d.ts +1 -1
  132. package/dist/types/components/cat-radio/cat-radio.d.ts +3 -7
  133. package/dist/types/components/cat-radio-group/cat-radio-group.d.ts +6 -1
  134. package/dist/types/components/cat-textarea/cat-textarea.d.ts +4 -4
  135. package/dist/types/components/cat-toggle/cat-toggle.d.ts +10 -8
  136. package/dist/types/components.d.ts +83 -417
  137. package/package.json +8 -10
  138. package/dist/catalyst/p-34e0cbba.entry.js +0 -10
  139. package/dist/catalyst/p-34e0cbba.entry.js.map +0 -1
  140. package/dist/catalyst/p-cf32399c.js +0 -2
  141. package/dist/catalyst/p-cf32399c.js.map +0 -1
  142. package/dist/cjs/cat-alert_27.cjs.entry.js.map +0 -1
  143. package/dist/cjs/cat-icon-registry-228164a1.js.map +0 -1
  144. package/dist/collection/components/cat-datepicker/datepicker-type.js +0 -8
  145. package/dist/collection/components/cat-datepicker/datepicker-type.js.map +0 -1
  146. package/dist/collection/components/cat-datepicker/dayjs.config.js +0 -8
  147. package/dist/collection/components/cat-datepicker/dayjs.config.js.map +0 -1
  148. package/dist/collection/components/cat-datepicker/vanillajs-datepicker.config.js +0 -46
  149. package/dist/collection/components/cat-datepicker/vanillajs-datepicker.config.js.map +0 -1
  150. package/dist/collection/components/cat-label/cat-label.css +0 -22
  151. package/dist/collection/components/cat-label/cat-label.js +0 -134
  152. package/dist/collection/components/cat-label/cat-label.js.map +0 -1
  153. package/dist/collection/components/cat-timepicker/cat-timepicker.css +0 -5
  154. package/dist/collection/components/cat-timepicker/cat-timepicker.js +0 -668
  155. package/dist/collection/components/cat-timepicker/cat-timepicker.js.map +0 -1
  156. package/dist/components/cat-label.d.ts +0 -11
  157. package/dist/components/cat-label.js +0 -73
  158. package/dist/components/cat-label.js.map +0 -1
  159. package/dist/components/cat-timepicker.d.ts +0 -11
  160. package/dist/components/cat-timepicker.js +0 -258
  161. package/dist/components/cat-timepicker.js.map +0 -1
  162. package/dist/esm/cat-alert_27.entry.js.map +0 -1
  163. package/dist/esm/cat-icon-registry-4bd597f4.js.map +0 -1
  164. package/dist/types/components/cat-datepicker/datepicker-type.d.ts +0 -7
  165. package/dist/types/components/cat-datepicker/datepicker.d.ts +0 -1
  166. package/dist/types/components/cat-datepicker/dayjs.config.d.ts +0 -3
  167. package/dist/types/components/cat-datepicker/vanillajs-datepicker.config.d.ts +0 -4
  168. package/dist/types/components/cat-label/cat-label.d.ts +0 -27
  169. package/dist/types/components/cat-timepicker/cat-timepicker.d.ts +0 -158
@@ -23,7 +23,7 @@ const CatRadio$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
23
23
  this.labelHidden = false;
24
24
  this.name = undefined;
25
25
  this.required = false;
26
- this.value = undefined;
26
+ this.value = '';
27
27
  this.hint = undefined;
28
28
  this.labelLeft = false;
29
29
  this.nativeAttributes = undefined;
@@ -55,18 +55,12 @@ const CatRadio$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
55
55
  async doBlur() {
56
56
  this.input.blur();
57
57
  }
58
- /**
59
- * Programmatically simulate a click on the radio button.
60
- */
61
- async doClick() {
62
- this.input.click();
63
- }
64
58
  render() {
65
- return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }, role: "radio", "aria-checked": this.checked ? 'true' : 'false' }, h("span", { class: "radio" }, h("input", Object.assign({}, this.nativeAttributes, { ref: el => (this.input = el), id: this.identifier || this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) })), h("span", { class: "circle" })), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), (this.hint || this.hasSlottedHint) && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "circle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
59
+ return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }, role: "radio", "aria-checked": this.checked ? 'true' : 'false' }, h("span", { class: "radio" }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.identifier || this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "circle" })), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), (this.hint || this.hasSlottedHint) && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "circle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
66
60
  }
67
- onChange(event) {
61
+ onInput() {
68
62
  this.checked = true;
69
- this.catChange.emit(event);
63
+ this.catChange.emit(this.value);
70
64
  }
71
65
  onFocus(event) {
72
66
  this.catFocus.emit(event);
@@ -91,8 +85,7 @@ const CatRadio$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
91
85
  "hasSlottedLabel": [32],
92
86
  "hasSlottedHint": [32],
93
87
  "doFocus": [64],
94
- "doBlur": [64],
95
- "doClick": [64]
88
+ "doBlur": [64]
96
89
  }]);
97
90
  function defineCustomElement$1() {
98
91
  if (typeof customElements === "undefined") {
@@ -1 +1 @@
1
- {"file":"cat-radio.js","mappings":";;;;AAAA,MAAM,WAAW,GAAG,qqEAAqqE;;ACIzrE,IAAI,YAAY,GAAG,CAAC,CAAC;MAeRA,UAAQ;;;;;;;;IACF,QAAG,GAAG,aAAa,EAAE,YAAY,EAAE,CAAC;2BAS1B,KAAK;0BAEN,KAAK;mBAKI,KAAK;oBAKrB,KAAK;;iBAUR,EAAE;uBAKI,KAAK;;oBAUR,KAAK;;;qBAeJ,KAAK;;;EA5DzB,IAAY,EAAE;IACZ,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC;GACpC;EAgFD,mBAAmB;IACjB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1E,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;MACxCC,QAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;KACtD;GACF;;;;;;;;EAUD,MAAM,OAAO,CAAC,OAAsB;IAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;GAC3B;;;;;EAOD,MAAM,MAAM;IACV,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;GACnB;;;;EAMD,MAAM,OAAO;IACX,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;GACpB;EAED,MAAM;IACJ,QACE,EAAC,IAAI,QACH,aACE,OAAO,EAAE,IAAI,CAAC,EAAE,EAChB,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,EACpG,IAAI,EAAC,OAAO,kBACE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,IAE7C,YAAM,KAAK,EAAC,OAAO,IACjB,6BACM,IAAI,CAAC,gBAAgB,IACzB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,KAAK,GAAG,EAAsB,CAAC,EAChD,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAC9B,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAChC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAC9B,EACF,YAAM,KAAK,EAAC,QAAQ,GAAQ,CACvB,EACP,YAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,IAC7B,CAAC,IAAI,CAAC,eAAe,IAAI,YAAM,IAAI,EAAC,OAAO,GAAQ,KAAK,IAAI,CAAC,KAAK,CAC9D,CACD,EACP,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,MAChC,WAAK,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAChE,WAAK,KAAK,EAAC,oBAAoB,GAAO,EACtC,EAAC,WAAW,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,IAAI,YAAM,IAAI,EAAC,MAAM,GAAQ,GAAI,CACxG,CACP,CACI,EACP;GACH;EAEO,QAAQ,CAAC,KAAiB;IAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GAC5B;EAEO,OAAO,CAAC,KAAiB;IAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GAC3B;EAEO,MAAM,CAAC,KAAiB;IAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["CatRadio","log"],"sources":["./src/components/cat-radio/cat-radio.scss?tag=cat-radio&encapsulation=shadow","./src/components/cat-radio/cat-radio.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n@use '_snippets/checkbox-hint';\n\n$radio-width: 1.25rem;\n$radio-height: 1.25rem;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n cursor: pointer;\n}\n\n.label-left {\n flex-direction: row-reverse;\n}\n\n.radio {\n display: flex;\n position: relative;\n align-self: flex-start;\n}\n\n.circle-placeholder {\n width: calc($radio-width + 1px);\n}\n\n.circle {\n position: absolute;\n width: 0.75rem;\n height: 0.75rem;\n background-color: cat-token('color.theme.primary.bg');\n border-radius: 10rem;\n top: calc(50% - 0.375rem);\n left: calc(50% - 0.375rem);\n visibility: hidden;\n pointer-events: none;\n}\n\ninput {\n margin: 0;\n width: $radio-width;\n height: $radio-height;\n appearance: none;\n background-color: cat-token('color.ui.background.input');\n border: 1px solid cat-token('color.ui.border.dark');\n border-radius: 10rem;\n cursor: inherit;\n\n &:checked {\n border-color: cat-token('color.theme.primary.bg');\n\n + .circle {\n visibility: visible;\n }\n }\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n:host(.cat-error) {\n input {\n border-color: cat-token('color.theme.danger.bg');\n }\n\n .circle {\n background-color: cat-token('color.theme.danger.bg');\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n\n input {\n background-color: cat-token('color.ui.background.muted');\n\n &:checked {\n border-color: cat-token('color.ui.border.dark');\n }\n }\n\n .circle {\n background-color: cat-token('color.ui.border.dark');\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Radio Buttons are graphical interface elements that allow user to choose\n * only one of a predefined set of mutually exclusive options.\n *\n * @slot hint - Optional hint element to be displayed with the radio.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-radio',\n styleUrl: 'cat-radio.scss',\n shadow: true\n})\nexport class CatRadio {\n private readonly _id = `cat-radio-${++nextUniqueId}`;\n private get id() {\n return this.identifier || this._id;\n }\n\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n @State() hasSlottedHint = false;\n\n /**\n * Whether this radio is checked.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Whether this radio is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * A unique identifier for the input.\n */\n @Prop() identifier?: string;\n\n /**\n * The label of the radio that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the radio component.\n */\n @Prop() name?: string;\n\n /**\n * Whether the radio is required.\n */\n @Prop() required = false;\n\n /**\n * The value of the radio component.\n */\n @Prop() value?: string;\n\n /**\n * Optional hint text(s) to be displayed with the radio.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the radio component.\n */\n @Prop() labelLeft = false;\n\n /**\n * Attributes that will be added to the native HTML input element.\n */\n @Prop() nativeAttributes?: { [key: string]: string };\n\n /**\n * Emitted when the radio is changed.\n */\n @Event() catChange!: EventEmitter<InputEvent>;\n\n /**\n * Emitted when the radio received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n this.hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.warn('[A11y] Missing ARIA label on radio', this);\n }\n }\n\n /**\n * Programmatically move focus to the radio button. Use this method instead of\n * `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async doFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n /**\n * Programmatically remove focus from the radio button. Use this method\n * instead of `input.blur()`.\n */\n @Method()\n async doBlur(): Promise<void> {\n this.input.blur();\n }\n\n /**\n * Programmatically simulate a click on the radio button.\n */\n @Method()\n async doClick(): Promise<void> {\n this.input.click();\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n role=\"radio\"\n aria-checked={this.checked ? 'true' : 'false'}\n >\n <span class=\"radio\">\n <input\n {...this.nativeAttributes}\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.identifier || this.id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onInput={this.onChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"circle\"></span>\n </span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {(this.hint || this.hasSlottedHint) && (\n <div class={{ 'hint-wrapper': true, 'label-left': this.labelLeft }}>\n <div class=\"circle-placeholder\"></div>\n <CatFormHint id={this.id} hint={this.hint} slottedHint={this.hasSlottedHint && <slot name=\"hint\"></slot>} />\n </div>\n )}\n </Host>\n );\n }\n\n private onChange(event: InputEvent) {\n this.checked = true;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n"],"version":3}
1
+ {"file":"cat-radio.js","mappings":"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","names":["CatRadio","log"],"sources":["./src/components/cat-radio/cat-radio.scss?tag=cat-radio&encapsulation=shadow","./src/components/cat-radio/cat-radio.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n@use '_snippets/checkbox-hint';\n\n$radio-width: 1.25rem;\n$radio-height: 1.25rem;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n cursor: pointer;\n}\n\n.label-left {\n flex-direction: row-reverse;\n}\n\n.radio {\n display: flex;\n position: relative;\n align-self: flex-start;\n}\n\n.circle-placeholder {\n width: calc($radio-width + 1px);\n}\n\n.circle {\n position: absolute;\n width: 0.75rem;\n height: 0.75rem;\n background-color: cat-token('color.theme.primary.bg');\n border-radius: 10rem;\n top: calc(50% - 0.375rem);\n left: calc(50% - 0.375rem);\n visibility: hidden;\n pointer-events: none;\n}\n\ninput {\n margin: 0;\n width: $radio-width;\n height: $radio-height;\n appearance: none;\n background-color: cat-token('color.ui.background.input');\n border: 1px solid cat-token('color.ui.border.dark');\n border-radius: 10rem;\n cursor: inherit;\n\n &:checked {\n border-color: cat-token('color.theme.primary.bg');\n\n + .circle {\n visibility: visible;\n }\n }\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n:host(.cat-error) {\n input {\n border-color: cat-token('color.theme.danger.bg');\n }\n\n .circle {\n background-color: cat-token('color.theme.danger.bg');\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n\n input {\n background-color: cat-token('color.ui.background.muted');\n\n &:checked {\n border-color: cat-token('color.ui.border.dark');\n }\n }\n\n .circle {\n background-color: cat-token('color.ui.border.dark');\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Radio Buttons are graphical interface elements that allow user to choose\n * only one of a predefined set of mutually exclusive options.\n *\n * @slot hint - Optional hint element to be displayed with the radio.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-radio',\n styleUrl: 'cat-radio.scss',\n shadow: true\n})\nexport class CatRadio {\n private readonly _id = `cat-radio-${++nextUniqueId}`;\n private get id() {\n return this.identifier || this._id;\n }\n\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n @State() hasSlottedHint = false;\n\n /**\n * Whether this radio is checked.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Whether this radio is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * A unique identifier for the input.\n */\n @Prop() identifier?: string;\n\n /**\n * The label of the radio that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the radio component.\n */\n @Prop() name?: string;\n\n /**\n * Whether the radio is required.\n */\n @Prop() required = false;\n\n /**\n * The value of the radio component.\n */\n @Prop() value = '';\n\n /**\n * Optional hint text(s) to be displayed with the radio.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the radio component.\n */\n @Prop() labelLeft = false;\n\n /**\n * Attributes that will be added to the native HTML input element.\n */\n @Prop() nativeAttributes?: { [key: string]: string };\n\n /**\n * Emitted when the radio is changed.\n */\n @Event() catChange!: EventEmitter<boolean | string>;\n\n /**\n * Emitted when the radio received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n this.hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.warn('[A11y] Missing ARIA label on radio', this);\n }\n }\n\n /**\n * Programmatically move focus to the radio button. Use this method instead of\n * `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async doFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n /**\n * Programmatically remove focus from the radio button. Use this method\n * instead of `input.blur()`.\n */\n @Method()\n async doBlur(): Promise<void> {\n this.input.blur();\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n role=\"radio\"\n aria-checked={this.checked ? 'true' : 'false'}\n >\n <span class=\"radio\">\n <input\n {...this.nativeAttributes}\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.identifier || this.id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"circle\"></span>\n </span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {(this.hint || this.hasSlottedHint) && (\n <div class={{ 'hint-wrapper': true, 'label-left': this.labelLeft }}>\n <div class=\"circle-placeholder\"></div>\n <CatFormHint id={this.id} hint={this.hint} slottedHint={this.hasSlottedHint && <slot name=\"hint\"></slot>} />\n </div>\n )}\n </Host>\n );\n }\n\n private onInput() {\n this.checked = true;\n this.catChange.emit(this.value);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n"],"version":3}
@@ -1539,12 +1539,11 @@ const CatScrollable = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
1539
1539
  return 0;
1540
1540
  }
1541
1541
  toggleClass(name, value) {
1542
- var _a, _b;
1543
1542
  if (value) {
1544
- (_a = this.scrollWrapperElement) === null || _a === void 0 ? void 0 : _a.classList.add(name);
1543
+ this.scrollWrapperElement?.classList.add(name);
1545
1544
  }
1546
1545
  else {
1547
- (_b = this.scrollWrapperElement) === null || _b === void 0 ? void 0 : _b.classList.remove(name);
1546
+ this.scrollWrapperElement?.classList.remove(name);
1548
1547
  }
1549
1548
  }
1550
1549
  static get style() { return catScrollableCss; }