@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
@@ -24,6 +24,7 @@ export class CatToggle {
24
24
  this.name = undefined;
25
25
  this.required = false;
26
26
  this.value = undefined;
27
+ this.resolvedValue = null;
27
28
  this.hint = undefined;
28
29
  this.labelLeft = false;
29
30
  this.nativeAttributes = undefined;
@@ -31,6 +32,9 @@ export class CatToggle {
31
32
  get id() {
32
33
  return this.identifier || this._id;
33
34
  }
35
+ componentWillLoad() {
36
+ this.updateResolved();
37
+ }
34
38
  componentWillRender() {
35
39
  this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
36
40
  this.hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
@@ -55,21 +59,13 @@ export class CatToggle {
55
59
  async doBlur() {
56
60
  this.input.blur();
57
61
  }
58
- /**
59
- * Programmatically simulate a click on the toggle.
60
- */
61
- async doClick() {
62
- this.input.click();
63
- }
64
62
  render() {
65
- return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", Object.assign({}, this.nativeAttributes, { ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value !== undefined ? String(this.value) : this.value, checked: this.checked, required: this.required, disabled: this.disabled, class: "form-check-input", role: "switch", onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) })), h("span", { class: "toggle", part: "toggle" }), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), (this.hint || this.hasSlottedHint) && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "toggle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
63
+ return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft } }, h("input", { ...this.nativeAttributes, ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, class: "form-check-input", role: "switch", onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "toggle", part: "toggle" }), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), (this.hint || this.hasSlottedHint) && (h("div", { class: { 'hint-wrapper': true, 'label-left': this.labelLeft } }, h("div", { class: "toggle-placeholder" }), h(CatFormHint, { id: this.id, hint: this.hint, slottedHint: this.hasSlottedHint && h("slot", { name: "hint" }) })))));
66
64
  }
67
- onInput(event) {
65
+ onInput() {
68
66
  this.checked = this.input.checked;
69
- if (!this.value || typeof this.value === 'boolean') {
70
- this.value = this.checked;
71
- }
72
- this.catChange.emit(event);
67
+ this.updateResolved();
68
+ this.catChange.emit(this.resolvedValue);
73
69
  }
74
70
  onFocus(event) {
75
71
  this.catFocus.emit(event);
@@ -77,6 +73,9 @@ export class CatToggle {
77
73
  onBlur(event) {
78
74
  this.catBlur.emit(event);
79
75
  }
76
+ updateResolved() {
77
+ this.resolvedValue = this.value == null ? this.checked : this.checked ? this.value : null;
78
+ }
80
79
  static get is() { return "cat-toggle"; }
81
80
  static get encapsulation() { return "shadow"; }
82
81
  static get originalStyleUrls() {
@@ -192,7 +191,7 @@ export class CatToggle {
192
191
  "optional": true,
193
192
  "docs": {
194
193
  "tags": [],
195
- "text": "The name of the input"
194
+ "text": "The name of the input."
196
195
  },
197
196
  "attribute": "name",
198
197
  "reflect": false
@@ -216,22 +215,40 @@ export class CatToggle {
216
215
  "defaultValue": "false"
217
216
  },
218
217
  "value": {
219
- "type": "any",
220
- "mutable": true,
218
+ "type": "string",
219
+ "mutable": false,
221
220
  "complexType": {
222
- "original": "string | boolean",
223
- "resolved": "boolean | string | undefined",
221
+ "original": "string",
222
+ "resolved": "string | undefined",
224
223
  "references": {}
225
224
  },
226
225
  "required": false,
227
226
  "optional": true,
228
227
  "docs": {
229
228
  "tags": [],
230
- "text": "The value of the toggle"
229
+ "text": "The value of the toggle."
231
230
  },
232
231
  "attribute": "value",
233
232
  "reflect": false
234
233
  },
234
+ "resolvedValue": {
235
+ "type": "any",
236
+ "mutable": true,
237
+ "complexType": {
238
+ "original": "string | boolean | null",
239
+ "resolved": "boolean | null | string",
240
+ "references": {}
241
+ },
242
+ "required": false,
243
+ "optional": false,
244
+ "docs": {
245
+ "tags": [],
246
+ "text": "The resolved value of the toggle, based on the checked state and value."
247
+ },
248
+ "attribute": "resolved-value",
249
+ "reflect": false,
250
+ "defaultValue": "null"
251
+ },
235
252
  "hint": {
236
253
  "type": "string",
237
254
  "mutable": false,
@@ -302,13 +319,9 @@ export class CatToggle {
302
319
  "text": "Emitted when the checked status of the toggle is changed."
303
320
  },
304
321
  "complexType": {
305
- "original": "InputEvent",
306
- "resolved": "InputEvent",
307
- "references": {
308
- "InputEvent": {
309
- "location": "global"
310
- }
311
- }
322
+ "original": "boolean | string | null",
323
+ "resolved": "boolean | null | string",
324
+ "references": {}
312
325
  }
313
326
  }, {
314
327
  "method": "catFocus",
@@ -395,22 +408,6 @@ export class CatToggle {
395
408
  "text": "Programmatically remove focus from the toggle. Use this method instead of\n`input.blur()`.",
396
409
  "tags": []
397
410
  }
398
- },
399
- "doClick": {
400
- "complexType": {
401
- "signature": "() => Promise<void>",
402
- "parameters": [],
403
- "references": {
404
- "Promise": {
405
- "location": "global"
406
- }
407
- },
408
- "return": "Promise<void>"
409
- },
410
- "docs": {
411
- "text": "Programmatically simulate a click on the toggle.",
412
- "tags": []
413
- }
414
411
  }
415
412
  };
416
413
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cat-toggle.js","sourceRoot":"","sources":["../../../src/components/cat-toggle/cat-toggle.tsx"],"names":[],"mappings":"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","sourcesContent":["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 * Toggles are graphical interface switches that give user control over a\n * feature or option that can be turned on or off.\n *\n * @slot hint - Optional hint element to be displayed with the toggle.\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 toggle - The toggle element.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-toggle',\n styleUrls: ['cat-toggle.scss'],\n shadow: true\n})\nexport class CatToggle {\n private readonly _id = `cat-toggle-${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 * Checked state of the toggle.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Disabled state of the toggle.\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 toggle 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 input\n */\n @Prop() name?: string;\n\n /**\n * Required state of the toggle.\n */\n @Prop() required = false;\n\n /**\n * The value of the toggle\n */\n @Prop({ mutable: true }) value?: string | boolean;\n\n /**\n * Optional hint text(s) to be displayed with the toggle.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the toggle.\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 checked status of the toggle is changed.\n */\n @Event() catChange!: EventEmitter<InputEvent>;\n\n /**\n * Emitted when the toggle received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the toggle 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 toggle', this);\n }\n }\n\n /**\n * Programmatically move focus to the toggle. 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 toggle. Use this method instead of\n * `input.blur()`.\n */\n @Method()\n async doBlur(): Promise<void> {\n this.input.blur();\n }\n\n /**\n * Programmatically simulate a click on the toggle.\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 >\n <input\n {...this.nativeAttributes}\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"checkbox\"\n name={this.name}\n value={this.value !== undefined ? String(this.value) : this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n class=\"form-check-input\"\n role=\"switch\"\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"toggle\" part=\"toggle\"></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=\"toggle-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(event: InputEvent) {\n this.checked = this.input.checked;\n\n if (!this.value || typeof this.value === 'boolean') {\n this.value = this.checked;\n }\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"]}
1
+ {"version":3,"file":"cat-toggle.js","sourceRoot":"","sources":["../../../src/components/cat-toggle/cat-toggle.tsx"],"names":[],"mappings":"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","sourcesContent":["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 * Toggles are graphical interface switches that give user control over a\n * feature or option that can be turned on or off.\n *\n * @slot hint - Optional hint element to be displayed with the toggle.\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 toggle - The toggle element.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-toggle',\n styleUrls: ['cat-toggle.scss'],\n shadow: true\n})\nexport class CatToggle {\n private readonly _id = `cat-toggle-${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 * Checked state of the toggle.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Disabled state of the toggle.\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 toggle 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 input.\n */\n @Prop() name?: string;\n\n /**\n * Required state of the toggle.\n */\n @Prop() required = false;\n\n /**\n * The value of the toggle.\n */\n @Prop() value?: string;\n\n /**\n * The resolved value of the toggle, based on the checked state and value.\n */\n @Prop({ mutable: true }) resolvedValue: string | boolean | null = null;\n\n /**\n * Optional hint text(s) to be displayed with the toggle.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the toggle.\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 checked status of the toggle is changed.\n */\n @Event() catChange!: EventEmitter<boolean | string | null>;\n\n /**\n * Emitted when the toggle received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillLoad() {\n this.updateResolved();\n }\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 toggle', this);\n }\n }\n\n /**\n * Programmatically move focus to the toggle. 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 toggle. Use this method instead of\n * `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 >\n <input\n {...this.nativeAttributes}\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"checkbox\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n class=\"form-check-input\"\n role=\"switch\"\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"toggle\" part=\"toggle\"></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=\"toggle-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 = this.input.checked;\n this.updateResolved();\n this.catChange.emit(this.resolvedValue);\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 private updateResolved() {\n this.resolvedValue = this.value == null ? this.checked : this.checked ? this.value : null;\n }\n}\n"]}
@@ -20,22 +20,21 @@ export class CatTooltip {
20
20
  key === 'Escape' && this.hideListener();
21
21
  }
22
22
  componentDidLoad() {
23
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
24
- const slot = (_a = this.hostElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot');
25
- this.trigger = (_c = (_b = slot === null || slot === void 0 ? void 0 : slot.assignedElements) === null || _b === void 0 ? void 0 : _b.call(slot)) === null || _c === void 0 ? void 0 : _c[0];
23
+ const slot = this.hostElement.shadowRoot?.querySelector('slot');
24
+ this.trigger = slot?.assignedElements?.()?.[0];
26
25
  if (this.trigger && !this.trigger.hasAttribute('aria-describedby')) {
27
26
  this.trigger.setAttribute('aria-describedby', this.id);
28
27
  }
29
28
  if (isTouchScreen) {
30
29
  window.addEventListener('touchstart', this.windowTouchStartListener.bind(this));
31
- (_d = this.trigger) === null || _d === void 0 ? void 0 : _d.addEventListener('touchstart', this.touchStartListener.bind(this));
32
- (_e = this.trigger) === null || _e === void 0 ? void 0 : _e.addEventListener('touchend', this.touchEndListener.bind(this));
30
+ this.trigger?.addEventListener('touchstart', this.touchStartListener.bind(this));
31
+ this.trigger?.addEventListener('touchend', this.touchEndListener.bind(this));
33
32
  }
34
33
  else {
35
- (_f = this.trigger) === null || _f === void 0 ? void 0 : _f.addEventListener('focusin', this.showListener.bind(this));
36
- (_g = this.trigger) === null || _g === void 0 ? void 0 : _g.addEventListener('focusout', this.hideListener.bind(this));
37
- (_h = this.trigger) === null || _h === void 0 ? void 0 : _h.addEventListener('mouseenter', this.showListener.bind(this));
38
- (_j = this.trigger) === null || _j === void 0 ? void 0 : _j.addEventListener('mouseleave', this.hideListener.bind(this));
34
+ this.trigger?.addEventListener('focusin', this.showListener.bind(this));
35
+ this.trigger?.addEventListener('focusout', this.hideListener.bind(this));
36
+ this.trigger?.addEventListener('mouseenter', this.showListener.bind(this));
37
+ this.trigger?.addEventListener('mouseleave', this.hideListener.bind(this));
39
38
  }
40
39
  }
41
40
  componentWillRender() {
@@ -43,17 +42,16 @@ export class CatTooltip {
43
42
  this.hidden = this.disabled || (!this.content && !this.hasSlottedContent);
44
43
  }
45
44
  disconnectedCallback() {
46
- var _a, _b, _c, _d, _e, _f;
47
45
  if (isTouchScreen) {
48
46
  window.removeEventListener('touchstart', this.windowTouchStartListener.bind(this));
49
- (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.removeEventListener('touchstart', this.touchStartListener.bind(this));
50
- (_b = this.trigger) === null || _b === void 0 ? void 0 : _b.removeEventListener('touchend', this.touchEndListener.bind(this));
47
+ this.trigger?.removeEventListener('touchstart', this.touchStartListener.bind(this));
48
+ this.trigger?.removeEventListener('touchend', this.touchEndListener.bind(this));
51
49
  }
52
50
  else {
53
- (_c = this.trigger) === null || _c === void 0 ? void 0 : _c.removeEventListener('mouseenter', this.showListener.bind(this));
54
- (_d = this.trigger) === null || _d === void 0 ? void 0 : _d.removeEventListener('mouseleave', this.hideListener.bind(this));
55
- (_e = this.trigger) === null || _e === void 0 ? void 0 : _e.removeEventListener('focusin', this.showListener.bind(this));
56
- (_f = this.trigger) === null || _f === void 0 ? void 0 : _f.removeEventListener('focusout', this.hideListener.bind(this));
51
+ this.trigger?.removeEventListener('mouseenter', this.showListener.bind(this));
52
+ this.trigger?.removeEventListener('mouseleave', this.hideListener.bind(this));
53
+ this.trigger?.removeEventListener('focusin', this.showListener.bind(this));
54
+ this.trigger?.removeEventListener('focusout', this.hideListener.bind(this));
57
55
  }
58
56
  }
59
57
  render() {
@@ -89,8 +87,7 @@ export class CatTooltip {
89
87
  hideListener() {
90
88
  window.clearTimeout(this.showTimeout);
91
89
  this.hideTimeout = window.setTimeout(() => {
92
- var _a;
93
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.remove('tooltip-show');
90
+ this.tooltip?.classList.remove('tooltip-show');
94
91
  this.hideTooltip();
95
92
  }, this.hideDelay);
96
93
  }
@@ -107,15 +104,13 @@ export class CatTooltip {
107
104
  }
108
105
  }
109
106
  windowTouchStartListener() {
110
- var _a;
111
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.remove('tooltip-show');
107
+ this.tooltip?.classList.remove('tooltip-show');
112
108
  }
113
109
  showTooltip() {
114
- var _a;
115
110
  if (this.trigger && this.tooltip) {
116
111
  this.cleanupFloatingUi = autoUpdate(this.trigger, this.tooltip, () => this.update());
117
112
  }
118
- !this.hidden && ((_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.add('tooltip-show'));
113
+ !this.hidden && this.tooltip?.classList.add('tooltip-show');
119
114
  }
120
115
  hideTooltip() {
121
116
  if (this.cleanupFloatingUi) {
@@ -1 +1 @@
1
- {"version":3,"file":"cat-tooltip.js","sourceRoot":"","sources":["../../../src/components/cat-tooltip/cat-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { autoUpdate, computePosition, flip, offset, Placement, shift } from '@floating-ui/dom';\nimport { Component, Element, h, Host, Listen, Prop, State } from '@stencil/core';\nimport isTouchScreen from '../../utils/is-touch-screen';\n\nlet nextUniqueId = 0;\n\n@Component({\n tag: 'cat-tooltip',\n styleUrl: 'cat-tooltip.scss',\n shadow: true\n})\nexport class CatTooltip {\n private static readonly OFFSET = 4;\n private static readonly SHIFT_PADDING = 4;\n private readonly id = `cat-tooltip-${nextUniqueId++}`;\n private tooltip?: HTMLElement;\n private trigger?: Element;\n private showTimeout?: number;\n private hideTimeout?: number;\n private touchTimeout?: number;\n private hidden = false;\n private cleanupFloatingUi?: () => void;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedContent = false;\n\n /**\n * The content of the tooltip.\n */\n @Prop() content = '';\n\n /**\n * Specifies that the tooltip should be disabled. A disabled tooltip is unusable,\n * and invisible. Corresponds with the native HTML disabled attribute.\n */\n @Prop() disabled = false;\n\n /**\n * The placement of the tooltip.\n */\n @Prop() placement: Placement = 'top';\n\n /**\n * Use round tooltip edges.\n */\n @Prop() round = false;\n\n /**\n * The size of the tooltip.\n */\n @Prop() size: 's' | 'm' | 'l' = 'm';\n\n /**\n * The delay time for showing tooltip in ms.\n */\n @Prop() showDelay = 250;\n\n /**\n * The delay time for hiding tooltip in ms.\n */\n @Prop() hideDelay = 0;\n\n /**\n * The duration of tap to show the tooltip.\n */\n @Prop() longTouchDuration = 1000;\n\n @Listen('keydown')\n handleKeyDown({ key }: KeyboardEvent) {\n key === 'Escape' && this.hideListener();\n }\n\n componentDidLoad(): void {\n const slot = this.hostElement.shadowRoot?.querySelector('slot');\n this.trigger = slot?.assignedElements?.()?.[0];\n if (this.trigger && !this.trigger.hasAttribute('aria-describedby')) {\n this.trigger.setAttribute('aria-describedby', this.id);\n }\n\n if (isTouchScreen) {\n window.addEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.addEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.addEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.addEventListener('focusin', this.showListener.bind(this));\n this.trigger?.addEventListener('focusout', this.hideListener.bind(this));\n this.trigger?.addEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.addEventListener('mouseleave', this.hideListener.bind(this));\n }\n }\n\n componentWillRender(): void {\n this.hasSlottedContent = !!this.hostElement.querySelector('[slot=\"content\"]');\n this.hidden = this.disabled || (!this.content && !this.hasSlottedContent);\n }\n\n disconnectedCallback(): void {\n if (isTouchScreen) {\n window.removeEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.removeEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.removeEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.removeEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.removeEventListener('mouseleave', this.hideListener.bind(this));\n this.trigger?.removeEventListener('focusin', this.showListener.bind(this));\n this.trigger?.removeEventListener('focusout', this.hideListener.bind(this));\n }\n }\n\n render() {\n return (\n <Host>\n <slot />\n <div\n ref={el => (this.tooltip = el)}\n id={this.id}\n aria-hidden={this.hidden}\n class={{\n tooltip: true,\n 'tooltip-hidden': this.hidden,\n 'tooltip-round': this.round,\n [`tooltip-${this.size}`]: Boolean(this.size)\n }}\n >\n {this.hasSlottedContent ? <slot name=\"content\" /> : this.content}\n </div>\n </Host>\n );\n }\n\n private async update() {\n if (this.trigger && this.tooltip) {\n await computePosition(this.trigger, this.tooltip, {\n strategy: 'fixed',\n placement: this.placement,\n middleware: [offset(CatTooltip.OFFSET), flip(), shift({ padding: CatTooltip.SHIFT_PADDING })]\n }).then(({ x, y }) => {\n if (this.tooltip) {\n Object.assign(this.tooltip.style, {\n left: `${Math.max(0, x)}px`,\n top: `${y}px`\n });\n }\n });\n }\n }\n\n private showListener() {\n window.clearTimeout(this.hideTimeout);\n this.showTimeout = window.setTimeout(() => {\n this.showTooltip();\n }, this.showDelay);\n }\n\n private hideListener() {\n window.clearTimeout(this.showTimeout);\n this.hideTimeout = window.setTimeout(() => {\n this.tooltip?.classList.remove('tooltip-show');\n this.hideTooltip();\n }, this.hideDelay);\n }\n\n private touchStartListener(event: Event) {\n event.stopPropagation();\n this.touchTimeout = window.setTimeout(() => {\n this.showTooltip();\n }, this.longTouchDuration);\n }\n\n private touchEndListener() {\n if (this.touchTimeout) {\n window.clearTimeout(this.touchTimeout);\n this.hideTooltip();\n }\n }\n\n private windowTouchStartListener() {\n this.tooltip?.classList.remove('tooltip-show');\n }\n\n private showTooltip() {\n if (this.trigger && this.tooltip) {\n this.cleanupFloatingUi = autoUpdate(this.trigger, this.tooltip, () => this.update());\n }\n !this.hidden && this.tooltip?.classList.add('tooltip-show');\n }\n\n private hideTooltip() {\n if (this.cleanupFloatingUi) {\n this.cleanupFloatingUi();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"cat-tooltip.js","sourceRoot":"","sources":["../../../src/components/cat-tooltip/cat-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { autoUpdate, computePosition, flip, offset, Placement, shift } from '@floating-ui/dom';\nimport { Component, Element, h, Host, Listen, Prop, State } from '@stencil/core';\nimport isTouchScreen from '../../utils/is-touch-screen';\n\nlet nextUniqueId = 0;\n\n@Component({\n tag: 'cat-tooltip',\n styleUrl: 'cat-tooltip.scss',\n shadow: true\n})\nexport class CatTooltip {\n private static readonly OFFSET = 4;\n private static readonly SHIFT_PADDING = 4;\n private readonly id = `cat-tooltip-${nextUniqueId++}`;\n private tooltip?: HTMLElement;\n private trigger?: Element;\n private showTimeout?: number;\n private hideTimeout?: number;\n private touchTimeout?: number;\n private hidden = false;\n private cleanupFloatingUi?: () => void;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedContent = false;\n\n /**\n * The content of the tooltip.\n */\n @Prop() content = '';\n\n /**\n * Specifies that the tooltip should be disabled. A disabled tooltip is unusable,\n * and invisible. Corresponds with the native HTML disabled attribute.\n */\n @Prop() disabled = false;\n\n /**\n * The placement of the tooltip.\n */\n @Prop() placement: Placement = 'top';\n\n /**\n * Use round tooltip edges.\n */\n @Prop() round = false;\n\n /**\n * The size of the tooltip.\n */\n @Prop() size: 's' | 'm' | 'l' = 'm';\n\n /**\n * The delay time for showing tooltip in ms.\n */\n @Prop() showDelay = 250;\n\n /**\n * The delay time for hiding tooltip in ms.\n */\n @Prop() hideDelay = 0;\n\n /**\n * The duration of tap to show the tooltip.\n */\n @Prop() longTouchDuration = 1000;\n\n @Listen('keydown')\n handleKeyDown({ key }: KeyboardEvent) {\n key === 'Escape' && this.hideListener();\n }\n\n componentDidLoad(): void {\n const slot = this.hostElement.shadowRoot?.querySelector('slot');\n this.trigger = slot?.assignedElements?.()?.[0];\n if (this.trigger && !this.trigger.hasAttribute('aria-describedby')) {\n this.trigger.setAttribute('aria-describedby', this.id);\n }\n\n if (isTouchScreen) {\n window.addEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.addEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.addEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.addEventListener('focusin', this.showListener.bind(this));\n this.trigger?.addEventListener('focusout', this.hideListener.bind(this));\n this.trigger?.addEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.addEventListener('mouseleave', this.hideListener.bind(this));\n }\n }\n\n componentWillRender(): void {\n this.hasSlottedContent = !!this.hostElement.querySelector('[slot=\"content\"]');\n this.hidden = this.disabled || (!this.content && !this.hasSlottedContent);\n }\n\n disconnectedCallback(): void {\n if (isTouchScreen) {\n window.removeEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.removeEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.removeEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.removeEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.removeEventListener('mouseleave', this.hideListener.bind(this));\n this.trigger?.removeEventListener('focusin', this.showListener.bind(this));\n this.trigger?.removeEventListener('focusout', this.hideListener.bind(this));\n }\n }\n\n render() {\n return (\n <Host>\n <slot />\n <div\n ref={el => (this.tooltip = el)}\n id={this.id}\n aria-hidden={this.hidden}\n class={{\n tooltip: true,\n 'tooltip-hidden': this.hidden,\n 'tooltip-round': this.round,\n [`tooltip-${this.size}`]: Boolean(this.size)\n }}\n >\n {this.hasSlottedContent ? <slot name=\"content\" /> : this.content}\n </div>\n </Host>\n );\n }\n\n private async update() {\n if (this.trigger && this.tooltip) {\n await computePosition(this.trigger, this.tooltip, {\n strategy: 'fixed',\n placement: this.placement,\n middleware: [offset(CatTooltip.OFFSET), flip(), shift({ padding: CatTooltip.SHIFT_PADDING })]\n }).then(({ x, y }) => {\n if (this.tooltip) {\n Object.assign(this.tooltip.style, {\n left: `${Math.max(0, x)}px`,\n top: `${y}px`\n });\n }\n });\n }\n }\n\n private showListener() {\n window.clearTimeout(this.hideTimeout);\n this.showTimeout = window.setTimeout(() => {\n this.showTooltip();\n }, this.showDelay);\n }\n\n private hideListener() {\n window.clearTimeout(this.showTimeout);\n this.hideTimeout = window.setTimeout(() => {\n this.tooltip?.classList.remove('tooltip-show');\n this.hideTooltip();\n }, this.hideDelay);\n }\n\n private touchStartListener(event: Event) {\n event.stopPropagation();\n this.touchTimeout = window.setTimeout(() => {\n this.showTooltip();\n }, this.longTouchDuration);\n }\n\n private touchEndListener() {\n if (this.touchTimeout) {\n window.clearTimeout(this.touchTimeout);\n this.hideTooltip();\n }\n }\n\n private windowTouchStartListener() {\n this.tooltip?.classList.remove('tooltip-show');\n }\n\n private showTooltip() {\n if (this.trigger && this.tooltip) {\n this.cleanupFloatingUi = autoUpdate(this.trigger, this.tooltip, () => this.update());\n }\n !this.hidden && this.tooltip?.classList.add('tooltip-show');\n }\n\n private hideTooltip() {\n if (this.cleanupFloatingUi) {\n this.cleanupFloatingUi();\n }\n }\n}\n"]}
@@ -23,6 +23,12 @@
23
23
 
24
24
  catIconRegistry.addIcons(ci);
25
25
  catI18nRegistry.set({
26
+ 'datepicker.year': 'Year',
27
+ 'datepicker.month': 'Month',
28
+ 'datepicker.hour': 'Hour',
29
+ 'datepicker.minute': 'Minute',
30
+ 'datepicker.scroll': 'Scroll to increment',
31
+ 'datepicker.toggle': 'Click to toggle',
26
32
  'dialog.close': 'Close',
27
33
  'input.clear': 'Clear',
28
34
  'input.optional': 'Optional',
@@ -4,6 +4,8 @@
4
4
 
5
5
  // -- Vendor
6
6
  @import '~toastify-js/src/toastify.css';
7
+ @import '~flatpickr/dist/flatpickr.css';
8
+ @import 'vendor/flatpickr';
7
9
 
8
10
  // -- Fonts
9
11
  @import 'fonts/fonts-mixins';
@@ -0,0 +1,314 @@
1
+ @use '../variables' as *;
2
+ @use '../mixins' as *;
3
+
4
+ /* stylelint-disable selector-class-pattern */
5
+
6
+ .flatpickr-calendar {
7
+ @include cat-body(s);
8
+ @include cat-elevation(4);
9
+ border-radius: cat-border-radius('m');
10
+ border: 1px solid cat-token('color.ui.border.default');
11
+ background: cat-token('color.ui.background.surface');
12
+ padding: 1rem;
13
+
14
+ &.animate {
15
+ transform: translateY(-1rem);
16
+ opacity: 0;
17
+ transition: transform cat-token('time.transition.s') cubic-bezier(0.3, 0, 0.8, 0.15),
18
+ opacity cat-token('time.transition.s') cubic-bezier(0.3, 0, 0.8, 0.15);
19
+ }
20
+
21
+ &::before,
22
+ &::after {
23
+ display: none;
24
+ }
25
+
26
+ &.open {
27
+ z-index: $cat-dropdown-z-index;
28
+ width: auto !important;
29
+ margin-top: 0.75rem;
30
+ margin-left: -0.75rem;
31
+
32
+ &.animate {
33
+ opacity: 1;
34
+ transform: translateY(0);
35
+ transition: transform cat-token('time.transition.l') cubic-bezier(0.05, 0.7, 0.1, 1),
36
+ opacity cat-token('time.transition.l') cubic-bezier(0.05, 0.7, 0.1, 1);
37
+ }
38
+ }
39
+ }
40
+
41
+ .flatpickr-months {
42
+ gap: 0.25rem;
43
+ }
44
+
45
+ .flatpickr-months .flatpickr-month {
46
+ height: auto;
47
+ }
48
+
49
+ .flatpickr-current-month {
50
+ @include cat-head(4);
51
+ height: 100%;
52
+ padding: 0;
53
+ display: flex;
54
+ position: static;
55
+ width: auto;
56
+ gap: 0.25rem;
57
+
58
+ .flatpickr-monthDropdown-months {
59
+ padding: 0 0.25rem;
60
+ flex: 1;
61
+ margin: unset;
62
+ font-weight: inherit;
63
+ border-radius: cat-border-radius('m');
64
+
65
+ &:hover,
66
+ &:focus-within {
67
+ background-color: cat-token('color.theme.primary.bg', 0.05);
68
+ }
69
+ }
70
+
71
+ input.cur-year {
72
+ padding: 0;
73
+ font-weight: inherit;
74
+ line-height: 2.25rem;
75
+ }
76
+
77
+ .numInputWrapper {
78
+ width: 7ch;
79
+ }
80
+ }
81
+
82
+ .flatpickr-months .flatpickr-prev-month,
83
+ .flatpickr-months .flatpickr-next-month {
84
+ position: static;
85
+ width: 2.25rem;
86
+ height: 2.25rem;
87
+ padding: 0;
88
+ align-items: center;
89
+ display: flex;
90
+ justify-content: center;
91
+ color: cat-token('color.ui.font.muted');
92
+
93
+ &:hover {
94
+ color: cat-token('color.ui.font.body');
95
+ }
96
+ }
97
+
98
+ .flatpickr-weekdays {
99
+ height: 2rem;
100
+ }
101
+
102
+ .flatpickr-weekwrapper {
103
+ .flatpickr-weekday {
104
+ height: 2rem;
105
+ }
106
+
107
+ .flatpickr-weeks {
108
+ box-shadow: none;
109
+ width: 2rem;
110
+ padding: 0 0.5rem 0 0;
111
+ }
112
+
113
+ span.flatpickr-day,
114
+ span.flatpickr-day:hover {
115
+ @include cat-body(xs, $weight: 700);
116
+ color: cat-token('color.ui.font.muted');
117
+ text-align: right;
118
+ line-height: 2.25rem;
119
+ }
120
+ }
121
+
122
+ .flatpickr-days {
123
+ width: 15.75rem !important;
124
+ }
125
+
126
+ .dayContainer {
127
+ width: 15.75rem;
128
+ min-width: 15.75rem;
129
+ max-width: 15.75rem;
130
+ }
131
+
132
+ .flatpickr-day {
133
+ color: cat-token('color.ui.font.body');
134
+ height: 2.25rem;
135
+ line-height: 2.25rem;
136
+ // max-width: unset;
137
+ border: 0;
138
+ border-radius: cat-border-radius('m');
139
+
140
+ &:hover {
141
+ background-color: cat-token('color.ui.background.muted');
142
+ font-weight: 700;
143
+ }
144
+
145
+ &.today {
146
+ color: cat-token('color.theme.primary.text');
147
+ box-shadow: inset 0 0 0 2px cat-token('color.theme.primary.text');
148
+
149
+ &:hover,
150
+ &:focus {
151
+ background-color: cat-token('color.ui.background.muted');
152
+ color: cat-token('color.theme.primary.text');
153
+ }
154
+ }
155
+
156
+ &.selected,
157
+ &.startRange,
158
+ &.endRange {
159
+ &,
160
+ &:hover,
161
+ &:focus,
162
+ &.inRange,
163
+ &.nextMonthDay,
164
+ &.prevMonthDay {
165
+ font-weight: 700;
166
+ background-color: cat-token('color.theme.primary.bg') !important;
167
+ color: cat-token('color.theme.primary.fill') !important;
168
+ }
169
+ }
170
+
171
+ &.inRange,
172
+ &.prevMonthDay.inRange,
173
+ &.nextMonthDay.inRange,
174
+ &.today.inRange,
175
+ &.prevMonthDay.today.inRange,
176
+ &.nextMonthDay.today.inRange,
177
+ &:hover,
178
+ &.prevMonthDay:hover,
179
+ &.nextMonthDay:hover,
180
+ &:focus,
181
+ &.prevMonthDay:focus,
182
+ &.nextMonthDay:focus {
183
+ background-color: cat-token('color.theme.primary.bg', 0.1);
184
+ }
185
+
186
+ &.selected.startRange,
187
+ &.startRange.startRange,
188
+ &.endRange.startRange {
189
+ border-top-left-radius: cat-border-radius('m');
190
+ border-bottom-left-radius: cat-border-radius('m');
191
+ }
192
+
193
+ &.selected.endRange,
194
+ &.startRange.endRange,
195
+ &.endRange.endRange {
196
+ border-top-right-radius: cat-border-radius('m');
197
+ border-bottom-right-radius: cat-border-radius('m');
198
+ }
199
+ }
200
+
201
+ .numInputWrapper {
202
+ padding: 0 1rem 0 0.5rem;
203
+ border-radius: cat-border-radius('m');
204
+
205
+ &:hover,
206
+ &:focus-within {
207
+ background-color: cat-token('color.theme.primary.bg', 0.05);
208
+ }
209
+
210
+ span {
211
+ border: none;
212
+ background: transparent;
213
+ width: 1rem;
214
+ padding: 0;
215
+ color: cat-token('color.ui.font.muted');
216
+
217
+ &.arrowUp::after {
218
+ content: '\2191';
219
+ align-items: flex-end;
220
+ }
221
+
222
+ &.arrowDown::after {
223
+ content: '\2193';
224
+ align-items: flex-start;
225
+ }
226
+
227
+ &::after {
228
+ @include cat-body(xs, $weight: 700);
229
+ position: static;
230
+ border: 0 !important;
231
+ font-size: 10px;
232
+ display: flex;
233
+ height: 100%;
234
+ justify-content: center;
235
+ }
236
+
237
+ &:hover {
238
+ color: cat-token('color.ui.font.body');
239
+ background: transparent;
240
+ }
241
+ }
242
+ }
243
+
244
+ .flatpickr-time .numInputWrapper {
245
+ height: 2.25rem;
246
+ }
247
+
248
+ .flatpickr-calendar.hasTime .flatpickr-time {
249
+ height: 2.25rem;
250
+ line-height: 2.25rem;
251
+ max-height: 2.25rem;
252
+ border-top: none;
253
+ min-width: 12rem;
254
+ }
255
+
256
+ .flatpickr-time .flatpickr-time-separator,
257
+ .flatpickr-time .flatpickr-am-pm {
258
+ margin: 0 0.25rem;
259
+ @include cat-head(4, 400);
260
+ line-height: 2.25rem;
261
+ }
262
+
263
+ .flatpickr-time .flatpickr-am-pm {
264
+ width: 25%;
265
+ padding: 0 0.5rem;
266
+
267
+ &:hover,
268
+ &:focus {
269
+ border-radius: cat-border-radius('m');
270
+ background-color: cat-token('color.theme.primary.bg', 0.05);
271
+ }
272
+ }
273
+
274
+ .flatpickr-time {
275
+ input {
276
+ background: transparent !important;
277
+ @include cat-head(4, 400);
278
+ line-height: 2.25rem;
279
+
280
+ &.flatpickr-hour {
281
+ font-weight: inherit;
282
+ }
283
+ }
284
+ }
285
+
286
+ .flatpickr-day.inRange:not(.today),
287
+ .flatpickr-day.week.selected {
288
+ box-shadow: none;
289
+ }
290
+
291
+ .flatpickr-day.inRange,
292
+ .flatpickr-day.week.selected {
293
+ &:nth-child(7n + 1) {
294
+ border-top-left-radius: cat-border-radius('m');
295
+ border-bottom-left-radius: cat-border-radius('m');
296
+ }
297
+
298
+ &:nth-child(7n + 7) {
299
+ border-top-right-radius: cat-border-radius('m');
300
+ border-bottom-right-radius: cat-border-radius('m');
301
+ }
302
+ }
303
+
304
+ .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)),
305
+ .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
306
+ .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
307
+ box-shadow: none;
308
+ }
309
+
310
+ .flatpickr-day.selected.startRange.endRange,
311
+ .flatpickr-day.startRange.startRange.endRange,
312
+ .flatpickr-day.endRange.startRange.endRange {
313
+ border-radius: cat-border-radius('m');
314
+ }