@haiilo/catalyst 0.7.4 → 0.8.2

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 (142) hide show
  1. package/dist/catalyst/catalyst.css +1 -1
  2. package/dist/catalyst/catalyst.esm.js +1 -1
  3. package/dist/catalyst/catalyst.esm.js.map +1 -1
  4. package/dist/catalyst/index.esm.js +1 -1
  5. package/dist/catalyst/p-2ad6f8d8.js +2 -0
  6. package/dist/catalyst/{p-7c06183a.js.map → p-2ad6f8d8.js.map} +1 -1
  7. package/dist/catalyst/p-3bbcb685.entry.js +12 -0
  8. package/dist/catalyst/p-3bbcb685.entry.js.map +1 -0
  9. package/dist/catalyst/p-659073b5.js +3 -0
  10. package/dist/catalyst/p-659073b5.js.map +1 -0
  11. package/dist/catalyst/{p-c7f3b231.js → p-6a8a4dc0.js} +2 -2
  12. package/dist/catalyst/{p-c7f3b231.js.map → p-6a8a4dc0.js.map} +0 -0
  13. package/dist/catalyst/{p-5616e2cd.js → p-6fce43dd.js} +2 -2
  14. package/dist/catalyst/{p-5616e2cd.js.map → p-6fce43dd.js.map} +0 -0
  15. package/dist/catalyst/{p-4254363e.entry.js → p-c0b4200d.entry.js} +2 -2
  16. package/dist/catalyst/{p-4254363e.entry.js.map → p-c0b4200d.entry.js.map} +0 -0
  17. package/dist/catalyst/{p-12486027.js → p-decdc6f1.js} +2 -2
  18. package/dist/catalyst/p-decdc6f1.js.map +1 -0
  19. package/dist/catalyst/p-f45bcfd6.js +2 -0
  20. package/dist/catalyst/p-f45bcfd6.js.map +1 -0
  21. package/dist/catalyst/scss/_mixins.scss +1 -1
  22. package/dist/catalyst/scss/_variables.scss +2 -0
  23. package/dist/catalyst/scss/fonts/{_fonts.mixins.scss → _fonts-mixins.scss} +0 -0
  24. package/dist/catalyst/scss/index.scss +4 -3
  25. package/dist/cjs/{app-globals-aa29ad72.js → app-globals-79765026.js} +3 -3
  26. package/dist/cjs/{app-globals-aa29ad72.js.map → app-globals-79765026.js.map} +1 -1
  27. package/dist/cjs/cat-alert_20.cjs.entry.js +12630 -0
  28. package/dist/cjs/cat-alert_20.cjs.entry.js.map +1 -0
  29. package/dist/cjs/{cat-form-hint-93a6936b.js → cat-form-hint-25fdfed5.js} +2 -2
  30. package/dist/cjs/{cat-form-hint-93a6936b.js.map → cat-form-hint-25fdfed5.js.map} +1 -1
  31. package/dist/cjs/{cat-icon-registry-49b11b51.js → cat-icon-registry-b015a65f.js} +37 -43
  32. package/dist/cjs/cat-icon-registry-b015a65f.js.map +1 -0
  33. package/dist/cjs/{cat-notification-156f4cf5.js → cat-notification-fe237312.js} +2 -2
  34. package/dist/cjs/{cat-notification-156f4cf5.js.map → cat-notification-fe237312.js.map} +1 -1
  35. package/dist/cjs/cat-textarea.cjs.entry.js +3 -3
  36. package/dist/cjs/catalyst.cjs.js +6 -6
  37. package/dist/cjs/catalyst.cjs.js.map +1 -1
  38. package/dist/cjs/{index-499bad41.js → index-936b777e.js} +10 -5
  39. package/dist/cjs/index-936b777e.js.map +1 -0
  40. package/dist/cjs/index.cjs.js +3 -3
  41. package/dist/cjs/loader.cjs.js +6 -6
  42. package/dist/cjs/loader.cjs.js.map +1 -1
  43. package/dist/cjs/{loglevel-c9b2d01f.js → loglevel-b5d158ad.js} +6 -1
  44. package/dist/cjs/loglevel-b5d158ad.js.map +1 -0
  45. package/dist/collection/collection-manifest.json +3 -1
  46. package/dist/collection/components/cat-avatar/cat-avatar.js +2 -2
  47. package/dist/collection/components/cat-avatar/cat-avatar.js.map +1 -1
  48. package/dist/collection/components/cat-i18n/cat-i18n-registry.js +35 -41
  49. package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
  50. package/dist/collection/components/cat-input/cat-input.js +2 -2
  51. package/dist/collection/components/cat-input/cat-input.js.map +1 -1
  52. package/dist/collection/components/cat-modal/cat-modal.css +65 -0
  53. package/dist/collection/components/cat-modal/cat-modal.js +117 -0
  54. package/dist/collection/components/cat-modal/cat-modal.js.map +1 -0
  55. package/dist/collection/components/cat-select/cat-select.css +602 -0
  56. package/dist/collection/components/cat-select/cat-select.js +527 -0
  57. package/dist/collection/components/cat-select/cat-select.js.map +1 -0
  58. package/dist/collection/init.js +1 -1
  59. package/dist/collection/init.js.map +1 -1
  60. package/dist/collection/scss/_mixins.scss +1 -1
  61. package/dist/collection/scss/_variables.scss +2 -0
  62. package/dist/collection/scss/fonts/{_fonts.mixins.scss → _fonts-mixins.scss} +0 -0
  63. package/dist/collection/scss/index.scss +4 -3
  64. package/dist/components/cat-avatar.js +2 -2
  65. package/dist/components/cat-avatar.js.map +1 -1
  66. package/dist/components/cat-i18n-registry.js +35 -41
  67. package/dist/components/cat-i18n-registry.js.map +1 -1
  68. package/dist/components/cat-icon.js +1 -1
  69. package/dist/components/cat-icon2.js +56 -2
  70. package/dist/components/cat-icon2.js.map +1 -1
  71. package/dist/components/cat-input.js +2 -2
  72. package/dist/components/cat-input.js.map +1 -1
  73. package/dist/components/cat-menu.js +3 -742
  74. package/dist/components/cat-menu.js.map +1 -1
  75. package/dist/components/cat-modal.d.ts +11 -0
  76. package/dist/components/cat-modal.js +111 -0
  77. package/dist/components/cat-modal.js.map +1 -0
  78. package/dist/components/cat-select.d.ts +11 -0
  79. package/dist/components/cat-select.js +7788 -0
  80. package/dist/components/cat-select.js.map +1 -0
  81. package/dist/components/cat-toast-demo.js +549 -4
  82. package/dist/components/cat-toast-demo.js.map +1 -1
  83. package/dist/components/cat-tooltip.js +2 -1
  84. package/dist/components/cat-tooltip.js.map +1 -1
  85. package/dist/components/first-tabbable.js +1 -1068
  86. package/dist/components/first-tabbable.js.map +1 -1
  87. package/dist/components/floating-ui.dom.esm.js +1070 -0
  88. package/dist/components/floating-ui.dom.esm.js.map +1 -0
  89. package/dist/components/focus-trap.esm.js +746 -0
  90. package/dist/components/focus-trap.esm.js.map +1 -0
  91. package/dist/components/index.d.ts +21 -5
  92. package/dist/components/index.js +24 -4
  93. package/dist/components/index.js.map +1 -1
  94. package/dist/components/loglevel.js +5 -1
  95. package/dist/components/loglevel.js.map +1 -1
  96. package/dist/esm/{app-globals-cf55f7f5.js → app-globals-7d163b94.js} +3 -3
  97. package/dist/esm/{app-globals-cf55f7f5.js.map → app-globals-7d163b94.js.map} +1 -1
  98. package/dist/esm/cat-alert_20.entry.js +12607 -0
  99. package/dist/esm/cat-alert_20.entry.js.map +1 -0
  100. package/dist/esm/{cat-form-hint-dc443c7c.js → cat-form-hint-790d1e46.js} +2 -2
  101. package/dist/esm/{cat-form-hint-dc443c7c.js.map → cat-form-hint-790d1e46.js.map} +1 -1
  102. package/dist/esm/{cat-icon-registry-3ea75755.js → cat-icon-registry-dc1ef79a.js} +37 -43
  103. package/dist/esm/cat-icon-registry-dc1ef79a.js.map +1 -0
  104. package/dist/{components/cat-notification.js → esm/cat-notification-a9655c00.js} +2 -2
  105. package/dist/esm/{cat-notification-cd98c266.js.map → cat-notification-a9655c00.js.map} +1 -1
  106. package/dist/esm/cat-textarea.entry.js +3 -3
  107. package/dist/esm/catalyst.js +6 -6
  108. package/dist/esm/catalyst.js.map +1 -1
  109. package/dist/esm/{index-039e6f5f.js → index-41ceb7da.js} +10 -5
  110. package/dist/esm/index-41ceb7da.js.map +1 -0
  111. package/dist/esm/index.js +3 -3
  112. package/dist/esm/loader.js +6 -6
  113. package/dist/esm/loader.js.map +1 -1
  114. package/dist/esm/{loglevel-39a9e3f9.js → loglevel-c8b59c3a.js} +6 -2
  115. package/dist/{cjs/loglevel-c9b2d01f.js.map → esm/loglevel-c8b59c3a.js.map} +1 -1
  116. package/dist/esm/polyfills/css-shim.js +1 -1
  117. package/dist/types/components/cat-i18n/cat-i18n-registry.d.ts +9 -10
  118. package/dist/types/components/cat-modal/cat-modal.d.ts +20 -0
  119. package/dist/types/components/cat-select/cat-select.d.ts +84 -0
  120. package/dist/types/components.d.ts +184 -25
  121. package/package.json +11 -10
  122. package/dist/catalyst/p-12486027.js.map +0 -1
  123. package/dist/catalyst/p-12b96af6.js +0 -2
  124. package/dist/catalyst/p-12b96af6.js.map +0 -1
  125. package/dist/catalyst/p-2ec5c87a.js +0 -2
  126. package/dist/catalyst/p-2ec5c87a.js.map +0 -1
  127. package/dist/catalyst/p-7c06183a.js +0 -2
  128. package/dist/catalyst/p-dda85567.entry.js +0 -10
  129. package/dist/catalyst/p-dda85567.entry.js.map +0 -1
  130. package/dist/cjs/cat-alert_18.cjs.entry.js +0 -4831
  131. package/dist/cjs/cat-alert_18.cjs.entry.js.map +0 -1
  132. package/dist/cjs/cat-icon-registry-49b11b51.js.map +0 -1
  133. package/dist/cjs/index-499bad41.js.map +0 -1
  134. package/dist/components/cat-icon-registry.js +0 -59
  135. package/dist/components/cat-icon-registry.js.map +0 -1
  136. package/dist/components/cat-notification.js.map +0 -1
  137. package/dist/esm/cat-alert_18.entry.js +0 -4810
  138. package/dist/esm/cat-alert_18.entry.js.map +0 -1
  139. package/dist/esm/cat-icon-registry-3ea75755.js.map +0 -1
  140. package/dist/esm/cat-notification-cd98c266.js +0 -550
  141. package/dist/esm/index-039e6f5f.js.map +0 -1
  142. package/dist/esm/loglevel-39a9e3f9.js.map +0 -1
@@ -0,0 +1,527 @@
1
+ import { Component, Element, Event, h, Host, Method, Prop } from '@stencil/core';
2
+ import Choices from 'choices.js';
3
+ import { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';
4
+ const getOptionTemplate = (data) => {
5
+ var _a;
6
+ if ((_a = data.customProperties) === null || _a === void 0 ? void 0 : _a.imageUrl) {
7
+ return `
8
+ <div class="d-flex align-items-center">
9
+ <img src="${data.customProperties.imageUrl}" style="margin-right: 0.5rem" />
10
+ ${data.label}
11
+ </div>
12
+ `;
13
+ }
14
+ return `<cat-checkbox label="${data.label}" checked="${data.selected}"></cat-checkbox>`;
15
+ };
16
+ /**
17
+ * Select lets user choose one option from an options menu. Consider using
18
+ * select when you have 6 or more options. Select component supports any content
19
+ * type.
20
+ */
21
+ export class CatSelect {
22
+ constructor() {
23
+ this.i18n = CatI18nRegistry.getInstance();
24
+ /**
25
+ * The available options for the input.
26
+ */
27
+ this.choices = [];
28
+ /**
29
+ * Disable the select.
30
+ */
31
+ this.disabled = false;
32
+ /**
33
+ * Enable multiple selection.
34
+ */
35
+ this.multiple = false;
36
+ /**
37
+ * The placeholder for the select.
38
+ */
39
+ this.placeholder = '';
40
+ /**
41
+ * Whether the dropdown should appear above `(top)` or below `(bottom)` the
42
+ * input. By default, if there is not enough space within the window the
43
+ * dropdown will appear above the input, otherwise below it.
44
+ */
45
+ this.position = 'auto';
46
+ /**
47
+ * Enable search for the select.
48
+ */
49
+ this.noSearch = false;
50
+ }
51
+ componentDidLoad() {
52
+ var _a, _b, _c, _d, _e, _f, _g, _h;
53
+ this.init();
54
+ this.choiceInner = ((_c = (_b = (_a = this.hostElement).attachInternals) === null || _b === void 0 ? void 0 : _b.call(_a).shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.choices__inner')) || undefined;
55
+ (_d = this.choiceInner) === null || _d === void 0 ? void 0 : _d.addEventListener('click', this.showDropdownHandler.bind(this));
56
+ (_e = this.selectElement) === null || _e === void 0 ? void 0 : _e.addEventListener('addItem', this.onChange.bind(this));
57
+ (_f = this.selectElement) === null || _f === void 0 ? void 0 : _f.addEventListener('removeItem', this.onChange.bind(this));
58
+ (_g = this.selectElement) === null || _g === void 0 ? void 0 : _g.addEventListener('search', this.onSearch.bind(this));
59
+ if (this.multiple) {
60
+ (_h = this.selectElement) === null || _h === void 0 ? void 0 : _h.addEventListener('choice', this.onChoice.bind(this));
61
+ this.createRemoveItemButton();
62
+ }
63
+ }
64
+ disconnectedCallback() {
65
+ var _a, _b, _c, _d, _e, _f, _g;
66
+ (_a = this.choice) === null || _a === void 0 ? void 0 : _a.destroy();
67
+ this.choice = undefined;
68
+ (_b = this.choiceInner) === null || _b === void 0 ? void 0 : _b.removeEventListener('click', this.showDropdownHandler.bind(this));
69
+ (_c = this.selectElement) === null || _c === void 0 ? void 0 : _c.removeEventListener('addItem', this.onChange.bind(this));
70
+ (_d = this.selectElement) === null || _d === void 0 ? void 0 : _d.removeEventListener('removeItem', this.onChange.bind(this));
71
+ (_e = this.selectElement) === null || _e === void 0 ? void 0 : _e.removeEventListener('search', this.onSearch.bind(this));
72
+ if (this.multiple) {
73
+ (_f = this.selectElement) === null || _f === void 0 ? void 0 : _f.removeEventListener('choice', this.onChoice.bind(this));
74
+ (_g = this.removeElement) === null || _g === void 0 ? void 0 : _g.removeEventListener('click', this.onRemoveItemButtonClick.bind(this));
75
+ }
76
+ }
77
+ /**
78
+ * Set value of input based on an array of objects or strings. This behaves
79
+ * exactly the same as passing items via the items option but can be called
80
+ * after initialisation.
81
+ */
82
+ async setValue(args) {
83
+ var _a;
84
+ (_a = this.choice) === null || _a === void 0 ? void 0 : _a.setValue(args);
85
+ return this;
86
+ }
87
+ /**
88
+ * Set choices of select input via an array of objects (or function that
89
+ * returns array of object or promise of it), a value field name and a label
90
+ * field name.
91
+ */
92
+ async setChoices(choices, value, label, replaceChoices) {
93
+ var _a;
94
+ (_a = this.choice) === null || _a === void 0 ? void 0 : _a.setChoices(choices, value, label, replaceChoices);
95
+ return this;
96
+ }
97
+ /**
98
+ * Clear all choices from select.
99
+ */
100
+ async clearChoices() {
101
+ var _a;
102
+ (_a = this.choice) === null || _a === void 0 ? void 0 : _a.clearChoices();
103
+ return this;
104
+ }
105
+ /**
106
+ * Clear input of any user inputted text.
107
+ */
108
+ async clearInput() {
109
+ var _a;
110
+ (_a = this.choice) === null || _a === void 0 ? void 0 : _a.clearInput();
111
+ return this;
112
+ }
113
+ render() {
114
+ return (h(Host, null,
115
+ h("select", { ref: el => (this.selectElement = el), multiple: this.multiple, disabled: this.disabled })));
116
+ }
117
+ init() {
118
+ const value = this.value || [];
119
+ const config = {
120
+ items: Array.isArray(value) ? value : [value],
121
+ removeItemButton: true,
122
+ duplicateItemsAllowed: false,
123
+ delimiter: '',
124
+ paste: false,
125
+ searchEnabled: !this.noSearch,
126
+ searchChoices: false,
127
+ position: this.position,
128
+ resetScrollPosition: false,
129
+ placeholder: !!this.placeholder,
130
+ placeholderValue: this.placeholder || '',
131
+ searchPlaceholderValue: this.i18n.t('select.searchPlaceholder'),
132
+ renderSelectedChoices: 'always',
133
+ loadingText: this.i18n.t('select.loading'),
134
+ noResultsText: this.i18n.t('select.noResults'),
135
+ noChoicesText: this.i18n.t('select.noChoices'),
136
+ itemSelectText: this.i18n.t('select.selectItem'),
137
+ addItemText: (value) => this.i18n.t('select.addItem', { value }),
138
+ maxItemText: (maxItemCount) => this.i18n.t('select.maxItem', { maxItemCount }),
139
+ uniqueItemText: this.i18n.t('select.uniqueItem'),
140
+ customAddItemText: this.i18n.t('select.customAddItem')
141
+ };
142
+ const configSingle = {
143
+ callbackOnCreateTemplates: (strToEl) => {
144
+ return {
145
+ item: ({ classNames }, data) => {
146
+ var _a;
147
+ const template = ((_a = data.customProperties) === null || _a === void 0 ? void 0 : _a.imageUrl)
148
+ ? `<img src="${data.customProperties.imageUrl}" style="margin-right: 0.5rem" />`
149
+ : '';
150
+ return strToEl(`
151
+ <div class="${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable} ${data.placeholder ? classNames.placeholder : ''}" data-item data-id="${data.id}" data-value="${data.value}" ${data.active ? 'aria-selected="true"' : ''} ${data.disabled ? 'aria-disabled="true"' : ''}>
152
+ <span>${template}</span> ${data.label}
153
+ </div>
154
+ `);
155
+ }
156
+ };
157
+ }
158
+ };
159
+ const configMultiple = {
160
+ callbackOnCreateTemplates: (strToEl) => {
161
+ const itemSelectText = config.itemSelectText;
162
+ return {
163
+ item: ({ classNames }, data) => {
164
+ var _a;
165
+ const template = ((_a = data.customProperties) === null || _a === void 0 ? void 0 : _a.imageUrl)
166
+ ? `<img src="${data.customProperties.imageUrl}" style="margin-right: 0.5rem;" />`
167
+ : '';
168
+ return strToEl(`<div class="
169
+ ${classNames.item}
170
+ ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}
171
+ ${data.placeholder ? classNames.placeholder : ''}"
172
+ data-item data-id="${data.id}" data-value="${data.value}"
173
+ ${data.active ? 'aria-selected="true"' : ''}
174
+ ${data.disabled ? 'aria-disabled="true"' : ''}>
175
+ ${template}
176
+ ${data.label}
177
+ </div>`);
178
+ },
179
+ choice: function ({ classNames }, data) {
180
+ const template = getOptionTemplate(data);
181
+ const className = `${String(classNames.item)} ${String(classNames.itemChoice)}
182
+ ${String(data.disabled ? classNames.itemDisabled : classNames.itemSelectable)}
183
+ ${data.selected ? 'choices__item--selected' : ''}`;
184
+ return strToEl(`<div class="${className}"
185
+ data-select-text="${itemSelectText}"
186
+ data-choice data-id="${String(data.id)}" data-value="${String(data.value)}"
187
+ ${data.disabled ? 'data-choice-disabled aria-disabled="true"' : 'data-choice-selectable'}
188
+ ${data.groupId && data.groupId > 0 ? 'role="treeitem"' : 'role="option"'}>
189
+ ${template}
190
+ </div>`);
191
+ }
192
+ };
193
+ }
194
+ };
195
+ const settings = this.multiple
196
+ ? Object.assign(Object.assign({}, config), configMultiple) : Object.assign(Object.assign({}, config), configSingle);
197
+ this.choice = new Choices(this.selectElement, settings);
198
+ this.choice.setChoices(this.choices);
199
+ }
200
+ onChange() {
201
+ var _a, _b;
202
+ this.value = (_a = this.choice) === null || _a === void 0 ? void 0 : _a.getValue();
203
+ this.catChange.emit((_b = this.choice) === null || _b === void 0 ? void 0 : _b.getValue());
204
+ if (this.multiple) {
205
+ this.updateRemoveItemButtonVisibility();
206
+ }
207
+ }
208
+ onSearch(event) {
209
+ const customEvent = event;
210
+ this.catSearch.emit(customEvent.detail.value);
211
+ }
212
+ onChoice(event) {
213
+ var _a, _b;
214
+ const customEvent = event;
215
+ const items = Array.from((_a = this.choice) === null || _a === void 0 ? void 0 : _a.getValue());
216
+ const item = items.find(value => value.choiceId === customEvent.detail.choice.id);
217
+ if (item) {
218
+ (_b = this.choice) === null || _b === void 0 ? void 0 : _b._removeItem(item);
219
+ }
220
+ }
221
+ showDropdownHandler() {
222
+ var _a;
223
+ if (!this.disabled) {
224
+ (_a = this.choice) === null || _a === void 0 ? void 0 : _a.showDropdown();
225
+ }
226
+ }
227
+ createRemoveItemButton() {
228
+ var _a;
229
+ this.removeElement = document.createElement('cat-button');
230
+ this.removeElement.icon = 'cross-circle-outlined';
231
+ this.removeElement.iconOnly = true;
232
+ this.removeElement.a11yLabel = this.i18n.t('select.removeItem');
233
+ this.updateRemoveItemButtonVisibility();
234
+ this.removeElement.addEventListener('click', this.onRemoveItemButtonClick.bind(this));
235
+ (_a = this.choiceInner) === null || _a === void 0 ? void 0 : _a.appendChild(this.removeElement);
236
+ }
237
+ updateRemoveItemButtonVisibility() {
238
+ var _a, _b, _c;
239
+ const items = Array.from((_a = this.choice) === null || _a === void 0 ? void 0 : _a.getValue());
240
+ if (items.length) {
241
+ (_b = this.removeElement) === null || _b === void 0 ? void 0 : _b.removeAttribute('hidden');
242
+ }
243
+ else if (!items.length) {
244
+ (_c = this.removeElement) === null || _c === void 0 ? void 0 : _c.setAttribute('hidden', 'true');
245
+ }
246
+ }
247
+ onRemoveItemButtonClick(event) {
248
+ var _a;
249
+ event.stopPropagation();
250
+ (_a = this.choice) === null || _a === void 0 ? void 0 : _a.removeActiveItems(-1);
251
+ }
252
+ static get is() { return "cat-select"; }
253
+ static get encapsulation() { return "shadow"; }
254
+ static get originalStyleUrls() { return {
255
+ "$": ["cat-select.scss"]
256
+ }; }
257
+ static get styleUrls() { return {
258
+ "$": ["cat-select.css"]
259
+ }; }
260
+ static get properties() { return {
261
+ "choices": {
262
+ "type": "unknown",
263
+ "mutable": false,
264
+ "complexType": {
265
+ "original": "Choice[]",
266
+ "resolved": "Choice[]",
267
+ "references": {
268
+ "Choice": {
269
+ "location": "import",
270
+ "path": "choices.js"
271
+ }
272
+ }
273
+ },
274
+ "required": false,
275
+ "optional": false,
276
+ "docs": {
277
+ "tags": [],
278
+ "text": "The available options for the input."
279
+ },
280
+ "defaultValue": "[]"
281
+ },
282
+ "value": {
283
+ "type": "string",
284
+ "mutable": true,
285
+ "complexType": {
286
+ "original": "string | string[] | Choice | Choice[]",
287
+ "resolved": "Choice | Choice[] | string | string[] | undefined",
288
+ "references": {
289
+ "Choice": {
290
+ "location": "import",
291
+ "path": "choices.js"
292
+ }
293
+ }
294
+ },
295
+ "required": false,
296
+ "optional": true,
297
+ "docs": {
298
+ "tags": [],
299
+ "text": "The pre-selected items for the input."
300
+ },
301
+ "attribute": "value",
302
+ "reflect": false
303
+ },
304
+ "disabled": {
305
+ "type": "boolean",
306
+ "mutable": false,
307
+ "complexType": {
308
+ "original": "boolean",
309
+ "resolved": "boolean",
310
+ "references": {}
311
+ },
312
+ "required": false,
313
+ "optional": false,
314
+ "docs": {
315
+ "tags": [],
316
+ "text": "Disable the select."
317
+ },
318
+ "attribute": "disabled",
319
+ "reflect": false,
320
+ "defaultValue": "false"
321
+ },
322
+ "multiple": {
323
+ "type": "boolean",
324
+ "mutable": false,
325
+ "complexType": {
326
+ "original": "boolean",
327
+ "resolved": "boolean",
328
+ "references": {}
329
+ },
330
+ "required": false,
331
+ "optional": false,
332
+ "docs": {
333
+ "tags": [],
334
+ "text": "Enable multiple selection."
335
+ },
336
+ "attribute": "multiple",
337
+ "reflect": false,
338
+ "defaultValue": "false"
339
+ },
340
+ "placeholder": {
341
+ "type": "string",
342
+ "mutable": false,
343
+ "complexType": {
344
+ "original": "string",
345
+ "resolved": "string",
346
+ "references": {}
347
+ },
348
+ "required": false,
349
+ "optional": false,
350
+ "docs": {
351
+ "tags": [],
352
+ "text": "The placeholder for the select."
353
+ },
354
+ "attribute": "placeholder",
355
+ "reflect": false,
356
+ "defaultValue": "''"
357
+ },
358
+ "position": {
359
+ "type": "string",
360
+ "mutable": false,
361
+ "complexType": {
362
+ "original": "'auto' | 'top' | 'bottom'",
363
+ "resolved": "\"auto\" | \"bottom\" | \"top\"",
364
+ "references": {}
365
+ },
366
+ "required": false,
367
+ "optional": false,
368
+ "docs": {
369
+ "tags": [],
370
+ "text": "Whether the dropdown should appear above `(top)` or below `(bottom)` the\ninput. By default, if there is not enough space within the window the\ndropdown will appear above the input, otherwise below it."
371
+ },
372
+ "attribute": "position",
373
+ "reflect": false,
374
+ "defaultValue": "'auto'"
375
+ },
376
+ "noSearch": {
377
+ "type": "boolean",
378
+ "mutable": false,
379
+ "complexType": {
380
+ "original": "boolean",
381
+ "resolved": "boolean",
382
+ "references": {}
383
+ },
384
+ "required": false,
385
+ "optional": false,
386
+ "docs": {
387
+ "tags": [],
388
+ "text": "Enable search for the select."
389
+ },
390
+ "attribute": "no-search",
391
+ "reflect": false,
392
+ "defaultValue": "false"
393
+ }
394
+ }; }
395
+ static get events() { return [{
396
+ "method": "catChange",
397
+ "name": "catChange",
398
+ "bubbles": true,
399
+ "cancelable": true,
400
+ "composed": true,
401
+ "docs": {
402
+ "tags": [],
403
+ "text": "Emitted when the value is changed."
404
+ },
405
+ "complexType": {
406
+ "original": "any",
407
+ "resolved": "any",
408
+ "references": {}
409
+ }
410
+ }, {
411
+ "method": "catSearch",
412
+ "name": "catSearch",
413
+ "bubbles": true,
414
+ "cancelable": true,
415
+ "composed": true,
416
+ "docs": {
417
+ "tags": [],
418
+ "text": "Emitted when the search is triggered."
419
+ },
420
+ "complexType": {
421
+ "original": "any",
422
+ "resolved": "any",
423
+ "references": {}
424
+ }
425
+ }]; }
426
+ static get methods() { return {
427
+ "setValue": {
428
+ "complexType": {
429
+ "signature": "(args: Array<string> | Array<Item>) => Promise<this>",
430
+ "parameters": [{
431
+ "tags": [],
432
+ "text": ""
433
+ }],
434
+ "references": {
435
+ "Promise": {
436
+ "location": "global"
437
+ },
438
+ "Array": {
439
+ "location": "global"
440
+ },
441
+ "Item": {
442
+ "location": "import",
443
+ "path": "choices.js"
444
+ }
445
+ },
446
+ "return": "Promise<this>"
447
+ },
448
+ "docs": {
449
+ "text": "Set value of input based on an array of objects or strings. This behaves\nexactly the same as passing items via the items option but can be called\nafter initialisation.",
450
+ "tags": []
451
+ }
452
+ },
453
+ "setChoices": {
454
+ "complexType": {
455
+ "signature": "(choices: Array<Choice> | Array<Group>, value: string, label: string, replaceChoices?: boolean | undefined) => Promise<this>",
456
+ "parameters": [{
457
+ "tags": [],
458
+ "text": ""
459
+ }, {
460
+ "tags": [],
461
+ "text": ""
462
+ }, {
463
+ "tags": [],
464
+ "text": ""
465
+ }, {
466
+ "tags": [],
467
+ "text": ""
468
+ }],
469
+ "references": {
470
+ "Promise": {
471
+ "location": "global"
472
+ },
473
+ "Array": {
474
+ "location": "global"
475
+ },
476
+ "Choice": {
477
+ "location": "import",
478
+ "path": "choices.js"
479
+ },
480
+ "Group": {
481
+ "location": "import",
482
+ "path": "choices.js"
483
+ }
484
+ },
485
+ "return": "Promise<this>"
486
+ },
487
+ "docs": {
488
+ "text": "Set choices of select input via an array of objects (or function that\nreturns array of object or promise of it), a value field name and a label\nfield name.",
489
+ "tags": []
490
+ }
491
+ },
492
+ "clearChoices": {
493
+ "complexType": {
494
+ "signature": "() => Promise<this>",
495
+ "parameters": [],
496
+ "references": {
497
+ "Promise": {
498
+ "location": "global"
499
+ }
500
+ },
501
+ "return": "Promise<this>"
502
+ },
503
+ "docs": {
504
+ "text": "Clear all choices from select.",
505
+ "tags": []
506
+ }
507
+ },
508
+ "clearInput": {
509
+ "complexType": {
510
+ "signature": "() => Promise<this>",
511
+ "parameters": [],
512
+ "references": {
513
+ "Promise": {
514
+ "location": "global"
515
+ }
516
+ },
517
+ "return": "Promise<this>"
518
+ },
519
+ "docs": {
520
+ "text": "Clear input of any user inputted text.",
521
+ "tags": []
522
+ }
523
+ }
524
+ }; }
525
+ static get elementRef() { return "hostElement"; }
526
+ }
527
+ //# sourceMappingURL=cat-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cat-select.js","sourceRoot":"","sources":["../../../src/components/cat-select/cat-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport Choices, { Choice, ClassNames, Group, Item, Options } from 'choices.js';\nimport { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';\n\nconst getOptionTemplate = (data: Item): string => {\n if (data.customProperties?.imageUrl) {\n return `\n <div class=\"d-flex align-items-center\">\n <img src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />\n ${data.label}\n </div>\n `;\n }\n return `<cat-checkbox label=\"${data.label}\" checked=\"${data.selected}\"></cat-checkbox>`;\n};\n\n/**\n * Select lets user choose one option from an options menu. Consider using\n * select when you have 6 or more options. Select component supports any content\n * type.\n */\n@Component({\n tag: 'cat-select',\n styleUrl: 'cat-select.scss',\n shadow: true\n})\nexport class CatSelect {\n private readonly i18n = CatI18nRegistry.getInstance();\n\n private choice?: Choices;\n private choiceInner?: Element;\n private selectElement?: HTMLSelectElement;\n private removeElement?: HTMLCatButtonElement;\n\n @Element() hostElement!: HTMLElement;\n\n /**\n * The available options for the input.\n */\n @Prop() choices: Choice[] = [];\n\n /**\n * The pre-selected items for the input.\n */\n @Prop({ mutable: true }) value?: string | string[] | Choice | Choice[];\n\n /**\n * Disable the select.\n */\n @Prop() disabled = false;\n\n /**\n * Enable multiple selection.\n */\n @Prop() multiple = false;\n\n /**\n * The placeholder for the select.\n */\n @Prop() placeholder = '';\n\n /**\n * Whether the dropdown should appear above `(top)` or below `(bottom)` the\n * input. By default, if there is not enough space within the window the\n * dropdown will appear above the input, otherwise below it.\n */\n @Prop() position: 'auto' | 'top' | 'bottom' = 'auto';\n\n /**\n * Enable search for the select.\n */\n @Prop() noSearch = false;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the search is triggered.\n */\n @Event() catSearch!: EventEmitter;\n\n componentDidLoad(): void {\n this.init();\n this.choiceInner = this.hostElement.attachInternals?.().shadowRoot?.querySelector('.choices__inner') || undefined;\n this.choiceInner?.addEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.addEventListener('addItem', this.onChange.bind(this));\n this.selectElement?.addEventListener('removeItem', this.onChange.bind(this));\n this.selectElement?.addEventListener('search', this.onSearch.bind(this));\n if (this.multiple) {\n this.selectElement?.addEventListener('choice', this.onChoice.bind(this));\n this.createRemoveItemButton();\n }\n }\n\n disconnectedCallback(): void {\n this.choice?.destroy();\n this.choice = undefined;\n this.choiceInner?.removeEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.removeEventListener('addItem', this.onChange.bind(this));\n this.selectElement?.removeEventListener('removeItem', this.onChange.bind(this));\n this.selectElement?.removeEventListener('search', this.onSearch.bind(this));\n if (this.multiple) {\n this.selectElement?.removeEventListener('choice', this.onChoice.bind(this));\n this.removeElement?.removeEventListener('click', this.onRemoveItemButtonClick.bind(this));\n }\n }\n\n /**\n * Set value of input based on an array of objects or strings. This behaves\n * exactly the same as passing items via the items option but can be called\n * after initialisation.\n */\n @Method()\n async setValue(args: Array<string> | Array<Item>) {\n this.choice?.setValue(args);\n\n return this;\n }\n\n /**\n * Set choices of select input via an array of objects (or function that\n * returns array of object or promise of it), a value field name and a label\n * field name.\n */\n @Method()\n async setChoices(choices: Array<Choice> | Array<Group>, value: string, label: string, replaceChoices?: boolean) {\n this.choice?.setChoices(choices, value, label, replaceChoices);\n\n return this;\n }\n\n /**\n * Clear all choices from select.\n */\n @Method()\n async clearChoices() {\n this.choice?.clearChoices();\n\n return this;\n }\n\n /**\n * Clear input of any user inputted text.\n */\n @Method()\n async clearInput() {\n this.choice?.clearInput();\n\n return this;\n }\n\n render() {\n return (\n <Host>\n <select ref={el => (this.selectElement = el)} multiple={this.multiple} disabled={this.disabled}></select>\n </Host>\n );\n }\n\n private init() {\n const value = this.value || [];\n const config = {\n items: Array.isArray(value) ? value : ([value] as string[] | Choice[]),\n removeItemButton: true,\n duplicateItemsAllowed: false,\n delimiter: '',\n paste: false,\n searchEnabled: !this.noSearch,\n searchChoices: false,\n position: this.position,\n resetScrollPosition: false,\n placeholder: !!this.placeholder,\n placeholderValue: this.placeholder || '',\n searchPlaceholderValue: this.i18n.t('select.searchPlaceholder'),\n renderSelectedChoices: 'always' as 'auto' | 'always',\n loadingText: this.i18n.t('select.loading'),\n noResultsText: this.i18n.t('select.noResults'),\n noChoicesText: this.i18n.t('select.noChoices'),\n itemSelectText: this.i18n.t('select.selectItem'),\n addItemText: (value: string) => this.i18n.t('select.addItem', { value }),\n maxItemText: (maxItemCount: number) => this.i18n.t('select.maxItem', { maxItemCount }),\n uniqueItemText: this.i18n.t('select.uniqueItem'),\n customAddItemText: this.i18n.t('select.customAddItem')\n };\n\n const configSingle = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />`\n : '';\n return strToEl(\n `\n <div class=\"${classNames.item} ${\n data.highlighted ? classNames.highlightedState : classNames.itemSelectable\n } ${data.placeholder ? classNames.placeholder : ''}\" data-item data-id=\"${data.id}\" data-value=\"${\n data.value\n }\" ${data.active ? 'aria-selected=\"true\"' : ''} ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${template}</span> ${data.label}\n </div>\n `\n );\n }\n };\n }\n };\n\n const configMultiple = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n const itemSelectText = config.itemSelectText;\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem;\" />`\n : '';\n return strToEl(\n `<div class=\"\n ${classNames.item}\n ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\n ${data.placeholder ? classNames.placeholder : ''}\"\n data-item data-id=\"${data.id}\" data-value=\"${data.value}\"\n ${data.active ? 'aria-selected=\"true\"' : ''}\n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${template}\n ${data.label}\n </div>`\n );\n },\n choice: function ({ classNames }: { classNames: ClassNames }, data: Item) {\n const template = getOptionTemplate(data);\n const className = `${String(classNames.item)} ${String(classNames.itemChoice)}\n ${String(data.disabled ? classNames.itemDisabled : classNames.itemSelectable)}\n ${data.selected ? 'choices__item--selected' : ''}`;\n return strToEl(\n `<div class=\"${className}\"\n data-select-text=\"${itemSelectText}\"\n data-choice data-id=\"${String(data.id)}\" data-value=\"${String(data.value)}\"\n ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'}\n ${data.groupId && data.groupId > 0 ? 'role=\"treeitem\"' : 'role=\"option\"'}>\n ${template}\n </div>`\n );\n }\n };\n }\n };\n\n const settings: Partial<Options> = this.multiple\n ? { ...config, ...configMultiple }\n : { ...config, ...configSingle };\n this.choice = new Choices(this.selectElement, settings);\n this.choice.setChoices(this.choices);\n }\n\n private onChange() {\n this.value = this.choice?.getValue();\n this.catChange.emit(this.choice?.getValue());\n if (this.multiple) {\n this.updateRemoveItemButtonVisibility();\n }\n }\n\n private onSearch(event: Event) {\n const customEvent = event as CustomEvent<{ value: string }>;\n this.catSearch.emit(customEvent.detail.value);\n }\n\n private onChoice(event: Event) {\n const customEvent = event as CustomEvent<{ choice: Choice }>;\n const items = Array.from(this.choice?.getValue() as Item[]);\n const item = items.find(value => value.choiceId === customEvent.detail.choice.id);\n if (item) {\n this.choice?._removeItem(item);\n }\n }\n\n private showDropdownHandler() {\n if (!this.disabled) {\n this.choice?.showDropdown();\n }\n }\n\n private createRemoveItemButton() {\n this.removeElement = document.createElement('cat-button') as HTMLCatButtonElement;\n this.removeElement.icon = 'cross-circle-outlined';\n this.removeElement.iconOnly = true;\n this.removeElement.a11yLabel = this.i18n.t('select.removeItem');\n this.updateRemoveItemButtonVisibility();\n this.removeElement.addEventListener('click', this.onRemoveItemButtonClick.bind(this));\n this.choiceInner?.appendChild(this.removeElement);\n }\n\n private updateRemoveItemButtonVisibility() {\n const items = Array.from(this.choice?.getValue() as Item[]);\n if (items.length) {\n this.removeElement?.removeAttribute('hidden');\n } else if (!items.length) {\n this.removeElement?.setAttribute('hidden', 'true');\n }\n }\n\n private onRemoveItemButtonClick(event: Event) {\n event.stopPropagation();\n this.choice?.removeActiveItems(-1);\n }\n}\n"]}
@@ -5,7 +5,7 @@ function registerIcons() {
5
5
  CatIconRegistry.getInstance().addIcons(ci);
6
6
  }
7
7
  function registerTranslations() {
8
- CatI18nRegistry.getInstance().addMessages('en', {
8
+ CatI18nRegistry.getInstance().register('en', {
9
9
  'input.clear': 'Clear',
10
10
  'input.optional': 'Optional'
11
11
  });
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,SAAS,aAAa;EACpB,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB;EAC3B,eAAe,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;IAC9C,aAAa,EAAE,OAAO;IACtB,gBAAgB,EAAE,UAAU;GAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO;EACZ,aAAa,EAAE,CAAC;EAChB,oBAAoB,EAAE,CAAC;AACzB,CAAC","sourcesContent":["import { ci } from '@haiilo/catalyst-icons';\nimport { CatI18nRegistry } from './components/cat-i18n/cat-i18n-registry';\nimport { CatIconRegistry } from './components/cat-icon/cat-icon-registry';\n\nfunction registerIcons() {\n CatIconRegistry.getInstance().addIcons(ci);\n}\n\nfunction registerTranslations() {\n CatI18nRegistry.getInstance().addMessages('en', {\n 'input.clear': 'Clear',\n 'input.optional': 'Optional'\n });\n}\n\nexport default function () {\n registerIcons();\n registerTranslations();\n}\n"]}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,SAAS,aAAa;EACpB,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB;EAC3B,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,OAAO;IACtB,gBAAgB,EAAE,UAAU;GAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO;EACZ,aAAa,EAAE,CAAC;EAChB,oBAAoB,EAAE,CAAC;AACzB,CAAC","sourcesContent":["import { ci } from '@haiilo/catalyst-icons';\nimport { CatI18nRegistry } from './components/cat-i18n/cat-i18n-registry';\nimport { CatIconRegistry } from './components/cat-icon/cat-icon-registry';\n\nfunction registerIcons() {\n CatIconRegistry.getInstance().addIcons(ci);\n}\n\nfunction registerTranslations() {\n CatI18nRegistry.getInstance().register('en', {\n 'input.clear': 'Clear',\n 'input.optional': 'Optional'\n });\n}\n\nexport default function () {\n registerIcons();\n registerTranslations();\n}\n"]}
@@ -1,4 +1,4 @@
1
- @forward 'fonts/fonts.mixins';
1
+ @forward 'fonts/fonts-mixins';
2
2
  @forward 'utils/disabled.mixins';
3
3
  @forward 'utils/elevation.mixins';
4
4
  @forward 'utils/media.mixins';
@@ -1,6 +1,8 @@
1
1
  @use 'variables.tokens' as *;
2
2
  @forward 'variables.tokens';
3
3
 
4
+ // DEPRECATED - DO NOT ADD CODE HERE
5
+
4
6
  // --------
5
7
  // -- Composits
6
8
  // --------
@@ -10,9 +10,7 @@
10
10
 
11
11
  // -- Fonts
12
12
 
13
- @import 'fonts/fonts.mixins';
14
- $cat-font-path: 'assets/fonts' !default;
15
- @include cat-fonts($cat-font-path);
13
+ @import 'fonts/fonts-mixins';
16
14
 
17
15
  // -- Core
18
16
 
@@ -32,3 +30,6 @@ $cat-font-path: 'assets/fonts' !default;
32
30
  @import 'utils/typography';
33
31
  @import 'utils/visibility';
34
32
  @import 'utils/ratio';
33
+
34
+ $cat-font-path: 'assets/fonts' !default;
35
+ @include cat-fonts($cat-font-path);
@@ -77,8 +77,8 @@ const CatAvatar$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
77
77
  };
78
78
  }
79
79
  getInitials() {
80
- var _a;
81
- return ((_a = this.initials) !== null && _a !== void 0 ? _a : this.label
80
+ var _a, _b;
81
+ return ((_a = this.initials) !== null && _a !== void 0 ? _a : ((_b = this.label) !== null && _b !== void 0 ? _b : '')
82
82
  .split(' ')
83
83
  .map(n => n[0])
84
84
  .join(''));